Установка openvpn сервера на debian/ubuntu.
Кому нужно быстро установить vpn-сервер, а также для новичков в линуксе будет полезна вот эта утилита http://anikin.pw/all/prostaya-ustanovka-openvpn-servera-s-pomoschyu-quickopenvpn/
Установка сервера
Установим пакет openvpn.
# apt-get install openvpn -y
Установим пакет easy-rsa для генерации ключей
# apt-get install easy-rsa -y
Копируем файлы для генерации ключей в /etc/openvpn/easy-rsa
# mkdir /etc/openvpn/easy-rsa
# cp -r /usr/share/easy-rsa /etc/openvpn/easy-rsa
# mv /etc/openvpn/easy-rsa/easy-rsa /etc/openvpn/easy-rsa/2.0
Переходим в дирректорию и редактируем файл vars
# cd /etc/openvpn/easy-rsa/2.0
# nano vars
В первую очередь установим длину ключа 2048 бит, чтобы шифрование было максимальным.
export KEY_SIZE=2048
Затем в самом низу файла заполняем
export KEY_COUNTRY=""
export KEY_PROVINCE=""
export KEY_CITY=""
export KEY_ORG=""
export KEY_EMAIL=""
export KEY_EMAIL=
export KEY_CN=
export KEY_NAME=
export KEY_OU=
export PKCS11_MODULE_PATH=
export PKCS11_PIN=
Копируем:
# cp openssl-1.0.0.cnf openssl.cnf
Загружаем переменные из vars, очищаем от старых сертификатов и создаем новый сертификат
# . ./vars
# ./clean-all
#./build-ca
Генерируем ключ сервера
# ./build-key-server server
Генерируем ключ dh2048
# ./build-dh
Копируем ключи
# cp -r /etc/openvpn/easy-rsa/2.0/keys/ /etc/openvpn/
Создаем кофиг нашего сервера
# nano /etc/openvpn/openvpn.conf
port 1194
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-config-dir ccd
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3
log /var/log/openvpn.log
Запускаем openvpn
# service openvpn restart
Разрешим ip-forwarding. Раскомментируем строку net.ipv4.ip_forward=1 в /etc/sysctl.conf, а затем выполним
# sysctl -p
Выполним команду натирования, чтобы пустить наших клиентов в интернет.
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Также стоит прописать её куда-нибудь в автозагрузку, например, в /etc/rc.local перед директивой exit 0. Чтобы не выполнять её каждый раз вручную после перезагрузки.
Установка клиента(на примере debian/ubuntu)
На клиенте установим openvpn
# apt-get install openvpn
На сервере сгенерируем ключи для клиента.
# cd /etc/openvpn/easy-rsa/2.0
# source vars
# ./build-key client
Теперь копируем любым удобным для нас способов на клиента получившиеся файлы:
ca.crt, client.crt, client.key. Копируем в каталог /etc/openvpn/keys/
Создаем конфиг клиента.
# nano /etc/openvpn/client.conf
client
# Внеший IP, за которым находится ваш сервер
remote xxx.xxx.xxx.xxx 1194
# Внешний порт, который роутер на стороне сервера направит на сервер OpenVPN.
proto tcp
dhcp-option DNS 8.8.8.8
redirect-gateway def1
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/client.crt
key /etc/openvpn/keys/client.key
ns-cert-type server
#use virtual interface 'tap'
dev tun
#keep trying indefinitely to resolve the host name of the OpenVPN server.
resolv-retry infinite
#most clients don't need to bind to a specific local port number.
nobind
#try to preserve some state across restarts
persist-key
persist-tun
#enable compression on the VPN link
comp-lzo
log /var/log/openvpn.log
#set log file verbosity.
verb 4
#silence repeating messages
mute 20
Затем запускаем клиент openvpn
# service openvpn restart
И проверяем работу
# ping 10.8.0.1
Если пинг есть значит openvpn работает. Если нет, то идем смотреть логи.