toxi » 30-04-2021 22:07:46
Неправильные правила или "почему у меня ничего не работает?"
В предыдущих четырех постах я рассказал вам про:
В этом посте мы поговорим про ошибку, связанную с неверным порядком правил в файерволе.
Неверный порядок правил
Мне часто присылают какое-то одно правило и спрашивают почему оно не работает. При анализе настроек файервола надо учитывать, что правила обрабатываются по порядку и порядок правил играет роль. Поэтому вполне возможна ситуация, когда мы имеем запрещающее правило и оно не работает потому, что выше есть правило, которое разрешает этот трафик. Либо наоборот: что-то, что разрешено не работает, т. к. выше есть запрещающее правило. Разберем ряд таких ситуаций.
Пример №1
Пример ситуации, когда блокирующее правило не сработает:
Код: Виділити все
/ip firewall filter
...
add action=accept chain=input protocol=tcp
...
add action=drop chain=input dst-port=22
...
В этой ситуации правило, которое блокирует SSH-трафик (22-ой порт TCP) не сработает потому, что выше есть правило, которое разрешает любой TCP-трафик.
Пример №2
Еще один пример ситуации, когда блокирующее правило не сработает:
Код: Виділити все
/ip firewall filter
...
add action=accept chain=forward dst-address=192.168.15.0/24
...
add action=drop chain=forward in-interface=Guest out-interface=LAN
...
Если рассматривать эту конфигурацию в отрыве от остальных настроек, то кажется, что трафик из "Guest" в "LAN" должен быть заблокирован, но, если посмотреть конфигурацию целиком, то можно обнаружить, что сеть 192.168.15.0/24 принадлежит интерфейсу LAN:
Код: Виділити все
/ip address
add address=192.168.15.254/24 interface=LAN network=192.168.15.0
Таким образом мы получаем, что у нас есть разрешающее правило выше запрещающего.
Пример №3
Пример ситуации, когда разрешающее правило не сработает потому, что выше есть запрещающее правило.
Код: Виділити все
/ip firewall filter
...
add action=drop chain=forward in-interface=DMZ out-interface=LAN
...
add action=accept chain=forward dst-port=80,443 protocol=tcp
В этом примере есть правило, которое разрешает TCP-трафик с портом назначения 80 и 443. Если рассматривать правило отдельно от остальных, то можно предположить, что из DMZ можно будет попасть в LAN с таким видом трафика. Но по факту это сделать не получится, т. к. выше есть запрещающее правило, которое блокирует любой трафик из DMZ в LAN. А вот, если поменять правила местами, то доступ из DMZ в LAN и наоборот по портам 80 и 443 уже будет доступен.
С уважением, Дмитрий Скоромнов.,
сертифицированный тренер MikroTik,
автор проекта «Курсы-по-ит.рф»
https://курсы-по-ит.рф
+7 499 653-76-01
Чат в Телеграме по MikroTik и не только: @kursy_po_it
[center][b]Неправильные правила или "почему у меня ничего не работает?"[/b][/center]
В предыдущих четырех постах я рассказал вам про:
[list][url=/viewtopic.php?p=932#p932]Классификацию лженастроек файервола[/url] (лженастройки, правила пустышки и ошибки) и про лженастройку «Блокировка TCP-соединений по флагам».[/list]
[list][url=/viewtopic.php?p=933#p933]Свою любимую лженастройку[/url] «Блокировка BOGON сетей».[/list]
[list][url=/viewtopic.php?p=934#p934]Правила пустышки.[/url][/list]
[list][url=/viewtopic.php?p=935#p935]Ошибку в которой используют нормально открытый файервол.[/url][/list]
В этом посте мы поговорим про ошибку, связанную с неверным порядком правил в файерволе.
[b]Неверный порядок правил[/b]
Мне часто присылают какое-то одно правило и спрашивают почему оно не работает. При анализе настроек файервола надо учитывать, что правила обрабатываются по порядку и порядок правил играет роль. Поэтому вполне возможна ситуация, когда мы имеем запрещающее правило и оно не работает потому, что выше есть правило, которое разрешает этот трафик. Либо наоборот: что-то, что разрешено не работает, т. к. выше есть запрещающее правило. Разберем ряд таких ситуаций.
[b]Пример №1[/b]
Пример ситуации, когда блокирующее правило не сработает:
[code]
/ip firewall filter
...
add action=accept chain=input protocol=tcp
...
add action=drop chain=input dst-port=22
...[/code]
В этой ситуации правило, которое блокирует SSH-трафик (22-ой порт TCP) не сработает потому, что выше есть правило, которое разрешает любой TCP-трафик.
[b]Пример №2[/b]
Еще один пример ситуации, когда блокирующее правило не сработает:
[code]
/ip firewall filter
...
add action=accept chain=forward dst-address=192.168.15.0/24
...
add action=drop chain=forward in-interface=Guest out-interface=LAN
...[/code]
Если рассматривать эту конфигурацию в отрыве от остальных настроек, то кажется, что трафик из "Guest" в "LAN" должен быть заблокирован, но, если посмотреть конфигурацию целиком, то можно обнаружить, что сеть 192.168.15.0/24 принадлежит интерфейсу LAN:
[code]
/ip address
add address=192.168.15.254/24 interface=LAN network=192.168.15.0[/code]
Таким образом мы получаем, что у нас есть разрешающее правило выше запрещающего.
[b]Пример №3[/b]
Пример ситуации, когда разрешающее правило не сработает потому, что выше есть запрещающее правило.
[code]
/ip firewall filter
...
add action=drop chain=forward in-interface=DMZ out-interface=LAN
...
add action=accept chain=forward dst-port=80,443 protocol=tcp[/code]
В этом примере есть правило, которое разрешает TCP-трафик с портом назначения 80 и 443. Если рассматривать правило отдельно от остальных, то можно предположить, что из DMZ можно будет попасть в LAN с таким видом трафика. Но по факту это сделать не получится, т. к. выше есть запрещающее правило, которое блокирует любой трафик из DMZ в LAN. А вот, если поменять правила местами, то доступ из DMZ в LAN и наоборот по портам 80 и 443 уже будет доступен.
[right][i]С уважением, Дмитрий Скоромнов.,
сертифицированный тренер MikroTik,
автор проекта «Курсы-по-ит.рф»
https://курсы-по-ит.рф
+7 499 653-76-01[/i]
[i]Чат в Телеграме по MikroTik и не только: [url=https://t.me/kursy_po_it]@kursy_po_it[/url][/i][/right]