Появилась необходимость подключиться к изолированному компьютеру (технологический) специалисту из зарубежья, причем на компьютере установлен какой-то специализированный Linux от которого, к тому же, нет пароля, только меню на экране.
*приведено к читаемому и рабочему виду с помощью Грока, за что и спасибо, описано Клаудем, идея и реализация моя.
Играться с промежуточным компьютером можно, НО
есть
4G-модем, бюджетный, просто дает интернет
и
Mikrotik hAP Lite - ультрабюджетный.
Зато есть где-то там, другой Микротик с выделенным IP, и извращенным админом, и так наш технологический компьютер подключается в сеть 192.168.1.х микротика, который образует туннель с базой, также туннель образует и специалист со своего зарубежья, и заходит на наш промкомпьютер специализированной программой.
Выбрано L2tp как простота реализации.
Анализ логики работы
Топология «звезда» (hub-and-spoke). Все клиенты подключаются только к центральному серверу — прямых туннелей между клиентами нет. Для связи MikroTik-клиент ↔ Windows-клиент трафик идёт через хаб: 192.168.1.199 → 192.168.166.1 → 192.168.166.x.
Стек протоколов. L2TP создаёт туннель на уровне 2 (PPP-сессия), IPsec шифрует этот туннель на уровне 3 (ESP + IKE). PPP внутри туннеля обеспечивает аутентификацию (MSCHAPv2/CHAP) и назначение адресов из пула vpn-pool.
Жизненный цикл соединения состоит из трёх фаз: (1) IKE-согласование (UDP 500/4500, PSK — предобщий ключ), (2) IPsec SA — установка шифрованного канала (протокол ESP), (3) L2TP + PPP поверх IPsec — туннель, аутентификация пользователя, получение IP из пула.
Маршрутизация. MikroTik-клиент получает адрес .166.x, но его локальная сеть 192.168.1.0/24 не анонсируется автоматически — для этого добавляется статический маршрут 192.168.166.0/24 via l2tp-to-hub на клиенте. Windows работает в режиме full-tunnel: весь трафик идёт через 192.168.166.1, что обеспечивает галочка «использовать шлюз по умолчанию».
Firewall-логика выстроена в два слоя: на сервере input-цепочка разрешает только служебные порты VPN (1701, 500, 4500, ESP), forward-цепочка разрешает трафик внутри interface-list=PPP-VPN. На MikroTik-клиенте правила forward разрешают двунаправленный обмен между туннелем и мостом LAN.
======================================
мини-шпаргалка по настройке L2TP/IPsec «звезды» на MikroTik (центральный сервер + MikroTik-клиент + Windows-клиент с full-tunnel), с акцентом на правильную последовательность и проверку перед применением.
1. Центральный сервер (L2TP-сервер)
Порядок выполнения:
1. Создать пул адресов для клиентов /ip pool add name=vpn-pool ranges=192.168.166.10-192.168.166.250
2. Создать / проверить профиль PPP
text
/ppp profile
add name=vpn-profile local-address=192.168.166.1 remote-address=vpn-pool \
use-encryption=required change-tcp-mss=yes only-one=no
(если профиль уже есть → set вместо add)
3. Включить L2TP-сервер + IPsec
text
/interface l2tp-server server
set enabled=yes default-profile=vpn-profile authentication=mschap2,chap \
use-ipsec=yes ipsec-secret=ВАШ_СЕКРЕТНЫЙ_КЛЮЧ
Создать пользователя для Windows text
/ppp secret
add name=win-user password=СильныйПароль service=l2tp profile=vpn-profile
Создать список интерфейсов PPP-VPN (если его ещё нет) text
/interface list print where name=PPP-VPN
→ если ничего не нашлось →
text
/interface list add name=PPP-VPN comment="VPN клиенты L2TP"
Привязать список к профилю (только после создания списка!) text
/ppp profile set [find name=vpn-profile] interface-list=PPP-VPN
Добавить базовые firewall-правила (input + forward) text
/ip firewall filter
add chain=input action=accept protocol=udp dst-port=1701,500,4500 comment="L2TP/IPsec"
add chain=input action=accept protocol=ipsec-esp
add chain=forward action=accept in-interface-list=PPP-VPN out-interface-list=PPP-VPN comment="VPN ↔ VPN"
MikroTik-клиент (тот, за которым 192.168.1.199) Порядок:
Создать L2TP-клиент text
/interface l2tp-client
add connect-to=ПУБЛИЧНЫЙ_IP_СЕРВЕРА user=имя_секрета password=пароль \
name=l2tp-to-hub use-ipsec=yes ipsec-secret=ВАШ_СЕКРЕТНЫЙ_КЛЮЧ \
add-default-route=no disabled=no
Дождаться подключения (Connected) /interface l2tp-client print
Добавить маршрут обратно к туннельной подсети text
/ip route add dst-address=192.168.166.0/24 gateway=l2tp-to-hub distance=1 check-gateway=ping
Разрешить трафик из туннеля в LAN и обратно text
/ip firewall filter
add chain=forward action=accept in-interface=l2tp-to-hub out-interface=bridge comment="туннель → LAN" place-before=0
add chain=forward action=accept in-interface=bridge out-interface=l2tp-to-hub comment="LAN → туннель" place-before=0
(bridge → замени на реальное имя интерфейса с 192.168.1.0/24)
5. Разрешить доступ к WebFig/Winbox с VPN (если нужно)
text
/ip firewall filter
add chain=input action=accept protocol=tcp dst-port=80,443,8291 \
in-interface=l2tp-to-hub comment="Web/Winbox из VPN" place-before=0
Убедиться, что masquerade только на WAN /ip firewall nat print → не должно быть masquerade на l2tp-to-hub
Windows-клиент
Создать VPN-соединение: L2TP/IPsec с предв. ключом
Сервер = публичный IP сервера
Тип входа = имя пользователя и пароль
Предварительный ключ = ВАШ_СЕКРЕТНЫЙ_КЛЮЧ
В свойствах соединения → IPv4 → Дополнительно → Поставить галочку «Использовать шлюз по умолчанию в удалённой сети»
Подключиться → проверить:
ipconfig → IP из 192.168.166.x
route print → default gateway = 192.168.166.1
ping 192.168.1.199 Краткая проверка после всего
Сервер: /interface l2tp-server print → connected клиенты
Сервер: /interface list member print where list=PPP-VPN → есть l2tp-in*
Клиент: /ip route print → есть 192.168.166.0/24 через l2tp-to-hub
Windows: tracert 192.168.1.199 → проходит через 192.168.166.1
======================================
Комментариев нет:
Отправить комментарий