- Настройка IPSEC L2TP VPN-сервера на CentOS 7
- Подготовка сервера
- IPSEC
- Настройка сервера L2TP VPN на CentOS 8
- Подготовка сервера
- Настройка VPN-сервера
- IPSEC
- L2tp ipsec linux centos
- How to install L2TP vpn server on CentOS 7 linux
- 1- Install L2TP
- 2- Configure Kernel parameters
- 3- Configure IPsec
- 4- Configure xl2tpd
- 5- Configure firewall
- 6- Configure SElinux
- 11 thoughts on “ How to install L2TP vpn server on CentOS 7 linux ”
Настройка IPSEC L2TP VPN-сервера на CentOS 7
Один из лучших способов поднять сервер VPN — настроить OpenVPN. Однако, данный сервер не лишен недостатков — на клиенты потребуется устанавливать специальное программное обеспечение. Если мы хотим использовать стандартные средства операционных систем для подключения к серверу, настроим VPN IPSEC L2TP.
Подготовка сервера
Для установки ПО потребуется репозиторий EPEL:
yum install epel-release
firewall-cmd —permanent —add-port=1701/tcp
firewall-cmd —permanent —add-service=ipsec
IPSEC
yum install ipsec-tools
Открываем конфигурационный файл racoon:
Добавляем в конец файла:
remote anonymous
<
exchange_mode main,aggressive,base;
doi ipsec_doi;
passive on;
proposal_check obey;
support_proxy on;
nat_traversal on;
ike_frag on;
dpd_delay 20;
proposal
<
encryption_algorithm aes;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group modp1024;
>
proposal
<
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group modp1024;
>
>
Теперь открываем следующий файл:
Для клиентов Windows добавляем:
ip-addres1 key-password1
ip-addres2 key-password2
* где ip-addres — ip-адрес клиента, с которого будет идти подключение; key-password — пароль для подключения.
Для клиентов Android добавляем:
identifier1 key-password1
identifier2 key-password2
* где identifier — идентификатор клиента, который будет использоваться при подключении; key-password — пароль для подключения.
Создаем скрипт с настройкой ipsec политик:
spdadd 0.0.0.0/0[l2tp] 0.0.0.0/0 any -P out ipsec esp/transport//require;
spdadd 0.0.0.0/0 0.0.0.0/0[l2tp] any -P in ipsec esp/transport//require;
chmod 755 /etc/rc.d/init.d/racoon.init
Добавляем скрипт на автозапуск:
И добавляем строчку:
Разрешаем запуск сервиса racoon и стартуем его:
systemctl enable racoon
systemctl start racoon
Задаем политики ipsec:
Устанавливаем пакет xl2tpd:
yum install xl2tpd
Открываем конфигурационный файл:
В секцию [global] добавим:
[global]
ipsec saref = yes
force userspace = yes
В секции [lns default] изменяем диапазон IP-адресов:
[lns default]
ip range = 176.16.10.10-176.16.10.200
local ip = 176.16.10.1
Разрешаем автозапуск сервиса и стартуем его:
systemctl enable xl2tpd
systemctl start xl2tpd
Открываем следующий файл:
Вносим небольшие изменения в DNS:
ms-dns 77.88.8.8
ms-dns 8.8.8.8
Добавляем метод mschap2
Открываем файл с пользователями:
* где dmosk — логин; первая звездочка — любой сервер; password — пароль, который должен вводить пользователь dmosk; вторая звездочка — подключение с любого IP-адреса.
Источник
Настройка сервера L2TP VPN на CentOS 8
Удобство L2TP заключается в возможности использовать встроенные средства Windows, Android, Mac OS для подключения к VPN-серверу. В данной инструкции рассмотрим процесс его установки и настройки на CentOS 8. Для реализации сервиса мы будем использовать strongswan + xl2tpd. В итоге мы получим:
- VPN-сервер, использующий туннельный протокол L2TP.
- Возможность подключения к серверу встроенными средствами Windows, Android, Mac OS X.
- Защита соединения посредством общего ключа + аутентификация пользователя.
- Доступ к локальной сети.
- Аутентификацию через Active Directory.
Мы выполним следующие настройки:
Подготовка сервера
1. Для установки ПО потребуется репозиторий EPEL:
dnf install epel-release
2. Настраиваем брандмауэр:
firewall-cmd —permanent —add-port=1701/
firewall-cmd —permanent —add-service=ipsec
3. Отключаем SELinux:
sed -i ‘s/^SELINUX=.*/SELINUX=disabled/g’ /etc/selinux/config
Настройка VPN-сервера
Для настройки нашего сервера мы настроим следующие компоненты: IPSEC (strongswan), L2TP (xl2tpd), PPP.
IPSEC
Для управления IPSec используется пакет strongswan — установим его командой:
dnf install strongswan
Открываем конфигурационный файл для настройки ipsec:
Для config setup добавим:
config setup
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
oe=off
protostack=netkey
- nat_traversal — обход NAT.
- virtual_private — определяет приватные сети. В данном примере просто перечислены сети, зарезервированные под локальные — мы можем указать и другие.
- oe — .
- protostack — определяет стек протоколов, который будет использоваться для подключения.
. а также вставляем ниже:
conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
rekey=no
ikelifetime=8h
keylife=1h
type=transport
left=%any
leftprotoport=udp/1701
right=%any
rightprotoport=udp/%any
ike=aes128-sha1-modp1536,aes128-sha1-modp1024,aes128-md5-modp1536,aes128-md5-modp1024,3des-sha1-modp1536,3des-sha1-modp1024,3des-md5-modp1536,3des-md5-modp1024
esp=aes128-sha1-modp1536,aes128-sha1-modp1024,aes128-md5-modp1536,aes128-md5-modp1024,3des-sha1-modp1536,3des-sha1-modp1024,3des-md5-modp1536,3des-md5-modp1024
- authby — способы аутентификации двух узлов. Возможны варианты secret (по паролю) или rsasig (цифровые подписи RSA).
- pfs — расшифровывается как Perfect Forward Secrecy. Позволяет активировать совершенную секретность в канале ключей соединения.
- auto — операция, которая должна запуститься автоматически при старте IPsec.
- keyingtries — число попыток, чтобы «договориться» о соединении или его замене.
- rekey — перепроверить соединение, когда оно истекает.
- ikelifetime — время соединения до повторного согласования ISAKMP или IKE SA.
- keylife — как долго должен длиться конкретный экземпляр соединения.
- type — тип соединения. Возможны варианты tunnel ( хост-хост, хост-подсеть или подсеть-подсеть); transport (хост-хост); passthrough (без обработки IPsec).
- left — IP-адрес левого участника (сервера). %any означает, что адрес может быть любой.
- leftprotoport — определяет протокол и порт, на котором будет работать левая сторона (сервер). В данном примере указан UDP и порт 1701.
- right — IP-адрес правого участника (клиента). %any означает, что адрес может быть любой.
- rightprotoport — определяет протокол и порт, на котором будет работать правая сторона (клиент). В данном примере указан UDP и любой порт.
Создаем секретный ключ — для этого открываем на редактирование файл:
%any %any : PSK «my_key_password»
* в данном примере мы устанавливаем общий пароль my_key_password для соединений с любого IP.
Разрешаем автозапуск strongswan и перезапускаем службу:
systemctl enable strongswan
systemctl restart strongswan
Устанавливаем сервер L2TP:
dnf install xl2tpd
Открываем файл настройки сервера:
Для раздела [global] добавляем:
[global]
port = 1701
access control = no
ipsec saref = yes
force userspace = yes
auth file = /etc/ppp/chap-secrets
- port — порт UDP, на котором работает VPN. По умолчанию, 1701.
- access control — принимать или нет запросы только от клиентов с определенными IP, перечисленными в настройках клиентов.
- ipsec saref — указывает использовать или нет ipsec Security Association, позволяющий отслеживать несколько клиентов с одинаковыми IP-адресами.
- force userspace — повышает производительность за счет декапсуляции пакетов L2TP.
- auth file — путь к файлу аутентификации.
Раздел [lns default] можно полностью удалить или закомментировать (символом «;») и заменить на:
[lns default]
ip range = 176.16.10.10-176.16.10.200
local ip = 176.16.10.1
require authentication = yes
name = l2tp
pass peer = yes
ppp debug = no
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
refuse pap = yes
- ip range — диапазон адресов, которые назначаются подключенным клиентам.
- local ip — IP-адрес сервера в сети VPN.
- name — имя сервера для процесса согласования.
- pppoptfile — путь к файлу с настройкой pppd.
- flow bit — позволяет добавлять в пакеты порядковые номера.
- exclusive — если поставить в yes, сервер разрешит только одно соединение с клиентом.
- hidden bit — скрывать или нет AVP.
- length bit — использовать ли бит длины, указывающий полезную нагрузку.
- require authentication — требовать ли аутентификацию.
- require chap — требовать ли аутентификацию PPP по протоколу CHAP.
- refuse pap — отказывать ли авторизацию пирам, использующим PAP.
Разрешаем автозапуск vpn-сервера и перезапускаем его:
Источник
L2tp ipsec linux centos
Tuxtips.net: The Greate source for Linux Tutorials, Tips and Tricks.
Linux » Service » How to install L2TP vpn server on CentOS 7 linux
How to install L2TP vpn server on CentOS 7 linux
In today tutorial, we show you how to install L2TP vpn server on CentOS 7 linux.
L2tp is synonym of Layer Two Tunneling Protocol and is an extension of PPTP tunneling protocol for creating VPN tunnels.
Here is our environment:
OS: CentOS 7 linux on VMWare
Firewall: firewalld
SElinux: enforcing
IP address: 192.168.3.128
1- Install L2TP
There is two common packages for linux to support l2tp protocol. one is StrongSwan and another is xl2tpd. here we install xl2tpd and related packages:
2- Configure Kernel parameters
to allow vpn traffic goes through our server, we should enable some kernel features. put the following content in /etc/sysctl.conf:
then make it permanent:
3- Configure IPsec
In our configuration, we want to use ipsec to enable l2tp traffic encryption. so open /etc/ipsec.d/l2tp_psk.conf and put the following content in it:
Note: mind about SPACES
Note: remember to change 192.168.3.128 with your own IP address.
Here we configure l2tp to ask for a pre-shared key (PSK) from clients. we define this key like below:
and do some check on ipsec service:
Note: red lines in above output are related to Reverse Path Filtering feautre of kernel and no need to be disabled.
Now we start ipsec service:
4- Configure xl2tpd
first, rename /etc/xl2tpd/xl2tpd.conf to a backup file:
then open /etc/xl2tpd/xl2tpd.conf and put these lines in it:
also make a backup of /etc/ppp/options.xl2tpd:
then put the following lines in it:
Now we define our usernames and passwords for clients:
finally start xl2tp service:
5- Configure firewall
Here we use firewalld service. we need to allow ipsec, forward internal l2tpc ip range traffic to internet interface and do NAT:
if you use CSF, create a file named /etc/csf/csfpre.sh and put these lines in it:
then open port 1701/udp and reload csf.
if you use iptables, just run above command and then save changes with iptables-save. also open port 1701/udp.
Note: remember to change eno16777728 with your own interface name
6- Configure SElinux
we prefer to keep selinux enabled. so to allow bringing up vpn interfaces, we should run the following command:
# setsebool -P daemons_use_tty 1
if you have disabled selinux, simply skip above command.
11 thoughts on “ How to install L2TP vpn server on CentOS 7 linux ”
This is good work, thanks a lot. With your step by step I installed on Centos 7 64 bits, but the clients of win 7, no can connect they receive a error 789. Can you help me?
see vpn server logs to know about source of issue. you can paste error here for investigation
I can’t connect the internet when i connect my l2tp server.My computer show that ipv4 connection no access rights.And i want to know how to solve it.Thank you a lot!
Maybe the problem is related to enabling packet forwarding in sysctl.conf or iptables nat rules. please check instructions in article one by one.
Following this guide I get:
Sep 2 09:01:29 centos pppd[18016]: In file /etc/ppp/options.xl2tpd: unrecognized option ‘crtscts’
Does the posted options.xl2tpd still work for you on CentOS 7 with xl2tpd-1.3.14-1.el7.x86_64 and ppp-2.4.5-34.el7_7.x86_64 ?
yes it does. maybe you have installed new version that i have installed in this article.
so you can remove “crtscts” and check if everything else works properly.
also you can search on google for “crtscts” any replacement with new option.
There is a strong SECURITY issue in this guide:
I suggest comment the following line:
If not, you can login with dummy user/pass, just knowking the correct secret!
thank you Peter, i updated the article
Thanks to you! Your guide was super and really easy to apply!
I had a big problem, Job for xl2tpd.service failed because the control process exited with error code.
I followed your instruction but failed to connect VPN.
I am using cento7 .
please see my logs below and let me know what i need to change in configuration, i am using exact same config as shared in this post.
Источник