Всем привет! Я не так давно начал знакомство с Mikrotik, поэтому возник ряд вопросов. В частности, недавно я наткнулся на ряд неплохих примеров по фаерволу на Mikrotik Wiki, которые позволяют обнаружить попытки сканирования, брутфорса и такого прочего. В целом, все эти правила нацелены на определение определенной активности, обнаружения IP взломщика и добавлением его в черный список. Все хорошо, но какой в этом смысл в контексте ряда правил, где последнее в цепочке -- drop. Я в том плане, что смысл пытаться выловить сканирование трафика, если все равно все дропнется в конце? Почему нельзя первым правилом сделать разрешение на прием пакетов от проверенных адресов, а уже потом -- дропать все остальное? Интересны ваши мысли.
Если правило срабатывает на accept, drop или reject, то обработка цепочки считается завершенной. Т.е. до самого последнего всеобъемлющего дропа дело может и не дойти.
Спасибо за ответ. Наверно, я немного криво выразился. Попробую объяснить на примере из MikrotikWiki: Код: /ip firewall filter add chain=forward comment="Accept established and related packets" connection-state=established,related add action=drop chain=forward comment="Drop invalid packets" connection-state=invalid add action=drop chain=forward comment="Drop new connections from internet which are not dst-natted" connection-nat-state=!dstnat connection-state=new in-interface=WAN add action=drop chain=forward comment="Drop all packets from public internet which should not exist in public network" in-interface=WAN src-address-list=NotPublic add action=drop chain=forward comment="Drop all packets from local network to internet which should not exist in public network" dst-address-list=NotPublic in-interface=LAN add action=drop chain=forward comment="Drop all packets in local network which does not have local network address" in-interface=LAN src-address=!192.168.88.0/24 А теперь обратите внимание, что после всех этих правил у меня есть одно drop-правило, которое просто срезает все оставшиеся соединения, грубо говоря. Собственно, мне было интересно, есть ли смысл в таком скрипте, с учетом того что последние правила можно выразить как Код: /ip firewall filter add action=drop chain=forward comment="Drop all the rest" В чем смысл прописывать правила, если последнее просто дропнет все? Такая ситуация встречается достаточно часто в примерах, и я просто не понимаю -- зачем?
Ну в этом конкретном примере -- да, нет никакого смысла, даже скрытого) Скорее всего, это писали для того, чтобы любой мог внести эти правила в свои фильтры без изменений. А вот в реальной жизни в авангарде -- правила на accept, а уже потом, в самом конце, благополучно отсекается все, что мы не accept. Вот, к примеру: Код: /ip firewall filter add chain=forward comment="Accept established and related packets" connection-state=established,related add chain=forward comment="Accept new connections from local network addresses to internet which should exist in public network" connection-state=new src-address=192.168.88.0/24 dst-address-list=!NotPublic in-interface=LAN add chain=forward comment="Accept new connections from public internet which should exist in public network" connection-state=new src-address-list=!NotPublic in-interface=WAN add action=drop chain=forward comment="Drop all the rest" А вообще, на будущее, лучше группировать правила, а не писать их сплошняком: Код: /ip firewall filter add chain=forward comment="Accept established and related packets" connection-state=established,related add action=jump chain=forward comment="Go to LAN related checks" connection-state=new in-interface=LAN jump-target="check-lan" add action=jump chain=forward comment="Go to WAN related checks" connection-state=new in-interface=WAN jump-target="check-wan" add action=drop chain=forward comment="Drop all the rest" add chain="check-lan" comment="Accept new connections from local network addresses to internet which should exist in public network" src-address=192.168.88.0/24 dst-address-list=!NotPublic add chain="check-wan" comment="Accept new connections from public internet which should exist in public network" src-address-list=!NotPublic Тут, если в цепочке, на которую мы прыгнули, никаких дропов, то мы возвращаемся к месту прыжка и идем дальше по списку. Кажется запутанным, но так гораздо проще расширять лист правил. Ну и людям проще читать)
Ага, теперь я понял. Т.е. мы можем выбрать, какие пакеты нам принимать, а остальные просто срезать. Более-менее разобрался, спасибо большое!