Настройка OPENVPN Server за NAT на отдельной машине на базе DEBIAN LINUX

Linux > Настройка OPENVPN Server за NAT на отдельной машине на базе DEBIAN LINUX
04.12.2015 12:24:31



Статья:

Например хотим сделать VPN сеть за натом. 192.168.88.1 маршрутизатор в интернет ,
пробосим на нём порт к машине где крутится openvpn server на базе debian linux c IP =192.168.88.223
Openvpn будет раздавать сеть 192.168.100.0 255.255.255.0
установка на debian

apt-get install openvpn


Создадим конфигурационный файл, в директории
nano /etc/openvpn/server.conf


Следующего содержания:

#Порт для подключения, стандартный 1194, но вы можете выбрать тот который больше нравится
port 12345
#Тип соединения TCP или UDP
proto tcp
#Тин тоннеля
dev tun 
#Список сертификатов
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
# При подключении мы будем попадать в эту сеть
server 192.168.100.0 255.255.255.0
#Сохраняем выдаенные адреса клиентов в файл
ifconfig-pool-persist ipp.txt
#Проверяем состояние канала
keepalive 20 120 
#использовать сжатие
comp-lzo 
persist-key
persist-tun
#включаем логирование 
status openvpn-status.log 
#уровень логирования 
verb 3
#Определяем наш OpenVPN сервер в качестве шлюза по умолчанию
push "redirect-gateway" 
#Разрешаем соединения между клиентами
client-to-client
#добавляем маршруты
route 192.168.100.0 255.255.255.0
#Указываем DNS сервер
push "dhcp-option DNS 8.8.8.8"

 

 

Для начала включим форвардинг:

echo 1 > /proc/sys/net/ipv4/ip_forward

Чтобы форвардинг автоматически включался при запуске системы

Открываем файл:

sudo nano /etc/sysctl.conf

и добавляем в него строчку:

net.ipv4.ip_forward = 1

Затем включаем NAT

iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE

сохраняем настройки iptables в файл

sudo iptables-save > /etc/iptables.up.rules

И добавляем в конец файла:

sudo nano /etc/network/interfaces

эту строчку, для автоматической подгрузке правил

pre-up iptables-restore < /etc/iptables.up.rules

Генерацию ключей  можно сделать на WINDOWS, потом серверные ключи подложить на сервер

Скачиваем дистрибутив.

На момент написания статьи доступная версия 2.3.2. Качаем отсюда http://openvpn.net/index.php/open-source/downloads.html Windows installer 32-х или 64-х битную версию под разрядность вашей операционной системы.

Установка.

При установке обязательно отметьте все пункты птичками, на предложение установить драйвер отвечаем утвердительно. В системе появится новый виртуальный сетевой адаптер.

Создание сертификатов и ключей например на windows машине.

Когда-то этот пункт меня останавливал, мол ну их эти ключи, пойду поищу что попроще. Но, увы, ничего лучшего не нашел. Итак, переходим в C:\Program files\OpenVPN\easy-rsa, запускаем init-config.bat, появится vars.bat, открываем его в блокноте. Нас интересуют строчки в самом низу, их нужно заполнить как угодно. Например:
set KEY_COUNTRY=RU
set KEY_PROVINCE=Baldur
set KEY_CITY=Piter
set KEY_ORG=OpenVPN
set KEY_EMAIL=my@sobaka.ru
set KEY_CN=server
set KEY_NAME=server
set KEY_OU=ouou

Там где написано server не трогаем. Сохранили.
Теперь открываем openssl-1.0.0.cnf и ищем строчку default_days 365, ставим 3650. Это продлит жизнь наших сертификатов на 10 лет. Сохраняем. Далее открываем командную строку в пуск-стандартные-командная строка (на Windows Vista/7/8 от имени администратора), пишем последовательно:

cd C:\OpenVPN\easy-rsa
vars
clean-all

В ответ должно написать два раза «Скопировано файлов: 1». Значит, все окей. В этом же окне набираем:
build-dh
Создаст ключ Диффи-Хельмана.
build-ca
Создаст основной сертификат.
Будут заданы вопросы, просто нажимаем Enter пока не увидите путь C:\Program files\OpenVPN\easy-rsa. Далее набираем:
build-key-server server
На вопросы также жмем Enter, только не торопитесь! В конце будут два вопроса: «Sign the certificate?» и «1 out of 1 certificate requests certified, commit?», на оба вопроса отвечаем Y. Теперь создадим сертификат клиента:
build-key client
Тут нужно быть вниметельней, при вопросе Common Name (eg, your name or your server's hostname) нужно ввести client. В конце также два раза Y. Для каждого клиента нужно создавать новый сертификат, только с другим именем, например, build-key client1 и также указывать его в common name. Если все сделали правильно, можете выдохнуть! Самое сложное позади. В папке C:\Program Files\OpenVPN\easy-rsa\keys забираем: ca.crt, dh1024.pem, server.crt, server.key 

 

клиентский конфиг

client
dev tun
proto udp
# Адрес и порт сервера
remote 94.19.x.x 12345
# Ключи должны лежать в папке с конфигом
ca ca.crt
cert client.crt
key client.key
cipher AES-256-CBC
nobind
comp-lzo
persist-key
persist-tun
verb 3