Приложение В. Настройка отдельного VPN-сервера

Ниже приведены примеры команд для CentOS. Для другой ОС необходимо использовать эквивалентные команды.

Чтобы настроить отдельный VPN-сервер

1.Перейдите в учетную запись с административным доступом к системе:

$ su

2.Установите репозиторий EPEL:

# yum install epel-release

3.Установите OpenVPN и утилиту Easy-RSA:

# yum install openvpn easy-rsa

4.Перейдите в каталог с установленной утилитой Easy-RSA:

# cd /usr/share/easy-rsa/3

5.Создайте структуру PKI-ключей:

# ./easyrsa init-pki

6.Создайте корневой удостоверяющий центр (CA):

# ./easyrsa build-ca

7.На запрос Enter New CA Key Passphrase, установите пароль на подпись сертификатов.

8.Создайте запрос сертификата для сервера без использования пароля:

# ./easyrsa gen-req server nopass

9.Подпишите запрос от CA:

# ./easyrsa sign-req server server

10.Введите пароль от CA, если он был установлен ранее.

11.Сгенерируйте ключ Диффи-Хеллмана:

# ./easyrsa gen-dh

12.Скопируйте полученные файлы в каталог с сервером OpenVPN:

# cp pki/ca.crt /etc/openvpn/ca.crt

# cp pki/dh.pem /etc/openvpn/dh.pem

# cp pki/issued/server.crt /etc/openvpn/server.crt

# cp pki/private/server.key /etc/openvpn/server.key

13.Сгенерируйте ключ для шифрования TLS Control Channel:

# openvpn --genkey --secret /etc/openvpn/tc.key

14.Создайте ключи для клиента OpenVPN-сервера:

# ./easyrsa gen-req vxcube nopass

# ./easyrsa sign-req client vxcube

15.Скопируйте ключи клиента (vxcube.key, vxcube.crt) и ключ сервера (ca.crt) в каталог с дистрибутивом Dr.Web vxCube (каталог ~/confs) из следующих каталогов:

# /usr/share/easy-rsa/3/pki/private/vxcube.key

# /usr/share/easy-rsa/3/pki/issued/vxcube.crt

# /etc/openvpn/ca.crt

16.Создайте файл конфигурации OpenVPN:

nano /etc/openvpn/server/server.conf

Значения:

port 1194

proto udp

dev tap

ca /etc/openvpn/ca.crt

cert /etc/openvpn/server.crt

key /etc/openvpn/server.key

dh /etc/openvpn/dh.pem

server 10.42.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

push "dhcp-option DNS 8.8.8.8"

push "dhcp-option DNS 8.8.4.4"

keepalive 10 120

comp-lzo

user nobody

group nobody

persist-key

persist-tun

status openvpn-status.log

log-append /var/log/openvpn.log

verb 1

17.Запустите сервер:

# systemctl start openvpn-server@server.service

18.Убедитесь, что сервер запущен:

# netstat -tulnp | grep 1194

19.Убедитесь, что на сервере включена переадресация IP:

# nano /etc/sysctl.conf

Добавьте строку:

net.ipv4.ip_forward = 1

20.Принудительно перечитайте конфигурацию sysctl:

# sysctl -p /etc/sysctl.conf

21.Убедитесь, что нет других сервисов, принимающих подключения от внешнего интерфейса, либо доступ к ним заблокирован настройками системного брандмауэра:

# netstat -nlpt

22.Если такие сервисы есть, добавьте правило для блокировки доступа к ним из VPN-туннеля:

# iptables -A INPUT -i tap0 -j DROP

23.Настройте маскарадинг для пакетов из подсети VPN-туннеля на интерфейс по умолчанию:

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