Skip to content

Instantly share code, notes, and snippets.

@nskforward
Last active January 11, 2026 04:21
Show Gist options
  • Select an option

  • Save nskforward/b1a563cf364d00a9265244e22da9604c to your computer and use it in GitHub Desktop.

Select an option

Save nskforward/b1a563cf364d00a9265244e22da9604c to your computer and use it in GitHub Desktop.
Настройка VPN на роутере Mikrotik через Linux по протоколу IPsec

Настройка VPN IPsec IKE2 на роутере Mikrotik

Предисловие

У меня так и не получилось завести эту конфигурацию. Есть подозрение, что протокол блокируется на стороне провайдера интернета.

Введение

Пререквизиты:

  • Роутер Mikrotik с RouterOS v7.20 или новее
  • Сервер Linux (Ubuntu 24) с белым IP
  • Ваш провайдер блокирует протокол Wireguard (более предпочтителен для VPN)
  • Вы не хотите использовать экзотические решения через Containers (такие как VLESS)
  • У вас слабенький роутер, нужно сохранить аппаратное ускорение

Схема работы:

1. Клиент домашней сети (например телефон) пытается зайти на заблокированный ресурс 
2. Роутер Mikrotik перехватывает сетевые пакеты до этого ресурса и заворапчивает трафик в зашифрованный туннель
3. Далее трафик идёт через туннель до нашего VPN сервера Linux (Ubuntu 24), с которого далее до запрашиваемого ресурса.

Настройка VPN сервера Ubuntu 24

  1. Установка StrongSwan
sudo apt update && sudo apt install strongswan strongswan-pki
  1. Создание конфигурационного файла /etc/ipsec.conf:
config setup
    charondebug="ike 2, knl 2"

conn %default
    ikelifetime=24h
    lifetime=8h
    rekeymargin=3m
    keyingtries=1
    keyexchange=ikev2
    authby=secret

conn mikrotik-to-linux
    left=ВАШ_СТАТИЧЕСКИЙ_IP   # Белый IP Linux-сервера
    leftid=@server
    leftsubnet=0.0.0.0/0      # Сервер готов маршрутизировать любой трафик
    leftfirewall=yes
    right=%any                # Любой клиент (Mikrotik)
    rightid=%any
    rightsourceip=10.10.10.0/24  # Пул адресов для клиентов
    auto=add

Обратите внимание, что вам нужно заменить ВАШ_СТАТИЧЕСКИЙ_IP на белый IP вашего Linux сервера.

  1. Создание файла с секретным ключом /etc/ipsec.secrets:
: PSK "ВАШ_СЕКРЕТНЫЙ_КЛЮЧ"

Обратите внимание, что вам нужно заменить ВАШ_СЕКРЕТНЫЙ_КЛЮЧ на любую другую случайную строку.

  1. Перезапускаем сервис и включим автозапуск
sudo systemctl restart strongswan-starter
sudo systemctl enable strongswan-starter
  1. Проверим логи, не должно быть ошибок:
sudo journalctl -u strongswan-starter -n 50

Настройка роутера Mikrotik

  1. Создаём новый /IP/IPsec/Proposal
Name = linux-tunnel
Auth. Algorithms = sha256
Encr. Algorithms = aes-256-gcm,aes-256-cbc
Lifetime = 08:00:00
PFS Group = modp2048
  1. Создаём новый /IP/IPsec/Profile
Name = linux-tunnel
Hash Algorithms = sha256
PRF Algorithms = auto
Encryption Algorithm = aes-256
DH Group = modp2048
Proposal Check = obey
Lifetime = 1d
Lifebytes оставить пустым
NAT Traversal = yes
DPD Interval = 30s
DPD Maximum Failures = 4
  1. Создаём новый /IP/IPsec/Peer
Name = vpn-server1
Address = СТАТИЧЕСКИЙ_IP_LINUX_СЕРВЕРА
Port = 500
Local Address оставить пустым
Profile = linux-tunnel
Exchange Mode = IKE2
Passive = no
Send INITIAL_CONTACT = yes
  1. Создаём новый /IP/IPsec/Identity
Peer = vpn-server1
Auth Method = pre shared key
Secret = ВАШ_СЕКРЕТНЫЙ_КЛЮЧ_С_LINUX_СЕРВЕРА
Policy Template Group = default
Notrack Chain оставить пустым
My ID Type = auto
Remote ID Type = auto
Match By = remote id
Mode Configuration = request-only
Generate Policy = no
  1. Создаём новый /IP/IPsec/Policy
Peer = vpn-serve1
Tunnel = yes
Src. Address = ПОДСЕТЬ_ВАШЕЦ_ДОМАШНЕЙ_СЕТИ (чаще всего 192.168.88.0/24)
Src. Port оставить пустым
Dst. Address = 10.10.10.1/32
Dst. Port оставить пустым
Protocol = all
Template = no
Action = encrypt
Level = require
IPsec Protocols = esp
Proposal = linux-tunnel
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment