воскресенье, 7 августа 2016 г.

Защита WAN-интерфейса в Mikrotik.

  После первоначальной настройки роутера Mikrotik его нужно защитить от сканирования и атак из WAN-интерфейса. Это нужно делать обязательно, во избежания неприятностей. Защиту внутри локальной сети тоже нужно производить, но она не так критична, хотя и важна. Сами методы разделю по пунктам.

  1) Отключаем учетную запись admin. Создаем новую учетную запись, Имя должно быть не общепринятое, что-бы комбинация логин-пароль служила доп. защитой. Не используйте имена user, guest, admin и другие стандартные. Не используйте пароли 12345, qwerty и тому подобные, а также совпадающие с логином. Пароль должен быть не меньше 8 символов, содержать буквы верхнего и нижнего регистров, цифры и, в идеале, символы.



  2) Отключаем ненужные сервисы, все нужные переводим на не стандартные порты! Список не зарезервированных портов можно найти в Википедии: Список портов TCP и UDP. Доступ из-вне отставляем только реально нужным сервисам. Если есть возможность, сервисы ограничиваем по подсетям.

  
  3)  Отключаем "поиск соседей". MNDP (Neighbor Discovery Protocol) - протокол, с его помощью роутеры MikroTik получают информацию друг о друге и могут выполнить автоматическую настройку некоторых функций. Однако протокол MNDP передает информацию о версии операционной системы и функции, которые включены в роутере. Отключаем в ip/neighbors поиск на WAN-интерфейсе.

  4) Отключаем подключение к роутеру по MAC-адресу из-вне в Tools/MAC Server. На вкладках Telnet Interfaces и WinBox Interfaces добавляем интерфейс LAN, удаляем если есть любые другие интерфейсы и отключаем интерфейс "*all".


  Теперь идет настройка непосредственно firewall, правила имеют очередность, поэтому команды выполнять в последовательности. Перед началом работ сделайте бекап. И помните - удаленная настройка фаервола -к выезду!

5) Организовываем ловушку от перебора портов. Грубый метод. В пункте 8 будет представлено более утонченное решение. Но в нашем деле все методы хороши. Теория такова, если злоумышленник будет перебирать открытые порты вашего маршрутизатора, при попадании на определенный порт, этот IP попадет в блек-лист. Порт нужно выбирать осторожно, что бы он нигде в вашей конфигурации не использовался, и был свободен. После того как определились с портом, добавим 2 правила.
/ip firewall filter
add action=add-src-to-address-list address-list=perebor_portov_drop address-list-timeout=30m chain=input comment=Perebor_portov_add_list dst-port=22 in-interface=ether1-velton log=yes log-prefix=Attack protocol=tcp
add action=drop chain=input comment=Perebor_portov_list_drop in-interface=ether1-velton src-address-list=perebor_portov_drop
  Первым правилом при обращении на порт 22 IP добавляем в дроп-лист "perebor_portov_drop". Вторым правилом - баним его. В последнем скриншоте этих правила нет, но они идут в начале списка в /ip firewall filter.
  * На "MUM Москва 2016" докладчик рассказывал, что ловит злоумышленников в эту ловушку на популярные порты. Например SSH (22/TCP) или RDP (3389/TCP). Можно еще добавить SIP-порт (5060). Вероятность скана именно этих портов - велика. Если вы их не используете для доступа из-все (что разумно) - смело можно воспользоваться этим методом.

6) Ограничиваем количество ICMP-запросов (делаем защиту от флуд-пинг). Вводим дополнительное правило Drop для отслеживания ICMP Drop. Последнее правило не обязательно - нужно лишь для визуального представления администратору сколько пакетов словилось. Необязательное - потому-как в конце у нас все не разрешенные запросы с WAN - блокируются.
/ip firewall filter
add chain=input comment=Allow_limited_pings in-interface=ether1-velton limit=\
    50/5s,2:packet protocol=icmp
add action=drop chain=input comment=Pings_Drop in-interface=ether1-velton \
    protocol=icmp
  7) Ставим лимит входящих соединений. Если с одного IP адреса подключений больше лимита, то этот IP попадает в "черный список" и в дальнейшем блокируется. Например
/ip firewall filter add chain=input protocol=tcp connection-limit=LIMIT,32 \
action=add-src-to-address-list address-list=blocked-addr address-list-timeout=1d
  Где LIMIT - максимальное количество соединений в определенного IP. Предел должен быть от 100 и выше, так как многие услуги, используют несколько соединений (HTTP, Torrent, и другие P2P-программы). После того как пакеты добавлены в address-list можно выставить их drop или опцию tarpit. Она позволяет вместо того чтобы просто удалять пакеты атакующего - захватить и удерживать соединения и с достаточно мощным маршрутизатором это может замедлить скорость атаки.
/ip firewall filter add chain=input protocol=tcp src-address-list=blocked-addr \
connection-limit=3,32 action=tarpit

  Но нам такие сложности не к чему, просто добавим правило с лимитом 200 соединений с одного IP и блоком на сутки:
/ip firewall filter
add action=add-dst-to-address-list address-list=connection-limit \
    address-list-timeout=1d chain=input comment=Connection_limit \
    connection-limit=200,32 in-interface=ether1-velton protocol=tcp
add action=drop chain=input comment=Adr_list_connection-limit_drop \
    in-interface=ether1-velton src-address-list=connection-limit
  8) Включаем защиту от сканеров портов на WAN-интерфейсе:
/ip firewall filter
add action=drop chain=input comment=Port_scanner_drop src-address-list=\
    "port scanners"
add action=add-src-to-address-list address-list="port scanners" \
    address-list-timeout=2w chain=input in-interface=ether1-velton protocol=\
    tcp psd=21,3s,3,1
add action=add-src-to-address-list address-list="port scanners" \
    address-list-timeout=2w chain=input in-interface=ether1-velton protocol=\
    tcp tcp-flags=fin,!syn,!rst,!psh,!ack,!urg
add action=add-src-to-address-list address-list="port scanners" \
    address-list-timeout=2w chain=input in-interface=ether1-velton protocol=\
    tcp tcp-flags=fin,syn
add action=add-src-to-address-list address-list="port scanners" \
    address-list-timeout=2w chain=input in-interface=ether1-velton protocol=\
    tcp tcp-flags=syn,rst
add action=add-src-to-address-list address-list="port scanners" \
    address-list-timeout=2w chain=input in-interface=ether1-velton protocol=\
    tcp tcp-flags=fin,psh,urg,!syn,!rst,!ack
add action=add-src-to-address-list address-list="port scanners" \
    address-list-timeout=2w chain=input in-interface=ether1-velton protocol=\
    tcp tcp-flags=fin,syn,rst,psh,ack,urg
add action=add-src-to-address-list address-list="port scanners" \
    address-list-timeout=2w chain=input in-interface=ether1-velton protocol=\
    tcp tcp-flags=!fin,!syn,!rst,!psh,!ack,!urg
 9) Защищаем от перебора паролей подключения по нестандартному порту к WinBox и SSH из вне. Комментарии читать снизу-вверх.
/ip firewall filter
# все IP в black_list - отклоняем
add action=drop chain=input comment=Drop_winbox_black_list dst-port=5323,5324 \
    in-interface=ether1-velton protocol=tcp src-address-list=black_list
# если новые подключения с адрес-листа Winbox_Ssh_stage3 продолжаются - заносим в новый адрес-лист black_list на 5 минут.
add action=add-src-to-address-list address-list=black_list \
    address-list-timeout=5m chain=input comment=Winbox_add_black_list \
    connection-state=new dst-port=5323,5324 in-interface=ether1-velton \
    protocol=tcp src-address-list=Winbox_Ssh_stage3
# если новые подключения с адрес-листа Winbox_Ssh_stage2 продолжаются - заносим в новый адрес-лист Winbox_Ssh_stage3
add action=add-src-to-address-list address-list=Winbox_Ssh_stage3 \
    address-list-timeout=1m chain=input comment=Winbox_Ssh_stage3 \
    connection-state=new dst-port=5323,5324 in-interface=ether1-velton \
    protocol=tcp src-address-list=Winbox_Ssh_stage2
# если новые(значит была неудачная попытка, например - неправильный пароль, и соединение разорвалось) подключения с адрес-листа Winbox_Ssh_stage1 продолжаются - заносим в новый адрес-лист Winbox_Ssh_stage2
add action=add-src-to-address-list address-list=Winbox_Ssh_stage2 \
    address-list-timeout=1m chain=input comment=Winbox_Ssh_stage2 \
    connection-state=new dst-port=5323,5324 in-interface=ether1-velton \
    protocol=tcp src-address-list=Winbox_Ssh_stage1
# заносим все айпи, которые создали новые подключения на наши порты в адрес-лист на 1 минуту
add action=add-src-to-address-list address-list=Winbox_Ssh_stage1 \
    address-list-timeout=1m chain=input comment=Winbox_Ssh_stage1 \
    connection-state=new dst-port=5323,5324 in-interface=ether1-velton \
    protocol=tcp
# разрешаем подключение к Winbox и Ssh по портам 5323 и 5324
add chain=input comment=Accept_Winbox_Ssh dst-port=5323,5324 in-interface=\
    ether1-velton protocol=tcp
  10) Блокируем bogon-сети. Это зарезервированные диапазоны IP адресов которые еще не были закреплены ни за одним провайдером в мире. Это свободные/пустые диапазоны. Частные сети прячутся от интернета средствами компании или провайдером. Поэтому если к вам вдруг прилетает пакет с сорсом из этих списков, ничего хорошего он принести не может. Bogon IP часто используют злые хакеры для своих вредоносных атак. Актуальный список сетей можно посмотреть тут: http://www.team-cymru.org/Services/Bogons/bogon-bn-nonagg.txt.
/ip firewall address-list
add address=0.0.0.0/8 disabled=no list=BOGON
add address=10.0.0.0/8 disabled=no list=BOGON
add address=100.64.0.0/10 disabled=no list=BOGON
add address=127.0.0.0/8 disabled=no list=BOGON
add address=169.254.0.0/16 disabled=no list=BOGON
add address=172.16.0.0/12 disabled=no list=BOGON
add address=192.0.0.0/24 disabled=no list=BOGON
add address=192.0.2.0/24 disabled=no list=BOGON
add address=192.168.0.0/16 disabled=no list=BOGON
add address=198.18.0.0/15 disabled=no list=BOGON
add address=198.51.100.0/24 disabled=no list=BOGON
add address=203.0.113.0/24 disabled=no list=BOGON
add address=224.0.0.0/4 disabled=no list=BOGON
add address=240.0.0.0/4 disabled=no list=BOGON

Само запрещающее правило:
/ip firewall filter
add action=drop chain=input comment=Bogon_Wan_Drop in-interface=ether1-velton \
    src-address-list=BOGON
  11) Разрешаем все уже установленные подключения (connection state=established). Established - Существующее соединение. Пакет относится у уже установленному соединению, обрабатываемому в данный момент маршрутизатором.
add chain=input comment=Established_Wan_Accept connection-state=established
  12) Разрешаем все зависимые подключения (connection state=related). Related – Связанное соединение. Пакет, который связан с существующим соединением, но не является его частью. Например, пакет, который начинает соединение передачи данных в FTP-сессии (он будет связан с управляющим соединением FTP), или пакет ICMP, содержащий ошибку, отправляемый в ответ на другое соединение.
