تانل L2TP میکروتیک (vpn)
کانفیگ و کلیات L2TP میکروتیک (vpn)
L2TP/IpSec با راه اندازی سرور IPSec ایستا
خلاصه
L2TP یک پروتکل تونلی ایمن برای انتقال ترافیک IP با استفاده از PPP است.
L2TP PPP را در خطوط مجازی کپسوله می کند که روی IP، Frame Relay و پروتکل های دیگر اجرا می شوند (که در حال حاضر توسط MikroTik RouterOS پشتیبانی نمی شوند).
L2TP از PPP و MPPE (رمزگذاری نقطه به نقطه مایکروسافت) برای ایجاد پیوندهای رمزگذاری شده استفاده می کند.
هدف این پروتکل این است که به لایههای 2 و نقاط پایانی PPP اجازه دهد در دستگاههای مختلفی که توسط یک شبکه سوئیچ بسته به هم متصل هستند، قرار گیرند.
با L2TP، کاربر یک اتصال لایه 2 به یک متمرکز کننده دسترسی – LAC (به عنوان مثال، بانک مودم، ADSL DSLAM، و غیره) دارد و سپس متمرکز کننده فریم های PPP جداگانه را به سرور دسترسی به شبکه – NAS تونل می کند.
این کار اجازه می دهد تا پردازش واقعی بسته های PPP از پایانه مدار لایه 2 جدا شود.
از دیدگاه کاربر، هیچ تفاوت عملکردی بین پایان دادن مستقیم مدار L2 به NAS یا استفاده از L2TP وجود ندارد.
همچنین ممکن است استفاده از L2TP مانند هر پروتکل تونل زنی دیگر با یا بدون رمزگذاری مفید باشد.
استاندارد L2TP می گوید که امن ترین راه برای رمزگذاری داده ها استفاده از L2TP از طریق IPsec است.
(توجه داشته باشید که حالت پیش فرض برای سرویس گیرنده L2TP مایکروسافت است) زیرا تمام کنترل L2TP و بسته های داده برای یک تونل خاص به عنوان بسته های داده UDP/IP همگن به نظر می رسد. سیستم IPsec
Multilink PPP (MP) به منظور ارائه MRRU (قابلیت انتقال بسته های با اندازه کامل 1500 و بزرگتر) و بریج زدن بر روی پیوندهای PPP
(با استفاده از پروتکل کنترل پل (BCP) که امکان ارسال فریم های اترنت خام را از طریق پیوندهای PPP فراهم می کند) پشتیبانی می شود.
به این ترتیب امکان راه اندازی بریج بدون EoIP وجود دارد.
بریج باید دارای یک آدرس MAC تنظیم شده اداری یا یک رابط اترنت مانند باشد، زیرا پیوندهای PPP دارای آدرس MAC نیستند.
L2TP شامل احراز هویت و اکانتینگ PPP برای هر اتصال L2TP است.
احراز هویت کامل و اکانتینگ هر اتصال ممکن است از طریق یک کلاینت RADIUS یا به صورت محلی انجام شود.
(رمزگذاری MPPE 128 بیتی RC4 پشتیبانی می شود.)
ترافیک L2TP از پروتکل UDP برای بسته های کنترل و داده استفاده می کند.
پورت UDP 1701 فقط برای ایجاد پیوند استفاده می شود، ترافیک بیشتر با استفاده از هر پورت UDP موجود (که ممکن است 1701 باشد یا نباشد) است.
این بدان معناست که L2TP را می توان با اکثر فایروال ها و روترها (حتی با NAT) با فعال کردن ترافیک UDP از طریق فایروال یا روتر استفاده کرد.
L2TP Client
Sub-menu: /interface l2tp-client
- مشخصات
add-default-route (yes | no; Default: no) | Whether to add L2TP remote address as a default route. |
allow (mschap2 | mschap1 | chap | pap; Default: mschap2, mschap1, chap, pap) | Allowed authentication methods. |
connect-to (IP; Default: ) | Remote address of L2TP server |
comment (string; Default: ) | Short description of the tunnel. |
default-route-distance (byte; Default: ) | Since v6.2, sets distance value applied to auto created default route, if add-default-route is also selected |
dial-on-demand (yes | no; Default: no) | connects only when outbound traffic is generated. If selected, then route with gateway address from 10.112.112.0/24 network will be added while connection is not established. |
disabled (yes | no; Default: yes) | Enables/disables tunnel. |
keepalive-timeout (integer [1..4294967295]; Default: 60s) | Since v6.0rc13, tunnel keepalive timeout in seconds. |
max-mru (integer; Default: 1460) | Maximum Receive Unit. Max packet size that L2TP interface will be able to receive without packet fragmentation. |
max-mtu (integer; Default: 1460) | Maximum Transmission Unit. Max packet size that L2TP interface will be able to send without packet fragmentation. |
mrru (disabled | integer; Default: disabled) | Maximum packet size that can be received on the link. If a packet is bigger than tunnel MTU, it will be split into multiple packets, allowing full size IP or Ethernet packets to be sent over the tunnel. Read more >> |
name (string; Default: ) | Descriptive name of the interface. |
password (string; Default: “”) | Password used for authentication. |
profile (name; Default: default-encryption) | Used PPP profile. |
user (string; Default: ) | User name used for authentication. |
use-ipsec (yes | no; Default: no) | When this option is enabled, dynamic IPSec peer configuration and policy is added to encapsulate L2TP connection into IPSec tunnel. |
ipsec-secret (string; Default: ) | Preshared key used when use-ipsec is enabled. |
- مثال سریع و ساده
در این مثال نحوه تنظیم سرویس گیرنده L2TP با نام کاربری “l2tp-hm”، رمز عبور “123” و سرور 10.1.101.100 را نشان می دهد.
[admin@dzeltenais_burkaans] /interface l2tp-client>add name=l2tp-hm user=l2tp-hm password=123 \ \... connect-to=10.1.101.100 disabled=no [admin@dzeltenais_burkaans] /interface l2tp-client> print detail Flags: X - disabled, R - running 0 name="l2tp-hm" max-mtu=1460 max-mru=1460 mrru=disabled connect-to=10.1.101.100 user="l2tp-hm" password="123" profile=default-encryption add-default-route=no dial-on-demand=no allow=pap,chap,mschap1,mschap2
L2TP server
Sub-menu: /interface l2tp-server
این منوی فرعی رابط های هر کلاینت L2TP متصل را نشان میدهد.
یک رابط برای هر تونل ایجاد شده به سرور داده شده ایجاد می شود.
دو نوع رابط در پیکربندی سرور L2TP وجود دارد.
اگر نیاز به ارجاع به نام رابط خاص (در قوانین فایروال یا جاهای دیگر) ایجاد شده برای کاربر خاص باشد، واسط های استاتیک به صورت اداری اضافه می شوند.
هر زمان که کاربر متصل باشد و نام کاربری آن با هیچ ورودی ثابت موجود مطابقت نداشته باشد، رابطهای پویا بهطور خودکار به این لیست اضافه میشوند.
(یا در صورتی که ورودی قبلاً فعال باشد، زیرا نمیتوان دو واسط تونل جداگانه با همان نام اشاره کرد).
رابط های پویا زمانی ظاهر می شوند که کاربر متصل می شود و پس از قطع ارتباط کاربر ناپدید می شوند،
بنابراین نمی توان به تونل ایجاد شده برای آن استفاده در پیکربندی روتر (مثلاً در فایروال) اشاره کرد،
بنابراین اگر به قوانین پایدار برای آن کاربر نیاز دارید، یک استاتیک ایجاد کنید.
در غیر این صورت استفاده از پیکربندی پویا بی خطر است.
توجه: در هر دو مورد کاربران PPP باید به درستی پیکربندی شوند – ورودی های استاتیک جایگزین پیکربندی PPP نمی شوند.
- کانفیگ L2TP server
Sub-menu: /interface l2tp-server server
Property | Description |
---|---|
authentication (pap | chap | mschap1 | mschap2; Default: mschap1,mschap2) | Authentication methods that server will accept. |
default-profile (name; Default: default-encryption) | default profile to use |
enabled (yes | no; Default: no) | Defines whether L2TP server is enabled or not. |
max-mru (integer; Default: 1450) | Maximum Receive Unit. Max packet size that L2TP interface will be able to receive without packet fragmentation. |
keepalive-timeout (integer; Default: 30) | If server during keepalive-timeout period does not receive any packets, it will send keepalive packets every second, five times. If the server still does not receive any response from the client, then the client will be disconnected after 5 seconds. Logs will show 5x “LCP missed echo reply” messages and then disconnect. Available starting from v5.22 and v6rc3. |
max-mtu (integer; Default: 1450) | Maximum Transmission Unit. Max packet size that L2TP interface will be able to send without packet fragmentation. |
use-ipsec (no | yes | require; Default: no) | When this option is enabled, dynamic IPSec peer configuration is added to suite most of the L2TP road-warrior setups. When require is selected server will accept only those L2TP connection attempts that were encapsulated in the IPSec tunnel. |
ipsec-secret (string; Default: ) | Preshared key used when use-ipsec is enabled |
mrru (disabled | integer; Default: disabled) | Maximum packet size that can be received on the link. If a packet is bigger than tunnel MTU, it will be split into multiple packets, allowing full size IP or Ethernet packets to be sent over the tunnel. Read more >> |
برای فعال کردن سرور L2TP
[admin@MikroTik] interface l2tp-server server> set enabled=yes [admin@MikroTik] interface l2tp-server server> print enabled: yes max-mtu: 1450 max-mru: 1450 mrru: disabled authentication: pap,chap,mschap1,mschap2 default-profile: default-encryption [admin@MikroTik] interface l2tp-server server>
مانیتورینگ
نکته : دستور مانیتور می تواند برای نظارت بر وضعیت تونل در هر دو طرف مشتری و سرور استفاده شود.
[admin@dzeltenais_burkaans] /interface l2tp-client> monitor 0 status: "connected" uptime: 7h24m18s idle-time: 6h21m4s encoding: "MPPE128 stateless" mtu: 1450 mru: 1450
ویژگی های Read-only
Property | Description |
---|---|
status () | Current L2TP status. Value other than “connected” indicates that there are some problems establishing tunnel.
|
uptime (time) | Elapsed time since tunnel was established. |
idle-time (time) | Elapsed time since last activity on the tunnel. |
encoding () | Used encryption method |
local-address (IP Address) | IP Address of local interface |
remote-address (IP Address) | IP Address of remote interface |
mru (integer) | Negotiated and used MRU |
نمونه های کاربردی
- اتصال کلاینت از راه دور
مثال زیر نحوه اتصال یک کامپیوتر به یک شبکه اداری راه دور از طریق تونل رمزگذاری شده L2TP را نشان می دهد.
که به آن کامپیوتر یک آدرس IP از همان شبکه ای که دفتر راه دور دارد (بدون نیاز به پل زدن روی تونل های EoIP) می دهد.
تنظیمات زیر را در نظر بگیرید.
روتر آفیس از طریق ether1 به اینترنت متصل می شود.
ایستگاه های کاری به ether2 متصل هستند.
لپ تاپ به اینترنت متصل است و می تواند به IP عمومی روتر آفیس برسد (در مثال ما 192.168.80.1 است).
اولین قدم ایجاد یک کاربر است.
[admin@RemoteOffice] /ppp secret> add name=Laptop service=l2tp password=123 local-address=10.1.101.1 remote-address=10.1.101.100 [admin@RemoteOffice] /ppp secret> print detail Flags: X - disabled 0 name="Laptop" service=l2tp caller-id="" password="123" profile=default local-address=10.1.101.1 remote-address=10.1.101.100 [admin@RemoteOffice] /ppp secret>
توجه داشته باشید که آدرس local (محلی) L2TP همان آدرس روترها در local interface است و آدرس راه دور از همان محدوده شبکه محلی است (10.1.101.0/24).
مرحله بعدی فعال کردن سرور L2TP و سرویس گیرنده L2TP در لپ تاپ است.
[admin@RemoteOffice] /interface l2tp-server server> set enabled=yes [admin@RemoteOffice] /interface l2tp-server server> print enabled: yes max-mtu: 1460 max-mru: 1460 mrru: disabled authentication: mschap2 default-profile: default-encryption [admin@RemoteOffice] /interface l2tp-server server>
کلاینت L2TP از لپ تاپ باید به IP عمومی روترها متصل شود که در مثال ما 192.168.80.1 است.
لطفاً، راهنمای مربوطه را در مورد نحوه راه اندازی یک کلاینت L2TP با نرم افزاری که استفاده می کنید، رجوع کنید.
توجه: به طور پیش فرض ویندوز L2TP را با IPsec تنظیم می کند. برای غیرفعال کردن IpSec، تغییرات رجیستری لازم است.
در این مرحله (زمانی که کلاینت L2TP با موفقیت وصل شد) اگر سعی کنید هر ایستگاه کاری را از لپ تاپ پینگ کنید، پینگ به پایان می رسد،
زیرا لپ تاپ قادر به دریافت ARP از ایستگاه های کاری نیست.
راه حل این است که proxy-arp را در local interface راه اندازی کنید.
[admin@RemoteOffice] interface ethernet> set ether2 arp=proxy-arp [admin@RemoteOffice] interface ethernet> print Flags: X - disabled, R - running # NAME MTU MAC-ADDRESS ARP 0 R ether1 1500 00:30:4F:0B:7B:C1 enabled 1 R ether2 1500 00:30:4F:06:62:12 proxy-arp [admin@RemoteOffice] interface ethernet>
پس از فعال شدن proxy-arp، کلاینت اکنون می تواند با موفقیت به تمام ایستگاه های کاری در local network پشت روتر دسترسی پیدا کند.
- T2TP سایت به سایت
در زیر نمونه ای از اتصال دو اینترانت با استفاده از یک تونل L2TP از طریق اینترنت آورده شده است.
تنظیمات زیر را در نظر بگیرید:
روترهای Office و Home از طریق ether1 به اینترنت وصل می شوند،
ایستگاه های کاری و لپ تاپ ها به ether2 متصل می شوند.
هر دو شبکه local از طریق سرویس گیرنده L2TP هدایت می شوند، بنابراین در یک broadcast domain نیستند.
اگر هر دو شبکه باید در یک broadcast domain باشند، باید از BCP و Bridge L2TP تونل با local interface استفاده کنید.
اولین قدم ایجاد یک کاربر است.
[admin@RemoteOffice] /ppp secret> add name=Home service=l2tp password=123 local-address=172.16.1.1 remote-address=172.16.1.2 routes="10.1.202.0/24 172.16.1.2 1" [admin@RemoteOffice] ppp secret> print detail Flags: X - disabled 0 name="Home" service=l2tp caller-id="" password="123" profile=default local-address=172.16.1.1 remote-address=172.16.1.2 routes="10.1.202.0/24 172.16.1.2 1" [admin@RemoteOffice] /ppp secret>
توجه داشته باشید که ما L2TP را برای اضافه کردن مسیر هر زمان که کلاینت متصل می شود تنظیم کرده ایم.
اگر این گزینه تنظیم نشده باشد، برای هدایت ترافیک بین سایت ها از طریق تونل L2TP، به پیکربندی مسیریابی ثابت روی سرور نیاز دارید.
مرحله بعدی فعال کردن سرور L2TP در روتر آفیس و پیکربندی کلاینت L2TP در روتر Home است.
[admin@RemoteOffice] /interface l2tp-server server> set enabled=yes [admin@RemoteOffice] /interface l2tp-server server> print enabled: yes max-mtu: 1460 max-mru: 1460 mrru: disabled authentication: mschap2 default-profile: default-encryption [admin@RemoteOffice] /interface l2tp-server server>
[admin@Home] /interface l2tp-client> add user=Home password=123 connect-to=192.168.80.1 disabled=no [admin@Home] /interface l2tp-client> print Flags: X - disabled, R - running 0 R name="l2tp-out1" max-mtu=1460 max-mru=1460 mrru=disabled connect-to=192.168.80.1 user="Home" password="123" profile=default-encryption add-default-route=no dial-on-demand=no allow=pap,chap,mschap1,mschap2 [admin@Home] /interface l2tp-client>
در روتر خانگی اگر میخواهید ترافیک دفتر راه دور از تونل عبور کند، باید یک مسیر ثابت خاص به شرح زیر اضافه کنید:
[admin@Home] /ip route> add dst-address=10.1.101.0/24 gateway=l2tp-out1
پس از ایجاد تونل و تعیین مسیرها، باید بتوانید شبکه را از راه دور پینگ کنید.
- راه اندازی اولیه L2TP/Ipsec
این مثال نشان می دهد که چگونه می توان به راحتی سرور L2TP/IpSec را روی روتر میکروتیک (با نسخه 6.16 یا جدیدتر نصب شده) برای road warrior connections (با ویندوز، اندروید و آیفون کار می کند) راه اندازی کرد.
مرحله اول فعال کردن سرور L2TP است:
/interface l2tp-server server set enabled=yes use-ipsec=required ipsec-secret=mySecret default-profile=default
مورد نیاز : برای اطمینان از اینکه فقط اتصالات L2TP کپسوله شده IPSec پذیرفته می شود، تنظیم شده است.
اکنون کاری که انجام می دهد این است که سرور L2TP را فعال می کند و ipsec peer پویا iwth مخفی مشخص شده (specified secret) ایجاد می کند.
[admin@MikroTik] /ip ipsec peer> print 0 D address=0.0.0.0/0 local-address=0.0.0.0 passive=yes port=500 auth-method=pre-shared-key secret="123" generate-policy=port-strict exchange-mode=main-l2tp send-initial-contact=yes nat-traversal=yes hash-algorithm=sha1 enc-algorithm=3des,aes-128,aes-192,aes-256 dh-group=modp1024 lifetime=1d dpd-interval=2m dpd-maximum-failures=5
توجه: در صورت وجود پیکربندی همتای ثابت ipsec، باید مراقب باشید.
مرحله بعدی ایجاد VPN pool و اضافه کردن چند کاربر است.
/ip pool add name=vpn-pool range=192.168.99.2-192.168.99.100 /ppp profile set default local-address=192.168.99.1 remote-address=vpn-pool /ppp secret add name=user1 password=123 add name=user2 password=234
اگر سیاست های سختگیرانه فایروال وجود دارد، فراموش نکنید که قوانینی را اضافه کنید که l2tp و ipsec را بپذیرد.
/ip firewall filter add chain=input protocol=udp port=1701,500,4500 add chain=input protocol=ipsec-esp
اکنون روتر آماده پذیرش اتصالات کلاینت L2TP/IpSec است.
L2TP/IpSec با راه اندازی سرور IPSec ایستا
- Ipsec/L2TP پشت NAT
راه اندازی را همانطور که در زیر نشان داده شده است در نظر بگیرید.
مشتری نیاز به اتصال ایمن به دفتر با آدرس عمومی 1.1.1.1 دارد، اما سرور نمی داند آدرس منبعی که مشتری از آن متصل می شود چیست.
اصطلاحاً راه اندازی “road-warrior” نامیده می شود.
مشتری ما همچنین در پشت روتر با NAT فعال قرار خواهد گرفت.
برای راه اندازی روتر RouterOS به عنوان دستگاه مشتری پشت NAT استفاده می شود (این می تواند هر دستگاهی باشد: رایانه شخصی ویندوز، تلفن هوشمند، رایانه شخصی لینوکس و غیره)
- اتصال IP
روی سرور:
/ip address add address=1.1.1.1/24 interface=ether1 /ip route add gateway=1.1.1.2
در روتر کلاینت:
/ip address add address=2.2.2.2/24 interface=ether1 add address=10.5.8.0/24 interface=ether2 /ip route add gateway=2.2.2.1 /ip firewall nat add chain=srcnat action=masquerade out-interface=ether1
در کلاینت:
/ip address add address=10.5.8.120/24 interface=ether1
- پیکربندی L2TP
روی سرور:
/interface l2tp-server server set enabled=yes profil=default /ip pool add name=l2tp-pool ranges=192.168.1.2-192.168.1.20 /ppp profile set default local-address=192.168.1.1 remote-address=l2tp-pool /ppp secret add name=l2tp-test password=test123456
در کلاینت:
/interface l2tp-client add connect-to=1.1.1.1 disabled=no name=l2tp-out1 password=password user=l2tp-test
- پیکربندی IpSec
روی سرور:
/ip ipsec proposal set [ find default=yes ] enc-algorithms=3des,aes-128,aes-192,aes-256 /ip ipsec peer add generate-policy=yes hash-algorithm=sha1 nat-traversal=yes secret=test123456
در روتر کلاینت:
/ip ipsec proposal set [ find default=yes ] enc-algorithms=aes-128 /ip ipsec peer add address=1.1.1.1/32 hash-algorithm=sha1 nat-traversal=yes secret=test123456 /ip ipsec policy add dst-address=1.1.1.1/32 protocol=udp sa-dst-address=1.1.1.1 \ sa-src-address=10.5.8.120 src-address=10.5.8.120/32
توجه داشته باشید که nat-traversal فعال است.
این گزینه مورد نیاز است زیرا اتصال Ipsec از طریق روتر NAT برقرار می شود در غیر این صورت Ipsec قادر به ایجاد فاز2 نخواهد بود.
هشدار: فقط یک اتصال L2TP/IpSec را می توان از طریق NAT ایجاد کرد.
یعنی فقط یک کلاینت می تواند به سروری که در پشت همان روتر قرار دارد متصل شود.
- Apple iOS (iPhone/iPad) Client
برای اتصال به سرور IPsec/L2TP در RouterOS باید L2TP را بهعنوان نوع VPN در iOS انتخاب کنید (این شامل کادر تأیید IPsec پیشفرض ایجاد شده توسط QuickSet VPN است).
برای مشاهده مطالب و آموزش های مشابه اینجا کلیک کنید و یا به سایت زیر مراجعه فرمایید.