Информация
Настройка
Новости
Контакты
Новинка
Распродажа
Оплата
Доставка
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • Changelogs
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    RouterOS
    Правило брандмауэра для ICMP

    Правило брандмауэра для ICMP

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Правило брандмауэра для ICMP, RouterOS
     
    kaseri
    Guest
    #1
    0
    23.03.2015 04:37:00
    Думаю, у меня правильно настроено правило ICMP в файрволе, но хочу проконсультироваться с другими, прежде чем применять его. Я бы хотел сделать следующее:

    - Разрешить ICMP-запросы, исходящие с любого хоста в моей локальной сети, к любому другому хосту в этой же сети.
    - Разрешить ICMP-запросы, исходящие с любого хоста моей локальной сети в интернет и обратно.
    - Блокировать все ICMP-запросы, которые не исходят из моей локальной сети (например, входящие через шлюз).

    Правила файрвола:

    0    chain=input action=accept protocol=icmp src-address-list=LAN log=no log-prefix=""
    1    ;;; Drop Invalid Input Connections chain=input action=drop connection-state=invalid log=no log-prefix=""
    2    ;;; Drop Invalid Forward Connections chain=forward action=drop connection-state=invalid log=no log-prefix=""
    3    ;;; Accept Input From LAN chain=input action=accept src-address-list=LAN log=no log-prefix=""
    4    ;;; Accept Established Connections chain=input action=accept connection-state=established log=no log-prefix=""
    5    ;;; Drop Everything Else chain=input action=drop log=no log-prefix=""
    6    ;;; Accept New Connections From LAN chain=forward action=accept connection-state=new src-address-list=LAN log=no log-prefix=""
    7    ;;; Accept Related Conncetions chain=forward action=accept connection-state=related log=no log-prefix=""
    8    ;;; Accept Established Conncetions chain=forward action=accept connection-state=established log=no log-prefix=""
    9    ;;; Drop All Other Forward Traffic chain=forward action=drop log=no log-prefix=""

    Вопросы следующие: учитывая мои правила файрвола, кажется ли вам, что это лучший способ реализовать правило для ICMP? Нужно ли менять порядок правил?
     
     
     
    witblitz
    Guest
    #2
    0
    10.09.2015 11:10:00
    Привет, ZeroByte! Ты явно разбираешься в теме, так что надеюсь, не против, что я воспользуюсь твоей помощью здесь. Это весь твой список правил FW для дома? Как аккуратно! Я новичок в Mikrotik и стараюсь убедиться, что у меня всё надежно защищено. Единственное отличие — я подключаюсь по PPPoE с Mikrotik через ADSL-модем в режиме моста. Ты бы добавил какие-нибудь ещё правила для безопасности в моей ситуации? Ведь мой Mikrotik сейчас по сути в публичной сети… Ещё у меня есть 2 правила, которые разрешают «established/related» подключения — одно для input, другое для forward. Есть ли разница, если на обоих правилах стоят галочки? Я заметил, что ты и многие другие делают отдельные правила — одно для established, другое для related. Также видел, что ты не используешь fasttrack. Может, это потому, что функция новая. У меня fasttrack стоит прямо вверху списка. У меня версия 6.32.1. Заранее спасибо! WB
     
     
     
    ZeroByte
    Guest
    #3
    0
    03.12.2015 15:18:00
    Без проблем, всегда рад помочь, и спасибо. (В последнее время был занят другими делами, поэтому давно не заходил сюда, извиняюсь.) Нет, уровень 2 не важен — PPPoE, L2TP, raw ethernet, 802.1Q и т.д., все это одинаково, потому что IP-файрвол в основном работает на уровне 3. Просто убедись, что правила для «wan interface» ссылаются на виртуальный интерфейс pppoe, а не на физический ethernet.

    Да, можно использовать established и related в одном правиле — когда я писал свои правила, это были не галочки, а селекторы, которые требовали создавать два отдельных правила. Рекомендую отмечать оба в одном правиле. Но при этом тебе нужны отдельные правила для цепочек input и forward.

    Что касается fast track — эта функция появилась примерно в то время, когда я перестал тут часто появляться, так что с ней не игрался. Но, судя по тому, что я читал, это, похоже, лучший вариант для производительности.
     
     
     
    witblitz
    Guest
    #4
    0
    18.01.2016 10:19:00
    Классно. Спасибо за помощь.
     
     
     
    Revelation
    Guest
    #5
    0
    24.01.2016 01:17:00
    Единственное, что я сделал сверх того, что сделал Zerobyte — это заблокировал все сети Министерства обороны США. Ты бы удивился, сколько всего пытается связаться с этими сетями. Даже мой гаражный дверь с Wi-Fi пытается достучаться до сети 6.0.0.0/8.
     
     
     
    smash102
    Guest
    #6
    0
    06.02.2016 21:56:00
    Знаю, что немного опоздал к разговору, но начал играться с IPv6 в своей MT-лаборатории. Очень не хочется оставлять входящую цепочку открытой для ВСЕГО ICMP, но код MT для IPv6 почему-то не работает как надо. По крайней мере, я пока не нашёл правильный баланс. Посмотрите материал от SANS: https://www.sans.org/reading-room/whitepapers/threats/icmp-attacks-illustrated-477 Руководство по ICMPv6 от SANS: https://www.sans.org/reading-room/whitepapers/detection/complete-guide-ipv6-attack-defense-33904 Вот почему разрешать ICMP можно, но это надо делать под защитой файрвола. Не весь ICMP — это хорошо, но и отсутствие ICMP тоже плохо. Это одна из тех вещей, без которых не обойтись, если хочешь и удобно отлаживать, и поддерживать, при этом сохранив безопасность. Моя цель: ограничить входящие подключения с WAN; ограничить тип входящих подключений с WAN до тех, которые можно безопасно мониторить и которые с меньшей вероятностью взломают; ограничить исходящие подключения с LAN, чтобы не участвовать в атаках, если что-то проникнет внутрь или запустится на внутреннем компьютере. Напишите, что думаете.
     
     
     
    smash102
    Guest
    #7
    0
    06.02.2016 22:26:00
    В продолжение моего предыдущего поста, вот мои настройки Firewall для IPv6:

    /ipv6 firewall filter  
    add chain=forward comment="Test Permit Any" disabled=yes  
    add chain=input comment="Test Permit Any" disabled=yes  
    add action=drop chain=input comment="Отбрасывать недействительные соединения на входящих цепочках" connection-state=invalid  
    add action=drop chain=input comment="Отбрасывать из динамического списка Blocked6" src-address-list=Blocked6  
    add action=drop chain=forward comment="Отбрасывать из динамического списка Blocked6" src-address-list=Blocked6  
    add action=add-dst-to-address-list address-list=Blocked6 address-list-timeout=1w chain=input comment="Блокировать brute-force атаки" connection-limit=50,128 in-interface=ether1-gateway protocol=tcp  
    add action=add-dst-to-address-list address-list=Blocked6 address-list-timeout=1w chain=input comment="Блокировать brute-force атаки" connection-limit=50,128 in-interface=ether1-gateway protocol=udp  
    add chain=input comment="Разрешить установленные соединения" connection-state=established  
    add chain=input comment="Разрешить родственные соединения" connection-state=related  
    add chain=input comment="Клиент DHCP для маршрутизатора и передача префикса клиентам" dst-port=546-547 protocol=udp ICMPv6 input accept and rate limit forward to Jump:  
    add action=jump chain=input comment="Разрешить ограниченный ICMP" in-interface=ether1-gateway jump-target=icmp limit=50/5s,5:packet protocol=icmpv6  
    add chain=input comment="Разрешить ограниченный ICMP" in-interface=ether2-master-local limit=50/5s,5:packet protocol=icmpv6  
    add chain=forward comment="Разрешить установленные соединения" connection-state=established  
    add chain=forward comment="Разрешить родственные соединения" connection-state=related  
    add chain=forward comment="Разрешить любой доступ в интернет" out-interface=ether1-gateway  

    Маркировка QoS из определённых Mangles (работа в процессе):  
    add action=jump chain=forward jump-target=tcp protocol=tcp  
    add action=jump chain=forward jump-target=icmp protocol=icmpv6  
    add action=jump chain=forward jump-target=udp protocol=udp  
    add action=drop chain=forward connection-state=invalid  

    Отбрасывание Bogo и State для базового списка:  
    add action=drop chain=forward comment="Bogo Drop" src-address=::/96  
    add action=drop chain=forward comment="Bogo Drop" src-address=::/128  
    add action=drop chain=forward comment="Bogo Drop" src-address=::1/128  
    add action=drop chain=forward comment="Bogo Drop" src-address=::ffff:0.0.0.0/96  
    add action=drop chain=forward comment="Bogo Drop" src-address=::224.0.0.0/100  
    add action=drop chain=forward comment="Bogo Drop" src-address=::/104  
    add action=drop chain=forward comment="Bogo Drop" src-address=::255.0.0.0/104  
    add action=drop chain=forward comment="Bogo Drop" src-address=::/8  
    add action=drop chain=forward comment="Bogo Drop" src-address=200::/7  
    add action=drop chain=forward comment="Bogo Drop" src-address=3ffe::/16  
    add action=drop chain=forward comment="Bogo Drop" src-address=2001:db8::/32  
    add action=drop chain=forward comment="Bogo Drop" src-address=2002:e000::/20  
    add action=drop chain=forward comment="Bogo Drop" src-address=2002:7f00::/24  
    add action=drop chain=forward comment="Bogo Drop" src-address=2002::/24  
    add action=drop chain=forward comment="Bogo Drop" src-address=2002:ff00::/24  
    add action=drop chain=forward comment="Bogo Drop" src-address=2002:a00::/24  
    add action=drop chain=forward comment="Bogo Drop" src-address=2002:ac10::/28  
    add action=drop chain=forward comment="Bogo Drop" src-address=2002:c0a8::/32  
    add action=drop chain=forward comment="Bogo Drop" src-address=fc00::/7  
    add action=drop chain=forward comment="Bogo Drop" src-address=fe80::/10  
    add action=drop chain=forward comment="Bogo Drop" src-address=fec0::/10  
    add action=drop chain=forward comment="Bogo Drop" src-address=ff00::/8  

    Отказ в доступе по TCP:  
    add action=drop chain=tcp comment="запрет TFTP6" dst-port=69 protocol=tcp  
    add action=drop chain=tcp comment="запрет RPC portmapper" dst-port=111 protocol=tcp  
    add action=drop chain=tcp comment="запрет RPC portmapper" dst-port=135 protocol=tcp  
    add action=drop chain=tcp comment="запрет NBT" dst-port=137-139 protocol=tcp  
    add action=drop chain=tcp comment="запрет cifs" dst-port=445 protocol=tcp  
    add action=drop chain=tcp comment="запрет NFS" dst-port=2049 protocol=tcp  
    add action=drop chain=tcp comment="запрет NetBus" dst-port=12345 protocol=tcp  
    add action=drop chain=tcp comment="запрет NetBus" dst-port=20034 protocol=tcp  
    add action=drop chain=tcp comment="запрет BackOriffice" dst-port=3133 protocol=tcp  
    add action=drop chain=tcp comment="запрет DHCP" dst-port=67-68 protocol=tcp  

    Отказ в доступе по UDP:  
    add action=drop chain=udp comment="запрет TFTP6" dst-port=69 protocol=udp  
    add action=drop chain=udp comment="запрет RPC portmapper" dst-port=111 protocol=udp  
    add action=drop chain=udp comment="запрет RPC portmapper" dst-port=137-139 protocol=udp  
    add action=drop chain=udp comment="запрет NFS" dst-port=2049 protocol=udp  
    add action=drop chain=udp comment="запрет BackOriffice" dst-port=3133 protocol=udp  

    Правила разрешения ICMPv6:  
    add chain=icmp comment="Echo Request" icmp-options=128:0 protocol=icmpv6  
    add chain=icmp comment="Echo Reply" icmp-options=129:0 protocol=icmpv6  
    add chain=icmp comment="Недоступен пункт назначения" icmp-options=1:0 protocol=icmpv6  
    add chain=icmp comment="Превышен лимит 1" icmp-options=3:1 protocol=icmpv6  
    add chain=icmp comment="Превышен лимит 4" icmp-options=3:4 protocol=icmpv6  
    add chain=icmp comment="Плохой заголовок" icmp-options=4:0 protocol=icmpv6  
    add chain=icmp comment="Пакет слишком большой" icmp-options=2:0 protocol=icmpv6  

    Отбрасывать весь ICMP трафик, не разрешённый выше:  
    add action=drop chain=icmp protocol=icmpv6  

    Правила Cachall для отслеживания состояния:  
    add action=drop chain=input  
    add action=drop chain=forward disabled=yes
     
     
     
    barkas
    Guest
    #8
    0
    06.02.2016 22:27:00
    Кстати, для этого есть RFC. Потому что если блокировать некоторые из этих вещей, IPv6 просто перестанет работать. Вот мои рабочие правила для IPv6, которые в основном реализуют этот RFC:

    /ipv6 firewall address-list  
    add address=fe80::/64 list=link-local  

    /ipv6 firewall filter  
    add chain=establishedaccept connection-state=established,related  
    add action=jump chain=forward jump-target=establishedaccept  
    add action=jump chain=forward jump-target=icmpv6accept  
    add chain=icmpv6accept icmp-options=0 protocol=icmpv6  
    add chain=icmpv6accept icmp-options=1 protocol=icmpv6  
    add chain=icmpv6accept icmp-options=2 protocol=icmpv6  
    add chain=icmpv6accept icmp-options=3 protocol=icmpv6  
    add chain=icmpv6accept icmp-options=11:0-1 protocol=icmpv6  
    add chain=icmpv6accept icmp-options=12:0-2 protocol=icmpv6  
    add chain=icmpv6accept icmp-options=135 protocol=icmpv6  
    add chain=icmpv6accept icmp-options=136 protocol=icmpv6  
    add chain=icmpv6accept protocol=icmpv6 src-address-list=link-local  
    add action=jump chain=input jump-target=icmpv6accept
     
     
     
    smash102
    Guest
    #9
    0
    07.02.2016 05:17:00
    barkas, спасибо за отзыв. Я изучил Type 0 — это зарезервированный тип, но в RFC не было ясно, для чего он используется. Если у тебя есть какая-то информация о том, почему ты его разрешаешь, мне было бы интересно узнать. Используя твой код как основу, ссылки SANS, а также RFC4884/4443/792, я изменил свои правила следующим образом:

    add chain=icmp comment="Echo Request" icmp-options=128 limit=1,5:packet protocol=icmpv6  
    add chain=icmp comment="Destination Unreachable" icmp-options=1 protocol=icmpv6  
    add chain=icmp comment="Limit Exceeded" icmp-options=3 protocol=icmpv6  
    add chain=icmp comment="Time Exceeded" icmp-options=11:0-1 protocol=icmpv6  
    add chain=icmp comment="Parameter Problem" icmp-options=12:0-2 protocol=icmpv6  
    add chain=icmp comment="Neighbor Solicitation" icmp-options=135 protocol=icmpv6  
    add chain=icmp comment="Neighbor Advertisement" icmp-options=136 protocol=icmpv6  
    add action=drop chain=icmp protocol=icmpv6  

    И я прохожу все IPv6 тестовые сайты, которые смог найти, при этом блокируя то, что нужно блокировать.
     
     
     
    barkas
    Guest
    #10
    0
    07.02.2016 08:16:00
    Хороший момент, не помню точно. Придётся ещё раз проверить. RFC, который я использовал, — 4890. ИЗМЕНЕНИЕ: Мне кажется, что твои коды ICMPv6 не совсем верные (у меня, кстати, тоже, кажется, перепутал с ICMPv4). Вот новая версия (у меня пока нет IPv6, поэтому на форварде у меня стоит дефолтный drop):

    /ipv6 firewall address-list  
    add address=fe80::/64 list=link-local  

    /ipv6 firewall filter  
    add chain=establishedaccept connection-state=established,related  
    add chain=icmpv6accept comment="dest unreach" icmp-options=1 protocol=icmpv6  
    add chain=icmpv6accept comment="packet too big" icmp-options=2 protocol=icmpv6  
    add chain=icmpv6accept comment="limit exceeded" icmp-options=3:0-1 protocol=icmpv6  
    add chain=icmpv6accept comment="bad header" icmp-options=4:0-2 protocol=icmpv6  
    add chain=icmpv6accept comment=link-local protocol=icmpv6 src-address-list=link-local  
    add action=jump chain=forward jump-target=establishedaccept  
    add action=jump chain=forward jump-target=icmpv6accept  
    add action=drop chain=forward  
    add action=jump chain=input jump-target=icmpv6accept
     
     
     
    smash102
    Guest
    #11
    0
    09.02.2016 18:45:00
    Возможно, это стоит обсудить в другой теме, но я просто хотел быстро поделиться наблюдением. Пока тестировал правила файрвола для IPv6, наткнулся на своего рода проверку. Полностью отключил IPv4 на трёх своих тестовых машинах, а RB750GL, который я использую, автоматически переключился на 6to4, так что компьютеры с IPv4 могут пинговать машины с IPv6 и наоборот. Брокер интерфейса 6to4 в последнем коде (6.34.1) кажется работает примерно так же, как в Cisco ISR.
     
     
     
    lgkahn
    Guest
    #12
    0
    22.02.2017 18:16:00
    Вот мои правила фаервола. Всё намного сложнее — две секции: одна ограничивает атаки и пинги на самом роутере, а вторая — это правила для форварда (сеть изменена в нескольких местах для безопасности).

    /put "очищаем цепочку icmp_packets_bridge"
    /ipv6 firewall filter remove [/ipv6 firewall filter find chain=icmp_packets_bridge]
    /put "очищаем цепочку icmp"
    /ipv6 firewall filter remove [/ipv6 firewall filter find chain=ICMP]

    /put "ключевые правила для input"  
    Эти две строчки пересылают управление в цепочки, которые мы собираемся создать. Пересылка удобна тем, что позволяет использовать одно и то же правило в разных цепочках (например, Input и Forward могут пересылать в одну и ту же цепочку и выполнять одни и те же правила).  
    add chain=input protocol=icmpv6 action=jump jump-target=ICMP comment="прыжок в цепочку ICMP" disabled=no

    /put "цепочки ICMP для роутера"  
    Эти правила формируют цепочку ‘ICMP’, на которую мы прыгали из input — она ограничивает разные типы ICMP-пакетов, чтобы остановить флуда пингами.  
    add chain=ICMP protocol=icmpv6 icmp-options=129:0-255 limit=5,5:packet action=accept comment="129:0 и лимит на эхо-ответы 5 пакетов/сек" disabled=no  
    add chain=ICMP protocol=icmpv6 icmp-options=1:0 limit=5,5:packet action=accept comment="1:0 хост/адрес недоступен, лимит 5 пакетов/сек" disabled=no  
    add chain=ICMP protocol=icmpv6 icmp-options=1:3-4 limit=5,5:packet action=accept comment="1:3,4 хост/порт недоступен, лимит 5 пакетов/сек" disabled=no  
    add chain=ICMP protocol=icmpv6 icmp-options=128:0-255 limit=5,5:packet action=accept comment="128:0 запрос эха, лимит 5 пакетов/сек" disabled=no  
    add chain=ICMP protocol=icmpv6 icmp-options=3:0-255 limit=5,5:packet action=accept comment="3:0 время превышено, лимит 5 пакетов/сек" disabled=no  
    add chain=ICMP protocol=icmpv6 action=drop comment="Отклонить всё остальное" disabled=no

    /put "правила для icmp"  
    add chain=forward protocol=icmpv6 action=jump jump-target=icmp_packets_bridge  
    add chain=icmp_packets_bridge action=accept protocol=icmpv6 src-address=xxxx:3005:xxxx:xxxx::/64  
    add chain=icmp_packets_bridge action=drop protocol=icmpv6 icmp-options=128:0 dst-address=2603:xxxx:xxxx:5400:xxxx:xxxx:0182:xxxx comment="запретить пинговать наш фаервол"  
    add chain=icmp_packets_bridge action=accept protocol=icmpv6 icmp-options=1:0 comment="сеть недоступна"  
    add chain=icmp_packets_bridge action=accept protocol=icmpv6 icmp-options=1:3 comment="хост/адрес недоступен"  
    add chain=icmp_packets_bridge action=accept protocol=icmpv6 icmp-options=1:4 comment="порт недоступен"  
    add chain=icmp_packets_bridge action=accept protocol=icmpv6 icmp-options=2:0 comment="пакет слишком большой"  
    add chain=icmp_packets_bridge action=accept protocol=icmpv6 icmp-options=3:0-1 comment="превышено ограничение разрешения"  
    add chain=icmp_packets_bridge action=accept protocol=icmpv6 icmp-options=11:0-1 comment="превышено время ожидания"  
    add chain=icmp_packets_bridge action=accept protocol=icmpv6 icmp-options=128:0 comment="разрешить запрос эха"  
    add chain=icmp_packets_bridge action=accept protocol=icmpv6 icmp-options=129:0 comment="эхо-ответ"  
    add chain=icmp_packets_bridge action=accept protocol=icmpv6 icmp-options=135:0 comment="запрос соседа"  
    add chain=icmp_packets_bridge action=accept protocol=icmpv6 icmp-options=136:0 comment="ответ соседа"  
    add chain=icmp_packets_bridge action=accept protocol=icmpv6 icmp-options=137:0 comment="разрешить редирект"  
    #add chain=icmp_packets_bridge action=accept protocol=icmpv6 icmp-options=4:0-2 comment="разрешить ошибку параметров"  
    add chain=icmp_packets_bridge action=drop comment="запретить все остальные типы"

    Надеюсь, это поможет.
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2025 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры