Cara setting vpn l2tp/ipsec di centos 8

Ada beberapa protokol vpn di antara nya pptp, openvpn, sstp, l2tp dan wireguard. kali ini kita akan bahas untuk protokol l2tp dengan kombinasi ipsec. dengan ada nya kombinasi ipsec ini maka protokol l2tp nya akan di enkripsi.

pertama install dulu package nya.

# yum install libreswan xl2tpd

kemudian buatlah sebuah configurasi untuk penamaan bebas, disini saya akan mencoba membuat config dengan nama :

create file /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
     dpddelay=30
     dpdtimeout=120
     dpdaction=clear
     rekey=yes
     ikelifetime=8h
     keylife=1h
     type=transport 
     left=%defaultroute
     leftprotoport=17/1701
     right=%any
     rightprotoport=17/%any
     ikev2=never
	 ike=aes128-sha1-modp1024,aes256-sha1-modp2048
     esp=aes128-sha1,aes256-sha1-modp4096

setelah itu tambahkan pre share key di /etc/ipsec.d/my.secrets

192.168.10.100 %any: PSK "kodesecretanda"

silahkan ganti ip 192.168.10.100 dengan ip server anda.

kemudian edit file /etc/sysctl.conf

net.ipv4.ip_forward = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.rp_filter= 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.default.rp_filter= 0

setelah itu jalankan perintah untuk melakukan reload sysctl

# sysctl -p

sampai disini jalankan service ipsec nya

# service ipsec start

kemudian untuk mengecek apakah ipsec ini sudah berhasil atau tidak nya

# ipsec verify

seharusnya keluar tampilan output seperti dibawah ini

Verifying installed system and configuration files

Version check and ipsec on-path                         [OK]
Libreswan 3.29 (netkey) on 4.18.0-193.14.2.el8_2.x86_64
Checking for IPsec support in kernel                    [OK]
 NETKEY: Testing XFRM related proc values
         ICMP default/send_redirects                    [OK]
         ICMP default/accept_redirects                  [OK]
         XFRM larval drop                               [OK]
Pluto ipsec.conf syntax                                 [OK]
Checking rp_filter                                      [OK]
Checking that pluto is running                          [OK]
 Pluto listening for IKE on udp 500                     [OK]
 Pluto listening for IKE/NAT-T on udp 4500              [OK]
 Pluto ipsec.secret syntax                              [OK]
Checking 'ip' command                                   [OK]
Checking 'iptables' command                             [OK]
Checking 'prelink' command does not interfere with FIPS [OK]
Checking for obsolete ipsec.conf options                [OK]

jika sudah mari kita lanjutkan untuk melakukan konfigurasi l2tp nya. edit file /etc/xl2tpd/xl2tpd.conf

[global]

ipsec saref = yes

[lns default]
ip range = 10.11.11.2-10.11.11.100
local ip = 10.11.11.1
require chap = yes
refuse pap = yes
require authentication = yes
name = LinuxVPNserver
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

setelah itu edit file /etc/ppp/options.xl2tpd

ipcp-accept-local
ipcp-accept-remote
ms-dns  8.8.8.8
ms-dns  4.2.2.4
noccp
auth
crtscts
idle 1800
mtu 1450
mru 1450
nodefaultroute
debug
lock
proxyarp
connect-delay 5000

kemudian edit credential username dan password di /etc/ppp/chap-secrets

# Secrets for authentication using CHAP
# client	server	secret			IP addresses
uservpn * passwordvpn *

setelah itu coba jalankan service xl2tpd nya :

# service xl2tpd start

jangan lupa untuk allow protocol dan port di firewall nya, disini kita menggunakan firewalld di centos 8

# firewall-cmd --permanent --zone=public --add-service=ipsec
# firewall-cmd --permanent --zone=public --add-port={4500,500}/udp
# firewall-cmd --permanent --zone=public --add-protocol={50,51}
# firewall-cmd --permanent --zone=public --add-port=1701/udp
# firewall-cmd --permanent --zone=public --add-masquerade
# firewall-cmd --reload

setelah itu mari kita coba testing menggunakan windows

kemudian edit credential di network connection

kemudian pilih allow these protocol dan mencentang chap dan ms-chap v2

dan kemudian lakukan koneksi ke vpn tersebut.

berikut tampilan jika berhasil connect menggunakan windows.

jangan lupa agar pada waktu reboot service ipsec dan xl2tpd auto start

# systemctl enable ipsec
# systemctl enable xl2tpd