Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Windows

Как загрузить IP-адреса списком для блокировки в Windows Firewall? : Windows

29.03.2024 0:03


10.12.2014 10:35
OlegON
 
Собственно, вопрос.
Есть список адресов, как заблокировать их штатной стенкой из консоли? Желательно, чтобы правила шли первыми. Т.е. если в стенке разрешено подключение на 3389 порт, то вновь добавляемый запрет был с бОльшим приоритетом.
10.12.2014 11:25
Micle
 
Цитата:
OlegON Собственно, вопрос.
Есть список адресов, как заблокировать их штатной стенкой из консоли? Желательно, чтобы правила шли первыми. Т.е. если в стенке разрешено подключение на 3389 порт, то вновь добавляемый запрет был с бОльшим приоритетом.
netsh advfirewall firewall add rule name="HTTP"
protocol=TCP localport=80 action=allow dir=IN

Google на тему "netsh advfirewall firewall" должен помоч
Помимо этого, cmd весьма охотно откликается на "netsh advfirewall firewall ?"
10.12.2014 12:13
OlegON
 
Спасибо, только у меня не на чем попробовать, винды нет. Я сейчас черный список адресов оформлю, хотел выгружать его сразу в виде cmd-файла, чтобы людям оставалось только запустить...
10.12.2014 12:27
KirillHome
 
Боюсь, в этом случае - как минимум придётся проверять версию Windows - в XP и в 2003 нет netsh advfirewall
Код:
C:\>netsh advfirewall
Команда advfirewall не найдена.
В 2008 - есть.
10.12.2014 12:32
OlegON
 
В 2003 точно было, может, не advfirewall, a firewall... Но буду благодарен именно за полную строку, т.е.

Цитата:
netsh ..... <ip> ....
в двух вариантах, т.е. для 2003 и 2008, например, которые бы блокировали адрес полностью и поверх всех других правил.
Кстати, а большие списки (5000, например) сеть винде вообще не положат?
10.12.2014 12:55
KirillHome
 
Пока справку положу, посмотрю попозже

Код:
C:\>netsh firewall add portopening /?

add portopening

      [ protocol = ] TCP|UDP|ALL
      [ port = ] 1-65535
      [ name = ] имя
      [ [ mode = ] ENABLE|DISABLE
        [ scope = ] ALL|SUBNET|CUSTOM
        [ addresses = ] адреса
        [ profile = ] CURRENT|DOMAIN|STANDARD|ALL
        [ interface = ] имя ]

  Добавляет конфигурацию порта брандмауэра.

  Параметры:

  protocol - Протокол порта.
      TCP - Протокол TCP(Transmission Control Protocol).
      UDP - Протокол UDP (User Datagram Protocol).
      ALL - Все протоколы.

  port - Номер порта.

  name - Имя порта.

  mode - Режим порта (необязательно).
      ENABLE  - Пропускать через брандмауэр (по умолчанию).
      DISABLE - Не пропускать через брандмауэр.

  scope - Область порта (необязательно).
      ALL    - Пропускать через брандмауэр весь трафик (по умолчанию).
      SUBNET - Пропускать через брандмауэр только трафик локальной сети
               (подсети).
      CUSTOM - Пропускать через брандмауэр только указанный трафик.

  addresses - Область действия адресов (необязательно).

  profile - Профиль конфигурации (необязательно).
      CURRENT  - Текущий профиль (по умолчанию).
      DOMAIN   - Профиль домена.
      STANDARD - Стандартный профиль.
      ALL      - Все профили.

  interface - Имя интерфейса (необязательно).

  Примечание: параметры "profile" и "interface" не могут быть указаны вместе.
              Параметры "scope" и "interface" не могут быть указаны вместе.
              Параметр "scope" должен иметь значение "CUSTOM", чтобы задать
              адреса.

  Примеры:

      add portopening TCP 80 MyWebPort

      add portopening UDP 500 IKE ENABLE ALL

      add portopening ALL 53 DNS ENABLE CUSTOM

          157.60.0.1,172.16.0.0/16,10.0.0.0/255.0.0.0,LocalSubnet
      add portopening protocol = TCP port = 80 name = MyWebPort

      add portopening protocol = UDP port = 500 name = IKE mode = ENABLE scope =
 ALL
      add portopening protocol = ALL port = 53 name = DNS mode = ENABLE

          scope = CUSTOM addresses =
          157.60.0.1,172.16.0.0/16,10.0.0.0/255.0.0.0,LocalSubnet
Это - для XP, ну и, скорее всего, 2003
10.12.2014 14:04
KirillHome
 
Для семёрки, 2008 - подсмотрел

Цитата:
Save this as blockit.bat:

Код:
@echo off
if "%1"=="list" (
  netsh advfirewall firewall show rule Blockit | findstr RemoteIP
  exit/b
)

:: Deleting existing block on ips
netsh advfirewall firewall delete rule name="Blockit"

:: Block new ips (while reading them from blockit.txt)
for /f %%i in (blockit.txt) do (
  netsh advfirewall firewall add rule name="Blockit" protocol=any dir=in action=block remoteip=%%i
  netsh advfirewall firewall add rule name="Blockit" protocol=any dir=out action=block remoteip=%%i
)

:: call this batch again with list to show the blocked IPs
call %0 list
Create a blockit.txt with your IPs to block and run blockit.

You can run blockit list to check which IPs are blocked at the moment.

Note: This needs to be run as Administrator.

Edit: Didn't know if you wanted outgoing or incoming traffic blocked so i added both dir=in and dir=out. You can delete one or the other (or leave them both for both directions).
12.12.2014 08:01
OlegON
 
А если не влом - попробуйте, что работает на 2008
Цитата:
netsh advfirewall firewall add rule name="Blockit" protocol=any dir=in action=block remoteip=адрес
и на 2003
Цитата:
netsh firewall firewall add rule name="Blockit" protocol=any dir=in action=block remoteip=адрес
суть - попробовать, что строка не только выполняется, но и работает.
Часовой пояс GMT +3, время: 00:03.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.