DoubleVPN - Routing + NAT


VPN_Server_2


 

1. Інсталювати OpenVPN:

apt-get install openvpn

 

2. Створити каталог для ключів:

mkdir /etc/openvpn/rsa

3. Скопіювати утиліти та конфіги для роботи з ключами:

cp /usr/share/easy-rsa/* /etc/openvpn/rsa

 

4. Перейти в цей каталог:

cd /etc/openvpn/rsa

 

5. В файлі vars налаштуйте параметри ключа:

vi vars


 

export KEY_COUNTRY="US"

export KEY_PROVINCE="CA"

export KEY_CITY="SanFrancisco"

export KEY_ORG="Fort-Funston"

export KEY_EMAIL="me@myhost.mydomain"


 

Збережіть і закрийте файл:
:wq

 

6. Ініціюйте змінні:

source ./vars

 

7. Очистіть старі сертифікати та ключові папки, ключі/сервера:

./clean-all

 

8. Створіть сертифікат:

./build-ca

 

9. Створіть ключ сервера:

./build-key-server server2

 

10. Створіть клієнтський сертифікат для клієнта (VPN_Server_1): 

./build-key client_server1

 

11. Створіть Diffie-Hellman ключ:

./build-dh

 

12. Створіть tls-auth ключ:

openvpn --genkey --secret keys/ta.key

 

13. Створіть каталог для серверних ключів:

mkdir -p /etc/openvpn/server/keys

 

14. Створіть каталог для конфігурації клієнтів:

mkdir -p /etc/openvpn/server/clients

 

15. Перейдіть в каталог ключів:

cd /etc/openvpn/rsa/keys/

 

16. Скопіюйте серверні ключі в /etc/openvpn/server/keys/:

cp server2.crt server2.key ca.crt ta.key dh2048.pem /etc/openvpn/server/keys/

 

17. Заархівуйте клієнтські ключі та скопіюйте цей архів в клієнт (VPN_Server_1):

tar -cvf client_server1.keys.tar client_server1.crt client_server1.key ca.crt ta.key

 

18. Створіть server.conf файл в VPN_Server_2

touch /etc/openvpn/server.conf

cat /etc/openvpn/server.conf

 

Скопіюйте цей текст у файл:


 

local 192.168.122.211

port 443

proto tcp-server

dev tun0

ifconfig 10.10.10.1 10.10.10.2

route 10.10.20.0 255.255.255.0

ca /etc/openvpn/server/keys/ca.crt

cert /etc/openvpn/server/keys/server2.crt

key /etc/openvpn/server/keys/server2.key

dh /etc/openvpn/server/keys/dh2048.pem

tls-server

tls-timeout 120

tls-auth /etc/openvpn/server/keys/ta.key 0

cipher AES-256-CBC

auth SHA1

keepalive 10 120

comp-lzo

persist-key

persist-tun

user nobody

group nogroup

#status openvpn-status.log

#log /var/log/openvpn.log

#verb 5

status /dev/null

log /dev/null

verb 0


 

 Збережіть і закрийте файл:

:wq

 

19. Запустіть Vpn_Server_2 server.conf:

systemctl start openvpn@server.cervice

 

20. Сконфігуруйте Routing та NAT:

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

iptables -t nat -A POSTROUTING -s 10.10.20.0/24 -o eth0 -j MASQUERADE

 

VPN_Server_1

 

1. Інсталюйте OpenVPN:

apt-get install openvpn

 

2. Створіть каталог з ключами:

mkdir /etc/openvpn/rsa

 

3. Скопіюйте утиліти та конфігурації для роботи з ключами:

cp /usr/share/easy-rsa/* /etc/openvpn/rsa

 

4.  Перейдіть в цей каталог:

cd /etc/openvpn/rsa

 

5. В файлі vars налаштуйте параметри ключа:

vi vars


 

export KEY_COUNTRY="US"

export KEY_PROVINCE="CA"

export KEY_CITY="SanFrancisco"

export KEY_ORG="Fort-Funston"

export KEY_EMAIL="me@myhost.mydomain"


 


Збережіть і закрийте файл:
:wq
 

6. Ініціюйте змінні:

source ./vars

 

7. Очистіть старі сертифікати та ключові папки, ключі/сервера:

./clean-all

 

8. Створіть сертифікат:

./build-ca

 

9. Створіть серверний ключ:

./build-key-server server1

 

10. Створіть клієнтський сертифікат: 

./build-key client1

 

11. Створіть Diffie-Hellman ключ:

./build-dh

 

12. Створіть tls-auth ключ:

openvpn --genkey --secret keys/ta.key

 

13. Створіть каталог для серверних ключів:

mkdir -p /etc/openvpn/server/keys

 

14. Створіть каталог для клієнтських конфігурацій:

mkdir -p /etc/openvpn/server/clients

 

15. Створіть каталог для клієнтських ключів (ми розмістимо тут ключі клієнта, які створені на  VPN_Server_2):

mkdir -p /etc/openvpn/client

 

16. Перейдіть в каталог ключів:

cd /etc/openvpn/rsa/keys/

 

17. Скопіюйте серверні ключі в /etc/openvpn/server/keys/:

cp server1.crt server1.key ca.crt ta.key dh2048.pem /etc/openvpn/server/keys/

 

18. Заархівуйте клієнтські ключі та скопіюйте цей архів в client:

tar -cvf client1.keys.tar client1.crt client1.key ca.crt ta.key

 

19. Створіть server.conf файл в VPN_Server_1

touch /etc/openvpn/server.conf

vi /etc/openvpn/server.conf


local 192.168.122.212

port 443

mode server

proto tcp-server

tcp-nodelay

dev tun1

ca /etc/openvpn/server/keys/ca.crt

cert /etc/openvpn/server/keys/server1.crt

key /etc/openvpn/server/keys/server1.key

dh /etc/openvpn/server/keys/dh2048.pem

server 10.10.20.0 255.255.255.0

client-config-dir /etc/openvpn/server/clients/

push redirect-gateway

push route 10.10.20.0 255.255.255.0

push dhcp-option DNS 8.8.8.8

push dhcp-option DNS 8.8.4.4

tls-server

tls-timeout 120

tls-auth /etc/openvpn/server/keys/ta.key 0

cipher AES-256-CBC

auth SHA1

reneg-sec 604800

keepalive 10 120

comp-lzo

persist-key

persist-tun

user nobody

group nogroup

#status openvpn-status.log

#log /var/log/openvpn.log

#verb 5

status /dev/null

log /dev/null

verb 0


 Збережіть і закрийте файл:

:wq

 

20. Створіть client.conf файл в VPN_Server_1

touch /etc/openvpn/client.conf

vi /etc/openvpn/client.conf

Скопіюйте цей текст у файл:


remote 192.168.122.211

port 443

proto tcp-client

dev tun0

ifconfig 10.10.10.2 10.10.10.1

nobind

ca /etc/openvpn/client/ca.crt

cert /etc/openvpn/client/client_server1.crt

key /etc/openvpn/client/client_server1.key

tls-client

tls-auth /etc/openvpn/client/ta.key 1

remote-cert-tls server

cipher AES-256-CBC

auth SHA1

keepalive 10 120

comp-lzo

persist-key

persist-tun

user nobody

group nogroup

#log /var/log/openvpn.log

#verb 5

log /dev/null

verb 0


Збережіть і закрийте файл:

:wq

 

21. Встановіть статистичну IP-адресу для клієнта (client1) в каталозі конфігурації клієнта:

touch /etc/openvpn/server/clients/client1

cat /etc/openvpn/server/clients/client1

ifconfig-push 10.10.20.2 255.255.255.0


 

22. Запустіть Vpn_Server_1 server.conf:

systemctl start openvpn@server.cervice

 

23. Запустить Vpn_Server_1 client.conf

systemctl start openvpn@client.cervice

 

24. Сконфігуруйте Routing:

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

echo "100 doublevpn" >> /etc/iproute2/rt_tables

ip rule add from 10.10.20.0/24 table doublevpn

ip route add default via 10.10.10.1 dev tun0 table doublevpn


 

Клієнт

 

1. Інсталюйте OpenVPN:

apt-get install openvpn

 

2. Створіть каталог із серверними ключами:

mkdir -p /etc/openvpn/client

 

3. Розраховуйте клієнтські ключі в /etc/openvpn/client:

tar -xvf client1.keys.tar -C /etc/openvpn/client

 

4.  Створіть client.conf

touch /etc/openvpn/client.conf

vi /etc/openvpn/client.conf

 

Скопіюйте цей текст у файл


client

proto tcp-client

dev tun0

remote 192.168.122.212

port 443

redirect-gateway def1

resolv-retry infinite

nobind

pull

ca /etc/openvpn/client/ca.crt

cert /etc/openvpn/client/client1.crt

key /etc/openvpn/client/client1.key

tls-client

tls-auth /etc/openvpn/client/ta.key 1

remote-cert-tls server

cipher AES-256-CBC

auth SHA1

comp-lzo

persist-key

persist-tun

user nobody

group nogroup

#log /var/log/openvpn.log

#verb 5

log /dev/null

verb 0


 Збережіть і закрийте файл:

:wq

 

5. Запустіть client.conf

systemctl start openvpn@client.cervice