Замечание! Информация устарела. Усовершенствованный подход можно посмотреть тут: 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.
!!! В новости есть несколько ошибок и недочётов, но общее направление “куда копать” указано верно !!!