Mikrotik SSH access with PIN-code & Fail2Ban

Mikrotik SSH access with PIN-code & Fail2Ban

Илья Шумилкин @cgood.ru
Mikrotik firewall filter example of SSH access with PIN-code + Fail2Ban

Почему

В случае, когда к вашему маршрутизатору на SSH "стучится" большое количество IP адресов (bruteforce или SSH DDoS с IP spoofing'ом), защита одним Fail2Ban не помогает, address-lists набивается тысячами записей и CPU греется на 100%.

Варианты

  • Можно ограничиться ACL с доверенными IP сетями - это удобно когда Вы постоянно в них работаете.
  • Можно вешать VPN и ходить через него, НО, как показывает практика - это сразу несколько точек отказа (VPN клиент, Internet канал, VPN сервер).
  • Port knocking ... см. далее.
  • Прочие варианты

Port knocking

В данной заметке у нас TCP порты (бывает ICMP с заданным размером пакета). Принцип работы: чтобы открыть порт доступа (SSH TCP 22) необходимо в заданный интервал времени в правильной последовательности "пошупать" TCP порты.

Config

/ip firewall filter

# Отправляем на обработку в разные цепочки правил

add action=jump chain=input connection-state=new dst-port=22 jump-target=f2b protocol=tcp src-address-list=pincode_accept dst-address=10.20.3.15

add action=jump chain=input connection-state=new dst-port=22,1020,315 jump-target=pin protocol=tcp dst-address=10.20.3.15

# Fail2Ban Chain

add chain=f2b action=drop src-address-list=f2b_drop

add chain=f2b action=add-src-to-address-list address-list=f2b_drop address-list-timeout=10m src-address-list=f2b-3

add chain=f2b action=add-src-to-address-list address-list=f2b-3 address-list-timeout=1m src-address-list=f2b-2

add chain=f2b action=add-src-to-address-list address-list=f2b-2 address-list-timeout=1m src-address-list=f2b-1

add action=accept chain=f2b

#

add chain=pin action=add-src-to-address-list address-list=f2b-1 address-list-timeout=1m src-address-list=pincode_accept

add chain=pin action=add-src-to-address-list address-list=pincode_accept address-list-timeout=30s dst-port=315 protocol=tcp src-address-list=\

  pincode-2

add chain=pin action=add-src-to-address-list address-list=pincode-2 address-list-timeout=30s dst-port=1020 protocol=tcp src-address-list=pincode-1

add chain=pin action=add-src-to-address-list address-list=pincode-1 address-list-timeout=30s dst-port=22 protocol=tcp

#

Nmap

nmap -sT -p22 -Pn 10.20.3.15

nmap -sT -p22,1020,315 -Pn --max-retries=0 10.20.3.15

RoyalTSX



Report Page