Проблемы с IPSEC VPN

Обсуждение ПО и его настройки
Ответить
bderbert
Сообщения: 2
Зарегистрирован: 22 апр 2018, 07:55

Доброе время суток! Внезапно понадобилось настроить туннель site-to-site между двумя микротиками через ipsec.
После настройки повылезали проблемы следующего рода: связность сетей есть, устройства доступны и пингуются, однако не работают некоторые защищенные соединения. Например не проходят RDP соединения(что странно не все) между сетями - соединение глохнет на шаге "настройка удаленного сеанса" и далее выпадает "Произошла внутренняя ошибка". SMB работает только в одну сторону: можно зайти на шару и стянуть файлик, но залить не получится(с файловыми правами проблем нет).

Возможные важные нюансы. Т.к. замену оборудования проводили в срочном порядке, то все изменения вносились поверх quick set'a (настройка вся производится удаленно), соответственно в конфигурации есть заглушки defconf.

(Далее настройки привожу с только одного микротика, т.к. грешу в основном на него(Ко второму микротику проведено много ipsec-тоннелей, но проблемы возникли только при попытке подружить его с микротиком). Если надо, разумеется, выгружу со второго настройки.)
Настройки тоннеля:
/ip ipsec peer print
Flags: X - disabled, D - dynamic, R - responder
0 address="" auth-method=pre-shared-key secret="" generate-policy=no policy-template-group=default exchange-mode=main
send-initial-contact=yes nat-traversal=yes proposal-check=obey hash-algorithm=sha1 enc-algorithm=des dh-group=modp1024 lifetime=1d dpd-interval=2m
dpd-maximum-failures=5

/ip ipsec policy print
Flags: T - template, X - disabled, D - dynamic, I - invalid, A - active, * - default
0 T * group=default src-address=::/0 dst-address=::/0 protocol=all proposal=default template=yes

1 A src-address=192.168.10.0/24 src-port=any dst-address=192.168.100.0/24 dst-port=any protocol=all action=encrypt level=require ipsec-protocols=esp
tunnel=yes sa-src-address="" sa-dst-address="" proposal=proposal-PG ph2-count=1

/ip ipsec proposal print
Flags: X - disabled, * - default
0 * name="default" auth-algorithms=sha1 enc-algorithms=aes-256-cbc,aes-192-cbc,aes-128-cbc lifetime=30m pfs-group=modp1024

1 name="proposal-PG" auth-algorithms=sha1 enc-algorithms=des lifetime=30m pfs-group=none
Очень много времени провел в фаерволе в надежде отмониторить нужные пакеты, поэтому фильтров больше чем надо и расположены они не в оптимальном порядке:
/ip firewall filter print
Flags: X - disabled, I - invalid, D - dynamic
0 D ;;; special dummy rule to show fasttrack counters
chain=forward action=passthrough

1 chain=forward action=accept src-address=192.168.10.104 dst-address=!192.168.100.175 log=yes log-prefix=""

2 ;;; defconf: accept ICMP
chain=input action=accept protocol=icmp

3 chain=input action=accept protocol=udp dst-address=46.50.135.242 dst-port=500 log=no log-prefix=""

4 chain=input action=accept protocol=ipsec-esp dst-address=46.50.135.242 log=no log-prefix=""

5 chain=input action=accept protocol=ipsec-ah dst-address=46.50.135.242 log=no log-prefix=""

6 chain=forward action=accept src-address=192.168.10.0/24 dst-address=192.168.100.0/24 log=no log-prefix=""

7 chain=forward action=accept src-address=192.168.100.0/24 dst-address=192.168.10.0/24 log=no log-prefix=""

8 chain=input action=accept src-address=195.208.129.245 log=no log-prefix=""

9 X chain=forward action=passthrough dst-address=192.168.100.0/24 log=yes log-prefix=""

10 ;;; defconf: accept established,related,untracked
chain=input action=accept connection-state=established,related,untracked

11 chain=input action=accept protocol=tcp dst-port=8291 log=no log-prefix=""

12 ;;; defconf: accept out ipsec policy
chain=forward action=accept ipsec-policy=out,ipsec

13 ;;; defconf: accept in ipsec policy
chain=forward action=accept ipsec-policy=in,ipsec

14 ;;; defconf: accept established,related, untracked
chain=forward action=accept connection-state=established,related,untracked

15 ;;; defconf: drop invalid
chain=input action=drop connection-state=invalid log=no log-prefix=""

16 ;;; defconf: drop all not coming from LAN
chain=input action=drop in-interface-list=!LAN log=no log-prefix=""

17 ;;; defconf: fasttrack
chain=forward action=fasttrack-connection connection-state=established,related connection-mark=!ipsec_mark log=no log-prefix=""

18 ;;; defconf: drop invalid
chain=forward action=drop connection-state=invalid log=no log-prefix=""

19 X ;;; defconf: drop all from WAN not DSTNATed
chain=forward action=drop connection-state=new connection-nat-state=!dstnat in-interface-list=WAN log=no log-prefix=""
NAT:
/ip firewall nat print
Flags: X - disabled, I - invalid, D - dynamic
0 chain=srcnat action=accept src-address=192.168.10.0/24 dst-address=192.168.100.0/24 log=no log-prefix="PG"

1 chain=srcnat action=accept src-address=192.168.100.175 dst-address=192.168.10.0/24 log=no log-prefix="175---"

2 ;;; defconf: masquerade
chain=srcnat action=masquerade dst-address=!192.168.100.0/24 out-interface-list=WAN log=no log-prefix="" ipsec-policy=out,none

3 chain=dstnat action=dst-nat to-addresses=192.168.10.5 to-ports=3389 protocol=tcp dst-port=3390 log=no log-prefix=""
Буду благодарен за любые советы...


bderbert
Сообщения: 2
Зарегистрирован: 22 апр 2018, 07:55

Сам спросил, сам себе и отвечу.
В моем случае проблема была в жирных tcp пакетах, которые почему-то некорректно проходили через устройство(если кто теоретически объяснит - буду благодарен). Решил следующим образом через mangle:
chain=forward action=change-mss new-mss=1360 passthrough=yes tcp-flags=syn protocol=tcp src-address=192.168.10.0/24 dst-address=192.168.100.0/24 tcp-mss=!0-1360 log=no log-prefix=""
Если же у кого-то возникнет схожая проблема в первую очередь надо смотреть на фильтры фаервола. Например, пишут, что туннельный трафик некорректно проходит через fasttrack, и его из обработки fasttrack'a нужно исключать.


Ответить