Использование команды Netsh для брандмауэра Windows

Published on Февраль 18, 2009 by   ·   Комментариев нет

всегда был любителем строительства домов из кирпичей. Они всегда выглядят прочнее по сравнению с сегодняшними домами из дерева и пластика. Кирпич также добавляет чувство безопасности – кто попробует вломиться сквозь кирпичную стену в ваш дом?

Но меня всегда удивляет, не будет ли ваш дом еще более безопасным, если не только внешние стены, но и внутренние перегородки между стенами будут из кирпича? В конце концов, стены, сложенные из сухого раствора настолько хрупкие, что вы можете пробить, если будете достаточно злыми (и не боитесь немного боли), поэтому это неплохая идея сделать внутренние стены также из кирпича. Таким образом, если кто-то вломился в ваш дом, ему по-прежнему потребуется вломиться в каждую отдельную комнату, чтобы найти сейф, в котором вы храните свои драгоценности.

Многие корпоративные сети очень напоминают такую схему — вместо того, чтобы полностью положиться на брандмауэр на периметре сети (внешняя стена), они устанавливают брандмауэры на индивидуальные сервера и клиенты (комнаты), что предоставляет дополнительный уровень защиты от атаки. А в сетях, в которых стоят клиенты и сервера, которые работают под управлением операционной системы Windows XP и Windows Server 2003, не возникает вопроса какой брандмауэр использовать: Брандмауэр Windows (Windows Firewall). В конце концов, он бесплатен!

К несчастью установка брандмауэров на клиентах и серверах означает также дополнительные работы по управлению, но здесь нам могут помочь политики групп (Group Policy), касающиеся брандмауэра Windows (другая хорошая причина для установки брандмауэра Windows на компьютере вместо программного обеспечения сторонних производителей). Однако, через некоторое время вы захотите проверить или изменить конфигурацию брандмауэра Windows на некоторых компьютерах в результате каких-нибудь проблем, и в этом вам поможет утилита командной строки Netsh.exe.

Заставим это работать

Давай представим, что некто Bob настраивает компьютер с Windows Server 2003 SP1 для работы в качестве web и файлового сервера для внутренних нужд компании. Зная, что служба Windows Firewall/Internet Connection Sharing отключена по умолчанию, он откроет консоль служб (Services console) в окне администрирование (Administrative Tools) и изменит тип запуска (Startup Type) для этой службы на автоматический (Automatic), а затем запустит службу. Дальше лучше, но если он попытается открыть утилиту Windows Firewall из панели управления (Control Panel) он столкнется с сообщением, спрашивающим его, желает ли он запустить эту службу и указывающую, что ему необходимо перезагрузить его сервер, для того, чтобы изменения вступили в силу.

Во что бы то ни стало Bob теперь хочет подключить и настроить брандмауэр Windows на сервере, но неожиданно его вызывают по срочному делу. Он посылает быстрое электронное сообщение своему помощнику Mary с помощью BlackBerry, в котором сообщает: “Включи брандмауэр на сервере так, чтобы клиенты могли получить к нему доступ — заставь это работать” и выходит за дверь. К несчастью, его помощник работает сегодня из дома, но Bob не забыл включить Remote Desktop на новом сервере, поэтому Mary устанавливает соединение Remote Desktop Connection со своего компьютера с Windows XP SP2 и получает консоль удаленного сервера.

Что теперь? Mary может открыть панель управления (Control Panel) на удаленной машине и включить брандмауэр Windows, но не знает что именно необходимо на нем настроить. Bob торопился когда сказал “так чтобы клиенты могли получить к нему доступ”, но какие именно клиенты? А это важно, раз он хочет сделать это сегодня.

Вместо того чтобы искать в окне служб (Services console) дополнительные службы, которые мог подключить на машине Bob, Mary решает открыть командную строку на удаленной машине и выполнить другую задачу. Она начинает печатать следующую команду:

netstat –ano > netstat.txt
notepad netstat.txt

Затем она изучает содержимое файла netstat.txt, который она открывает с помощью блокнота (Notepad):

Active Connections

