Сервер в кармане, или просто о сложном!

главная - Статьи - Microsoft Windows



Настройка штатного файервола Windows через консоль

Надеюсь с netsh и файерволом windows вы уже знакомы, так что лирического отступления прошу не ожидать. Итак приступим: “C:>netsh ?

Доступны следующие дочерние контексты:
bridge diag firewall interface ras routing winsock

Нас естественно интересует firewall. Набираем и знак вопроса. Не буду флеймить, если интересно сам увидите что там да как.
Команды, наследуемые из контекста “netsh”:
C: etsh firewall set …
set file - Копирования с потока вывода консоли в файл.
set machine - Установление текущей машины, на которой выполняются операции.
set mode - Установление значения текущего режима.

set allowedprogram - Настройка конфигурации брандмауэра для разрешенной
программы.
set icmpsetting - Настройка конфигурации брандмауэра для протокола ICMP.
set logging - Настройка конфигурации протоколирования брандмауэра.
set multicastbroadcastresponse - Настройка конфигурации брандмауэра для
многоадресных и широковещательных ответов.
set notifications - Настройка конфигурации уведомлений брандмауэра.
set opmode - Настройка рабочей конфигурации брандмауэра.
set portopening - Настройка конфигурации порта брандмауэра.
set service - Настройка конфигурации службы брандмауэра.

Параметр Operational Mode обеспечивает три режима: Disabled отключает брандмауэр, Protected активизирует брандмауэр, а Shielded активизирует брандмауэр, но компьютер оказывается более изолированным от сети, чем в режиме Protected, который позволяет открыть определенные порты. Чтобы перевести компьютер в режим Disabled, Protected или Shielded, следует воспользоваться командой:

C: etsh firewall set opmode

с ключом disabled, enabled или shield.
Таким образом, чтобы надежно защитить сетевой адаптер, следует ввести команду:

C: etsh firewall set opmode shield

Эту команду удобно использовать в командном файле. Можно создать для командного файла ярлык на рабочем столе, назвав его Shield this System, чтобы можно было дважды щелкнуть на нем при любых признаках опасности для сети.

С помощью команды C: etsh firewall show opmode можно узнать режим брандмауэра.

Открываем порты для программ

По умолчанию Windows Firewall блокирует непрошеный входящий трафик, но не исходящий. Такой подход приемлем, если рабочая станция функционирует как клиент, инициирующий обмен данными (например, запрашивая почтовый сервер о наличии сообщений или Web-сервер - об информации). Но он не срабатывает, если рабочая станция предоставляет службы другим компьютерам сети, например, если на рабочей станции размещен почтовый сервер, потому что брандмауэр блокирует попытки клиентов инициировать диалог с серверной программой. Он также непригоден для одноранговых (peer-to-peer, P2P) соединений, таких как Instant Messaging (IM), в которых две или несколько машин обмениваются данными, выполняя обязанности и клиентов, и серверов одновременно. Таким образом, для запуска сервера или организации соединений P2P необходимо открыть некоторые порты.

Но какие именно порты следует открыть? Для ответа на этот вопрос достаточно указать конкретную программу в параметре Define Allowable Programs, и Windows Firewall открывает порты, необходимые данной программе. Пользователь указывает в параметре политики местонахождение программы, определяет ее состояние (активное или блокированное; например, можно составить политику блокирования портов для конкретной программы, если эта программа была “троянским конем”, проникшим в сеть) и открывает соответствующие порты для всего Internet или только для локальной подсети.

Предположим, что на компьютере работает серверная программа C:myprogsserverprog.exe. Неизвестно, какие порты она открывает, но необходимо, чтобы эти порты были открыты только для компьютеров той подсети, в которой расположен сервер. Нужно активизировать параметр Define Allowable Programs, затем щелкнуть на кнопке Show, чтобы на экране появилось диалоговое окно для ввода информации о сервере. В этом диалоговом окне я ввел строку

C:myprogsserverprog.exe:LocalSubnet: enabled: server
которая определяет четыре компонента, каждый из которых отделен от остальных двоеточием. Первый компонент - полный путь к программе. Можно использовать переменные среды, такие как %ProgramFiles%. Следующий компонент, LocalSubnet, указывает на необходимость принять трафик, входящий в порты этого сервера только из систем той же подсети. Третий компонент, enabled, разрешает прохождение трафика. И четвертый компонент, server, представляет собой просто метку, которую Windows Firewall может использовать при составлении отчетов. Число программ не ограничено.

Любую команду можно дополнить ключами profile= и interface=, поэтому, если файл- или принт-службу требуется открыть для проводного Ethernet-соединениия только в случаях, когда система подключена к домену, нужно ввести команду

C: etsh firewall set service type=fileandprint scope=subnet interface=”local area connection” profile=corporate

А чтобы разрешить совместную работу с файлами и принтерами только в локальной подсети, следует ввести команду

C: etsh firewall ipv4 set service type=fileandprint scope=subnet
Принцип прост - netsh firewall set service
за которой следует type= и имя службы (например, FILEANDPRINT, RPCANDDCOM или UPNP) или scope= с последующими ключами all (для всех IP-адресов) и subnet (для локальной подсети).

Многие в наше время отключают ICMP, по разным причинам, но чаще всего это просто несекьюрно. Иногда же бывает необходимость тестировать соединение например.

ICMP открывается из командной строки:

C: etsh firewall set icmpsetting

с последующим ключом type= и числом (3, 4, 5, 8, 10, 11, 12, 13 или 17) или словом all. Номер указывает один из девяти параметров ICMP, и нам нужен номер 8 - входящий запрос (incoming echo request). Чтобы машина отвечала на сигналы тестирования, необходимо ввести команду

C: etsh firewall set icmpsetting type=8

Команду можно уточнить с помощью ключей profile= и interface=.

Как открыть порт для службы, которая в данной статье не рассматривалась? Для этого можно воспользоваться параметром групповой политики, Define Custom Open Ports. Затем следует указать номер порта Windows Firewall, тип порта (TCP или UDP), область действия (все IP-адреса или только локальная подсеть) и действие (активизировать или блокировать). При желании порту можно присвоить описательное имя. Например, для почтового сервера можно открыть всему миру порт TCP 25:

25:TCP:*:enabled:SMTP

где 25 - номер порта, TCP - протокол, звездочка (*) открывает порт всему миру (не только подсети), ключ enabled открывает, а не закрывает порт, и SMTP - описательная фраза.
В командной строке же нужно ввести:

C: etsh firewall add portopening

с последующими ключами protocol= (варианты - tcp, udp или all), port= (с номером), name= (с именем), mode= (enable или disable) и scope= (all или subnet). Для активизации почтового сервера следует ввести команду

C: etsh firewall add portopening protocol=tcp port=25 name=SMTP mode=enable scope=all

Если режим не указан, то подразумевается enable (активизирован), а если не указан диапазон scope - подразумевается subnet (подсеть).

Чтобы закрыть порт, достаточно ввести команду

C: etsh firewall delete portopening

указав протокол и номер порта, идентифицирующие закрываемый порт. Например, порт почтового сервера закрывается командой

C: etsh firewall ipv4 delete portopening protocol=tcp port=25

В процессе экспериментов могут возникнуть недоразумения - порт был закрыт, но почему-то остается открытым. Такое бывает когда машина находится в домене. Чтобы избежать недоразумений, следует уяснить разницу между поведением брандмауэров, управляемых параметром Group Policy и с помощью командной строки. Команды, подаваемые из командной строки, обычно вступают в силу немедленно. Изменения в Group Policy начинают действовать спустя некоторое время.
Чтобы изменения Group Policy для Windows Firewall вступали в действие сразу же, следует применить команду gpupdate.

Необходимо дождаться, пока обработка команды завершится, затем перейти к функции Services в оснастке Manage Computer и перезапустить службу Internet Connection Firewall

Или из консоли выполнить:

C:>net stop SharedAccess
Служба “Брандмауэр Windows/Общий доступ к Интернету (ICS)” успешно остановлена.
C:>net start SharedAccess
Служба “Брандмауэр Windows/Общий доступ к Интернету (ICS)” запускается.
Служба “Брандмауэр Windows/Общий доступ к Интернету (ICS)” успешно запущена.

Мы рассмотрели некоторые возможности параметров Windows Firewall, но функции командной строки гораздо шире. Следует помнить, что Windows Firewall имеет два профиля: Domain и Mobile. Предположим, нам нужно выяснить, какой профиль используется в данный момент. Следующая команда показывает активный профиль - Domain Profile (corporate) или Mobile Profile (other):

netsh firewall show currentprofile

Команда Set Logging позволяет больше узнать о работе брандмауэра. Она имеет четыре параметра: Filelocation= показывает брандмауэру, куда записать ASCII-файл журнала, а maxfilesize= задает максимальный размер файла. Размер файла указывается в килобайтах, и максимальное допустимое значение - 32767. Параметры droppedpackets= и connections= принимают значения enable или disable и указывают брандмауэру, следует ли регистрировать блокированные и успешные соединения. Например, чтобы записывать как успешные, так и блокированные соединения в файле C:firewallog.txt размером максимум 8 Мбайт, нужно ввести команду

C: etsh firewall set logging filelocation=”C:firelog.txt” maxfilesize=8192 droppedpackets= enable connections=enable

Журнал может быть большим, но если нужно обнаружить взломщика, регулярно предпринимающего попытки атак, полезно иметь полный журнал, в котором отражены все соединения и отказы TCP и UDP. Задать текущий режим регистрации можно с помощью команды

C: etsh firewall show logging

Следующая команда выдает исчерпывающий список параметров брандмауэра:

C: etsh firewall show config

Заменив в данной команде ключ config ключом state, можно получить подробные сведения о действиях, выполняемых брандмауэром. Чтобы получить более компактный отчет, содержащий только информацию об открытых портах, следует заменить config на icmpsetting или portopening.

Для работы с Windows Firewall требуется освоить много новых понятий. Однако если в системе персонального брандмауэра нет, то Windows Firewall поможет защитить машину, придется лишь потратить незначительное время на настройку, чтобы открывать нужные порты. Вознаграждением для администратора будет сознание того, что система за брандмауэром станет куда менее уязвимой.



Авторизуйтесь для добавления комментариев!


    забыли пароль?    новый пользователь?