CMD (Win 7) - blokowanie portów przy użciu Netsh.

Dodano: 2010-03-27

Systemy z rodziny Windows dostarczają administratorom „szereg” narzędzi umożliwiających kontrolę ruchu sieciowego z i do komputera. Jpednym z bardzo dobrych programów kontrolujących ruch jest IPSeccmd.exe, niestety w nowych wersjach systemu Windows (począwszy od Visty) nie jest już dostępny - jego możliwości konfiguracyjne zostały wchłonięte przez Netsh.

Netsh umożliwia tworzenie reguł ruchu sieciowego wychodzącego jak i przychodzącego do komputera. Obszerna informacja o tym narzędziu jest dostępna na stronie Microsoftu.

Jeżeli sam chcesz sprawdzić co oferuje program wpisz w lini komend netsh, uruchomisz powłokę programu, aby wyświetlić dostępne komendy wpisz polecenie help.

Poniżej zamieszczam skrypt, który pokazuje tylko część możliwości narzędzia administracyjnego Netsh. W skrypcie tym wykorzystane zostały możliwości firewalla systemowego.

Drukuj Zaznacz kod
@echo off
cls

@echo Skrypt umozliwa zablokowanie okreslonych portow, jak i odblokowanie.
@echo Korzysta z zapory systemowej Winows.
@echo Polecenia:
@echo add	- dodanie reguly
@echo delete	- usuniecie reguly
@echo show	- pokazuje wybrane reguly
@echo Nazwy regul to "Script rule [number port]"
@echo.

:START
set /p option=">"
set op=%option%
set option=quit
if %op%==show GOTO SHOW
if %op%==add GOTO ADD
if %op%==delete GOTO DELETE
GOTO EXIT

:SHOW
set /p port=">Podaj port: "
set name="script rule %port%" 
@echo netsh advfirewall firewall show rule name=%name%
netsh advfirewall firewall show rule name=%name%
GOTO START

:ADD
set /p port=">Podaj port: "
set name="script rule %port%" 
set /p outin=">[out|in]: "
set /p protocol=">[TCP|UDP|any]: "
set /p action=">[block|allow]: "
@echo netsh advfirewall firewall add rule name=%name% dir=%outin% protocol=%protocol% action=%action%
netsh advfirewall firewall add rule name=%name% dir=%outin% protocol=%protocol% action=%action%
GOTO START

:DELETE
set /p port=">Podaj port: "
set name="script rule %port%" 
@echo netsh advfirewall firewall delete rule name=%name%
netsh advfirewall firewall delete rule name=%name%
GOTO START

:EXIT
exit

Życzę miłej zabawy ze skryptem ;)