luckynumber сказал(а):
всем доброго
долго искал по сайту и гуглу но не смог найти никакого мануала по настройке дабл впн
ткните пож естли ктото видел..
Sholom!
Ubuntu 18.04
0. Берем нормальный впс (базового достаточно, без опенвз и прочего хлама, квм в самый раз), с нормальной системой (последняя убунту, без рдп)
1. Обновляемся, если есть что обновлять
2. Ставим easy-rsa и openvpn
3. Редактируем через любой редактор файл sysctl.conf
Например: nano /etc/sysctl.conf
Раскомментируем строку net.ipv4.ip_forward=1
Эти можно дописать:
net.ipv4.conf.tun0.rp_filter=0
net.ipv4.conf.tun1.rp_filter=0
Чтобы не перегружать сервер, выполняем:
echo 1 > /proc/sys/net/ipv4/ip_forward
или
sudo sysctl -p
4. Двигаем в директорию easy-rsa:
cd /usr/share/easy-rsa/
5. Редактируем vars
nano vars, например И пишем любой key name
6. Дальше разбираемся с сертификацией, подгружаем vars
source ./vars
Если видим вот такую штуку, то делаем симлинк через ln.
Дальше чистим среду на всякий ./clean-all
Дальше пилим корневой центр сертификации:
./build-ca
Просто щелкаем энтер, все уже вводили в файл
7. Генерим сертификаты:
./build-key-server server1
Тут тоже энтер, а дальше y (со всем соглашаемся)
./build-key client1
Аналогично энтер, и y
./build-dh
8. Разбираемся с ключами
cd keys
openvpn --genkey --secret ta.key
cp ca.crt server1.crt server1.key ta.key dh2048.pem /etc/openvpn
9. Двигаем в директорию опенвпн и пилим
серверный конфиг:
cd /etc/openvpn
nano server1.conf
Туда помещаем:
port 1194
proto udp
dev tun0
ca ca.crt
cert server1.crt
key server1.key
dh dh2048.pem
tls-auth ta.key 0
remote-cert-tls client
cipher AES-256-CBC
server 10.0.0.0 255.255.255.0
keepalive 10 120
persist-key
persist-tun
status server1.log
verb 3
log /var/log/server1.log
status /var/log/server1.log
sndbuf 0
rcvbuf 0
comp-lzo
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
push "route 10.0.0.0 255.255.255.0"
script-security 2
up /etc/openvpn/server1_up.sh
down /etc/openvpn/server1_down.sh
9. Двигаем в директорию опенвпн и пилим серверный конфиг:
cd /etc/openvpn
nano server1.conf
Туда помещаем:
port 1194
proto udp
dev tun0
ca ca.crt
cert server1.crt
key server1.key
dh dh2048.pem
tls-auth ta.key 0
remote-cert-tls client
cipher AES-256-CBC
server 10.0.0.0 255.255.255.0
keepalive 10 120
persist-key
persist-tun
status server1.log
verb 3
log /var/log/server1.log
status /var/log/server1.log
sndbuf 0
rcvbuf 0
comp-lzo
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
push "route 10.0.0.0 255.255.255.0"
script-security 2
up /etc/openvpn/server1_up.sh
down /etc/openvpn/server1_down.sh
10. Добавляем в файл /etc/iproute2/rt_tables:
150 vpn_net
Через echo или любой текстовый редактор.
Находясь в папке опенвпна
11. Делаем файлы с правилами:
nano server1_up.sh:
#!/bin/bash
/sbin/ip rule add from 10.0.0.0/24 table vpn_net
/sbin/ip route add default dev tun1 table vpn_net
/sbin/iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o tun1 -j
MASQUERADE
и
nano server1_down.sh:
#!/bin/bash
/sbin/ip rule del from 10.0.0.0/24 table vpn_net
/sbin/ip route del default dev tun1 table vpn_net
/sbin/iptables -t nat -D POSTROUTING -s 10.0.0.0/24 -o tun1 -j
MASQUERADE
12. Даем права на выполнение файлам server1_up.sh и
server1_down.sh
chmod 775 server1_up.sh
chmod 775 server1_down.sh
Находясь в папке опенвпна
13. Запускаем службу:
systemctl enable openvpn@server1
systemctl start
openvpn@server1.service
Чекаем, запустилось ли netstat -npl
Дальше пилим корневой центр сертификации:
./build-ca
Просто щелкаем энтер, все уже вводили в файл
14. Переходим в /usr/share/easy-rsa/keys
Копируем ca.crt client1.crt client1.key ta.key к себе на комп в стандартную папку config опенвпна, либо вставляем потом текстом в клиент
15. Создаем конфиг client1.ovpn на пользовательской стороне (у себя в системе):
client
dev tun
proto udp
remote айпипервогосервера 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
tls-auth ta.key 1
cipher AES-256-CBC
comp-lzo
log client1.log
verb 3
sndbuf 0
rcvbuf 0
auth-nocache
remote-cert-tls server
Со вторым сервером делаем почти то же самое:
1. Обновляемся, если есть что обновлять
2. Ставим easy-rsa и openvpn
3. Редактируем через любой редактор sysctl.conf файл Например: nano /etc/sysctl.conf
Раскомментируем строку net.ipv4.ip_forward=1
Эти можно дописать:
net.ipv4.conf.tun0.rp_filter=0
net.ipv4.conf.tun1.rp_filter=0
Чтобы не перегружать сервер, выполняем: echo 1 > /proc/sys/net/ipv4/ip_forward или sudo sysctl -p
4. Двигаем в директорию easy-rsa:
cd /usr/share/easy-rsa/
5. Редактируем vars
nano vars, например
И пишем любой key name
6. Дальше разбираемся с сертификацией, подгружаем vars
source ./vars
Если видим вот такую штуку, то делаем симлинк через ln.
Дальше чистим среду на всякий
./clean-all
Дальше пилим корневой центр сертификации:
./build-ca
Просто щелкаем энтер, все уже вводили в файл
7. Генерим сертификаты:
./build-key-server server2
Тут тоже энтер, а дальше y (со всем соглашаемся)
./build-key client2
Аналогично энтер, и y
./build-dh
8. Разбираемся с ключами
cd keys
openvpn --genkey --secret ta.key
cp ca.crt server2.crt server2.key ta.key dh2048.pem /etc/openvpn
9. Двигаем в директорию опенвпн и пилим серверный конфиг:
cd /etc/openvpn
nano server2.conf
Туда помещаем:
port 1194
proto udp
dev tun
ca ca.crt
cert server2.crt
key server2.key
dh dh2048.pem
tls-auth ta.key 0
remote-cert-tls client
cipher AES-256-CBC
server 10.0.1.0 255.255.255.0
keepalive 10 120
persist-key
persist-tun
verb 3
status /var/log/server2.log
log /var/log/server2.log
sndbuf 0
rcvbuf 0
comp-lzo
push "route 10.0.1.0 255.255.255.0"
10. Смотрим список интерфейсов ifconfig, там наверняка ens3 основной, но может быть и eth0
Выполняем команды для маршрутов:
iptables -t nat -A POSTROUTING -s 10.0.1.0/24 -o интерфейс -j MASQUERADE
iptables-save > /root/iptables-rules
Дальше надо сделать так, чтобы правила всегда такими оставались, если у вас убунта ниже 18,
то:
nano /etc/rc.local
туда добавляем вот эту строчку
iptables-restore < /root/iptables-rules
Если нет, то:
Создаем файл тут /etc/systemd/system/имялюбое.service, туда помещаем:
[Unit]
Description=My
[Service]
ExecStart=/bin/sh -c 'iptables-restore < /root/iptables-rules'
[Install]
WantedBy=multi-user.target
11. Запускаем:
sudo systemctl enable имялюбое
sydo systemctl start имялюбое
13. Копируем серты и ключи на первый сервер при помощи scp:
cd /usr/share/easy-rsa/keys/
scp ca.crt client2.crt client2.key ta.key root@айпипервогосервера:/etc/openvpn/client
14. Оставляем терминал открытым и вырубаем опенвпн-сервер командой:
systemctl stop
openvpn@server2.service
15. Подключаемся в еще одном терминале в первый сервер:
Двигаем в папку клиентских конфигов и создаем новый:
cd /etc/openvpn/client
nano client2.conf
Туда помещаем:
client
dev tun1
proto udp
remote айпивторогосервера 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client2.crt
key client2.key
tls-auth ta.key 1
cipher AES-256-CBC
comp-lzo
log client2.log
verb 3
sndbuf 0
rcvbuf 0
auth-nocache
remote-cert-tls server
16. Дальше делаем все строго в таком порядке:
На первом сервере тормозим опенвпн сервер:
systemctl stop
openvpn@server1.service
На втором сервере запускаем опенвпн сервер:
systemctl start
openvpn@server2.service
На первом сервере подключаемся ко второму:
systemctl start
openvpn-client@client2.service
И поднимаем снова сервер:
systemctl start
openvpn@server1.service
Готово. Теперь можно подключаться.
Последнее редактирование: 19.11.2021