Summary
Standards: RFC 2661
L2TP is a secure tunnel protocol for transporting IP traffic using PPP. L2TP encapsulates PPP in virtual lines that run over IP, Frame Relay and other protocols (that are not currently supported by MikroTik RouterOS). L2TP incorporates PPP and MPPE (Microsoft Point to Point Encryption) to make encrypted links. The purpose of this protocol is to allow the Layer 2 and PPP endpoints to reside on different devices interconnected by a packet-switched network. With L2TP, a user has a Layer 2 connection to an access concentrator — LAC (e.g., modem bank, ADSL DSLAM, etc.), and the concentrator then tunnels individual PPP frames to the Network Access Server — NAS. This allows the actual processing of PPP packets to be separated from the termination of the Layer 2 circuit. From the user’s perspective, there is no functional difference between having the L2 circuit terminate in a NAS directly or using L2TP.
It may also be useful to use L2TP just as any other tunneling protocol with or without encryption. The L2TP standard says that the most secure way to encrypt data is using L2TP over IPsec (Note that it is default mode for Microsoft L2TP client) as all L2TP control and data packets for a particular tunnel appear as homogeneous UDP/IP data packets to the IPsec system.
Multilink PPP (MP) is supported in order to provide MRRU (the ability to transmit full-sized 1500 and larger packets) and bridging over PPP links (using Bridge Control Protocol (BCP) that allows to send raw Ethernet frames over PPP links). This way it is possible to setup bridging without EoIP. The bridge should either have an administratively set MAC address or an Ethernet-like interface in it, as PPP links do not have MAC addresses.
L2TP includes PPP authentication and accounting for each L2TP connection. Full authentication and accounting of each connection may be done through a RADIUS client or locally.
MPPE 128bit RC4 encryption is supported.
L2TP traffic uses UDP protocol for both control and data packets. UDP port 1701 is used only for link establishment, further traffic is using any available UDP port (which may or may not be 1701). This means that L2TP can be used with most firewalls and routers (even with NAT) by enabling UDP traffic to be routed through the firewall or router.
L2TP Client
Sub-menu: /interface l2tp-client
Properties
Property | Description |
---|---|
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. |
Quick example
This example demonstrates how to set up L2TP client with username «l2tp-hm», password «123» and server 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
This sub-menu shows interfaces for each connected L2TP clients.
An interface is created for each tunnel established to the given server. There are two types of interfaces in L2TP server’s configuration
- Static interfaces are added administratively if there is a need to reference the particular interface name (in firewall rules or elsewhere) created for the particular user.
- Dynamic interfaces are added to this list automatically whenever a user is connected and its username does not match any existing static entry (or in case the entry is active already, as there can not be two separate tunnel interfaces referenced by the same name).
Dynamic interfaces appear when a user connects and disappear once the user disconnects, so it is impossible to reference the tunnel created for that use in router configuration (for example, in firewall), so if you need persistent rules for that user, create a static entry for him/her. Otherwise it is safe to use dynamic configuration.
Note: in both cases PPP users must be configured properly — static entries do not replace PPP configuration.
Server configuration
Sub-menu: /interface l2tp-server server
Properties
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 >> |
To enable L2TP server:
[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>
Monitoring
Monitor command can be used to monitor status of the tunnel on both client and 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 properties
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 |
Application Examples
Connecting Remote Client
The following example shows how to connect a computer to a remote office network over L2TP encrypted tunnel giving that computer an IP address from the same network as the remote office has (without any need of bridging over EoIP tunnels)
Consider following setup:
Office router is connected to internet through ether1. Workstations are connected to ether2.
Laptop is connected to the internet and can reach Office router’s public IP (in our example it is 192.168.80.1).
First step is to create a user
[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>
Notice that L2TP local address is the same as routers address on local interface and remote address is from the same range as local network (10.1.101.0/24).
Next step is to enable L2TP server and L2TP client on the laptop.
[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 client from the laptop should connect to routers public IP which in our example is 192.168.80.1.
Please, consult the respective manual on how to set up a L2TP client with the software you are using.
Note: By default Windows sets up L2TP with IPsec. To disable IpSec, registry modifications are required. Read more >>
At this point (when L2TP client is successfully connected) if you will try to ping any workstation from the laptop, ping will time out, because Laptop is unable to get ARPs from workstations. Solution is to set up proxy-arp on 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>
After proxy-arp is enabled client can now successfully reach all workstations in local network behind the router.
Site-to-Site L2TP
The following is an example of connecting two Intranets using a L2TP tunnel over the Internet.
Consider following setup:
Office and Home routers are connected to internet through ether1, workstations and laptops are connected to ether2.
Both local networks are routed through L2TP client, thus they are not in the same broadcast domain. If both networks should be in the same broadcast domain then you need to use BCP and bridge L2TP tunnel with local interface.
First step is to create a user
[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>
Notice that we set up L2TP to add route whenever client connects. If this option is not set, then you will need static routing configuration on the server to route traffic between sites through L2TP tunnel.
Next step is to enable L2TP server on the office router and configure L2TP client on the Home router.
[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>
On home router if you wish traffic for the remote office to go over tunnel you will need to add a specific static route as follows:
[admin@Home] /ip route> add dst-address=10.1.101.0/24 gateway=l2tp-out1
After tunnel is established and routes are set, you should be able to ping remote network.
Basic L2TP/IpSec setup
This example demonstrates how to easily setup L2TP/IpSec server on Mikrotik router (with installed 6.16 or newer version) for road warrior connections (works with Windows, Android And iPhones).
First step is to enable L2TP server:
/interface l2tp-server server set enabled=yes use-ipsec=required ipsec-secret=mySecret default-profile=default
required is set to make sure that only IPSec encapsulated L2TP connections will be accepted.
Now what it does is enables L2TP server and creates dynamic 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
Note: Care must be taken if static ipsec peer configuration exists.
Next step is to create VPN pool and add some users.
/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
If there are strict firewall policies, do not forget to add rules which accepts l2tp and ipsec.
/ip firewall filter add chain=input protocol=udp port=1701,500,4500 add chain=input protocol=ipsec-esp
Now router is ready to accept L2TP/IpSec client connections.
L2TP/IpSec with static IPSec server setup
Ipsec/L2TP behind NAT
Consider setup as illustrated below
Client needs secure connection to the office with public address 1.1.1.1, but server does not know what will be the source address from which client connects. It is so called road-warrior setup.
Our client will also be located behind the router with enabled NAT.
For the setup RouterOS router will be used as the client device behind NAT (it can be any device: Windows PC, Smartphone, Linux PC, etc.)
IP Connectivity
On the server:
/ip address add address=1.1.1.1/24 interface=ether1 /ip route add gateway=1.1.1.2
On the clients router:
/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
On the client:
/ip address add address=10.5.8.120/24 interface=ether1
L2TP Config
On the server:
/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
On the client:
/interface l2tp-client add connect-to=1.1.1.1 disabled=no name=l2tp-out1 password=password user=l2tp-test
IpSec Config
On server side:
/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
RouterOS as client:
/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
Notice that nat-traversal
is enabled. This option is required because Ipsec connection will be established through the NAT router otherwise Ipsec will not be able to establish phase2.
Warning: Only one L2TP/IpSec connection can be established through the NAT. Which means that only one client can connect to the sever located behind the same router.
Apple iOS (iPhone/iPad) Client
You must choose L2TP as VPN type in iOS to connect to the IPsec/L2TP server on RouterOS (this includes the default IPsec server created by QuickSet VPN checkbox).
Read More
- BCP (Bridge Control Protocol)
- MikroTik RouterOS and Windows XP IPSec/L2TP
[ Top | Back to Content ]
Примечание:
1. Наши маршрутизаторы поддерживают клиент PPTP / L2TP, но могут подключаться только к тем VPN-серверам, чьи данные не зашифрованы.
2. Некоторые интернет-провайдеры обеспечивают соединение PPTP / L2TP. Таким образом, вы можете подключиться к интернету через клиент PPTP / L2TP.
Возьмем Archer C9_V5 в качестве примера:
1. Зайдите в настройки маршрутизатора и перейдите в раздел Дополнительные настройки -> Сеть -> Интернет.
2. Выберите PPTP в качестве типа подключения к Интернету.
3. Введите правильное имя пользователя и пароль.
4. Введите правильный IP-адрес/доменное имя VPN-сервера. (Например: 219.76.10.41, или если ваш VPN-сервер является доменным именем, вы можете ввести имя домена.)
5. Нажмите Сохранить, а затем Подключить.
Был ли этот FAQ полезен?
Ваш отзыв поможет нам улучшить работу сайта.
Что вам не понравилось в этой статье?
- Недоволен продуктом
- Слишком сложно
- Неверный заголовок
- Не относится к моей проблеме
- Слишком туманное объяснение
- Другое
Как мы можем это улучшить?
Спасибо
Спасибо за обращение
Нажмите здесь, чтобы связаться с технической поддержкой TP-Link.
-
Получение необходимых данных для настройки
Прежде, чем разбираться, как настроить впн на роутере, необходимо получить все требующиеся данные для установки L2TP подключения.
Перейдите на страницу https://whoer.net/download/vpn-router, выберите протокол L2TP для подключения и введите ваш код Whoer VPN в соответствующее поле. (Код можно получить на почту при регистрации пробного аккаунта или покупке подписки).
После этого вы будете перенаправлены на страницу с вашими учетными данными (логином и паролем) и другой информацией, необходимой для подключения к серверу.
Для подключения вам понадобятся:
- имя пользователя (логин)
- пароль
- адрес хоста
Далее мы расскажем, как настроить vpn на роутере, используя полученные вами данные.
-
Как настроить vpn на роутере Keenetic, если вы делаете это впервые
Чтобы начать настройку, перейдите в Панель администратора вашего роутера. Вам понадобится ввести пароль.
В Главном меню перейдите в раздел Интернет и выберите Другие подключения.
В окошке Другие подключения кликните на Добавить подключение.
После этого откроется новое окно редактирования. Для начала выберите L2TP в выпадающем меню Тип (протокол).
Далее:
— вбейте любое имя по выбору в строке Имя подключения (например. “whoer” ),
— вставьте адрес хоста выбранного сервера whoer vpn в строке Адрес сервера (эту информацию вы должны взять из таблицы, которая доступна при вводе кода на странице https://whoer.net/download/vpn-router — смотрите начало статьи),
— вбейте ваш логин, полученный на той же странице, в строку Имя пользователя, а пароль, соответственно, в строку Пароль.
Поставьте галочку на опции “Использовать для выхода в Интернет” и нажмите кнопку Сохранить.
-
Подключение VPN
После выполнения настроек, вновь созданное впн-подключение будет доступно в меню Другие подключения. Для соединения с впн-сервером сдвиньте движок рядом с названием подключения whoer, однако, прежде чем сделать это, вам нужно задать приоритет подключения.
Перейдите по следующему пути: Главное меню > Интернет > Приоритеты подключений.
После чего переместите подключение whoer ( l2tp ) на первое место и кликните на Сохранить.
Теперь все готово для подключения впн. Вернитесь в раздел Другие подключения и сдвиньте кнопку рядом с whoer.
После того, как соединение с VPN-сервером будет установлено, состояние изменится на Готов, и вы будете видеть время подключения и трафик.
Надеемся, это руководство помогло вам разобраться, как настроить vpn через роутер. Зайдите на Главную страницу сайта whoer.net с любого устройства, подключенного к роутеру Keenetic, и проверьте, что ваш IP изменился.
Скачиваем Winbox и запускаем его. Прописываем адрес 192.168.88.1 и нажимаем кнопку «Connect»
Заходим в «System» -> «Password»
Два раза указываем пароль на web интерфейс для доступа к маршрутизатору. Нажимаем «Change».
Нажимаем «IP» > DHCP Client»
Заходим в интерфейс ether1, в окне «DHCP Client ether1» в строке «Add Default Route» выбираем «special classless». Нажимаем кнопки Apply и Renew. Затем переходим во вкладку «Advanced».
В поле «Default Route Distance» ставим цифру >1. Нажимаем «Apply» и «ОК». Закрываем окно DCHP Client.
Слева выбираем «IP» > «DNS»
Напротив «Servers» прописываем DNS 94.230.128.3 и 94.230.129.3. Нажимаем «ОК»
Слева выбираем вкладку «PPP». Добавляем «L2TP Client» через +
Во вкладке «Dial Out» прописываем в поле «Connect To» адрес 172.16.0.1; User и Password – логин и пароль на VPN (из договора). Ставим галку «Add Default Route», нажимаем «ОК».
Слева вкладка «IP» -> «Firewall». В окне Firewall выбираем «NAT» и нажимаем «+»
Во вкладке General выбираем Out. Interface – l2tp-out1. Вверху переходим на вкладку «Action».
В поле «Action» выбираем «masquerade» и нажимаем кнопку «ОК».
После данных настроек Интернет будет работать.
Вкладка «System» -> «Packages». В окне Package List нажимаем кнопку «Check For Updates».
Если Installed Version меньше Latest Version (6.43 меньше 6.47), нажимаем «Download&Install»
Переподключившись после обновления, заходим во вкладку «Quick Set» и указываем имя и пароль для Wi-Fi. Нажимаем кнопку «ОК».
Для IPTV нужно установить пакет Multicast. На сайте Mikrotik под версией своей прошивки находим также модель роутера. В строке «Extra packages» нажимаем на дискету и скачиваем архив.
Извлекаем файлы из архива в отдельную папку. В Winbox’е выбираем слева вкладку Files. Переносим из папки, куда распаковали файлы из архива, в Winbox файл multicast в окно File List.
Перезагружаем роутер через вкладку «System» -> «Reboot».
Если сделано правильно, то в «System» -> «Packages» появится строчка multicast
Слева вкладка «Routing» -> «IGMP Proxy», добавляем «+». В строке «Interface» выбираем ether1 (т.е. WAN порт). Указываем в строке «Alternative Subnets» 10.0.0.0/8 и ставим галку на «Upstream». Нажимаем «ОК»
Добавляем порт под IPTV, нажав «+». Выбираем в поле «Interface». Нажимаем «ОК»
Нажимаем «Settings» и ставим галку на «Quick Leave». Нажимаем «ОК».
Для работы IPTV нужно настроить фаервол. Слева выбираем вкладку «New Terminal»:
Вставляем в терминал следующие команды:
/ip firewall filter add action=accept chain=input comment=»Allow IGMP» disabled=no in-interface=ether1 protocol=igmp
/ip firewall filter add action=accept chain=forward comment=»IPTV UDP forwarding» disabled=no dst-port=1234 protocol=udp
Открываем вкладку «IP» -> «Firewall» и выбираем вкладку «Filter Rules». 3 нижних правила, связанные с IPTV/IGMP перетаскиваем вверх, чтобы они были выше всех красных крестов:
Для работы IPTV через Wi-Fi открываем вкладку «Wireless» и выбираем интерфейс «wlan1». Нажимаем кнопку «Advanced Mode»
Заходим во вкладку «Wireless» и выбираем в строке «WMM Support» — enabled. Нажимаем «ОК».
Переходим в «IP» -> «Services». Ставим крест везде, кроме winbox. Нажимаем на winbox и указываем в поле «Available From» адрес 192.168.88.0/24. Нажимаем «ОК»
На этом настройка закончена.
Продолжая актуальную сегодня тему удаленного доступа, сегодня мы рассмотрим настройку роутеров Mikrotik для использования из в качестве PPTP или L2TP VPN-серверов. С одной стороны тема эта, вроде бы простая, с другой, как обычно, имеет свои особенности, которые следует учитывать еще на стадии выбора решения. Ведь хороший специалист выбирает инструмент под задачу, а не пытается делать наоборот, признавая сильные и слабые стороны каждого решения.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Перед тем, как браться за настройку VPN-сервера на базе Mikrotik мы рекомендуем вам ознакомиться с нашим материалом: Производительность младших моделей Mikrotik hEX и hAP. Экспресс-тестирование. Если коротко: на моделях без аппаратной поддержки AES вы не получите для соединений L2TP/IPsec скоростей более 25-30 МБит/с, на моделях с поддержкой AES скорость упирается в 35-50 МБит/с. В большинстве случаев для сценария удаленного доступа этого достаточно, но все-таки данный момент обязательно следует иметь ввиду, чтобы не получить потом претензию, что Mikrotik работает плохо и этому объективно будет нечего противопоставить.
Что касается PPTP, то здесь все достаточно хорошо, даже недорогие модели роутеров позволяют достигать скоростей около 100 МБит/с, но при этом следует помнить, что PPTP имеет слабое шифрование и не считается безопасным в современных реалиях. Однако он может быть неплохим выбором, если вы хотите завернуть в него изначально защищенные сервисы, например, при помощи SSL.
Предварительная настройка роутера
Прежде чем начинать настройку VPN-сервера нужно определиться со структурой сети и выделить для удаленных клиентов пул адресов. Если брать сценарий удаленного доступа, то здесь есть два основных варианта: Proxy ARP, когда клиенты получают адреса из диапазона локальной сети и имеют доступ к ней без дополнительных настроек и вариант с маршрутизацией, когда клиентам выдаются адреса из диапазона не пересекающегося с локальной сетью, а для доступа в сеть на клиентах добавляются необходимые маршруты. В современных Windows-системах это можно автоматизировать при помощи PowerShell.
После того, как вы определились со структурой сети, следует перейти в IP — Pool и создать новый пул адресов для выдачи удаленным клиентам. Количество адресов в пуле должно соответствовать количеству планируемых VPN-клиентов, либо превышать его.
Эти же действия в терминале:
/ip pool
add name=vpn_pool1 ranges=192.168.111.141-192.168.111.149
Затем перейдем в PPP — Profiles и настроим профиль для нашего VPN-сервера, который будет содержать базовые настройки. Если вы настраиваете сразу и PPTP и L2TP-сервера, то можете использовать для них как общий профиль, так и создать отдельные. В случае с общим профилем они будут иметь общий адрес сервера и общий пул адресов. В данном разделе уже существуют два стандартных профиля default и default-encryption, поэтому при желании можете не создавать новые профили, а настроить имеющиеся.
На вкладке General задаем параметры: Local Address — локальный адрес сервера, должен принадлежать к тому же диапазону, что и пул адресов, который вы задали выше, Remote Address — адреса для выдачи удаленным клиентам, указываем в этом поле созданный пул.
Следящая вкладка — Protocols, здесь мы рекомендуем установить параметр Use Encryption в положение required, что будет требовать от клиента обязательного использования шифрования.
Чтобы добавить новый профиль в терминале выполните (в данном случае мы создаем профиль с именем vpn):
/ppp profile
add change-tcp-mss=yes local-address=192.168.111.140 name=vpn remote-address=vpn_pool1 use-encryption=required
Чтобы изменить существующий default-encryption:
/ppp profile
set *FFFFFFFE local-address=192.168.111.140 remote-address=vpn_pool1 use-encryption=required
Для default вместо set *FFFFFFFE укажите set *0:
/ppp profile
set *0 local-address=192.168.111.140 remote-address=vpn_pool1 use-encryption=required
Остальные параметры оставляем без изменений, для удаленных клиентов они не применяются (в том числе сжатие) и работают только при соединении между устройствами с RouterOS. Отсутствие сжатия также следует учитывать, особенно если ваши клиенты используют медленные каналы подключения, скажем 3G-модемы.
Теперь добавим пользователей, для этого откроем PPP — Secrets и создадим новую учетную запись. Обязательно заполняем поля: Name и Password, а также Profile, где указываем созданный на предыдущем шаге профиль, если профили клиента и сервера не будут совпадать — подключение окажется невозможным. Поле Service позволяет ограничить действие учетных данных только одним сервисом, для этого нужно указать его явно, если же вы хотите использовать одни учетную запись для всех видов подключения — оставьте значение по умолчанию any.
В терминале:
/ppp secret
add name=test1 password=123 profile=default-encryption service=pptp
При создании учетных данных уделите должное внимание политике паролей, особенно для PPTP.
Настройка PPTP-сервера
Настроить PPTP-сервер в RouterOS просто. Откройте PPP — Interface и нажмите кнопку PPTP Server, в открывшемся окне установите флаг Enabled, в поле Default Profile укажите созданный на подготовительном этапе профиль и в разделе Authentication оставьте только mschap2.
Это же действие в терминале:
/interface pptp-server server
set authentication=mschap2 default-profile=default-encryption enabled=yes
Следующим шагом следует разрешить подключения к нашему VPN-серверу в брандмауэре, для этого следует разрешить входящие подключения для порта 1723 TCP. Открываем IP — Firewall и создаем новое правило: Chain — input, Protocol — tcp, Dst. Port — 1723, в поле In. Interface указываем внешний интерфейс роутера, в нашем случае ether1. Так как действие по умолчанию — accept то просто сохраняем правило.
В терминале создать правило можно командой:
add action=accept chain=input dst-port=1723 in-interface=ether1 protocol=tcp
На этом настройку PPTP-сервера можно считать законченной, он готов принимать подключения.
Настройка L2TP/IPsec-сервера
Точно также, как и при настройке PPTP-сервера переходим в PPP — Interface и нажмите кнопку L2TP Server. В открывшемся окне ставим флаг Enabled, в Default Profile указываем созданный ранее профиль, а в Authentication оставляем только mschap2. Затем включаем использование IPsec — Use IPsec — yes и в поле IPsec Secret вводим предварительный ключ соединения:
Для включения сервера с указанными настройками в терминале выполните:
/interface l2tp-server server
set authentication=mschap2 enabled=yes default-profile=default-encryption ipsec-secret=myIPsecPreKey use-ipsec=yes
Обычно на этом инструкции по настройке L2TP-сервера заканчиваются, но если оставить все как есть, то у сервера будут достаточно слабые настройки шифрования, поэтому подтянем их до современного уровня. Для этого нам потребуется изменить параметры IPsec, так как L2TP сервер безальтернативно использует параметры по умолчанию будем менять именно их.
Переходим в IP — IPsec — Proposal и приводим набор настроек default к следующему виду: Auth. Algorithms — sha1, sha256, Encr. Algorithms — aes-128-cbc, aes-192-cbc, aes-256-cbc, PFS Group — ecp384.
Данные настройки в терминале:
/ip ipsec proposal
set [ find default=yes ] auth-algorithms=sha256,sha1 pfs-group=ecp384
Затем откроем IP — IPsec — Profiles и изменим настройки профиля default: Encryption Algorithm — aes256, DH Group — modp2048, ecp256, ecp384.
В терминале:
/ip ipsec profile
set [ find default=yes ] dh-group=ecp256,ecp384,modp2048 enc-algorithm=aes-256
Для окончания настройки разрешим подключения к L2TP-серверу в брандмауэре. Для этого нам понадобится создать два правила, первое должно разрешать подключения для протоколов L2TP (порт 1701 UDP), IKE (порт 500 UDP) и протокола NAT-T (порт 4500 UDP), второе для протокола 50 ESP (Encapsulating Security Payload). Переходим в IP — Firewall и создаем первое правило: Chain — input, Protocol — udp, Dst. Port — 500,1701,4500, в поле In. Interface указываем внешний интерфейс роутера, в нашем случае ether1. Затем второе: Chain — input, Protocol — ipsec-esp, In. Interface -внешний интерфейс (ether1). Так как действие по умолчанию accept достаточно просто сохранить правила.
Для терминала выполните следующие команды:
/ip firewall filter
add action=accept chain=input dst-port=500,1701,4500 in-interface=ether1 protocol=udp
add action=accept chain=input in-interface=ether1 protocol=ipsec-esp
На этом настройка L2TP/IPsec-сервера закончена.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.