Proto    Local Address        Foreign Address      State        PID
TCP      0.0.0.0:80           0.0.0.0:0            LISTENING    1664
TCP      0.0.0.0:135          0.0.0.0:0            LISTENING    696
TCP      0.0.0.0:445          0.0.0.0:0            LISTENING    4
TCP      0.0.0.0:1037         0.0.0.0:0            LISTENING    1000
TCP      0.0.0.0:1040         0.0.0.0:0            LISTENING    436
TCP      0.0.0.0:1045         0.0.0.0:0            LISTENING    1220
TCP      0.0.0.0:3389         0.0.0.0:0            LISTENING    1780
TCP      127.0.0.1:1051       0.0.0.0:0            LISTENING    1856
TCP      172.16.11.182:139    0.0.0.0:0            LISTENING    4
TCP      172.16.11.182:1029   172.16.11.181:445    TIME_WAIT    0
TCP      172.16.11.182:1034   172.16.11.181:135    TIME_WAIT    0
TCP      172.16.11.182:1035   172.16.11.181:1025   ESTABLISHED  436
TCP      172.16.11.182:1039   172.16.11.181:1025   TIME_WAIT    0
TCP      172.16.11.182:1043   172.16.11.181:445    TIME_WAIT    0
TCP      172.16.11.182:1052   172.16.11.181:389    TIME_WAIT    0
TCP      172.16.11.182:1053   172.16.11.181:389    TIME_WAIT    0
TCP      172.16.11.182:1055   172.16.11.181:389    TIME_WAIT    0
TCP      172.16.11.182:1056   172.16.11.181:139    TIME_WAIT    0
TCP      172.16.11.182:1062   172.16.11.181:389    TIME_WAIT    0
TCP      172.16.11.182:1063   172.16.11.181:389    TIME_WAIT    0
TCP      172.16.11.182:1071   172.16.11.181:445    TIME_WAIT    0
TCP      172.16.11.182:1075   172.16.11.181:135    ESTABLISHED  436
TCP      172.16.11.182:1078   172.16.11.181:389    TIME_WAIT    0
TCP      172.16.11.182:1079   172.16.11.181:389    TIME_WAIT    0

С помощью него она узнает, что на сервере установлена служба HTTP, которая слушает по TCP по порту 80. Лучше убедиться, что эта служба действительно единственная, которая использует этот порт. Как она это сделает? Сперва, она обратит внимание на номер процесса (PID), связанный с этими портами, в нашем случае это — 1664. Затем, она введет следующую команду в командной строке:

tasklist /svc > svclist.txt
notepad svclist.txt

Затем она проверить содержимое файла svclist.txt, которое должно выглядеть так:

Image                     Name PID Services
========================= ======== ====================================
System Idle Process       0        N/A
System                    4        N/A
smss.exe                  260      N/A
csrss.exe                 348      N/A
winlogon.exe              380      N/A
services.exe              424      Eventlog, PlugPlay
lsass.exe                 436      HTTPFilter, Netlogon, PolicyAgent,
ProtectedStorage, SamSs
svchost.exe               644      DcomLaunch
svchost.exe               696      RpcSs
svchost.exe               748      Dhcp, Dnscache
svchost.exe               796      LmHosts, W32Time
svchost.exe               812      AeLookupSvc, Browser, CryptSvc,
dmserver, EventSystem, helpsvc,
lanmanserver, lanmanworkstation,
Netman, Nla, Schedule, seclogon, SENS,
SharedAccess, ShellHWDetection, TrkWks,
winmgmt, wuauserv, WZCSVC
spoolsv.exe               976      Spooler
msdtc.exe                 1000     MSDTC
vmsrvc.exe                1120     1-vmsrvc
svchost.exe               1144     ERSvc
inetinfo.exe              1220     IISADMIN
svchost.exe               1288     RemoteRegistry
svchost.exe               1312     SrmSvc
vpcmap.exe                1420     VPCMap
svchost.exe               1664     W3SVC
svchost.exe               1780     TermService
alg.exe                   1856     ALG
explorer.exe              972      N/A
vmusrvc.exe               1412     N/A
wuauclt.exe               2120     N/A
csrss.exe                 2176     N/A
winlogon.exe              2204     N/A
rdpclip.exe               2452     N/A
explorer.exe              2556     N/A
wmiprvse.exe              2564     N/A
vmusrvc.exe               2648     N/A
cmd.exe                   2724     N/A
tasklist.exe              2964     N/A
wmiprvse.exe              2988     N/A

Она проверит этот файл, найдя PID, который мы запомнили ранее и получит такую строку:

svchost.exe               1664     W3SVC

Эта строка подтверждает, что Bob установил IIS на сервере и настроил его для работы в качестве web сервера.

Теперь Mary должна включить брандмауэр Windows на компьютере и создать исключение для клиентов HTTP для доступа к нему. Т.к. она уже запустила командную строку на удаленной машине, она решает сделать это с помощью команды Netsh. Сначала, она просматривает конфигурацию брандмауэра Windows на сервере:

C:\>netsh firewall show opmode

Domain profile configuration (current):
——————————————————————-
Operational mode                       = Disable
Exception mode                          = Enable

Standard profile configuration:
——————————————————————-
Operational mode                       = Disable
Exception mode                          = Enable

Local Area Connection firewall configuration:
——————————————————————-
Operational mode                       = Enable

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

C:\>netsh firewall set opmode enable
Ok.

Теперь она добавляет исключение для порта службы HTTP:

