Блог  /  Linux   /   OpenVPN на Debian 9

OpenVPN на Debian 9

OpenVPN это пакет для шифрования трафика между клиентом и сервером, вы можете полностью спрятать все логи от провайдера или же от того кто прослушивает вашу сеть. В debian установка и настройка пакетов занимает считанные минуты.


Настройка сервера

1) Устанавливаем пакет openvpn:

apt install openvpn easy-rsa

2) Находим папку easy-rsa командой:

find / -type d -name "easy-rsa"
#Обычно это папка "/usr/share/easy-rsa/"

3) Создаем директорию easy-rsa в openvpn и копируем содержимое с выше найденного каталога:

mkdir -p /etc/openvpn/easy-rsa/; cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/

4) Создаем конфигурационный файл openssl.cnf

cat /etc/openvpn/easy-rsa/openssl-1.*.cnf > /etc/openvpn/easy-rsa/openssl.cnf

5) Генерируем ключи для сервера:

cd /etc/openvpn/easy-rsa/
source vars
./clean-all
./build-dh
./pkitool --initca
./pkitool --server server

6) Копируем ключи в корень папки openvpn:

cd keys; cp server.crt server.key ca.crt dh2048.pem /etc/openvpn/; cd /etc/openvpn/

7) Создаем конфигурационный файл /etc/openvpn/server.conf

local 176.9.33.250 # IP адрес сервера
port 5352          # Порт демона openvpn
 
# Схема работы
proto udp
dev tun
duplicate-cn
 
# Сертификаты которые мы сгенерировали ранее
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
 
# Тип шифрования пакетов 
# Вывод всех методов шифрования трафика "openvpn --show-ciphers"
cipher AES-256-CBC
 
# DNS сервера
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 8.8.8.8"
 
# Отправляем логи в черную дыру
log /dev/null
status /dev/null
 
# Настройки
#client-to-client
keepalive 10 120
comp-lzo no # Сжатие трафика отключено
persist-key
persist-tun
verb 0


Настройка IPTables

1) Включаем форвардинг пакетов:

echo 1 > /proc/sys/net/ipv4/ip_forward

2) В файле /etc/sysctl.conf добавляем:

net.ipv4.ip_forward=1

3) В файле /etc/rc.local , выше exit 0,  добавляем:

iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

4) Перезапускаем сервер:

reboot


Настройка клиента

1) Генерируем сертификаты на сервере:

cd /etc/openvpn/easy-rsa/
source vars
./pkitool openvpn

2) Забираем сертификаты в папке /etc/openvpn/easy-rsa/keys

ca.crt
openvpn.crt
openvpn.key

3) Создаем файл server.ovpn

remote 176.9.33.250 5352
client
dev tun
ping 10
comp-lzo no
cipher AES-256-CBC
proto udp
tls-client
remote-cert-tls server
ca ca.crt
cert openvpn.crt
key openvpn.key
verb 0
pull

<ca>
# Содержимое ca.crt
</ca>
<cert>
# Содержимое openvpn.crt
</cert>
<key>
# Содержимое openvpn.key
</key>

Полученные файл server.ovpn нужно загрузить в конфигурационную папку openvpn или импортировать через «OpenVPN Connect» если вы используете IOS, Android.