Настройка OpenVPN в CentOS

Человек невидимка VPNДовольно популярная задача – установить OpenVPN на Linux-сервере. Зачем это нужно? Например, когда вы находитесь в публичной сети (например, подключены к гостевой Wi-Fi ресторана), и не хотите, чтобы вас проснифали. Например, когда не хотите палить свой действительный IP-адрес посещаемым сайтам. Еще вариант – когда сетевое оборудование блокирует некоторые порты, а нужно, чтобы все работало. Давайте сэкономим время и без лишней головной боли поставим OpenVPN на примере CentOS 5.6.

Начнем с установки необходимых пакетов.

yum install openvpn
yum install easy-rsa

Приступим к конфигурированию. Необходимо создать определенную файловую структуру, чтобы OpenVPN смог нормально работать. Тут же создаем копию набора скриптов под названием easy-rsa, с их помощью мы будем создавать ключи и подписывать их. Копию easy-rsa необходимо создавать затем, чтобы при обновлении пакета OpenVPN не затерлись изменения в наших настройках и ключах.

touch /etc/openvpn/openvpn.conf
mkdir /etc/openvpn/ccd
mkdir /etc/openvpn/keys
mkdir /etc/openvpn/easy-rsa
cp -r /usr/share/easy-rsa/2.0/ /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa

Редактируем /etc/openvpn/easy-rsa/vars, вводим свои данные:

export KEY_COUNTRY=RU
export KEY_PROVINCE=MSK
export KEY_CITY=MOSCOW
export KEY_ORG="OpenVPN-TEST-INSTALLATION"
export KEY_EMAIL="admin@example.com"

Собственно, создаем ключи:

cd /etc/openvpn/easy-rsa
. ./vars
./clean-all
./build-ca
./build-key-server vpnserver
./build-dh

Копируем созданные ключи в рабочий каталог OpenVPN:

cp /etc/openvpn/easy-rsa/keys/ca.crt        /etc/openvpn/keys/
cp /etc/openvpn/easy-rsa/keys/vpnserver.crt /etc/openvpn/keys/
cp /etc/openvpn/easy-rsa/keys/vpnserver.key /etc/openvpn/keys/
cp /etc/openvpn/easy-rsa/keys/dh1024.pem    /etc/openvpn/keys/

Пришло время заполнить основной конфигурационный файл /etc/openvpn/openvpn.conf

port 1194
proto tcp
dev tun
tls-server
server 1.1.1.0 255.255.255.0
keepalive 10 120
persist-key
persist-tun
status openvpn-status.log
client-config-dir /etc/openvpn/ccd
push "route 1.1.1.0 255.255.255.0"
duplicate-cn
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/vpnserver.crt
key /etc/openvpn/keys/vpnserver.key
dh /etc/openvpn/keys/dh1024.pem

Обратите внимание на то, что мы задаем подсеть 1.1.1.0/24 в качестве подсети VPN, IP-адрес сервера в данном случае будет 1.1.1.1. Также нужно правильно указать путь до ключа и сертификатов. Работаем по протоколу TCP по порту 1194. Шифрование включено (tls-server).

Теперь создаем ключ для клиента:

cd /etc/openvpn/easy-rsa
./build-key client01

Допустим, что на клиенте установлена Windows. Тогда для работы OpenVPN клиента нужно будет положить получившиеся файлы ca.crt, client01.crt, client01.key и server.ovpn в каталог C:\Program Files\OpenVPN\config. Содержимое server.ovpn примерно следующее:

client
tls-client
verb 3
dev tun
proto tcp
remote vpn-server-name.ru 1194
nobind
persist-key
persist-tun
ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\config\\client01.crt"
key "C:\\Program Files\\OpenVPN\\config\\client01.key"

Чтобы весь трафик при подключении к VPN шел через VPN-сервер (это заставляет клиента изменить шлюз по умолчанию на vpn-сервер), нужно добавить следующую строчку в основной конфиг openvpn.conf:

push "redirect-gateway def1"

Похожие статьи

Leave a Reply

Your email address will not be published. Required fields are marked *