C:\>netsh firewall add portopening TCP 80 HTTP enable subnet
Ok.

Для того чтобы проверить это, она временно сворачивает окно Remote Desktop Connection и открывает Internet Explorer и набирает http://172.16.11.182 в строке адреса, и вот что она получает в ответ (Рисунок 1):

Включить брандмауэр командная строка

Рисунок 1: Доступ к серверу с помощью HTTP

Теперь давайте взглянем, что еще запущено на сервере. Mary возвращается к файлу netstat.txt, показанному ранее. У нее вызывают интерес следующие строки:

TCP          0.0.0.0:445                0.0.0.0:0         LISTENING          4
TCP         172.16.11.182:139     0.0.0.0:0         LISTENING          4

В результате этого она заключает, что сервер настроен для работы в качестве файлового сервера с общими папками по следующим двум портам (и двумя другими, показанными ниже):

  • UDP port 137 – порт, по которому слушает служба NETBIOS Name Service
  • UDP port 138 – порт, по которому слушает служба NETBIOS Datagram Service
  • TCP port 139 – порт, по которому слушает служба NETBIOS Session Service
  • TCP port 445 – порт, по которому слушает SMB по TCP/IP

Другими словами, первые три порта для SMB по NBT (NETBIOS по TCP/IP), а последний порт (новый в Windows 2000 и выше) – для SMB напрямую по TCP/IP.

Итак, для того чтобы получить доступ к удаленному серверу, который работает в качестве файлового сервера, необходимо создать исключения для этих четырех портов в брандмауэре Windows. Для того чтобы сделать это, Mary набирает следующие команды в командной строке, открытой на рабочем столе удаленной консоли:

netsh firewall add portopening UDP 137 blah enable subnet
netsh firewall add portopening UDP 138 blah enable subnet
netsh firewall add portopening TCP 139 blah enable subnet
netsh firewall add portopening TCP 445 blah enable subnet

Удобство такого подхода заключается в том, что если она откроет брандмауэр Windows из контрольной панели (Control Panel) на рабочем столе удаленной машины, то исключения для File and Printer Sharing будут отображены как подключенные (рисунок 2):

Тестовый HTTP сервер терминальное окно

Рисунок 2: File and Printer Sharing подключено на сервере

Mary может отображать общие папки на удаленном сервере просто кликнув на Start, затем на Run, набрав \\172.16.11.182 и кликнув на OK.

Заключение

Mary могла облегчить свою жизнь, настраивая брандмауэр Windows Firewall с помощью GUI вместо использования Netsh, т.к. она запустила сессию на удаленном рабочем столе, но не имела возможности изучить, как использовать Netsh, действительно полезную вещь для администратора!

Последнее замечание: перед тем как Мари завершит свою сессию RDC она должна набрать еще одну команду на сервере:

netsh firewall add portopening TCP 3389 blah enable any

Иначе она не смогла бы соединиться с удаленной машиной с помощью RDC, т.к. однажды включенный Windows Firewall блокирует сессию Remote Desktop по умолчанию!

www.windowsnetworking.com




















































































Смотрите также:

Tags: , , , ,

Readers Comments (Комментариев нет)




Да человек я, человек! =)




Exchange 2007

Проведение мониторинга Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 3)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Проведение мониторинга Exchange 2007 с помощью диспетчера System ... [+]

Практическое рассмотрение перехода с Exchange 2003 на Exchange 2007 (часть 1)

Введение В этой статье из нескольких частей я хочу показать вам процесс, который недавно использовал для перехода с существующей среды Exchange 2003 ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 2)

Если вы пропустили первую часть этой серии, пожалуйста, прочтите ее по ссылке Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (Часть ... [+]

Мониторинг Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 2)

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Мониторинг Exchange 2007 с помощью диспетчера System Center Operations ... [+]

Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 5)

Если вы пропустили предыдущие части этой серии статей, перейдите по ссылкам: Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 1) ... [+]

Установка и настройка Exchange 2007 из командной строки (Часть 3)

If you missed the previous parts in this article series please read: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 1)

Инструмент ExRCA Текущий выпуск инструмента предоставляется только в целях тестирования и оснащен 5 опциями: Тест подключения Outlook 2007 Autodiscover Тест подключения Outlook 2003 RPC ... [+]

Развертывание сервера Exchange 2007 Edge Transport (часть 5)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Развертывание сервера Exchange 2007 Edge Transport (часть 1) Развертывание ... [+]

Установка и настройка Exchange 2007 из командной строки (часть 2)

Если вы пропустили первую статью данного цикла, пожалуйста, перейдите по ссылке: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование интегрированных сценариев Using Exchange Server 2007 – часть 2: генерирование отчетов агента Transport AntiSpam Agent

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Использование интегрированных сценариев Using Exchange Server 2007 – часть ... [+]