Linux > Настройка OPENVPN Server за NAT на отдельной машине на базе DEBIAN LINUX
04.12.2015 12:24:31
Наиболее часто встречающиеся слова в статье:
[сертификатов] [добавляем] [строчку] [\Program] [открываем] [сертификат] [Например] [сделать] [openvpn] [соединения]
Статья:
Например хотим сделать 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