Установить L2TP/IPSEC VPN
Эта статья является результатом автоматического перевода, выполняемого программного обеспечения. Вы можете посмотреть исходный статьи здесь.
Введение
VPN (Виртуальная частная сеть) est un système permettant de créer un lien direct entre des ordinateurs distants. On utilise notamment ce terme dans le milieu de la dématérialisation fiscale et dans le travail à distance, ainsi que pour l'accès à des structures de type Облачные вычисления. L'avantage du L2TP (Слой 2 Проходческих протокол) réside dans l'utilisation d'une clé pré partagée en plus des identifiants de connexion habituels. A cela s'ajoute IPSEC, une technologie d'encapsulation cryptée dans la trame IP.
Предварительные условия
Чтобы следовать этим учебником необходимо иметь :
- Машина под Linux дистрибутив (Debian 8Fedora, CentOS, Ubuntu, Малина Pi...) Не работает под Debian 8 из-за репозитория OpenSwan, который больше не существует
- Знать ваш публичный ip адрес, если вы не знаете Здесь!
Учебник
Во-первых вход в корень (или через пользователя кто имеет права суперпользователя). Замазку можно использовать для подключения к компьютеру удаленно через SSH или просто откройте терминал, если у вас есть доступ к графическому интерфейсу вашей машины.
Обновление и установка пакетов
Во-первых обновите вашу машину и установите необходимое хранилище :
apt-get update && apt-get upgrade -y
apt-get install openswan xl2tpd ppp lsof
OpenSwan задаст вам несколько вопросов, ответ y со значениями по умолчанию.'.
Добавление правил брандмауэра
Затем мы добавим правило iptables, чтобы разрешить трафик VPN (заменить %SERVERIP% по ip вашего Сервер) :
iptables -t nat -A POSTROUTING -j SNAT --to-source %SERVERIP% -o eth0
Затем выполните следующие команды, чтобы включить маршрутизацию IP-пакетов:
echo "net.ipv4.ip_forward = 1" | tee -a /etc/sysctl.conf
echo "net.ipv4.conf.all.accept_redirects = 0" | tee -a /etc/sysctl.conf
echo "net.ipv4.conf.all.send_redirects = 0" | tee -a /etc/sysctl.conf
echo "net.ipv4.conf.default.rp_filter = 0" | tee -a /etc/sysctl.conf
echo "net.ipv4.conf.default.accept_source_route = 0" | tee -a /etc/sysctl.conf
echo "net.ipv4.conf.default.send_redirects = 0" | tee -a /etc/sysctl.conf
echo "net.ipv4.icmp_ignore_bogus_error_responses = 1" | tee -a /etc/sysctl.conf
for vpn in /proc/sys/net/ipv4/conf/*; do echo 0 > $vpn/accept_redirects; echo 0 > $vpn/send_redirects; done
sysctl -p
Сделать постоянным для перезагрузки машины :
nano /etc/rc.local
Затем, добавить в конце перед выход 0 :
for vpn in /proc/sys/net/ipv4/conf/*; do echo 0 > $vpn/accept_redirects; echo 0 > $vpn/send_redirects; done
iptables -t nat -A POSTROUTING -j SNAT --to-source %SERVERIP% -o eth+
ОсуществлениеIPSEC
Создайте новый файл конфигурации ipsec :
mv /etc/ipsec.conf /etc/ipsec.conf.bak && nano /etc/ipsec.conf
Затем придерживайтесь это : Не забывая о том заменить %SERVERIP% по IP-адресу Сервер
version 2 # conforms to second version of ipsec.conf specification
config setup
dumpdir=/var/run/pluto/
#in what directory should things started by setup (notably the Pluto daemon) be allowed to dump core?
nat_traversal=yes
#whether to accept/offer to support NAT (NAPT, also known as "IP Masqurade") workaround for IPsec
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v6:fd00::/8,%v6:fe80::/10
#contains the networks that are allowed as subnet= for the remote client. In other words, the address ranges that may live behind a NAT router through which a client connects.
protostack=netkey
#decide which protocol stack is going to be used.
force_keepalive=yes
keep_alive=60
# Send a keep-alive packet every 60 seconds.
conn L2TP-PSK-noNAT
authby=secret
#shared secret. Use rsasig for certificates.
pfs=no
#Disable pfs
auto=add
#the ipsec tunnel should be started and routes created when the ipsec daemon itself starts.
keyingtries=3
#Only negotiate a conn. 3 times.
ikelifetime=8h
keylife=1h
ike=aes256-sha1,aes128-sha1,3des-sha1
phase2alg=aes256-sha1,aes128-sha1,3des-sha1
# https://lists.openswan.org/pipermail/users/2014-April/022947.html
# specifies the phase 1 encryption scheme, the hashing algorithm, and the diffie-hellman group. The modp1024 is for Diffie-Hellman 2. Why 'modp' instead of dh? DH2 is a 1028 bit encryption algorithm that modulo's a prime number, e.g. modp1028. See RFC 5114 for details or the wiki page on diffie hellmann, if interested.
type=transport
#because we use l2tp as tunnel protocol
left=%SERVERIP%
#fill in server IP above
leftprotoport=17/1701
right=%any
rightprotoport=17/%any
dpddelay=10
# Dead Peer Dectection (RFC 3706) keepalives delay
dpdtimeout=20
# length of time (in seconds) we will idle without hearing either an R_U_THERE poll from our peer, or an R_U_THERE_ACK reply.
dpdaction=clear
# When a DPD enabled peer is declared dead, what action should be taken. clear means the eroute and SA with both be cleared.
On crée ensuite le preshared secret (общий ключ pre) :
nano /etc/ipsec.secrets
Затем введите эту строку :
%SERVERIP% %any: PSK "VotreClePlusOuMoinsSecurisee"
Рассмотреть вопрос о замене %SERVERIP% par l'IP de votre Сервер. Si vous séchez pour la création de votre clé vous pouvez utilisez la commande suivante :
openssl rand -hex 30
Мы проверяем, что все это хорошо, так что вы используете эту команду :
ipsec verify
И вы должны получить :
Checking your system to see if IPsec got installed and started correctly:
Version check and ipsec on-path [OK]
Linux Openswan U2.6.38/K3.13.0-24-generic (netkey)
Checking for IPsec support in kernel [OK]
SAref kernel support [N/A]
NETKEY: Testing XFRM related proc values [OK]
[OK]
[OK]
Checking that pluto is running [OK]
Pluto listening for IKE on udp 500 [OK]
Pluto listening for NAT-T on udp 4500 [OK]
Checking for 'ip' command [OK]
Checking /bin/sh is not /bin/dash [WARNING]
Checking for 'iptables' command [OK]
Opportunistic Encryption Support [DISABLED]
Configuration de xl2tpd
Давайте начнем с редактирования нового файла конфигурации :
mv /etc/xl2tpd/xl2tpd.conf /etc/xl2tpd/xl2tpd.conf.bak && nano /etc/xl2tpd/xl2tpd.conf
Затем придерживайтесь это :
[global]
ipsec saref = yes
saref refinfo = 30
;debug avp = yes
;debug network = yes
;debug state = yes
;debug tunnel = yes
[lns default]
ip range = 172.16.1.30-172.16.1.100
local ip = 172.16.1.1
refuse pap = yes
require authentication = yes
;ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
Настройка PPP
Для этой части мы снова создадим новый файл конфигурации (слишком новое в одном предложении :3) :
mv /etc/ppp/options.xl2tpd /etc/ppp/options.xl2tpd.bak && nano /etc/ppp/options.xl2tpd
Затем вставить этот :
require-mschap-v2
ms-dns 8.8.8.8
ms-dns 8.8.4.4
auth
mtu 1200
mru 1000
crtscts
hide-password
modem
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
Здесь я использовал общественного DNS Google, бесплатно для вас, чтобы изменить и использовать те, которые по вашему выбору ! ;)
Добавление пользователей
И НАКОНЕЦ ! Этот важный шаг позволит вам установить логин и пароль для vpn пользователей, просто изменить этот файл :
nano /etc/ppp/chap-secrets
ниже типичной линии:
jean l2tpd 0F92E5FC2414101EA *
ВНИМАНИЕ : Этот файл является регистр, если вы положили прописной буквы, вы должны держать его, когда вы вводите свой логин или пароль.
Наконец перезагрузки :
/etc/init.d/ipsec restart && /etc/init.d/xl2tpd restart
Эта статья представляется полезным для вас ?
Включить автоматическое обновление комментариев