ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
5 мая
933955 Топик полностью
framer (15.07.2019 10:38, просмотров: 134) ответил Evgeny_CD на [VPN] Организация связи при наличии NAT, Firewall. Сводный системный. Собираем самое интересное! По мотивам ->
Приходилось пару раз ставить сеть VPN. После очередного витка поиска информации появилась инструкция. Задача была следующая: организовать сеть VPN устройств с линухом подключенных за NAT через GSM, так чтобы каждый имел свой индивидуальный IP. Проблема в том, что конфигурация openVPN с хорошим уровнем защиты не очень проста. В помощь приходят скрипты easy-rsa. В качестве сервера openVPN выбрана машина с линуксом и с белым IP.
1. Инсталляция openssl  и easy-rsa.  Обычно после инсталляции easy-rsa находиться в /usr/share/easy-rsa/
2. Выбираем на сервере рабочий каталог и генерируем ключи и сертификаты. 

$ mkdir openvpn
$ cp -r /usr/share/easy-rsa/ openvpn/
$ cd openvpn
$ openssl dhparam -out /etc/openvpn/dh2048.pem 2048
$ mkdir easy-rsa/keys

------------------------
Правим конфигурацию.   easy-rsa/vars
export KEY_COUNTRY="RU"
export KEY_PROVINCE="DEF_PROVINCE"
export KEY_CITY="DEF_CITY"
export KEY_ORG="Org"
export KEY_EMAIL="kontakt@test.ru"
export KEY_OU="OU"
export KEY_NAME="server"

$ cd easy-rsa
$ cp ./openssl-1.0.0.cnf ./openssl.cnf
$ source ./vars

$ ./clean-all
$ ./build-ca
$ ./build-key-server server

После этого приготовлены ключи и сертификаты для сервера.

3. Подготовка ключей для клиента. 

$ ./build-key client1
Жмем enter и  Y

После этого должны появиться ключи и сертификат клиента.  

client1.crt
client1.key


4. Готовим конфигурацию для клиента. Будет работать без изменений как на Вин так и на линух:

файл client.ovpn

client 
dev tun 
proto udp 
remote  test.server.org  -  ип или днс сервера
resolv-retry infinite 
nobind 
persist-key 
persist-tun 
ca ca.crt 
cert client1.crt 
key client1.key 
remote-cert-tls server 
tls-auth static.key 1 
cipher AES-256-CBC 
#comp-lzo 
verb 3 
keepalive 10 60 


5. Конфигурация на стороне сервера 
файл server.conf


dev tun0
topology "subnet"
push "topology subnet"
mode server
tls-server
ifconfig 192.168.80.1 255.255.255.0
route 192.168.80.0 255.255.255.0
ifconfig-pool 192.168.80.10 192.168.80.199 255.255.255.0
client-config-dir ./clients

push "route 192.168.80.0 255.255.255.0"
client-to-client

dh dh2048.pem 
persist-key 
persist-tun 
proto udp 
ca ca.crt 
cert server.crt 
key server.key 
tls-auth static.key 0
cipher AES-256-CBC 
#comp-lzo 
verb 3  



6. Привязка клиента к ИП.
Создаем каталог где будут храниться IP клиентов ./clients.
Создаем файл клиента ./clients/client1 

ifconfig-push 192.168.80.80 255.255.255.0
iroute 192.168.80.0 255.255.255.0


7. Старт сервера
sudo -b openvpn --config ./server.conf