воскресенье, 20 ноября 2016 г.

Установка OpenVPN на CentOS7 / Настройка OpenVPN туннеля Site-to-WindowsClient

Установка и настройка VPN между корпоративной сетью компании и удалённым сотрудником 
Настройка OpenVPN сервера на CentOS7
Настройка клиента на удалённом компьюере

Настройка Сервера в Офисе

Установка
# yum -y install openvpn
# chkconfig openvpn on

Созданиие сертификатов
За исключением этих пунктов:
========================================
Сгенерируем сертификаты для криента
# cd /etc/openvpn/easy-rsa
# ./build-key client-NAME

Копируем ca.crt, client-NAME.crt client-NAME.key на удалённый ком
Я это делаю при помощи утилиты WinSCP.
======================================== 

Создаём файл конфигурации для Офис
# vi /etc/openvpn/vpn-remusers.conf

dev tun1
port 1194
mode server
remote 90.100.100.1
server 10.0.1.0 255.255.255.0
topology subnet

# Маршрут передаваемый на клиент при подключении
# Нужен для доступа клиента в корпоративную сеть
push "route 192.168.1.0 255.255.255.0"
# DNS передаваемый на клиент при подключенииpush "dhcp-option DNS 192.168.2.59"


# Certificate Authority file
ca /etc/openvpn/keysServer/ca.crt

# Server certificate/public key
cert /etc/openvpn/keysServer/server.crt

# Server private key
key /etc/openvpn/keysServer/server.key

resolv-retry infinite
keepalive 20 60
comp-lzo
persist-key
persist-tun
daemon
reneg-sec 300
verb 3

status /var/log/openvpn/vpn-remusers-status.log
log /var/log/openvpn/vpn-remusers.log

Настройка автозапуска OpenVPN
systemctl enable openvpn@vpn-remusers.service

Старт, Остановка, Статус
systemctl start openvpn@vpn-remusers.service
systemctl status -l openvpn@vpn-remusers.service

*Если в директории /etc/openvpn/ у вас будет несколько .conf файлов, различных VPN туннелей, то включать автозапуск нужно будет для каждого отдельно
systemctl enable openvpn@vpn1.service
systemctl enable openvpn@vpn2.service...

Настройка iptables

# vi /etc/sysconfig/iptables

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

# OpenVPN - HeadQuaters & VPN Clients
-A INPUT -m state --state NEW -m tcp -p tcp  --dport 1194 -j ACCEPT
-A FORWARD -i eno192 -o tun1 -j ACCEPT
-A FORWARD -i tun1 -o eno192-j ACCEPT

COMMIT

*nat
:PREROUTING ACCEPT [11:869]
:POSTROUTING ACCEPT [1:60]
:OUTPUT ACCEPT [1:60]
-A POSTROUTING -s 10.0.1.0/24 -o eno192 -j MASQUERADE
COMMIT

Включить Forwarding
vi /etc/sysctl.conf
     net.ipv4.ip_forward = 1

service network restart

Проброс порта на маршрутизаторе (на примере Cisco)
#ip nat inside source static tcp 192.168.1.10 1194 interface FastEthernet0/0 1194

*FastEthernet0/0 - интерфейс, что подключен к Интернету

Просмотр логов
tail -f /var/log/openvpn/remoteusers.log
tail -f /var/log/openvpn/remoteusers-status.log

Авторизация по сертификату и паролю
http://skeletor.org.ua/?p=1571

Авторизация по сертификату и Учётке Active Directory
http://serverfault.com/questions/333426/openvpn-plugin-openvpn-auth-ldap-does-not-bind-to-active-directory
https://foxpass.readme.io/docs/openvpn
http://ru.man.wikia.com/wiki/OpenVPN_%D1%81_%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B5%D0%B9_%D0%B2_AD
https://www.allcloud.io/how-to/configure-openvpn-authentication-using-active-directory/

Настройка Удалённого Компьютера (Windows 8.1)

Установка
Скачиваем и устанавливаем клиента openvpn.net

Запускаем OpenVPN с правами Администратора
Открываем директории где хранятся файлы OpenVPN

В папаке OpenVPN configuration file directory создаём текстовый файл с расширением .ovpn

Шаблон файла конфигурации OpenVPN клиента
dev tun
proto tcp
remote 90.100.100.1
port 1194
client
resolv-retry infinite
persist-key
persist-tun
comp-lzo
redirect-gateway - эту опцию указываем если хотим, чтобы клиент ходил в Инет через наш тунель...
<ca>
-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----

-----END PRIVATE KEY-----
</key>

В блоках CA, CERT и KEY нужно вставить сертификаты, что были сгенерированы для клиента на стороне сервера в офисе. Для их извлечения на сервере выполните:
cat /etc/openvpn/ca.crt
cat /etc/openvpn/client-NAME.crt
cat /etc/openvpn/client-NAME.key

Сохраните файл .ovpn

Протестируйте подключение к корпоративной сети

* Добавление дополнительного TAP интерфейса для OpenVPN в Windows



Комментариев нет:

Отправить комментарий