
vpn pptp openvpn centos7
Настройка L2TP
http://hww.ru/wp/2019/04/ustanovka-i-nastrojka-vpn-servera-na-centos-7/
https://github.com/hwdsl2/setup-ipsec-vpn
cp /etc/sysctl.conf /etc/sysctl.conf.bak
можно так
но достаточно и так (здесь я отключил ip6)
на самом деле нужен лишь один параметр
net.ipv4.ip_forward=1
Перечитываем конфигурацию.
sysctl -p
cat /proc/sys/net/ipv4/ip_forward
Настройка firewall-cmd
по настройке подробно тут vpn pptp openvpn centos7
надо лишь добавить порты для l2tp
firewall-cmd --state
firewall-cmd --list-all
firewall-cmd --list-ports
firewall-cmd --list-all-zones
firewall-cmd --get-active-zones
firewall-cmd --direct --get-all-rules
firewall-cmd --zone=public --list-ports
firewall-cmd --zone=external --list-services
firewall-cmd --zone=external --list-ports
firewall-cmd --zone=public --list-ports
firewall-cmd --list-rich-rules
firewall-cmd --zone=public --remove-interface=enp3s0 --permanent
firewall-cmd --zone=external --change-interface=enp3s0 --permanent
firewall-cmd --zone=external --add-port=500/udp --permanent
firewall-cmd --zone=external --add-port=4500/udp --permanent
firewall-cmd --zone=external --add-port=1701/udp --permanent
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT
firewall-cmd --permanent --add-masquerade
firewall-cmd --query-masquerade
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i enp3s0 -o enp1s0 -j DROP
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i enp1s0 -o enp3s0 -j DROP
firewall-cmd --reload
firewall-cmd --direct --get-all-rules
cp /etc/xl2tpd/xl2tpd.conf /etc/xl2tpd/xl2tpd.conf.orig
nano /etc/xl2tpd/xl2tpd.conf
Для использования сервера RADIUS или DHCP, оставьте отключенными опции ip range и local ip. Если соединение нестабильно, попробуйте добавить length bit = yes в раздел lns default. Чтобы не использовать PPP аутентификацию, замените require authentication = yes на refuse authentication = yes.
mcedit /etc/ppp/options.xl2tpd
Настройка IPsec
Есть несколько вариантов и пакетов для настройки IPsec: ipsec-tools, LibreSwan (OpenSwan) и strongSwan. ipsec-tools (racoon) наименее функционален, но для тех, кто пришёл из *BSD, он может быть более близок. Однако, в отличие от *BSD, Linux не использует отдельный интерфейс для IPsec. strongSwan – это ответвление от FreeS/WAN. LibreSwan – ответвление от Openswan (который сам является ответвлением от FreeS/WAN) с сохранением его оригинальных разработчиков. Мы будем использовать именно LibreSwan, который мы уже ранее установили. Обход NAT установлен по умолчанию в файле конфигурации LibreSwan, таким образом никаких особых этапов настройки не требуется.
Желательно иметь каждую настройку VPN в своём собственном файле, что может быть сделано раскомментированием последней строки в /etc/ipsec.conf:
#include /etc/ipsec.d/*.conf
Основные конфигурационные файлы для LibreSwan это:
/etc/ipsec.conf – определяет параметры IPSEC-соединений и параметры подключений в целом;
/etc/ipsec.secrets – ключи и пароли для шифрования
Файл /etc/ipsec.conf разбит на разделы:
config setup – глобальные параметры и опции
conn %default – параметры ipsec-соединений по-умолчанию. Если в отдельных параметрах соединений не указан параметр, то используются параметры отсюда.
Например: conn SomeTunnel – раздел с параметрами соединения SomeTunnel
Файл /etc/ipsec.secrets содержит неограниченное количество типов ключей (паролей).
Основные параметры команды ipsec, которая управляет подключениями LibreSwan:
start|restart|stop;
ipsec status|statusall — для просмотра состояния IPSEC-соединений;
up|down|route|unroute — для управления IPSEC-соединений.
Логи хранятся в /var/log/auth.log и /var/log/daemon.log.
Создаем файл настроек с таким содержимым:
mcedit /etc/ipsec.d/l2tp-ipsec.conf
где 1.1.1.1 заменяем на ваш внешний IP.
conn L2TP-PSK-NAT – служебное слово conn означает название соединения. После него будут параметры, которые характеризуют соединение.
left= и right= – адреса хостов. Слова символизируют то, что хосты находятся с разных сторон. Не имеет значения, в какой из них вы впишете свой адрес, система автоматически определит, какой из адресов относится к ее интерфейсу. Поэтому на разных хостах вполне можно использовать одинаковый конфиг. Вместо адреса можно использовать ключевое слово %any в виде right=%any. Тогда можно будет подключаться с любого адреса. Так выглядит общая конфигурация, которую можно использовать:
left=%defaultroute
leftprotoport=udp/l2tp
leftid=@vpn.example.com
right=%any
rightprotoport=udp/%any
type=tunnel – тип соединения. Может принимать значения tunnel, transport или passthrough.
authby=secret – что будет использоваться в качестве ключа: PSK (парольное слово) или RSA (ключ)
auto=start – опция определяет, когда включать соединение. Может принимать значения: start (автоматически стартовать), add (стартовать в ответ на инициацию от другого хоста), ignore (игнорировать соединение), manual (стартовать вручную), route (назначение мне осталось непонятно, используется крайне редко).
Ну и так как мы задали тип авторизации с помощью PSK, то давайте запишем секретное слово в файл ipsec.secrets.
vim /etc/ipsec.d/default.secrets
: PSK "SecretKey"
Ключ может быть задан строкой в кавычках или шестнадцатеричным числом. В следующем примере PUT_VPN_SERVER_IP должен быть заменён на IP-адрес сервера. Можно использовать доменное имя, но оно не рекомендовано разработчиками LibreSwan. Опция %any позволяет любым клиентам использовать этот PSK. Также можно IP не указывать как в нашей конфигурации выше. Примеры:
PUT_VPN_SERVER_IP %any : PSK 0x87839cfdab5f74bc211de156d2902d128bec3243
# Или используйте простой текстовый ключ вместо шестнадцатеричного:
# PUT_VPN_SERVER_IP %any : PSK "password_pass"
Прописываем в /etc/ppp/chap-secrets свои логины и пароли
vim /etc/ppp/chap-secrets
"user1" "xl2tpd" "pass1" *
"user2" "xl2tpd" "pass2" *
Настроим logrotate для /var/log/xl2tpd.log
Запускаем и тестируем.
systemctl enable ipsec
systemctl enable xl2tpd
systemctl start ipsec
systemctl start xl2tpd
смотрим логи
tail -f /var/log/xl2tpd.log