Настройка доступа по сети к популярным сервисам
Содержание
Введение
Речь пойдёт о настройке маршрутизаторов для локальной домашней или офисной сети. Обычно я настраиваю фильтрацию трафика таким образом, что запрещено всё, что не разрешено явным образом. Я настраивал фильтрацию трафика на маршрутизаторах под управлением операционных систем Debian и RouterOS. В плане фильтрации трафика они очень похожи, поскольку используют функционал netfilter
, имеющийся в составе ядра Linux, используемого в ообеих операционных системах. Поскольку в данный момент мне чаще приходится менять настройки фильтрации трафика на RouterOS, я буду приводить команды для настройки фильтрации именно для этой операционной системы. Возможно в дальнейшем я добавлю и команды для настройки фильтрации с помощью iptables
.
DNS
Сервис принимает подключения и запросы на портах TCP 53 и UDP 53. Для добавления соответствующих разрешающих правил можно воспользоваться командами следующего вида:
[stupin@rb951] > /ip firewall filter add chain=forward action=accept protocol=tcp src-address-list=laptop_wi in-interface=wifi dst-port=53
[stupin@rb951] > /ip firewall filter add chain=forward action=accept protocol=udp src-address-list=laptop_wi in-interface=wifi dst-port=53
NTP
Сервис принимает запросы на порту UDP 123. Для добавления соответствующего разрешающего правила можно воспользоваться командой следующего вида:
[stupin@rb951] > /ip firewall filter add chain=forward action=accept protocol=udp src-address-list=laptop_wi in-interface=wifi dst-port=123
FTP
Сервис принимает управляющие подключения на порту TCP 21. Подключения для передачи данных могут устанавливаться с использованием TCP-портов, номера которых не фиксированы ни со стороны сервера, ни со стороны клиента и могут устанавливаться как в направлении от клиента к серверу, так и наоборот - от сервера к клиенту. Для добавления правила, разрешающего установление управляющего подключения, можно воспользоваться командой следующего вида:
[stupin@rb951] > /ip firewall filter add chain=forward action=accept protocol=tcp src-address-list=laptop_wi in-interface=wifi dst-port=21
Чтобы разрешить подключения для передачи данных, нужно сначала включить модуль фильтра, который заглядывает в управляющие подключения и ищет в них информацию о подключениях для передачи данных:
[stupin@rb951] > /ip firewall service-port enable ftp
Затем нужно добавить правила, которые разрешают пропускать трафик подключений для передачи данных, относящихся к управляющим подключениям. Для этого используется правило connection-state
со значением related
:
[stupin@rb951] > /ip firewall filter add chain=forward action=fasttrack-connection hw-offload=yes connection-state=established,related
[stupin@rb951] > /ip firewall filter add chain=forward action=accept connection-state=established,related,untracked
SSH
Сервис принимает подключения на порту TCP 22. Для добавления соответствующего разрешающего правила можно воспользоваться командой следующего вида:
[stupin@rb951] > /ip firewall filter add chain=forward action=accept protocol=tcp src-address-list=laptop_wi in-interface=wifi dst-port=22
Telnet
Сервис принимает подключения на порту TCP 23. Для добавления соответствующего разрешающего правила можно воспользоваться командой следующего вида:
[stupin@rb951] > /ip firewall filter add chain=forward action=accept protocol=tcp src-address-list=laptop_wi in-interface=wifi dst-port=23
HTTP и HTTPS
Незащищённый вариант сервиса HTTP, передающий данные открытым текстом, ожидает подключений на порту TCP 80. Защищённый вариант сервиса HTTPS, осуществляющий проверку подлинности сервиса, шифрование трафика и проверку его целостности, ожидает подключений на порту 443. Для добавления соответствующего разрешающего правила можно воспользоваться командой следующего вида:
[stupin@rb951] > /ip firewall filter add chain=forward action=accept protocol=tcp src-address-list=laptop_wi in-interface=wifi dst-port=80,443
Почта
SMTP
Классический вариант сервиса SMTP принимает подключения на порту TCP 25. Современными версиями протокола предусмотрена возможность переключения на защищённый вариант, позволяющий проверить подлинность сервиса, шифровать трафик и проверять его целостность. Более простой вариант защищённого сервиса SMTPS, не предусматривающий переключения от незащищённой версии к защищённой, а работающий сразу в защищённом режиме, ожидает подключений на порту TCP 465. Наконец, существует сервис Submission, работающий на порту TCP 587. Обычно, если почтоый сервер принимает подключения на портах TCP 25 и 587, то первый порт используется только для приёма электронной почты от других серверов, а второй порт - только для приёма писем от пользователей почтового сервера, которые хотят отправить письма на внешние серверы. Для добавления соответствующего разрешающего правила можно воспользоваться командой следующего вида:
[stupin@rb951] > /ip firewall filter add chain=forward action=accept protocol=tcp src-address-list=laptop_wi in-interface=wifi dst-port=25,465,587
POP3
Классический вариант сервиса POP3 принимает подключения на порту TCP 110. Современными версиями протокола предусмотрена возможность переключения на защищённый вариант, позволяющий проверить подлинность сервиса, шифровать трафик и проверять его целостность. Более простой вариант защищённого сервиса POP3S, не предусматривающий переключения от незащищённой версии к защищённой, а работающий сразу в защищённом режиме, ожидает подключений на порту TCP 995. Для добавления соответствующего разрешающего правила можно воспользоваться командой следующего вида:
[stupin@rb951] > /ip firewall filter add chain=forward action=accept protocol=tcp src-address-list=laptop_wi in-interface=wifi dst-port=110,995
IMAP
Классический вариант сервиса IMAP принимает подключения на порту TCP 143. Современными версиями протокола предусмотрена возможность переключения на защищённый вариант, позволяющий проверить подлинность сервиса, шифровать трафик и проверять его целостность. Более простой вариант защищённого сервиса IMAPS, не предусматривающий переключения от незащищённой версии к защищённой, а работающий сразу в защищённом режиме, ожидает подключений на порту TCP 993. Для настройки правил фильтрации писем в почтовом ящике предусмотрен сервис ManageSieve, работающий на порту TCP 4190. Для добавления соответствующего разрешающего правила можно воспользоваться командой следующего вида:
[stupin@rb951] > /ip firewall filter add chain=forward action=accept protocol=tcp src-address-list=laptop_wi in-interface=wifi dst-port=143,993,4190
Jabber
Классический вариант сервиса XMPP принимает подключения на порту TCP 5222. Современными версиями протокола предусмотрена возможность переключения на защищённый вариант, позволяющий проверить подлинность сервиса, шифровать трафик и проверять его целостность. Более простой вариант защищённого сервиса XMPPS, не предусматривающий переключения от незащищённой версии к защищённой, а работающий сразу в защищённом режиме, ожидает подключений на порту TCP 5223. Для добавления соответствующего разрешающего правила можно воспользоваться командой следующего вида:
[stupin@rb951] > /ip firewall filter add chain=forward action=accept protocol=tcp src-address-list=laptop_wi in-interface=wifi dst-port=5222,5223
Список IP-адресов и сетей, принадлежащих сервису Whatsapp, можно найти по ссылке IP-адреса. К сожалению, для работы аудио- и видеозвонков оказалось недостаточно разрешить весь трафик от клиента до серверов Whatsapp. Путём поиска информации в интернете и экспериментов с настройкой фильтра мне удалось узнать, что Whatsapp для передачи мгновенных сообщений использует порты TCP 443 и 5222, а для передачи голосовых и видеопотоков использует порт UDP 3478. Для добавления соответствующих разрешающих правил можно воспользоваться командами следующего вида:
[stupin@rb951] > /ip firewall filter add chain=forward action=accept protocol=tcp src-address-list=laptop_wi in-interface=wifi dst-port=443,5222
[stupin@rb951] > /ip firewall filter add chain=forward action=accept protocol=udp src-address-list=laptop_wi in-interface=wifi dst-port=3478