add chain=input comment=Related_Wan_Accept connection-state=related
13) Блокируем все входящие соединения с WAN.
add action=drop chain=input comment=Drop_all_WAN in-interface=ether1-velton
-------------------
Визуально последовательность правил выглядит так:


   Это минимальная настройка безопасности. Если вы хотите разрешить подключение VPN к роутеру, то как минимум нужно открыть порт. Например, для соединений по порту 1723 (PPTP):
/ip firewall filter
add chain=input dst-port=1723 protocol=tcp
  Так же рекомендую использовать скрипт Оповещение администратора о входе в Mikrotik. Метод защиты сервисов, на которые проброшенные порты с Mikrotik описан в статье тут.
-------------------
Продолжение статьи:

Подписаться на новые статьи.

22 комментария:

  1. Спасибо за этот пост,как и за большинство других.
    А разве PPTP не нужно еще открыть и GRE?

    ОтветитьУдалить
    Ответы
    1. Да. Все верно. "/ip firewall filter add chain=input action=accept protocol=gre".

      Удалить
    2. Mikrotik-Ukraine: Защита Wan-Интерфейса В Mikrotik. >>>>> Download Now

      >>>>> Download Full

      Mikrotik-Ukraine: Защита Wan-Интерфейса В Mikrotik. >>>>> Download LINK

      >>>>> Download Now

      Mikrotik-Ukraine: Защита Wan-Интерфейса В Mikrotik. >>>>> Download Full

      >>>>> Download LINK 5q

      Удалить
  2. established и related уже можно одним правилом разрешать

    ОтветитьУдалить
  3. chain=input action=accept connection-state=established,related log=no

    ОтветитьУдалить
  4. и pptp без gre chain=input action=accept protocol=tcp dst-port=1723 log=no

    ОтветитьУдалить
  5. А как "перевести" на человеческий язык данную команду:
    add action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w chain=input in-interface=eth1 protocol=tcp tcp-flags=syn,rst
    ???
    Интересует знак запятой между syn и rst.
    Запятая работает, как оператор И или как оператор ИЛИ?

    1) Добавлять в список port scanners все входящие ТСР-соединения, у которых есть флаги syn И rst (т.е. оба)
    2) Добавлять в список port scanners все входящие ТСР-соединения, у которых есть флаг syn ИЛИ rst (т.е. один из двух)

    Спасибо

    ОтветитьУдалить
  6. Запятая работает, как оператор И

    ОтветитьУдалить
  7. У вас кажется опечатка:
    Но нам такие сложности не к чему, просто добавим правило с лимитом 200 соединений с одного IP и блоком на сутки:
    /ip firewall filter
    add action=add-dst-to-address-list address-list=connection-limit \
    ...
    __________
    Должно быть /ip firewall filter
    add action=add-src-to-address-list и так далее...

    ОтветитьУдалить
  8. Вопрос по пункту №7. В вики микротика сказано, что опция connection-limit используется совместно с tcp-flags=syn. У Вас этого нет. Чем это чревато, каковы возможные последствия?

    ОтветитьУдалить
    Ответы
    1. Черевато это тем, что надо сдлеать просто как в микротик вики пишут.

      А последствия - да не вывезет по нагрузке проц и все дела

      Удалить
    2. Это не работает! А тем более на последней прошивке. Хм

      Удалить
  9. Здравствуйте, столкнулся с такой ситуацией с RB750Gr3,
    последние пару дней процесс www стал много тянуть на себя ресурсов процессора,причем происходит это кратковременно(от 15мин до часа) и не систематично.
    Конфиг с коробки, кроме отключенного фасттрека, закрыт 53-й и 25, открыта web морда с графиками.
    Отключение www в IP Service List во время нагрузки не меняет картину.

    ОтветитьУдалить
  10. "И помните - удаленная настройка фаервола -к выезду!"

    Safe mode.

    ОтветитьУдалить
  11. Добрий вечір! роутер 951Ui-2HnD, фаєрвол налаштований як в статті. з WAN заходжу на веб-інтерфейс роутера, в браузері вводжу static_IP:port і відразу попадаю в чорний список по 9 правилу. Якщо дивитися на кількість спрацювань кожної ланки (chain) то при підключенні генерується відразу велика кількість пакетів (4 пакета пропускає, 4 пакета попадають в список 1-го рівна, 3 пакета - в список 2-го рівня, 1 пакет - в список 3-го рівна, і далі всі блочаться так, що навіть сторінка не повністю прогружається). В чому може бути проблема?

    ОтветитьУдалить
  12. Здравствуйте! 2 недели назад настроил роутер по этой статье. В адрес лист portscan за неделю попадало где-то 5 адресов. Сегодня же, каждую минуту попадает в стоплист по 3-4 ip адреса. Процесс длится непрерывно, адреса разные. Скажите, пожалуйста, что это может значить?

    ОтветитьУдалить
  13. Зачем столько правил? У меня 0 1 2 3 правила - фасттрак, дальше allow related, потом 8291 прописано на локальном адресс листе с локальных ип, потом на локальном адрес листе разрешать адрес лист локальных ип адресов, потом 1723 и 47gre закрыт адресс листом и самое последнее wan input drop. В итоге 10 правил - и микрот из интырнета закрыт но оставлен доступ с VPN с определённых подсетей. Если убрать VPN и fasttrack - останется на половину меньше правил и всё равно микрот будет закрыт, а этп всё полотно в 20+ правил не нужно.

    ОтветитьУдалить
  14. ВСЕ ПРОЧИТАЙТЕ НАСТОЯЩЕЕ ОТЗЫВ О том, КАК Я ПОЛУЧИЛ СВОЙ КРЕДИТ ОТ КОМПАНИИ LEGIT И ДОВЕРЕННОЙ КРЕДИТНОЙ СРЕДИ Меня зовут Kjerstin Lis, я искал кредит для погашения своих долгов, все, кого я встречал, мошенничали и брали свои деньги, пока я наконец не встретил мистера Бенджамина Брейл Ли Он смог дать мне кредит в размере 450 000 рублей. Он также помог другим моим коллегам. Я говорю как самый счастливый человек во всем мире сегодня, и я сказал себе, что любой кредитор, который спасает мою семью от нашей бедной ситуации, я скажу имя всему миру, и я так счастлив сказать, что моя семья вернулся навсегда, потому что я нуждался в кредите, чтобы начать свою жизнь заново, потому что я одинокая мама с 3 детьми, и весь мир, казалось, висел на мне, пока я не имел в виду, что БОГ послал кредитора, который изменил мою жизнь и член моей семьи, БОЖИЙ кредитор, мистер Бенджамин, он был Спасителем БОГом, посланным для спасения моей семьи, и сначала я подумал, что это будет невозможно, пока я не получу кредит, я пригласил его к себе в семью -все вечеринка, от которой он не отказался, и я посоветую всем, кто действительно нуждается в кредите, связаться с г-ном Бенджамином Брейлом Ли по электронной почте (lfdsloans@outlook.com), потому что он самый понимающий и добрый кредитор. когда-либо встречал с заботливым сердцем. Он не знает, что я делаю это, распространяя свою добрую волю ко мне, но я чувствую, что должен поделиться этим со всеми вами, чтобы освободить себя от мошенников, пожалуйста, остерегайтесь подделок и свяжитесь с правильной кредитной компанией. com или whatsapp + 1-989-394-3740.

    ОтветитьУдалить
  15. Mikrotik-Ukraine: Защита Wan-Интерфейса В Mikrotik. >>>>> Download Now

    >>>>> Download Full

    Mikrotik-Ukraine: Защита Wan-Интерфейса В Mikrotik. >>>>> Download LINK

    >>>>> Download Now

    Mikrotik-Ukraine: Защита Wan-Интерфейса В Mikrotik. >>>>> Download Full

    >>>>> Download LINK

    ОтветитьУдалить