آموزش راه‌ اندازی L2TP روی سرور لینوکسی

خلاصه این مقاله:در این مقاله، نحوه راه‌اندازی L2TP (Layer 2 Tunneling Protocol) روی سرور پیشگامان را به صورت قدم به قدم توضیح می‌دهیم. این راهنما به شما کمک می‌کند تا یک VPN امن و پایدار با استفاده از پروتکل L2TP راه‌اندازی کنید.

آموزش راه‌ اندازی L2TP روی سرور لینوکسی با استفاده از سرور مجازی ایران   سرور پیشگامان را به صورت قدم به قدم توضیح می‌دهیم.

قرارداد تونل‌زنی لایه ۲ (به انگلیسی: Layer 2 Tunneling Protocol) یا به اختصار L2TP، یک پروتکل تونل‌زنی است که در شبکه‌های رایانه‌ای جهت پشتیبانی از شبکه خصوصی مجازی (VPN) به کار می‌رود. در این روش، هیچ رمزگذاری یا امنیتی توسط خود پروتکل ارائه نمی‌شود، بلکه این موارد به پروتکل رمزنگاری که از تونل می‌گذرد بستگی دارد.

این پروتکل به طور گسترده‌ای برای ایجاد تونل‌های امن در شبکه‌های عمومی و خصوصی استفاده می‌شود، اما برای اطمینان از امنیت، باید با پروتکل‌های رمزنگاری مانند IPsec ترکیب شود.

 

مراحل راه اندازی L2TP سرور مجازی  :

1. به‌روزرسانی سیستم:

ابتدا سیستم خود را به‌روزرسانی کنید:

sudo apt update
sudo apt upgrade

 

2. نصب StrongSwan و xl2tpd:

برای راه‌اندازی L2TP/IPsec، نیاز به نصب StrongSwan و xl2tpd دارید:

sudo apt install strongswan xl2tpd

 

3. پیکربندی StrongSwan:
فایل پیکربندی StrongSwan را ویرایش کنید:

sudo nano /etc/ipsec.conf

 

محتوای زیر را در فایل قرار دهید:

config setup
charondebug="ike 2, knl 2, cfg 2"
uniqueids=no
conn %default
keyexchange=ikev1
authby=secret
ike=aes256-sha1-modp1024!
esp=aes256-sha1!
conn L2TP-PSK
keyexchange=ikev1
left=%any
leftauth=psk
leftfirewall=yes
leftsubnet=0.0.0.0/0
right=%any
rightauth=psk
rightdns=8.8.8.8
rightsubnet=0.0.0.0/0
auto=add

 

4. تنظیمات PSK (Pre-Shared Key):
فایل ipsec.secrets را ویرایش کنید:

sudo nano /etc/ipsec.secrets

 

محتوای زیر را اضافه کنید:

: PSK "your_pre_shared_key"

 

5. پیکربندی xl2tpd:
فایل پیکربندی xl2tpd را ویرایش کنید:

sudo nano /etc/xl2tpd/xl2tpd.conf

 

محتوای زیر را اضافه کنید:

[global]
port = 1701
[lns default]
ip range = 192.168.1.2-192.168.1.10
local ip = 192.168.1.1
require chap = yes
refuse pap = yes
require authentication = yes
name = L2TP
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

 

6. پیکربندی PPP:
فایل options.xl2tpd را ویرایش کنید:

sudo nano /etc/ppp/options.xl2tpd

 

محتوای زیر را اضافه کنید:

require-mschap-v2
refuse-mschap
refuse-eap
refuse-pap
ms-dns 8.8.8.8
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4

 

7. تنظیمات کاربران:
فایل chap-secrets را ویرایش کنید:

sudo nano /etc/ppp/chap-secrets

 

محتوای زیر را اضافه کنید:

username l2tpd password *

 

8. راه‌اندازی مجدد سرویس‌ها:
سرویس‌های StrongSwan و xl2tpd را راه‌اندازی مجدد کنید:

sudo systemctl restart strongswan
sudo systemctl restart xl2tpd

9. پیکربندی فایروال:
پورت‌های مورد نیاز را در فایروال باز کنید:

sudo ufw allow 500,4500/udp
sudo ufw allow 1701/udp

 

اسکریپت خودکارسازی پیکربندی :

در ادامه، یک اسکریپت ساده Bash ارائه می‌دهیم که به شما کمک می‌کند تا پیکربندی را به صورت خودکار انجام دهید.

این اسکریپت شامل یک منو است که به کاربر اجازه می‌دهد بین پیکربندی سرور و کلاینت انتخاب کند.

#!/bin/bash
echo "انتخاب کنید:"
echo "1. پیکربندی سرور L2TP"
echo "2. پیکربندی کلاینت L2TP"
read -p "انتخاب شما: " choice
case $choice in
1)
echo "در حال پیکربندی سرور L2TP..."
sudo apt update
sudo apt install strongswan xl2tpd -y
sudo bash -c 'cat > /etc/ipsec.conf <<EOF
config setup
charondebug="ike 2, knl 2, cfg 2"
uniqueids=no
conn %default
keyexchange=ikev1
authby=secret
ike=aes256-sha1-modp1024!
esp=aes256-sha1!
conn L2TP-PSK
keyexchange=ikev1
left=%any
leftauth=psk
leftfirewall=yes
leftsubnet=0.0.0.0/0
right=%any
rightauth=psk
rightdns=8.8.8.8
rightsubnet=0.0.0.0/0
auto=add
EOF'
sudo bash -c 'echo ": PSK \"your_pre_shared_key\"" > /etc/ipsec.secrets'
sudo bash -c 'cat > /etc/xl2tpd/xl2tpd.conf <<EOF
[global]
port = 1701
[lns default]
ip range = 192.168.1.2-192.168.1.10
local ip = 192.168.1.1
require chap = yes
refuse pap = yes
require authentication = yes
name = L2TP
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
EOF'
sudo bash -c 'cat > /etc/ppp/options.xl2tpd <<EOF
require-mschap-v2
refuse-mschap
refuse-eap
refuse-pap
ms-dns 8.8.8.8
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
EOF'
sudo bash -c 'echo "username l2tpd password *" > /etc/ppp/chap-secrets'
sudo systemctl restart strongswan
sudo systemctl restart xl2tpd
sudo ufw allow 500,4500/udp
sudo ufw allow 1701/udp
echo "پیکربندی سرور L2TP انجام شد."
;;
2)
echo "در حال پیکربندی کلاینت L2TP..."
# دستورات پیکربندی کلاینت L2TP را اینجا اضافه کنید
echo "پیکربندی کلاینت L2TP انجام شد."
;;
*)
echo "انتخاب نامعتبر. لطفاً دوباره تلاش کنید."
;;
esac

 

این اسکریپت به شما کمک می‌کند تا به راحتی پیکربندی L2TP را روی سرور پیشگامان انجام دهید.