Установка и настройка DoubleVPN.

Имеем 2 сервера. Сервер А(ip 1.1.1.1) - сервер к которому подключается клиент. Сервер Б (ip 2.2.2.2) - "смотрит в интернет"

Идем на сервер А.
nano /etc/rc.local

echo 1 > /proc/sys/net/ipv4/ip_forward
service rsyslog stop
ntpdate pool.ntp.org
apt-get update && apt-get upgrade && apt-get install openvpn openssl nano ntpdate -y

Установим часовой пояс такой же как на вашем ПК.
dpkg-reconfigure tzdata

Обновим время
ntpdate pool.ntp.org

cd /usr/share/doc/openvpn/examples/easy-rsa/2.0

nano vars


ищем export KEY_SIZE=1024 меняем на export KEY_SIZE=2048

выполняем:


source ./vars
./clean-all
./build-ca
./build-key-server server
./build-dh
openvpn --genkey --secret keys/tls.key
./build-key cli


Копируем ключики в папку openvpn



cp -R keys/ca.crt /etc/openvpn/
cp -R keys/server.crt /etc/openvpn/
cp -R keys/server.key /etc/openvpn/
cp -R keys/dh2048.pem /etc/openvpn/
cp -R keys/tls.key /etc/openvpn/



Готовим ахрив для передачи файлов на второй сервер:


cd keys


tar -cvf keys.tar ca.crt cli.crt cli.key dh2048.pem tls.key


Отправляем файлы на второй сервер:


scp keys.tar root@2.2.2.2:/root/


Создаем файлик конфига и вписываем туда

nano /etc/openvpn/server.conf


port 444
local 1.1.1.1
dev tun
proto tcp-server
ifconfig 192.168.1.1 192.168.1.2
tls-server
daemon
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh2048.pem
tls-auth /etc/openvpn/tls.key 0
cipher AES-256-CBC
max-clients 1
persist-key
persist-tun
script-security 3
log /dev/null
fast-io
sndbuf 393216
rcvbuf 393216
push "sndbuf 393216"
push "rcvbuf 393216"
tun-mtu 1500
up /etc/openvpn/up
down /etc/openvpn/down


В скриптах up\down необходимо указать IP Сервера А в переменной LIP
nano /etc/openvpn/up


#!/bin/bash

LIP=1.1.1.1
/sbin/iptables -t nat -A PREROUTING -p tcp -d $LIP --dport 443 -j DNAT --to-destination 192.168.1.2
/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.2 -j SNAT --to $LIP


nano /etc/openvpn/down


#!/bin/bash

LIP=1.1.1.1
/sbin/iptables -t nat -D PREROUTING -p tcp -d $LIP --dport 443 -j DNAT --to-destination 192.168.1.2
/sbin/iptables -t nat -D POSTROUTING -s 192.168.1.2 -j SNAT --to $LIP

chmod +x /etc/openvpn/up
chmod +x /etc/openvpn/down


service openvpn start



Возможно появится ошибка. Верней всего она связана с кодировкой в up\down скриптах. Необходимо подключится по winscp и сохранить в utf файлы up\down

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





Идем на сервер B.

apt-get update && apt-get upgrade && apt-get install openvpn openssl nano ntpdate -y



Установим часовой пояс такой же как на вашем ПК.

dpkg-reconfigure tzdata



Обновим время

ntpdate pool.ntp.org



Создаем папку и распаковываем ключики

mkdir /etc/openvpn/keys/ && tar -xvf keys.tar -C /etc/openvpn/keys/



nano /etc/openvpn/client.conf



dev tun0
remote 1.1.1.1
port 444
proto tcp-client
ifconfig 192.168.1.2 192.168.1.1
tls-client
daemon
script-security 3 system
ns-cert-type server
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/cli.crt
key /etc/openvpn/keys/cli.key
dh /etc/openvpn/keys/dh2048.pem
tls-auth /etc/openvpn/keys/tls.key 1
cipher AES-256-CBC
persist-key
persist-tun
log /dev/null
verb 0
up /etc/openvpn/up
down /etc/openvpn/down
fast-io
tun-mtu 1500



nano /etc/openvpn/up



#!/bin/bash
echo "101 ip_1" >>/etc/iproute2/rt_tables
IP=`which ip`
$IP rule add to 192.168.1.2 table ip_1
$IP rule add from 192.168.1.2 table ip_1
$IP route add default via 192.168.1.1 table ip_1




nano /etc/openvpn/down



#!/bin/bash
IP=`which ip`
$IP route del default via 192.168.1.1 table ip_1
$IP rule del table ip_1
$IP rule del table ip_1
sed -i '/101 ip_1/d' /etc/iproute2/rt_tables




chmod +x /etc/openvpn/down

 

chmod +x /etc/openvpn/up

service openvpn start client



ping 192.168.1.1


Если пинг проходит успешно, значит сервера настроены верно. Можно переходить к следующему шагу.

cd /usr/share/doc/openvpn/examples/easy-rsa/2.0


nano vars


ищем export KEY_SIZE=1024 меняем на export KEY_SIZE=2048

выполняем:

source ./vars
./clean-all
./build-ca
./build-key-server server
./build-dh
openvpn --genkey --secret keys/tls.key


Генерируем клиентские ключи меняя имя (client1\client2):
без пароля
./build-key client1


с паролем
./build-key-pass client1




cp -R keys/ca.crt /etc/openvpn/
cp -R keys/server.crt /etc/openvpn/
cp -R keys/server.key /etc/openvpn/
cp -R keys/dh2048.pem /etc/openvpn/
cp -R keys/tls.key /etc/openvpn/




nano /etc/openvpn/server.conf


port 443
local 192.168.1.2
proto tcp
dev tun1
server 10.8.0.0 255.255.255.0
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh2048.pem
tls-auth /etc/openvpn/tls.key 0
cipher AES-256-CBC
status /dev/null
log-append /dev/null
verb 0
max-clients 30
keepalive 10 120
tls-server
comp-lzo
persist-key
persist-tun
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
fast-io
sndbuf 393216
rcvbuf 393216
push "sndbuf 393216"
push "rcvbuf 393216"
tun-mtu 1500






service openvpn start server


iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward


Добавляем команды для выполнения при загрузки ОС:


nano /etc/rc.local

ntpdate pool.ntp.org
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
service rsyslog stop




Подключаемся к серверу через winscp и забираем ключики клиентов из папки /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys
Вот пример конфигурационного файла клиента:

 

client
remote 2.2.2.2 443
proto tcp
dev tun
ca ca.crt
dh dh2048.pem
cert client1.crt
key client1.key
tls-auth tls.key 1
cipher AES-256-CBC
verb 3
mute 20
keepalive 10 120
comp-lzo
persist-key
persist-tun
resolv-retry infinite
nobind
route-method exe
route-delay 2
  • 20 Пользователи нашли это полезным
Помог ли вам данный ответ?

Related Articles

Полезные команды Linux

КомандаОписание Система uname -m Отобразить архитектуру компьютера uname -r...

Установка nginx+php5-fpm на Debian 7(Wheezy)

Данная статья поможет Вам настроить nginx+php5-fpm+mysql сервер на Debian 7 (Wheezy).Редактируем...

Установка OpenVPN

Данная статья поможет Вам установить OpenVPN на Ваш Сервер.apt-get udpate apt-get install...

Установка LAMP на Debian

Одна простая команда очень облегчит Вам жизньaptitude update && aptitude upgrade...

Powered by WHMCompleteSolution