Замечание! Информация устарела. Усовершенствованный подход можно посмотреть тут: Mikrotik. Защищаем RDP от брутфорса
Замучили меня брутфорсеры…. В секунду идёт по 3-4 попытки подбора паролей к Терминальному серверу.
И тут!!! Вдруг!!! Я вспомнил, что у меня же МикроТик стоит!!!!
А тут вот хорошая идея есть: https://wiki.mikrotik.com/wiki/Bruteforce_login_preve..
Короче, задал я перцу брутфорсерам сначала так:
/ip firewall filter
add action=drop chain=forward comment=»Drop RDP brute forcers» dst-port=3389 \
protocol=tcp src-address-list=rdp_blacklistadd action=add-src-to-address-list address-list=rdp_blacklist \
address-list-timeout=1h chain=forward comment=»If there were 6 attempts to\
\_connect, we block for 1 hour. (Two new packages per connection attempt)» \
connection-state=new dst-port=3389 protocol=tcp src-address-list=\
rdp_stage6add action=add-src-to-address-list address-list=rdp_stage6 \
address-list-timeout=1m chain=forward comment=»Sixth connection attempt» \
connection-state=new dst-port=3389 protocol=tcp src-address-list=\
rdp_stage5add action=add-src-to-address-list address-list=rdp_stage5 \
address-list-timeout=1m chain=forward comment=»Fifth connection attempt» \
connection-state=new dst-port=3389 protocol=tcp src-address-list=\
rdp_stage4add action=add-src-to-address-list address-list=rdp_stage4 \
address-list-timeout=1m chain=forward comment=»Fourth connection attempt» \
connection-state=new dst-port=3389 protocol=tcp src-address-list=\
rdp_stage3add action=add-src-to-address-list address-list=rdp_stage3 \
address-list-timeout=1m chain=forward comment=»Third connection attempt» \
connection-state=new dst-port=3389 protocol=tcp src-address-list=\
rdp_stage2add action=add-src-to-address-list address-list=rdp_stage2 \
address-list-timeout=1m chain=forward comment=»Second connection attempt» \
connection-state=new dst-port=3389 protocol=tcp src-address-list=\
rdp_stage1add action=add-src-to-address-list address-list=rdp_stage1 \
address-list-timeout=1m chain=forward comment=»First connection attempt» \
connection-state=new dst-port=3389 protocol=tcp
А потом подумал, и сделал вариант покороче:
/ip firewall filter
add action=jump chain=forward comment=\
«Go into the chain for detecting Bruteforcers» connection-state=new \
dst-port=3389 jump-target=BruteForcersDetect protocol=tcpadd action=accept chain=BruteForcersDetect comment=\
«Accept 10 new connections that occurred within 1 minute» dst-limit=\
1/1m,9,dst-address/1madd action=drop chain=BruteForcersDetect comment=»Drop Bruteforcers» \
src-address-list=BruteForcersadd action=add-src-to-address-list address-list=BruteForcers \
address-list-timeout=15m chain=BruteForcersDetect comment=\
«Adding an address to the list of Bruteforcers»add action=return chain=BruteForcersDetect comment=»End of chain and return.»
Второй вариант хоть и короче, но позволит при необходимости легко изменять количество попыток подбора паролей и пропускать запросы с адресов из «белого списка».
Ура!!!
PS.
!!! В новости есть несколько ошибок и недочётов, но общее направление «куда копать» указано верно !!!