velikijzhuk Posted November 28, 2022 Share Posted November 28, 2022 (edited) Доброго времени суток. Решил поделится инструкцией как сделать L2TP/IPSec и/или IKEv2 VPN сервер. Я использовал VPS от ihor (не сочтите за рекламу) самый минимальный (1 ядро, 512RAM, 5Gb диск), система Ubuntu 16.04.7 LTS Server. Ставил через VNC с образа. В общем приступим. Как только загрузилась свежеустановленная Ubuntu делаем под root (sudo -i) apt-get update apt-get upgrade Ждём пока все обновится и затем ставим нужные пакеты apt-get install xl2tpd strongswan strongswan-pki dnsmasq mc nano Если l2tp ненадо, можно не ставить xl2tpd и dnsmasq Когда все поставилось начинаем настраиваться Открываем nano /etc/default/ufw Смотрим чтобы там было Цитата DEFAULT_INPUT_POLICY="DROP" DEFAULT_FORWARD_POLICY="DROP" Если ACCEPT, то меняем. Далее делаем ufw allow openssh ufw enable Если что есть VNC=) IKEv2 mv /etc/ipsec.conf ipsec.conf.orig touch /etc/ipsec.conf chmod 644 /etc/ipsec.conf Делаем сертификат можно не под root mkdir -p ~/pki/{cacerts,certs,private} chmod 700 ~/pki pki --gen --type rsa --size 4096 --outform pem > ~/pki/private/ca-key.pem pki --self --ca --lifetime 3650 --in ~/pki/private/ca-key.pem \ --type rsa --dn "CN=MY SUPER VPN ROOT CA" --outform pem > ~/pki/cacerts/ca-cert.pem pki --gen --type rsa --size 4096 --outform pem > ~/pki/private/server-key.pem pki --pub --in ~/pki/private/server-key.pem --type rsa \ | pki --issue --lifetime 1460 \ --cacert ~/pki/cacerts/ca-cert.pem \ --cakey ~/pki/private/ca-key.pem \ --dn "CN=server_domain" --san server_domain \ --flag serverAuth --flag ikeIntermediate --outform pem \ > ~/pki/certs/server-cert.pem lifetime 1460 - 4 года. Тут можно по вкусу 365, 730 и т.д. Если domaina нету то делаем так Вместо --dn "CN=server_domain" --san server_domain Пишем --dn "CN=IP address" --san @IP_address --san IP_address Сертификаты и ключи готовы копируем в нужное место под root cp -r ~/pki/* /etc/ipsec.d/ Также копируем себе на компик ca-cert.pem Далее открываем конфигурации ipsec тоже под root nano /etc/ipsec.conf И пишем там Цитата config setup charondebug="ike 0, knl 0, cfg 0" uniqueids=no conn base dpdaction=clear dpddelay=30s fragmentation = yes conn ikev2 also=base compress=no type=tunnel keyexchange=ikev2 forceencaps=yes rekey=no left=%any leftid=@server_domain leftid=IP_address leftcert=server-cert.pem leftsendcert=always leftsubnet=0.0.0.0/0 right=%any rightid=%any rightauth=eap-mschapv2 rightsourceip=192.168.65.0/24 rightdns=8.8.8.8,8.8.4.4 rightsendcert=never eap_identity=%identity ike=chacha20poly1305-sha512-curve25519-prfsha512,aes256gcm16-sha384-prfsha384-ecp384,aes256-sha1-modp1$ esp=chacha20poly1305-sha512,aes256gcm16-ecp384,aes256-sha256,aes256-sha1,3des-sha1! auto=add leftid оставляем какой-то один доменное имя или IP rightsourceip подсеть с которой будут выдаваться IP адреса клиентам rightdns=8.8.8.8,8.8.4.4 - Можно любые другие Сохраняемся и открываем под root ipsec.secrets nano /etc/ipsec.secrets Там пишем Цитата : RSA "server-key.pem" user1 : EAP "password1" Где user1 имя пользователя, а password1 пароль этого пользователя. Под root настраиваем firewall ufw allow isakmp ufw allow ipsec-nat-t или ufw allow 500,4500/udp Далее в nano открываем before.rules nano /etc/ufw/before.rules Находим *nat и пешем *nat :POSTROUTING ACCEPT [0:0] -A POSTROUTING -s 192.168.65.0/24 -o ens3 -j MASQUERADE COMMIT Находим *mangle -A FORWARD --match policy --pol ipsec --dir in -s 192.168.65.0/24 -o ens3 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1361:1536 -j TCPMSS --set-mss 1360 И наконец *filter После # End required lines *filter :ufw-before-input - [0:0] :ufw-before-output - [0:0] :ufw-before-forward - [0:0] :ufw-not-local - [0:0] # End required lines <--- тут #IKEv2 -A ufw-before-forward --match policy --pol ipsec --dir in --proto esp -s 192.168.65.0/24 -j ACCEPT -A ufw-before-forward --match policy --pol ipsec --dir out --proto esp -d 192.168.65.0/24 -j ACCEPT #END IKEv2 Сохраняемся Теперь открываем в nano sysctl.conf nano /etc/sysctl.conf Находим там "net.ipv4.ip_forward = " ставим 1 Если в начале стоит #, удаляем Получается Цитата net.ipv4.ip_forward = 1 Делаем sysctl -p #Рестартим firewall ufw disable ufw enable Рестартим strongswan systemctl restart strongswan ================================== Заходи в наш любимый Keenetic Интернет-->Другие подключения В разделе VPN-подключения создаём новое Нажимаем кнопку Импорт из файла и выбираем ca-cert.pem который скопировали себе на компик. Сохраняемся ждем пару секунд, пишем маршруты до адресов/подсетей к которым надо ходить через vpn Edited November 28, 2022 by velikijzhuk Quote Link to comment Share on other sites More sharing options...
velikijzhuk Posted November 28, 2022 Author Share Posted November 28, 2022 (edited) Теперь L2TP Если не настраивали IKEv2, то делаем все также как и у IKEv2, до генерации сертификата. Затем под root (sudo -i) nano /etc/ipsec.conf Там пишем если нет config setup charondebug="ike 0, knl 0, cfg 0" uniqueids=no conn base dpdaction=clear dpddelay=30s fragmentation = yes Если есть, то не пишем. Потом дописываем conn l2tp also=base dpdtimeout=90s keyexchange=ikev1 ike=aes256-sha256-modp4096 esp=aes256-sha256-modp4096 type=transport leftauth=psk rightauth=psk leftsubnet=%dynamic[/1701] rightsubnet=%dynamic mark=%unique auto=add Сохраняем. Открываем options.xl2tpd nano /etc/ppp/options.xl2tpd Пишем auth nodefaultroute mtu 1280 mru 1280 lock noipx proxyarp local require-mschap-v2 refuse-pap refuse-chap refuse-mschap ms-dns 8.8.8.8 ms-dns 8.8.4.4 logfile /var/log/ppp/xl2tpd.log Сохраняем Открываем xl2tpd.conf nano /etc/xl2tpd/xl2tpd.conf Пишем [global] port = 1701 listen-addr = %ВНЕШНИЙ_IP_СЕРВЕРА% auth file = /etc/ppp/chap-secrets access control = no ipsec saref = no force userspace = yes debug network = no debug packet = no debug state = no debug tunnel = no [lns default] exclusive = yes ip range = 192.168.75.100-192.168.75.131 assign ip = yes hidden bit = no local ip = 192.168.75.1 length bit = yes require authentication = yes unix authentication = no name = L2TPServer pppoptfile = /etc/ppp/options.xl2tpd ppp debug = no local ip ip range По вкусу name тоже Открываем chap-secrets nano /etc/ppp/chap-secrets Добавляем пользователей User1 L2TPServer "SuPeR_Pass1" * UserStatic L2TPServer "12345678" 192.168.75.2 User1 будет получать ip из пула ip range UserStatic будет с IP 192.168.75.2 L2TPServer это name из xl2tpd.conf В ipsec.secrets добавляем PSK %any %any : PSK "pq0nCRuh2tF1KwXLrtxlOA==" Сгенерировать можно так openssl rand -base64 16 Почти всё Настроим firewall ufw allow 500,4500/udp ufw route allow in on ppp+ from 192.168.75.0/24 out on ens3 ens3 имя сетевухи которая смотрит во внешний мир Порт 1701 не надо открывать В before.rules после *nat добовляем :POSTROUTING ACCEPT [0:0] -A POSTROUTING -s 192.168.75.0/24 -o ens3 -j MASQUERADE Включаем net.ipv4.ip_forward = 1 как и у IKEv2 ufw disable ufw enable systemctl restart strongswan xl2tpd ==================== В роутере Добавляем маршруты. Edited November 28, 2022 by velikijzhuk Quote Link to comment Share on other sites More sharing options...
velikijzhuk Posted November 28, 2022 Author Share Posted November 28, 2022 (edited) Ну и на последок DNSMASQ В /etc/default/dnsmasq добовляем строчку DNSMASQ_OPTS="-p 0" Это отключит DNS nano /etc/dnsmasq.d/dncp-vpn.conf Пишем except-interface=lo,ens3 no-dhcp-interface=lo,ens3 listen-address=192.168.75.1 dhcp-authoritative log-dhcp log-facility=/var/log/dnsmasq.log dhcp-range=192.168.75.1,static dhcp-option=1,255.255.255.0 dhcp-option=6,8.8.8.8,8.8.4.4 dhcp-option=101,"Asia/Sakhalin" dhcp-option=100,"SBT-11" dhcp-option=2,0x00009AB0 dhcp-option=121,195.82.146.0/23,192.168.75.1,104.21.83.43/32,192.168.75.1,172.67.212.135/32,192.168.75.1 dhcp-option=249,195.82.146.0/23,192.168.75.1,104.21.83.43/32,192.168.75.1,172.67.212.135/32,192.168.75.1 Сохраняем listen-address это local ip из /etc/xl2tpd/xl2tpd.conf lo и ens3 имена интерфейсов которые ifconfig показывает option249 для виндовых клиентов, вдруг кто с винды L2TP захочет systemctl restart dnsmasq Переподключаемся к L2TP смотрим как нам прилетели маршруты до rutracker'а Edited November 28, 2022 by velikijzhuk 1 Quote Link to comment Share on other sites More sharing options...
zmuseradmin Posted July 14, 2023 Share Posted July 14, 2023 (edited) Помогите разобраться.... Разобрался... Edited July 17, 2023 by zmuseradmin Quote Link to comment Share on other sites More sharing options...
remontnic Posted October 30, 2023 Share Posted October 30, 2023 (edited) нихрена не работает через L2TP протокол! порт нужно открывать! ufw allow 1701 через ikev2 и то заработало через правку! config setup charondebug="ike 1, knl 1, cfg 0" uniqueids=no Edited October 30, 2023 by remontnic Quote Link to comment Share on other sites More sharing options...
cyberkeenetic Posted January 20 Share Posted January 20 К сожалению провайдеры в России лекго детектирут любой стандартный трафик VPN протоколов и режут его на корню. Поэтому надо маскировать vpn трафик под обычный https, но такого функционала в keenetic я не нашел. Quote Link to comment Share on other sites More sharing options...
Mamay Posted January 20 Share Posted January 20 3 часа назад, cyberkeenetic сказал: но такого функционала в keenetic я не нашел. Ну уж коли вы необоснованно "наехали" на кинетик, поведайте нам какой девайс умеет?! Quote Link to comment Share on other sites More sharing options...
shakhty Posted July 26 Share Posted July 26 Добрый день. Keenetic Viva Rev.A Версия ОС2.16.D.12.0-8 умеет IKEv2 или нет? Не нашел в компонентах операционной системы. Quote Link to comment Share on other sites More sharing options...
Le ecureuil Posted July 26 Share Posted July 26 3 часа назад, shakhty сказал: Добрый день. Keenetic Viva Rev.A Версия ОС2.16.D.12.0-8 умеет IKEv2 или нет? Не нашел в компонентах операционной системы. Нет, только версии 3.5 и выше. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.