Как настроить сервер L2TP VPN на Raspberry Pi? — Information Security Squad

Как настроить сервер L2TP VPN на Raspberry Pi?

В этом уроке вы узнаете, как настроить VPN-сервер L2TP (Layer 2 Tunneling Protocol) на вашем Raspberry Pi.

Список причин, по которым следует рассмотреть возможность установки L2TP через PPTP VPN-сервер:

  • Это более безопасно
  • Чрезвычайно прост в настройке
  • Встроенная поддержка большинства мобильных устройств без установки дополнительного программного обеспечения

Кроме того, очень дешево устанавливать его по низкой цене, очень мало потребляющей мощность Raspberry Pi, чем покупка VPN-маршрутизатора или получение ежемесячной подписки.

Конфигурация маршрутизатора

  1. Назначьте статический IP-адрес своему  Pi
  2. На вашем маршрутизаторе открываются порты 1701 TCP, 4500 UDP и 500 UDP и перенаправляют их на IP-адрес raspberrypi

У меня Verizon FIOS, я смог войти в конфигурацию своего маршрутизатора, перейдя по ссылке http://192.168.1.1 и сделав вышеуказанные изменения.

Схема

Мой Raspberry pi IP-адрес: 192.168.1.19
Адрес шлюза маршрутизатора: 192.168.1.1

Выполните команды как суперпользователь или пользователя root:

 # sudo passwd
# su 

Обновление системы и установка пакетов

 # apt-get update
# apt-get install openswan xl2tpd ppp lsof

Установка openswan может задать вам несколько вопросов, этот учебник работает с ответами по умолчанию, просто введите его.

После того как вы успешно установили вышеуказанные пакеты, выполните следующие команды один за другим.

# iptables --table nat --append POSTROUTING --jump MASQUERADE
# 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
# for vpn in /proc/sys/net/ipv4/conf/*; do echo 0 > $vpn/accept_redirects; echo 0 > $vpn/send_redirects; done
# sysctl -p 

Измените /etc/rc.local

# nano /etc/rc.local 

Вставить код в файл rc.local

# for vpn in /proc/sys/net/ipv4/conf/*; do echo 0 > $vpn/accept_redirects; echo 0 > $vpn/send_redirects; done
# iptables --table nat --append POSTROUTING --jump MASQUERADE 

Переименуйте /etc/ipsec.conf в /etc/ipsec.conf.old

 # mv /etc/ipsec.conf /etc/ipsec.conf.old 

Изменить /etc/ipsec.conf

#  nano /etc/ipsec.conf 

Заменить содержимое в файле:

version 2.0
config setup

nat_traversal=yes
protostack=netkey
virtual_private=%v4:192.168.0.0/16,%v4:10.0.0.0/8,%v4:172.16.0.0/12,%v4:25.0.0.0/8,%v4:!10.25$
oe=off

conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT

conn L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
# we cannot rekey for %any, let client rekey
rekey=no
# Apple iOS doesn't send delete notify so we need dead peer detection
# to detect vanishing clients
dpddelay=30
dpdtimeout=120
dpdaction=clear
# Set ikelifetime and keylife to same defaults windows has
ikelifetime=8h
keylife=1h
# l2tp-over-ipsec is transport mode
type=transport
#
left=192.168.1.19
#
# For updated Windows 2000/XP clients,
# to support old clients as well, use leftprotoport=17/%any
leftprotoport=17/1701
#
# The remote user.
#
right=%any
# Using the magic port of "%any" means "any one single port". This is
# a work around required for Apple OSX clients that use a randomly
# high port.
rightprotoport=17/%any
#force all to be nat'ed. because of ios
forceencaps=yes
# Normally, KLIPS drops all plaintext traffic from IP's it has a crypted
# connection with. With L2TP clients behind NAT, that's not really what
# you want. The connection below allows both l2tp/ipsec and plaintext
# connections from behind the same NAT router.
# The l2tpd use a leftprotoport, so they are more specific and will be used
# first. Then, packets for the host on different ports and protocols (eg ssh)
# will match this passthrough conn.
conn passthrough-for-non-l2tp
type=passthrough
left=192.168.1.19
leftnexthop=192.168.1.1
right=0.0.0.0
rightsubnet=0.0.0.0/0
auto=route 

Редактировать файл /etc/ipsec.secrets

 # nano /etc/ipsec.secrets 

Добавить секретный пароль

 192.168.1.19 %any: PSK "TESTSECRET" 

Редактировать файл /etc/xl2tpd/xl2tpd.conf

 # nano /etc/xl2tpd/xl2tpd.conf
[global]
ipsec saref = yes
listen-addr = 192.168.1.19
[lns default]
ip range = 192.168.1.201-192.168.1.250
local ip = 192.168.1.19
assign ip = yes
require chap = yes
refuse pap = yes
require authentication = yes
name = linkVPN
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes 

Редактировать файл /etc/ppp/options.xl2tpd

 # nano /etc/ppp/options.xl2tpd 

добавьте содержимое в файл

 ipcp-accept-local
ipcp-accept-remote
ms-dns 192.168.1.1
asyncmap 0
auth
crtscts
lock
idle 1800
mtu 1200
mru 1200
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
nodefaultroute
connect-delay 5000

Отредактируйте  /etc/ppp/chap-secrets

 # nano /etc/ppp/chap-secrets 

Вставьте следующее, измените имя пользователя и пароль на  те, что вы предпочитаете

# Secrets for authentication using CHAP
# client server secret IP addresses
USERNAME * PASSWORD *
Add the service to bootup

Добавить службу для автозагрузки

 # update-rc.d -f ipsec remove update-rc.d ipsec defaults 
 # /etc/init.d/xl2tpd restart
# /etc/init.d/ipsec restart

Если все пойдет правильно, у вас должен быть рабочий VPN-сервер.

cryptoparty

Cryptography is typically bypassed, not penetrated.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5e7fa976b0640d40