Настройка правил firewall mikrotik
Содержание
- Настройка firewall на mikrotik
- Перед настройкой файрвола
- Этап 1. Отключение ненужных сервисов
- Этап 2. Отключение поиска соседей и mac-сервера на внешних интерфейсах
- Этап 3. Пользователь и пароль
- Настройка файрвола
Firewall в MikroTikk – тема, на которую можно написать докторскую диссертацию. Раздел, который находится по пути IP Firewall, предназначен для контролирования трафика во всех направлениях, относительно самого MikroTik:
- Входящий;
- Проходящий;
- Исходящий;
Самой востребованной функцией этого раздела – является возможность защиты внутренней сети маршрутизатора от атак извне. Так же данная функция с соответствующими правилами, позволяет фильтровать мусор из внешней сети, который может значительно нагружать RouterBoard, а это сказывается на производительности. Бывают даже попытки взлома устройства, особенно если у вас есть внешний IP адрес.
Так вот, чтобы этого не случилось – предлагаем вашему вниманию базовый набор правил для безопасного функционирования вашего устройства.
Для примера – будем настраивать RB750.
Допустим, что интернет мы получаем на 1-й порт устройства. Подключение уже настроено и работает. А теперь непосредственно к самой настройке.
Настройка firewall на mikrotik
Подключаемся к устройству при помощи утилиты Winbox
Переходим в меню интерфейса по пути IP Firewall
В окне раздела переключаемся на вкладку Filter Rules
Если вы не удаляли стандартную конфигурацию, то у вас уже будут присутствовать некоторые правила. Для более тонкой настройки рекомендуем всегда удалять стандартную конфигурацию при первом запуске устройства (или после сброса).
Все правила в MikroTik работают по иерархии. Если правило под номером 1 запрещает определенное действие, а правило номер 2 разрешает, то действие работать не будет. Чтобы правило №2 заработало – его нужно переместить выше правила №1. Это можно сделать простым перетаскиванием мышью.
Правила №0 и №1. Разрешаем пинговать устройство
Это правило нужно для проверки связи с сетевым устройством в ОС Windows (также она присутствует в консолях и других систем, но имеет немного другой синтаксис) существует команда ping.
Запускается она на разных версиях Windows по-разному, но есть один способ, одинаковый для всех:
- Нажимаем комбинацию клавиш Win+R;
- В окне ввода команд набираем cmd;
- Нажимаем Enter;
Запустится командная строка (черное окно). В ней вводим следующее:
Ping 192.168.5.1 и нажимаем Enter.
*для примера указан IP адрес RB750, у вас он может быть другим
Если в результате вы получили что-то вроде:
Ближайшие
тренинги Mikrotik
Места
проведения
г. Санкт-Петербург, Крестовский остров, Северная дорога, дом 12.
г. Санкт-Петербург, ст. м. Приморская,
ул. Одоевского, д. 24 к. 1, 2 этаж
Продолжение статьи . Базовая настройка безопасности маршрутизатора — настройка файрвола.
Перед настройкой файрвола
В этой и следующей части статьи используется следующая топология сети:
- WAN – 172.30.10.26/24, Default Gateway 172.30.10.1
- DMZ – 10.10.10.1./24
- LAN – 192.168.88.1/24
Как это настроить — смотрите статью Разумная настройка RB2011
Немного повторяя статью по настройке RB 2011, я позволю себе напомнить, что для начала необходимо отключить неиспользуемые на маршрутизаторе сервисы. Фактически для настройки и работы с маршрутизатором нам достаточно сервисов:
- Winbox – порт 8291 TCP;
- Ssh – порт 22 TCP;
- www – порт 80 TCP;
Этап 1. Отключение ненужных сервисов
Открываем меню IP / Services и воспользовавшись кнопкой Disable отключаем ненужные нам сервисы.
Если вы используете для работы с MikroTik протокол ssh, хорошей идеей будет изменить его стандартный порт на какой-нибудь другой, например 65522. Для этого дважды щелкаем по строке с ssh и в открывшемся окне меняем порт:
Нажав ОК, подтверждаем выбор.
Также можно поменять порты winbox и www. Однако мы не наблюдали, чтобы порт 8291 (winbox) подвергался атаке по подбору пароля.
А вот в случае атаки порта ssh к маршрутизатору, находящемуся на внешнем IP адресе, производится до нескольких сотен попыток несанкционированного подключения в сутки.
Web-интерфейс, конечно, тоже лучше отключить, но если вы по каким-то причинам не можете использовать для настройки winbox, то будет хорошим решением разрешить доступ к web-интерфейсу маршрутизатора только из локальной сети.
Для этого дважды щелкаем по строке с www и заполняем поле available from :
Нажав кнопку ОК, подтверждаем выбор.
Этап 2. Отключение поиска соседей и mac-сервера на внешних интерфейсах
Заходим в меню ip/neighbors, переходим на закладку Discovery Interfaces и отключаем все кроме интерфейса LAN, нажатием на кнопку Disable.
Далее идем в меню Tools/MAC Server и на закладках Telnet Interfaces и WinBox Interfaces добавляем интерфейс LAN, удаляем если есть любые другие интерфейсы и отключаем интерфейс *all
Это не даст возможности подключиться к маршрутизатору снаружи, при помощи MAC — Telnet
Если кто-то считает что это излишние меры безопасности, вот что видит на WAN -портах один из установленных в работу маршрутизаторов.
При этом на два из них удалось зайти mac-telnet и получить доступ к управлению.
Этап 3. Пользователь и пароль
Теперь надо заменить пользователя по умолчанию и установить ему пароль.
Переходим в меню System/Users.
Создаем нового пользователя с правами администратора.
После чего закрываем программу Winbox, запускаем его заново и заходим под новым пользователем, открываем меню System/Users и отключаем учетную запись администратора.
На этом подготовительные операции можно считать законченными. Переходим к настройке firewall.
Настройка файрвола
- Трафик, идущий на маршрутизатор, попадает в цепочку файрвола input;
- Трафик, создаваемый маршрутизатором, попадает в цепочку файрвола output;
- Трафик, идущий через маршрутизатор, попадает в цепочку forward;
- Существуют четыре состояния соединения: new, established, related, invalid.
То есть, исходя из состояний соединения и цепочек, общие правила защиты маршрутизатора можно сформулировать как:
- Мы работаем только с цепочкой input;
- Мы пропускаем соединения с состоянием established и related, как уже установленные;
- Мы пропускаем протокол ICMP;
- Мы считаем как WAN, так и DMZ недоверенными сетями;
- Мы разрешаем прохождение некоторого трафика на маршрутизатор. Остальной трафик блокируем.
Теперь давайте определим разрешенный трафик с недоверенных интерфейсов. Итак, мы разрешаем:
- TCP порт 8291 – winbox, удаленное управление снаружи;
- 65522 ssh на измененном порту;
- Предположим, что у нас в дальнейшем будет настраиваться VPN-сервер по протоколу PPTP и мы разрешим порт 1723 по протоколу TCP.
Также с этого момента мы начинаем работать с командной строкой маршрутизатора. Все команды вставляются в терминал маршрутизатора. Если необходимо – вы можете посмотреть в графическом интерфейсе, что конкретно было сделано. Очень скоро вы научитесь читать команды и соотносить их с графическим интерфейсом.
Определяем так называемые bogon-сети (сети приватных или не распределенных IP-адресов).
Межсетево́й экра́н, сетево́й экра́н, файрво́л или брандма́уэр — это комплекс аппаратных и программных средств в компьютерной сети, осуществляющий контроль и фильтрацию проходящих через него сетевых пакетов в соответствии с заданными правилами.
Основной задачей сетевого экрана является защита сети или отдельных её узлов от несанкционированного доступа. Также сетевые экраны часто называют фильтрами, так как их основная задача — не пропускать (фильтровать) пакеты, не подходящие под критерии, определённые в конфигурации.
Некоторые сетевые экраны также позволяют осуществлять трансляцию адресов — динамическую замену внутрисетевых (серых) адресов или портов на внешние, используемые за пределами локальной сети, — что может обеспечивать дополнительную безопасность.
Файрвол Mikrotik RouterOS обладает мощными функциями и включает следующие возможности:
- Фильтрация пакетов;
- Фильтрация p2p протоколов
- Классификация трафика по:
- исходный MAC-адрес;
- IP-адрес (сеть или список) и тип адреса (бродкаст, локальный, мультикаст, юникаст);
- Порт или список портов;
- IP-протокол;
- Опции протокола (ICMP тип и другие коды, TCP флаги, IP опции и MSS)
- Интерфейс, откуда получен пакет или куда он назначается
- Внутренний поток или маркированное подключение
- Байт ToS (DSCP)
- Содержимое пакета
- Скорость получения пакетов и количество последовательностей
- Размер пакета
- Время получения пакета
Основные принципы фильтрации
Оперирование файрволом осуществляется посредством правил. Правило определяет выражение, которое говорит роутеру что делать с индивидуальным IP-пакетом. Каждое правило состоит из двух частей: первое описывает параметры, по которым должны классифицироваться приходящие пакеты, второе отвечает за действие над пакетом. Правила, для лучшего управления, организованы в цепочки.
Устройство фильтра по-умолчанию имеет три цепочки: input, forward и output, которые отвечают за приходящий, перемещаемый внутри роутера и исходящий трафик соответственно. Пользователь может добавить новые цепочки, если это будет нужно.
Под эти цепочки трафик по-умолчанию не попадает. Для этого используется метод action=jump с параметром jump-target в одной из предустановленных цепочек.
Цепочки фильтра
Как говорилось раньше, правила фильтрации в файрволе сгруппированы в цепочки. Это позволяет пакету попавшему под некий критерий в одной цепочке переходить к следующему правилу и следующим цепочкам. К примеру пакетам с определённого адреса и порта нужно применить много правил. Конечно, эти правила можно перечислить в цепочке forward, однако правильнее будет создать для них отдельную цепочку, перебросить туда попавшие под условие пакеты и выполнить над ними нужные нам действия:
Это правило создаст новую цепочку mychain, в которую попадут все пакеты с адресом источника 1.1.1.2/32.
Три предустановленных цепочки, которые не могут быть удалены:
- Input – применимо к пакетам, приходящим на маршрутизатор, у которых адрес получателя такой же, как и у интерфейса, на который этот пакет поступил. Пакеты, проходящие через маршрутизатор не попадают под действие правил цепочки input.
- Forward – применимо к пакетам, проходящим через маршрутизатор;
- Output – применимо к пакетам созданным маршрутизатором, которые покидают его через один из интерфейсов. Пакеты, проходящие через маршрутизатор не попадают под действие цепочки output.
При попадании пакета в одну из цепочек, правила применяются от верхнего к нижнему. Если пакет попадает под критерий одного из правил, над ним выполняется указанное в правиле действие и этот пакет не попадает больше под действие других правил из этой цепочки (исключение составляет только действие passthrough). Если пакет не попадает под действие ни одного из правил цепочки, к нему по умолчанию применяется действие Accept.
Описание параметров:
action (accept | add-dst-to-address-list | add-src-to-address-list | drop | jump | log | passthrough | reject | return | tarpit; default: accept) – применяемое действие, если пакет совпал с правилом
accept – принять пакет. Не подразумевает каких-либо действий. Если пакет был принят, к нему больше не применяется никаких действий в цепочке.
add-dst-to-address-list – добавить адрес назначения пакета в address list , указанный в параметре address-list
add-src-to-address-list – добавить адрес источника пакета в address list , указанный в параметре address-list
drop – разрушить пакет (без посылки сообщения ICMP reject)
jump – перепрыгнуть в цепочку, указанную в параметре jump-target
log – каждое совпадение с этим действием добавит в системный лог сообщение
passthrough – игнорировать это правило и перейти к следующему
reject – отбросить этот пакет и послать сообщение ICMP reject
return – вернуть пакет в цепочку, из которой он был переброшен
tarpit – захватить и удерживать входящие TCP подключения (отвечать SYN/ACK на входящий TCP SYN пакет)
address-list (name) – указывает имя списка адресов, в которых хранятся IP-адреса из действий action=add-dst-to-address-list или action=add-src-to-address-list. Эти списки могут быть позже использованы в других правилах.
address-list-timeout (time; default: 00:00:00) – интервал времени, через который адреса будут удалены из списка, указанного в параметре address-list . Используется в сочетании с действиями add-dst-to-address-list или add-src-to-address-list .00:00:00 – означает оставить адреса в списке навсегда.
chain (forward | input | output | name) – указывает цепочку, в которую следует поместить правило. Разные типы трафика проходят через разные цепочки, поэтому будьте в курсе своего выбора, указывая то или иное значение этого параметра. Если указанное значение цепочки не совпадает ни с одним из уже существующих, система создаст новое правило с указанным именем.
comment (text) – комментарий описывает правило. В скриптах комментарии обычно служат для идентификации правил.
connection-bytes (integer-integer) – применять правило, если количество переданных байт через подключение превысило указанное значение. 0 – не ограничено, пример: connection-bytes=2000000-0 сработает в том случае, если количество данных, переданных через открытое подключение превысило 2MB;
connection-limit (integer,netmask) – ограничивает количество доступных подключений на адрес или блок адресов;
connection-mark (name) –пакеты, попавшие под действие правил в mangle и названные в соответствии с параметром connection mark
connection-rate (Integer 0..4294967295) – Connection Rate is a firewall matcher that allow to capture traffic based on present speed of the connection.
connection-state (established | invalid | new | related) – интерпретация состояния подключения посредством анализа данных из connection tracking .
established – пакет, принадлежащий уже установленному подключению. К примеру ответ от маршрутизатора.
invalid – пакет, который не может быть идентифицирован по какой-либо причине. К примеру это может быть переполнение памяти и ICMP ошибки. К таким пакетам нужно применять действие DROP
new – пакет, начинающий создание TCP подключения
related – запрошенный пакет, который не принадлежит уже установленным подключениям. К примеру ICMP ошибки, или пакет, начинающий передачу данных по протоколу FTP( /ip firewall service-port)
connection-type (ftp | gre | h323 | irc | mms | pptp | quake3 | tftp) – определение типа подключения, базирующееся на использовании данных из connection tracking. Конфигурирование производится в /ip firewall service-port
content (text) – содержимое текстового пакета
dst-address (IP address/netmask | IP address-IP address) – указывает диапазон адресов, у которых IP-адрес назначения совпадает с параметром. При неправильном введении пары address/netmask система сама подстроит эти параметры. К примеру:1.1.1.1/24 будет заменено на 1.1.1.0/24
dst-address-list (name) – совпадение адреса назначения пакета с определенными ранее значениями в address list
dst-address-type (unicast | local | broadcast | multicast) – совпадение типа адреса назначения пакета с заданным предустановленным значением:
unicast – IP-адреса, используемые ля передачи от одной точки к другой. В таком типе пакетов существует только один отправитель и один получатель
local – совпадение с адресами, назначенными сетевым интерфейсам маршрутизатора
broadcast – IP-пакет, посылаемый сразу всем членам подсети
multicast – этот тип пакета используется для передачи данных от одного отправителя многим получателям в сети.
dst-limit (integer/time0,1,integer,dst-address | dst-port | src-address+,time0,1) – ограничивает скорость пакетов в секунду (packet per second (pps)) на IP-адрес или порт.
В результате работы правила каждый IP-адрес или порт назначения получает свой лимит.
Count – среднее количество пакетов в секунду (packets per second (pps))за время Time
Time – интервал времени, за который производится подсчёт среднего количества пакетов
Burst – количество пакетов в пике
Mode – классификатор для ограничения скорости пакетов
Expire – указывает интервал, через который записанные IP адреса /порты будут удалены
dst-port (integer: 0..65535) – интервал портов назначения
fragment (yes | no) – Matches fragmented packets. First (starting) fragment does not count. If connection tracking is enabled there will be no fragments as system automatically assembles every packet
hotspot (множественный выбор: auth | from-client | http | local-dst | to-client) – сравнивает пакеты полученные от клиентов с различными хот-спотами. все значения могут быть отклонены/инвертированы
from-client – true, если пакеты получены от Hot-Spot клиента
auth – true, если пакеты получены от авторизованного Hot-Spot клиента
local-dst – true, если пакет имеет локальный адрес назначения
hotspot – true, если TCP пакет от клиента и назначается на 80 порт прозрачного прокси сервера или клиент имеет адрес прокси сконфигурированный и аналогичный адресу:порту пакета
icmp-options (integer:integer) – совпадение полей ICMP Type:Code
in-bridge-port (name) – Actual interface the packet has entered the router, if incoming interface is bridge. Works only if use-ip-firewall is enabled in bridge settings.
in-interface (name) – интерфейс, с которого пакет поступил в маршрутизатор
ingress-priority (integer: 0..63) – Matches ingress priority of the packet. Priority may be derived from VLAN, WMM or MPLS EXP bit.
ipsec-policy (in | out, ipsec | none) – Matches the policy used by IpSec. Value is written in following format: direction, policy. Direction is Used to select whether to match the policy used for decapsulation or the policy that will be used for encapsulation.
in — valid in the PREROUTING, INPUT and FORWARD chains
out — valid in the POSTROUTING, OUTPUT and FORWARD chains
ipsec — matches if the packet is subject to IPsec processing;
none — matches ipsec transport packet.
For example, if router receives Ipsec encapsulated Gre packet, then rule ipsec-policy=in,ipsec will match Gre packet, but rule ipsec-policy=in,none will match ESP packet.
ipv4-options (any | loose-source-routing | no-record-route | no-router-alert | no-source-routing | no-timestamp | none | record-route | router-alert | strict-source-routing | timestamp) – совпадение параметров заголовка ipv4
any – совпадает по крайней мере один пакет с установленной ipv4 опцией
loose-source-routing – пакеты с опцией loose source routing. Эта опция используется для направления интернет дейтаграм основанных на информации поставляемой источником
no-record-route – пакеты с опцией no record route. Эта опция используется для направления интернет дейтаграм основанных на информации поставляемой источником
no-router-alert – совпадение пакетов с опцией no router alter
no-source-routing – совпадение пакетов с опцией no source routing
no-timestamp – совпадение пакетов с опцией with no timestamp
record-route – совпадение пакетов с опцией record route
router-alert – совпадение пакетов с опцией router alter
strict-source-routing – совпадение пакетов с опцией strict source routing
timestamp – совпадение пакетов со штампом времени
jump-target (forward | input | output | name) – имя целевой цепочки куда должен быть отправлен пакет при использовании action=jump.
layer7-protocol (name) – Layer7 filter name defined in layer7 protocol menu.
limit (integer/time0,1,integer) – ограничивает поток пакетов. Используется для уменьшения количества сообщений в логах
Count – максимальное среднее количество пакетов, указанное в пакетах в секунду (PPS Packet Per Second) за время в опции Time
Time – указывает интервал времени за который будет производиться подсчёт среднего количества пакетов
Burst – количество пакетов при пике
log-prefix (text) – все сообщения, записываемые в лог, будут иметь этот префикс. Используется вместе с опцией action=log
nth (integer,integer: 0..15,integer0,1) – совпадение каждого n-ного пакета, попавшего в правило. Всего доступно 16 счётчиков
Every – совпадение каждого Every+1th пакета. К примеру, если Every=1 тогда под действие правила попадёт каждый второй пакет
Counter – указывает какой счётчик будет использоваться. Счётчик увеличивается на 1 с каждым новым правилом где указанна опция nth
Packet -совпадает с номером данного пакета. Значение по очевидным причинам должно быть между нулем и Every.
Если опция используется для данного счетчика, тогда должно быть по крайней мере Every+1 правило с этой опцией, охватывающее все значения между 0 и Every включительно
out-bridge-port (name) – Actual interface the packet is leaving the router, if outgoing interface is bridge. Works only if use-ip-firewall is enabled in bridge settings.
out-interface (name) – интерфейс, через который пакеты будут покидать маршрутизатор
p2p (all-p2p | bit-torrent | blubster | direct-connect | edonkey | fasttrack | gnutella | soulseek | warez | winmx) – совпадение пакетов протоколов peer-to-peer (P2P)
packet-mark (no-mark | string) – цепочка пакетов, промаркированная в разделе mangle файрвола
packet-size (integer[-integer]:0..65535) – размер пакета в байтах
Min – указывает начало диапазона размера пакета
Max – указывает конец диапазона размера пакета
per-connection-classifier (ValuesToHash:Denominator/Remainder) – PCC matcher allows to divide traffic into equal streams with ability to keep packets with specific set of options in one particular stream.
phys-in-interface (name) – физический интерфейс, указанный в качестве порта моста, по которому пакет поступил в маршрутизатор
phys-out-interface (name) – физический интерфейс, указанный в качестве порта моста, по которому пакет выйдет из маршрутизатора
port (integer[-integer]: 0..65535) – Matches if any (source or destination) port matches the specified list of ports or port ranges. Applicable only if protocol is TCP or UDP
protocol (ddp | egp | encap | ggp | gre | hmp | icmp | idrp-cmtp | igmp | ipencap | ipip | ipsec-ah | ipsec-esp | iso-tp4 | ospf | pup | rdp | rspf | st | tcp | udp | vmtp | xns-idp | xtp | integer) – совпадение IP протокола. Указывается имя протокола или его номер. Вы должны указать эту опцию, чтобы получить доступ к специфическим параметрам для каждого протокола.
psd (integer,time,integer,integer) – попытка определения сканирования TCP и UDP портов. Необходимо назначить меньшее значение портам с высокими номерами для того, чтобы уменьшить количество ложных срабатываний. К примеру, при использовании пассивного режима FTP.
WeightThreshold – полный вес последних TCP/UDP пакетов с различными портами назначения, поступающими с одного хоста, которые распознанные как один из методов сканирования
DelayThreshold – задержка между пакетами с разными портами назначения, поступающие с одного хоста и распознанные как возможная последовательность сканирования
LowPortWeight – вес пакетов при сканировании привилегированных портов ( 07.10.2015
Источник: