Довольно популярная задача – установить 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="[email protected]"
Собственно, создаем ключи:
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"
What’s up, all is going nicely here and ofcourse every one is sharing information, that’s really fine,
keep up writing.
I am no longer sure where you’re getting your information, however good
topic. I needs to spend some time studying much more or figuring out
more. Thanks for great info I was searching for this information for my mission.
I pay a quick visit day-to-day some web sites and information sites to read articles or reviews, however this website offers quality
based content.
Hi, after reading this amazing piece of writing i am also happy to share my experience here with mates.
Hi to all, it’s actually a nice for me to pay a visit
this website, it includes helpful Information.