Решил составить небольшую памятку по настройке портов и протоколов на сервере. Возможно, будет полезна ещё кому-нибудь, кроме меня. На истину в последней инстанции не претендует; список портов составлен исходя из моих обычных потребностей. Поправки, комментарии, дополнения — welcome!
Итак, задача: защитить локальный интерфейс сервера на базе Win2k3 Srv от угроз с помощью стандартных средств. На машине работает VPN-сервер (через RRAS), поэтому нельзя использовать службу Windows Firewall / ICS. Basic Firewall с локальным интерфейсом тоже использовать нельзя (см. Basic Firewall, раздел Considerations when using Basic Firewall), поэтому используем static packet filters (RRAS_InterfaceProperties.JPG, RRAS_InboundFilters.JPG).
Предполагается, что данный сервер и все компьютеры, которые должны иметь к нему доступ через локальную сеть, находятся в подсети 192.168.33.0/24; в этой же подсети находится диапазон адресов для VPN-соединений.
Позволяют получать по DHCP IP-адреса для локального интерфейса и VPN-соединений (RRAS_ServerProperties_IP.JPG). Не нужны, если и для того, и для другого используются статические IP-адреса.
Позволяют проверять доступность этого компьютера посредством утилиты ping. Может быть нежелательно с точки зрения безопасности; с другой стороны, удобно.
Обеспечивают корректную работу Сетевого окружения — в сочетании с фильтрами Общий доступ к файлам и принтерам (сервер), Общий доступ к файлам и принтерам (клиент), Active Directory.
По моим наблюдениям, достаточно открыть только TCP-порт 445, однако, если верить Active Directory Replication over Firewalls, это не так. В открытии TCP-порта 139, полагаю, точно есть необходимость, если в сети есть клиенты pre-Windows 2000.
Вероятно, открывать эти порты бесполезно - работать FTP-протокол со static packet filters все равно не будет, т. к. требуется дополнительное соединение по порту, сообщаемому сервером.
Позволяют подключаться с этого компьютера к другим через Remote Desktop Connection. С серверами обычно более актуальна противоположная задача. Если, конечно, сервер не является одновременно рабочей машиной сисадмина.
Позволяют подключаться с других компьютеров к этому через Remote Desktop Connection. Распространённый способ удалённого управления серверами.
Inbound Filters:
Protocol: TCP; Destination port: 3389
Outbound Filters:
Protocol: TCP; Source port: 3389
Если после экспериментов со static packet filters к серверу невозможно подключиться по VPN, RDC может оказаться спасательным кругом — если, конечно, заранее настроить переброску TCP-порта 3389 на сервер или, по крайней мере, обеспечить доступ к маршрутизатору из Интернета.
Обеспечивают функционирование контроллера домена Active Directory (в т. ч. репликацию, хотя в этой части ещё не тестировал). Наборы inbound- и outbound-фильтров идентичны.
Фильтр 1 нужен для работы протокола Kerberos, конкретно - для получения с любой машины домена списка расшаренных (общих) ресурсов других машин домена.
Фильтр 2 нужен для работы протокола Kerberos, конкретно - для нормальной регистрации на машине под доменным пользователем: при отсутствии процесс логина занимает 5-10 минут (отмечу, что из 8 рабочих станций подопытного домена это наблюдалось только на одной, хотя, по идее, должно было на всех).
Фильтры 5-8 нужны для работы RPC endpoint mapper, работают только вместе с фильтрами 9-12 после добавления в реестр на всех контроллерах домена следующих данных:
Код:
REGEDIT4
;0000bc18 и 0000bc19 - 16-ричные эквиваленты 48152 и 48153, их можно заменить на другие значения в диапазоне от 1024 до 65535, изменив, естественно, и значения в фильтрах 9-12.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters]
"TCP/IP Port"=dword:0000bc18
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NtFrs\Parameters]
"RPC TCP/IP Port Assignment"=dword:0000bc19
В целом данный набор фильтров содержит, очевидно, излишества, однако копаться дальше в этом вопросе я посчитал нецелесообразным. Подробнее см. Active Directory Replication over Firewalls.
Microsoft, по своему обыкновению, приложила все усилия, чтобы сделать настройку static packet filters по возможности более неудобной — нельзя изменить порядок фильтров, дать комментарии к фильтрам, изменить размер окна с фильтрами, сохранить введённые фильтры без их немедленного применения... В общем, много чего нельзя. Вот несколько хитростей, которые могут облегчить вам жизнь:
Первым делом добавьте в список фильтр, разрешающий всё (не забудьте выбрать радиокнопку Drop all packets except those that meet the criteria below — по умолчанию выбрана другая). При наличии такого фильтра остальные никакого действия оказывать не будут. Удалите его после завершения настройки и повторной проверки всех фильтров.
В окне фильтров дважды щёлкните по правой границе каждой колонки. После этого в окне будет умещаться вся информация из всех колонок.
Постарайтесь минимизировать применения изменений - не надо жать Apply после ввода каждой записи, это не лучшим образом сказывается на стабильности системы: пакеты могут не идти при правильно настроенных фильтрах. В такой ситуации обычно помогает перезапуск RRAS, но иногда может потребоваться и перезагрузка сервера. При удаленной работе перед экспериментами рекомендую ввести в консоли shutdown /r /t 600 /f, а по окончании — shutdown /a. Возможно, это избавит вас от внеочередного визита в офис.
t1nkoff, благодарю за благодарность , однако хочу предупредить: там не всё правильно, надо добавить ещё кое-какие фильтры, иначе нормально не будет работать Active Directory и NetBIOS. К сожалению, сейчас абсолютно времени нет, надеюсь добраться до тестовой сети в ближайшие дни. Обязательно внесу исправления. Пока же этот список как 100%-ное руководство к действию, увы, рекомендовать не могу.
По результатам последней правки получилась относительно работоспособная совокупность фильтров. Относительно - потому что есть по крайней мере два тонких момента:
Тестирование производилось в домене с одним контроллером - если контроллеров несколько, наверняка потребуется открыть дополнительные порты.
Есть проблемы с перенаправлением папок, точнее, с синхронизацией автономных файлов на одной из машин. Если открыть все TCP-порты, проблемы исчезают.