Serveur VPN avec l2tp et ipsec
Pages 4
-
- table des matières
- architecture
- préparer la carte SD depuis OS X
- se connecter au Rpi en SSH
- configurer le système
- au premier démarrage
- modifier le mot de passe root
- installer l'éditeur de texte VIM
- modifier la configuration de sudo
- modifier la configuration réseau pour utiliser une IP fixe
- configurer ssh
- configurer le serveur de temps
- gérer les packages
- installer le serveur VPN l2tp/ipsec
- sécuriser avec un firewall
- configurer le modem
- sources
Clone this wiki locally
table des matières
architecture
préparer la carte SD depuis OS X
se connecter au Rpi en SSH
configurer le système
gérer les packages
installer le serveur VPN l2tp/ipsec
sécuriser avec un firewall
configurer le modem
sources
architecture
internet -------------------------------- modem -------------------------------- Rpi
[IP publique] [192.168.1.254] [192.168.1.253]préparer la carte SD depuis OS X
lister les disques
$ diskutil listcopier l'image sur la carte
$ sudo dd if=[chemin de l'image] of=[carte SD] bs=1mpar exemple : carte SD = /dev/disk1
la liste des images : http://www.raspberrypi.org/downloads
se connecter au Rpi en SSH
$ ssh pi@[adresse dynamique du Rpi obtenue par DHCP]par défaut, mot de passe du compte pi : raspberry
configurer le système
au premier démarrage
$ sudo raspi-config-
memory splitpour modifier l'allocation de la mémoire : choisir 16 - si
configure_keyboard, tapersetxkbmap frpour mettre le clavier en français
modifier le mot de passe root
$ sudo passwd rootinstaller l'éditeur de texte VIM
$ sudo apt-get install vim
$ sudo update-alternatives --config editormodifier la configuration de sudo
$ sudo visudoet supprimer la ligne concernant l'utilisateur pi
modifier la configuration réseau pour utiliser une IP fixe
$ sudo vim /etc/network/interfaces
---------
iface eth0 inet static
address 192.168.1.253
netmask 255.255.255.0
gateway 192.168.1.254$ sudo vim /etc/resolv.conf
---------
nameserver 192.168.1.254redémarrer les services
$ sudo /etc/init.d/networking restartconfigurer ssh
$ sudo /etc/ssh/sshd_config
---------
[...]
PermitRootLogin no
[...]
X11Forwarding no
[...]
AllowUsers pi
redémarrer le service
$ sudo /etc/init.d/ssh restartconfigurer le serveur de temps
$ sudo apt-get install ntpdate
$ sudo ntpdate -u ntp.ubuntu.comgérer les packages
voir la liste des commandes apt-get exécutées
$ more /var/log/apt/history.logcet historique permet d'identifier les packages à supprimer
supprimer des packages inutiles et de leurs dépendances
$ sudo apt-get purge --auto-remove scratch smartsim penguinspuzzle debian-reference-en dillo
$ sudo apt-get purge --auto-remove idle3 python3-tk idle python-pygame python-tk
$ sudo apt-get purge --auto-remove lightdm gnome-themes-standard gnome-icon-theme raspberrypi-artwork
$ sudo apt-get purge --auto-remove omxplayer wpagui
$ sudo apt-get purge --auto-remove gvfs-backends gvfs-fuse desktop-base lxpolkit netsurf-gtk zenity
$ sudo apt-get purge --auto-remove xdg-utils xpdf gtk2-engines alsa-utils lxde lxtask menu-xdg gksu midori
$ sudo apt-get purge --auto-remove xserver-xorg xinit xserver-xorg-video-fbdev
$ sudo apt-get purge --auto-remove dbus-x11 libx11-6 libx11-data libx11-xcb1 x11-common x11-utils
$ sudo apt-get purge --auto-remove lxde-icon-theme gconf-service gconf2-commonmettre à jour le système
$ sudo apt-get update
$ sudo apt-get upgradepurger tous les packages qui ne sont plus utilisés
$ sudo apt-get autoremoveinstaller le serveur VPN l2tp/ipsec
installer les packages
$ sudo apt-get install openswan xl2tpd ppp lsoféditer les fichiers de configuration
$ sudo vim /etc/ipsec.secrets
---------
192.168.1.254 %any : PSK "[clé secrète]"$ sudo vim /etc/ipsec.conf
---------
version 2.0
config setup
nat_traversal = yes
virtual_private=%v4:192.168.1.0/16
oe = off
protostack = netkey
include /etc/ipsec.d/l2tp-psk.conf$ sudo vim /etc/ipsec.d/l2tp-psk.conf
---------
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
# l2tp-over-ipsec is transport mode
type = transport
# Apple iOS doesn't send delete notify so we need dead peer detection to detect vanishing clients
dpddelay = 15
dpdtimeout = 30
dpdaction = clear
# route and protocol
left = 192.168.1.253
leftprotoport = 17/1701
leftnexthop = 192.168.1.254
right = %any
rightprotoport = 17/%any$ sudo vim /etc/xl2tpd/xl2tpd.conf
---------
[global]
ipsec saref = yes
[lns default]
ip range = 192.168.1.231-192.168.1.235
local ip = 192.168.1.253
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options
length bit = yes$ sudo vim /etc/ppp/options
---------
require-mschap-v2
ms-dns 192.168.1.254
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4$ sudo vim /etc/ppp/chap-secrets
---------
# Secrets for authentication using CHAP
# client server secret IP addresses
[login] * [password] *$ sudo vim /etc/sysctl.conf
---------
kernel.printk = 3 4 1 3
net.ipv4.ip_forward = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
vm.swappiness=1
vm.min_free_kbytes = 8192$ sudo vim /etc/rc.local
---------
for vpn in /proc/sys/net/ipv4/conf/*; do
echo 0 > $vpn/accept_redirects;
echo 0 > $vpn/send_redirects;
done$ sudo update-rc.d -f ipsec remove
$ sudo update-rc.d ipsec defaultsredémarrer les services
$ sudo /etc/init.d/xl2tpd restart
$ sudo /etc/init.d/ipsec restartvérifier la configuration
$ sudo ipsec verifysécuriser avec un firewall
$ sudo apt-get install shorewall$ sudo vim /etc/default/shorewall
---------
[...]
startup=1
[...]$ sudo vim /etc/shorewall/zones
---------
#ZONE TYPE OPTIONS IN OUT
# OPTIONS OPTIONS
fw firewall
net ipv4
vpn ipv4$ sudo vim /etc/shorewall/interfaces
---------
#ZONE INTERFACE BROADCAST OPTIONS
net eth0 detect dhcp,routefilter,tcpflags
vpn ppp+ -$ sudo vim /etc/shorewall/policy
---------
#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST
fw all ACCEPT
net all DROP info
vpn fw ACCEPT
vpn net ACCEPT
# The FOLLOWING POLICY MUST BE LAST
all all REJECT info$ sudo vim /etc/shorewall/rules
---------
#ACTION SOURCE DEST PROTO DEST SOURCE
# PORT(S) PORT(S)
# Drop Ping from the "bad" net zone.. and prevent your log from being flooded
Ping(ACCEPT) net fw
# Permit all ICMP traffic FROM fw TO net
ACCEPT fw net icmp
# Permit SSH connection FROM net TO fw
ACCEPT net fw tcp 22
# Permit l2tp/ipsec VPN FROM net TO fw
ACCEPT net fw udp 500
ACCEPT net fw udp 1701
ACCEPT net fw udp 4500vérifier la configuration
$ sudo shorewall checkredémarrer le service
$ sudo /etc/init.d/shorewall restartconfigurer le modem
ajouter des règles NAT des ports 1701, 500 et 4500 vers le Rpi (192.168.1.253)
sources
- http://blog.bertelsen.co/2012/02/debian-squeeze-l2tpipsec-vpn-server.html
- http://ubuntuforums.org/showthread.php?t=1645473
- http://www.raspberrypi.org/phpBB3/viewtopic.php?f=36&t=31541
- http://wiki.debian.org/HowTo/shorewall
- http://www.shorewall.net/VPNBasics.html
- http://www.shorewall.net/IPSEC-2.6.html#RW-L2TP
- https://gist.github.com/kryptek/7683862
- http://www.linuxquestions.org/questions/linux-networking-3/problems-with-openswan-cannot-get-ipsec-l2tp-vpn-working-896600/