برای اتصال سرور لینوکسی خود (Debian, Ubuntu, Fedora, RHEL, CentOS) به سرور VPN با استفاده از پروتکل L2TP/IPSec در ترمینال لینوکس (Command Line) همانند محیط گرافیکی میبایست یک کلاینت یا اکانت VPN ایجاد کنیم. دستورالعمل های زیر در سرور Client برای اتصال به سرور VPN، میبایست با دسترسی root اجرا شوند.
همچنین توصیه میشود مطالعه کنید :
آموزش نصب و راه اندازی VPN Server L2TP/IPSec در لینوکس (RHEL/Fedora - Debian/Ubunt - CentOS)
آموزش نصب و راه اندازی OpenVPN Server در لینوکس
خرید سرور مجازی VPS از ناسا هاست (ایران، آلمان، فرانسه، آمریکا، کانادا)
برای ایجاد تنظیمات در سرور کلاینت، ابتدا پکیج های زیر را بر اساس توزیع لینوکسی خود نصب کنید.
در سیستم های Ubuntu و Debian :
در سیستم های CentOS و RHEL :
در سیستم عامل Fedora :
پکیج strongswan بمنظور راه اندازی ipsec باید نصب کنید. تمرکز این اپلیکیشن در حقیقت ایجاد یک مکانیزم قوی برای autentication با استفاده از گواهینامه های x.509 public key و private key می باشد.
و پکیج xl2tp هم پکیج مورد نیاز برای نصب و راه اندازی تونل l2tp میباشد که نامش از پروتکل و سرویس l2tpd برگرفته شد است. هدف این پروتکل ایجاد تانل ppp از طریق شبکه های ip میباشد.
توجه : متغیرهای زیر را در ادامه نصب هر جایی که مشاهده کردید، با مشخصات اکانت خود (شامل : آدرس سرور VPN، مقدار PSK و Username و Password) جایگزین کنید.
نکته : کدهایی که در آمده ذکر شده را حتما قبلا از اجرا در ترمینال، درون یک ادیتور متن کپی کنید، سپس بعد از ویرایش کدها را درون ترمینال تان کپی پیست و اجرا کنید.
تنظیمات پکیج strongswan :
برای وارد کردن تنظیمات زیر به فایل ipsec.conf کافیست دستور cat زیر را اجرا کنید تا به صورت خودکار متغیرهای زیر به درون فایل کپی شوند. فراموش نکنید قبل از وارد کردن دستور زیر در ترمینال، متغیر $VPN_SERVER_IP را پیدا و با آدرس IP سرور VPN خود جایگزین کنید. همچنین در صورت فراموش کردن این کار میتوانید بعد از ساخت فایل ipsec.con آنرا با استفاده از یک ادیتور متن باز کرده و متغیر $VPN_SERVER_IP را با ip address سرور VPN خود جایگزین کنید.
دستور زیر را برای ایجاد PSK اکانت VPN تان در سرور کلاینت اجرا کنید. متغیر $VPN_IPSEC_PSK را با PSK اکانت وی پی ان خود جایگزین کنید.
سپس با استفاده از دستور chmod زیر، سطح دسترسی فایل ipsec.secrets را تغییر میدهیم.
در صورتیکه از یکی از سیستم عامل های CentOS/RHEL یا Fedora استفاده میکنید، دستورات زیر را هم اجرا کنید.
تنظیمات پکیج xl2tpd :
دستور زیر را برای وارد کردن تنظیمات زیر در فایل xl2tpd.conf اجرا کنید. متغیر $VPN_SERVER_IP را با آدرس ip سرور VPN خود جایگزین کنید.
سپس دستور زیر را برای وارد کردن تنظیمات زیر در فایل options.l2tpd.client وارد کنید. متغیر $VPN_PASSWORD و $VPN_USER را با یوزر و پسورد اکانت VPN خود جایگزین کنید.
سپس با استفاده از دستور chmod سطح دسترسی فایل options.l2tpd.client را تغییر دهید.
اکنون تنظیمات سرور کلاینت ما کامل شد. برای اتصال سرور خود به VPN سرور مراحل زیر را دنبال کنید.
نکته : برای اتصال به سرور VPN شما میبایست هر دفعه تمام مراحل زیر تکرار کنید.
ایجاد فایل کنترل xl2tpd :
Restart سرویس های Strongswan و XL2TPD :
سپس با استفاده از دستور زیر وضعیت سرویس های strongswan و xl2tpd را بررسی میکنیم، که باید همانند عکس بالا در حالت active (running) باشند.
نحوه Start کردن کانکشن IPSec :
براساس توزیع سیستم عامل خود، یکی از دستورات زیر را اجرا کنید.
در سیستم های Ubuntu و Debian :
در سیستم های CentOS/RHEL و Fedora :
اگر همه چیز مرتب باشد و کانفیگ ها به درستی انجام شده باشد، در انتهای دستور بالا شما میبایست پیام connection 'myvpn' established successfully را مشاهده کنید.
نحوه Start کردن کانکشن L2TP :
دستور زیر را اجرا کنید.
سپس دستور ifconfig را اجرا و خروجی را بررسی کنید. یک اینترفیس جدید با نام "ppp0" باید مشاهده کنید.
با استفاده از دستور زیر route های در حال حاضر سرور خود را بررسی کنید :
همانند تصویر بالا، خط "default via X.X.X.X ...." را در خروجی پیدا کنید و ip address مشخص شده در خروجی را، بعد از gw در دو دستور زیر وارد کنید.
با استفاده از دستور زیر یک route جدید به سرور اضافه میکنیم. آدرس ip سرور VPN خود را با مقدار "YOUR_VPN_SERVER_IP" جایگزین کنید و در ادامه بعد از gw هم آدرس ip گیت وی مان را که در خروجی بالا مشخص کردیم را وارد کنید.
در صورتیکه شما روی یک سرور ریموت این تنظیمات را انجام میدهید و با استفاده از ترمینال به سرور کلاینت تان وصل هستید، شما میبایست یک route جدید برای ip address پابلیک سیستم شخصی خودتان ایجاد کنید که ارتباط شما با سرور کلاینت تان قطع نشود. برای این کار ابتدا از طریق این لینک ip address پابلیک خود را در گوگل جستجو کنید، یا میتوانید از ابزارهای دیگری که خودتان میشناسید استفاده کنید و آن آدرس Public IP را با مقدار YOUR_LOCAL_PC_PUBLIC_IP جایگزین کنید و در ادامه هم بعد از gw آدرس گیت وی خود را که در بالاتر به دست آورده ایم وارد میکنیم.
یک route جدید برای شروع ارسال کل ترافیک سرور کلاینت به سمت سرور VPN اضافه کنید.
کانکشن VPN شما با موفقیت به VPN Server متصل شد. برای تایید اینکه ترافیک سرور کلاینت شما از روی سرور VPN رد و بدل میشود، دستور زیر را اجرا کنید.
همانند تصویر، دستور بالا میبایست ip سرور VPN شما را برگرداند.
برای متوقف کردن ارسال ترافیک سرور کلاینت به سرور VPN از دستور زیر استفاده کنید.
برای قطع ارتباط سرور کلاینت با سرور VPN بنا بر توزیع لینوکسی خود از دستورات زیر استفاده کنید.
در سیستم های Ubuntu و Debian :
در سیستم های CentOS/RHEL و Fedora :
همانطور که در عکس بالا مشاهده میکنید، کانکشن ما با موفقیت بسته شد.
همچنین توصیه میشود مطالعه کنید :
تنظیمات ساخت اکانت L2TP/IPSec در لینوکس (Ubuntu, Debian, CentOS)
تنظیمات ایجاد L2TP/IPSec VPN در آندروید
نحوه ایجاد پروفایل L2TP IPSec VPN در IOS (iPhone/iPad)
آموزش ساخت اکانت L2TP IPSec VPN در ویندوز 10 - 8
آموزش ساخت اکانت L2TP IPSec VPN در ویندوز 7 و XP
در صورتیکه در ارتباط بین سرور Client و سرور VPN مشکلی پیش آمده، بخش بررسی مشکلات و عیب یابی را مشاهده کنید. امیدوارم این آموزش برای شما مفید واقع شده باشد. فراموش نکنید اگر تجربه ی جدیدی به دست آوردید آن را با ما به اشتراک بگذارید.
همچنین توصیه میشود مطالعه کنید :
آموزش نصب و راه اندازی VPN Server L2TP/IPSec در لینوکس (RHEL/Fedora - Debian/Ubunt - CentOS)
آموزش نصب و راه اندازی OpenVPN Server در لینوکس
خرید سرور مجازی VPS از ناسا هاست (ایران، آلمان، فرانسه، آمریکا، کانادا)
برای ایجاد تنظیمات در سرور کلاینت، ابتدا پکیج های زیر را بر اساس توزیع لینوکسی خود نصب کنید.
در سیستم های Ubuntu و Debian :
کد PHP:
# apt-get update
# apt install wget net-tools
# apt-get -y install strongswan xl2tpd
در سیستم های CentOS و RHEL :
کد PHP:
# yum -y install net-tools wget epel-release
# yum --enablerepo=epel -y install strongswan xl2tpd
در سیستم عامل Fedora :
کد PHP:
# yum install wget net-tools
# yum -y install strongswan xl2tpd
پکیج strongswan بمنظور راه اندازی ipsec باید نصب کنید. تمرکز این اپلیکیشن در حقیقت ایجاد یک مکانیزم قوی برای autentication با استفاده از گواهینامه های x.509 public key و private key می باشد.
و پکیج xl2tp هم پکیج مورد نیاز برای نصب و راه اندازی تونل l2tp میباشد که نامش از پروتکل و سرویس l2tpd برگرفته شد است. هدف این پروتکل ایجاد تانل ppp از طریق شبکه های ip میباشد.
توجه : متغیرهای زیر را در ادامه نصب هر جایی که مشاهده کردید، با مشخصات اکانت خود (شامل : آدرس سرور VPN، مقدار PSK و Username و Password) جایگزین کنید.
کد PHP:
VPN_SERVER_IP='your_vpn_server_ip'
VPN_IPSEC_PSK='your_ipsec_pre_shared_key'
VPN_USER='your_vpn_username'
VPN_PASSWORD='your_vpn_password'
تنظیمات پکیج strongswan :
برای وارد کردن تنظیمات زیر به فایل ipsec.conf کافیست دستور cat زیر را اجرا کنید تا به صورت خودکار متغیرهای زیر به درون فایل کپی شوند. فراموش نکنید قبل از وارد کردن دستور زیر در ترمینال، متغیر $VPN_SERVER_IP را پیدا و با آدرس IP سرور VPN خود جایگزین کنید. همچنین در صورت فراموش کردن این کار میتوانید بعد از ساخت فایل ipsec.con آنرا با استفاده از یک ادیتور متن باز کرده و متغیر $VPN_SERVER_IP را با ip address سرور VPN خود جایگزین کنید.
کد PHP:
cat > /etc/ipsec.conf <<EOF
# ipsec.conf - strongSwan IPsec configuration file
# basic configuration
config setup
# strictcrlpolicy=yes
# uniqueids = no
# Add connections here.
# Sample VPN connections
conn %default
ikelifetime=60m
keylife=20m
rekeymargin=3m
keyingtries=1
keyexchange=ikev1
authby=secret
ike=aes128-sha1-modp2048!
esp=aes128-sha1-modp2048!
conn myvpn
keyexchange=ikev1
left=%defaultroute
auto=add
authby=secret
type=transport
leftprotoport=17/1701
rightprotoport=17/1701
right=$VPN_SERVER_IP
EOF
دستور زیر را برای ایجاد PSK اکانت VPN تان در سرور کلاینت اجرا کنید. متغیر $VPN_IPSEC_PSK را با PSK اکانت وی پی ان خود جایگزین کنید.
کد PHP:
cat > /etc/ipsec.secrets <<EOF
: PSK "$VPN_IPSEC_PSK"
EOF
سپس با استفاده از دستور chmod زیر، سطح دسترسی فایل ipsec.secrets را تغییر میدهیم.
کد PHP:
# chmod 600 /etc/ipsec.secrets
در صورتیکه از یکی از سیستم عامل های CentOS/RHEL یا Fedora استفاده میکنید، دستورات زیر را هم اجرا کنید.
کد PHP:
# mv /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.old 2>/dev/null
# mv /etc/strongswan/ipsec.secrets /etc/strongswan/ipsec.secrets.old 2>/dev/null
# ln -s /etc/ipsec.conf /etc/strongswan/ipsec.conf
# ln -s /etc/ipsec.secrets /etc/strongswan/ipsec.secrets
تنظیمات پکیج xl2tpd :
دستور زیر را برای وارد کردن تنظیمات زیر در فایل xl2tpd.conf اجرا کنید. متغیر $VPN_SERVER_IP را با آدرس ip سرور VPN خود جایگزین کنید.
کد PHP:
cat > /etc/xl2tpd/xl2tpd.conf <<EOF
[lac myvpn]
lns = $VPN_SERVER_IP
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tpd.client
length bit = yes
EOF
سپس دستور زیر را برای وارد کردن تنظیمات زیر در فایل options.l2tpd.client وارد کنید. متغیر $VPN_PASSWORD و $VPN_USER را با یوزر و پسورد اکانت VPN خود جایگزین کنید.
کد PHP:
cat > /etc/ppp/options.l2tpd.client <<EOF
ipcp-accept-local
ipcp-accept-remote
refuse-eap
require-chap
noccp
noauth
mtu 1280
mru 1280
noipdefault
defaultroute
usepeerdns
connect-delay 5000
name $VPN_USER
password $VPN_PASSWORD
EOF
سپس با استفاده از دستور chmod سطح دسترسی فایل options.l2tpd.client را تغییر دهید.
کد PHP:
# chmod 600 /etc/ppp/options.l2tpd.client
اکنون تنظیمات سرور کلاینت ما کامل شد. برای اتصال سرور خود به VPN سرور مراحل زیر را دنبال کنید.
نکته : برای اتصال به سرور VPN شما میبایست هر دفعه تمام مراحل زیر تکرار کنید.
ایجاد فایل کنترل xl2tpd :
کد PHP:
# mkdir -p /var/run/xl2tpd
# touch /var/run/xl2tpd/l2tp-control
Restart سرویس های Strongswan و XL2TPD :
کد PHP:
# systemctl restart strongswan
# systemctl restart xl2tpd
OR
# service strongswan restart
# service xl2tpd restart
سپس با استفاده از دستور زیر وضعیت سرویس های strongswan و xl2tpd را بررسی میکنیم، که باید همانند عکس بالا در حالت active (running) باشند.
کد PHP:
# systemctl status strongswan xl2tpd | grep Active
نحوه Start کردن کانکشن IPSec :
براساس توزیع سیستم عامل خود، یکی از دستورات زیر را اجرا کنید.
در سیستم های Ubuntu و Debian :
کد PHP:
# ipsec up myvpn
در سیستم های CentOS/RHEL و Fedora :
کد PHP:
# strongswan up myvpn
اگر همه چیز مرتب باشد و کانفیگ ها به درستی انجام شده باشد، در انتهای دستور بالا شما میبایست پیام connection 'myvpn' established successfully را مشاهده کنید.
نحوه Start کردن کانکشن L2TP :
دستور زیر را اجرا کنید.
کد PHP:
# echo "c myvpn" > /var/run/xl2tpd/l2tp-control
با استفاده از دستور زیر route های در حال حاضر سرور خود را بررسی کنید :
کد PHP:
# ip route
همانند تصویر بالا، خط "default via X.X.X.X ...." را در خروجی پیدا کنید و ip address مشخص شده در خروجی را، بعد از gw در دو دستور زیر وارد کنید.
با استفاده از دستور زیر یک route جدید به سرور اضافه میکنیم. آدرس ip سرور VPN خود را با مقدار "YOUR_VPN_SERVER_IP" جایگزین کنید و در ادامه بعد از gw هم آدرس ip گیت وی مان را که در خروجی بالا مشخص کردیم را وارد کنید.
کد PHP:
# route add YOUR_VPN_SERVER_IP gw X.X.X.X
در صورتیکه شما روی یک سرور ریموت این تنظیمات را انجام میدهید و با استفاده از ترمینال به سرور کلاینت تان وصل هستید، شما میبایست یک route جدید برای ip address پابلیک سیستم شخصی خودتان ایجاد کنید که ارتباط شما با سرور کلاینت تان قطع نشود. برای این کار ابتدا از طریق این لینک ip address پابلیک خود را در گوگل جستجو کنید، یا میتوانید از ابزارهای دیگری که خودتان میشناسید استفاده کنید و آن آدرس Public IP را با مقدار YOUR_LOCAL_PC_PUBLIC_IP جایگزین کنید و در ادامه هم بعد از gw آدرس گیت وی خود را که در بالاتر به دست آورده ایم وارد میکنیم.
کد PHP:
# route add YOUR_LOCAL_PC_PUBLIC_IP gw X.X.X.X
یک route جدید برای شروع ارسال کل ترافیک سرور کلاینت به سمت سرور VPN اضافه کنید.
کد PHP:
# route add default dev ppp0
کد PHP:
# wget -qO- http://ipv4.icanhazip.com; echo
همانند تصویر، دستور بالا میبایست ip سرور VPN شما را برگرداند.
برای متوقف کردن ارسال ترافیک سرور کلاینت به سرور VPN از دستور زیر استفاده کنید.
کد PHP:
# route del default dev ppp0
در سیستم های Ubuntu و Debian :
کد PHP:
# echo "d myvpn" > /var/run/xl2tpd/l2tp-control
# ipsec down myvpn
کد PHP:
# echo "d myvpn" > /var/run/xl2tpd/l2tp-control
# strongswan down myvpn
همانطور که در عکس بالا مشاهده میکنید، کانکشن ما با موفقیت بسته شد.
همچنین توصیه میشود مطالعه کنید :
تنظیمات ساخت اکانت L2TP/IPSec در لینوکس (Ubuntu, Debian, CentOS)
تنظیمات ایجاد L2TP/IPSec VPN در آندروید
نحوه ایجاد پروفایل L2TP IPSec VPN در IOS (iPhone/iPad)
آموزش ساخت اکانت L2TP IPSec VPN در ویندوز 10 - 8
آموزش ساخت اکانت L2TP IPSec VPN در ویندوز 7 و XP
در صورتیکه در ارتباط بین سرور Client و سرور VPN مشکلی پیش آمده، بخش بررسی مشکلات و عیب یابی را مشاهده کنید. امیدوارم این آموزش برای شما مفید واقع شده باشد. فراموش نکنید اگر تجربه ی جدیدی به دست آوردید آن را با ما به اشتراک بگذارید.
کامنت