Перейти к содержанию

Рекомендуемые сообщения

Опубликовано (изменено)

Доброго времени суток. Решил поделится инструкцией как сделать 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-подключения создаём новое

1476437072_2022-11-2811_31_43.thumb.png.329e610c017f2b521d483ebf8ab609c1.png

Нажимаем кнопку Импорт из файла и выбираем ca-cert.pem который скопировали себе на компик.

Сохраняемся ждем пару секунд, пишем маршруты до адресов/подсетей к которым надо ходить через vpn

Изменено пользователем velikijzhuk
Опубликовано (изменено)

Теперь

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 

====================

В роутере

62666372_2022-11-2812_45_36.thumb.png.2267c94b04746e84eeadc39ab4f583e6.png

Добавляем маршруты. 

Изменено пользователем velikijzhuk
Опубликовано (изменено)

Ну и на последок 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'а

Изменено пользователем velikijzhuk
  • 7 месяцев спустя...
  • 3 месяца спустя...
Опубликовано (изменено)

нихрена не работает через L2TP протокол!

порт нужно открывать!

ufw allow 1701

 

через ikev2 и то заработало через правку!

config setup
    charondebug="ike 1, knl 1, cfg 0"
    uniqueids=no
Изменено пользователем remontnic
  • 2 месяца спустя...
Опубликовано

К сожалению провайдеры в России лекго детектирут любой стандартный трафик VPN протоколов и режут его на корню. Поэтому надо маскировать vpn трафик под обычный https, но такого функционала в keenetic я не нашел.

Опубликовано
3 часа назад, cyberkeenetic сказал:

но такого функционала в keenetic я не нашел.

Ну уж коли вы необоснованно "наехали" на кинетик, поведайте нам какой девайс умеет?!

  • 6 месяцев спустя...
Опубликовано

Добрый день. Keenetic Viva Rev.A Версия ОС2.16.D.12.0-8 умеет IKEv2 или нет? Не нашел в компонентах операционной системы.

Опубликовано
3 часа назад, shakhty сказал:

Добрый день. Keenetic Viva Rev.A Версия ОС2.16.D.12.0-8 умеет IKEv2 или нет? Не нашел в компонентах операционной системы.

Нет, только версии 3.5 и выше.

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.