Очередная миллионная заметка по настройке OpenVPN. В связи с санкциями в Крыму приходится пропускать трафик через VPS.
Если вы используете OpenVZ VPS, то скорее всего устройство TUN не включено.
Проверить это можно так:
root@vps:~# ls /dev/tun
Если его нет, то нужно обратиться к хостеру VPS, они включат.
После того, как TUN вам включили, можно перейти к настройке.
Для примера использую Debian.
Обновляем пакеты, устанавливаем OpenVPN и переходим в рабочий каталог:
# apt-get update && apt-get upgrade
# apt-get install openvpn
# cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/
Если хотите, то можно отредактировать переменные, я этого не делал:
# vim ./vars
Переходим в рабочий каталог, инициализируем переменные, чистим каталог keys и создаем сертификаты:
# . ./vars
# . ./clean-all
# ./build-ca
# ./build-key-server server
# ./build-dh
Переносим ключи в системный каталог:
# cp ./keys/ca.crt /etc/openvpn
# cp ./keys/server.crt /etc/openvpn
# cp ./keys/server.key /etc/openvpn
# cp ./keys/dh1024.pem /etc/openvpn
Создаем сертификат пользователя (можно несколько, но мне нужен был пока только один).
При генерации сертификата нужно будет ввести пароль, запомните его:
# ./build-key-pkcs12 vpn.home
# ls /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/vpn.home*
Правим настройки сервера:
# zcat /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf
# vim /etc/openvpn/server.conf
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
client-to-client
Добавляем правило IPTables в rc.local, где a.b.c.d - IP адрес сервера:
# vim /etc/rc.local
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source a.b.c.d
exit 0
Разрешаем форвардинг:
# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
Перезагружаем VPS'ку:
# reboot
На этом настройка сервера окончена.
Далее необходимо заняться настройкой клиента. Я использую Linux Mint.
Копирую ключи с сервера:
user@mint-17 ~ $ scp [email protected]:/usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/vpn.home* ~/Downloads
Установка OpenVPN клиента:
user@mint-17 ~ $ sudo apt-get install openvpn
Создаем рабочий каталог и скрипт запуска, заполняем его:
user@mint-17 ~ $ sudo mkdir /opt/openvpn
user@mint-17 ~ $ sudo vim /opt/openvpn/start_vpn.run
user@mint-17 ~ $ cd /opt/openvpn
user@mint-17 ~ $ /usr/sbin/openvpn --config /opt/openvpn/myvpnconfig.ovpn
Создаем конфиг OpenVPN клиента и заполняем его:
user@mint-17 ~ $ sudo vim /opt/openvpn/myvpnconfig.ovpn
remote a.b.c.d 1194
client
dev tun
ping 10
comp-lzo
proto udp
tls-client
remote-cert-tls server
pkcs12 vpn.home.p12
verb 3
pull
Делаем скрипт запуска исполняемым и копируем ранее скачанные с сервера сертификаты в рабочий каталог:
user@mint-17 ~ $ sudo chmod +x /opt/openvpn/start_vpn.run
user@mint-17 ~ $ sudo cp ~/Downloads/vpn.home.p12 /opt/openvpn/
Запуск скрипта:
user@mint-17 ~ $ sudo /opt/openvpn/start_vpn.run
После этого VPN должен работать.
user@mint-17 ~ $ ifconfig tun0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.6 P-t-P:10.8.0.5 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:1283132 errors:0 dropped:0 overruns:0 frame:0
TX packets:614443 errors:0 dropped:43 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:1752960275 (1.7 GB) TX bytes:97814022 (97.8 MB)
user@mint-17 ~ $ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.8.0.5 128.0.0.0 UG 0 0 0 tun0
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
10.8.0.0 10.8.0.5 255.255.255.0 UG 0 0 0 tun0
10.8.0.5 * 255.255.255.255 UH 0 0 0 tun0
128.0.0.0 10.8.0.5 128.0.0.0 UG 0 0 0 tun0
a.b.c.d 192.168.0.1 255.255.255.255 UGH 0 0 0 eth0
192.168.0.0 * 255.255.255.0 U 1 0 0 eth0
Если же хотите работать с NetworkManager, то в Linux Mint можно сделать так:
Если вы используете OpenVZ VPS, то скорее всего устройство TUN не включено.
Проверить это можно так:
root@vps:~# ls /dev/tun
Если его нет, то нужно обратиться к хостеру VPS, они включат.
После того, как TUN вам включили, можно перейти к настройке.
Для примера использую Debian.
Обновляем пакеты, устанавливаем OpenVPN и переходим в рабочий каталог:
# apt-get update && apt-get upgrade
# apt-get install openvpn
# cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/
Если хотите, то можно отредактировать переменные, я этого не делал:
# vim ./vars
Переходим в рабочий каталог, инициализируем переменные, чистим каталог keys и создаем сертификаты:
# . ./vars
# . ./clean-all
# ./build-ca
# ./build-key-server server
# ./build-dh
Переносим ключи в системный каталог:
# cp ./keys/ca.crt /etc/openvpn
# cp ./keys/server.crt /etc/openvpn
# cp ./keys/server.key /etc/openvpn
# cp ./keys/dh1024.pem /etc/openvpn
Создаем сертификат пользователя (можно несколько, но мне нужен был пока только один).
При генерации сертификата нужно будет ввести пароль, запомните его:
# ./build-key-pkcs12 vpn.home
# ls /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/vpn.home*
Правим настройки сервера:
# zcat /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf
# vim /etc/openvpn/server.conf
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
client-to-client
Добавляем правило IPTables в rc.local, где a.b.c.d - IP адрес сервера:
# vim /etc/rc.local
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source a.b.c.d
exit 0
Разрешаем форвардинг:
# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
Перезагружаем VPS'ку:
# reboot
На этом настройка сервера окончена.
Далее необходимо заняться настройкой клиента. Я использую Linux Mint.
Копирую ключи с сервера:
user@mint-17 ~ $ scp [email protected]:/usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/vpn.home* ~/Downloads
Установка OpenVPN клиента:
user@mint-17 ~ $ sudo apt-get install openvpn
Создаем рабочий каталог и скрипт запуска, заполняем его:
user@mint-17 ~ $ sudo mkdir /opt/openvpn
user@mint-17 ~ $ sudo vim /opt/openvpn/start_vpn.run
user@mint-17 ~ $ cd /opt/openvpn
user@mint-17 ~ $ /usr/sbin/openvpn --config /opt/openvpn/myvpnconfig.ovpn
Создаем конфиг OpenVPN клиента и заполняем его:
user@mint-17 ~ $ sudo vim /opt/openvpn/myvpnconfig.ovpn
remote a.b.c.d 1194
client
dev tun
ping 10
comp-lzo
proto udp
tls-client
remote-cert-tls server
pkcs12 vpn.home.p12
verb 3
pull
Делаем скрипт запуска исполняемым и копируем ранее скачанные с сервера сертификаты в рабочий каталог:
user@mint-17 ~ $ sudo chmod +x /opt/openvpn/start_vpn.run
user@mint-17 ~ $ sudo cp ~/Downloads/vpn.home.p12 /opt/openvpn/
Запуск скрипта:
user@mint-17 ~ $ sudo /opt/openvpn/start_vpn.run
После этого VPN должен работать.
user@mint-17 ~ $ ifconfig tun0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.6 P-t-P:10.8.0.5 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:1283132 errors:0 dropped:0 overruns:0 frame:0
TX packets:614443 errors:0 dropped:43 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:1752960275 (1.7 GB) TX bytes:97814022 (97.8 MB)
user@mint-17 ~ $ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.8.0.5 128.0.0.0 UG 0 0 0 tun0
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
10.8.0.0 10.8.0.5 255.255.255.0 UG 0 0 0 tun0
10.8.0.5 * 255.255.255.255 UH 0 0 0 tun0
128.0.0.0 10.8.0.5 128.0.0.0 UG 0 0 0 tun0
a.b.c.d 192.168.0.1 255.255.255.255 UGH 0 0 0 eth0
192.168.0.0 * 255.255.255.0 U 1 0 0 eth0
Если же хотите работать с NetworkManager, то в Linux Mint можно сделать так:
$ sudo apt-get install network-manager-openvpn network-manager-openvpn-gnome
$ sudo restart network-manager
После этого на панели в трее выбрать значок NetworkManager'а и добавить новое сетевое соединение, выбрать импорт конфигурации. После этого все работает через GUI.
Комментариев нет:
Отправить комментарий