반응형

 

집에서 윈도우즈 서버나 일반 PC 방화벽 적용하기 위해 만들어 사용한 배치파일입니다.

 

방화벽 포트를 입력하세요 : 21

방화벽 포트를 입력하세요 : 21-29

_port_21 또는 _port_21-29 라는 이름으로 방화벽 설정에 등록됩니다

 

방화벽 IP를 입력하세요 : 192.168.219.113

방화벽 IP를 입력하세요  : 192.168.219.113-192.168.219.115

방화벽 IP를 입력하세요  : 192.168.219.113-192.168.219.115, 192.168.219.117

 

방화벽 Program 경로를 입력하세요 : "c:\Program Files\FileZilla FTP Client\filezilla.exe"

 

@echo off
@chcp 949

echo.
echo.

for /f "eol=; tokens=*" %%I in ('powershell Get-Clipboard') do set CLIPBOARD_TEXT=%%I

goto _start_work

:_start_work

    echo.
    echo    [ Firewall Manager ver 2.1 ]
    echo.
    echo.
    echo    1 : 방화벽 port 조회
    echo    2 : 방화벽 port 추가
    echo    3 : 방화벽 port 수정
    echo    4 : 방화벽 port 삭제
    echo.
    echo    5 : 방화벽 설정이름 조회
    echo    6 : 방화벽 설정이름 삭제
    echo.
    echo    7 : 방화벽 program 추가
    echo    8 : 방화벽 program 삭제
    echo.
    echo    9 : 종료
    echo.

    set /p str="작업을 선택하세요 :  "
    set firewall_workNo=%str%

    if %firewall_workNo% == 9 goto _end

    if %firewall_workNo% == 1 goto _firewall_search
    if %firewall_workNo% == 2 goto _firewall_add
    if %firewall_workNo% == 3 goto _firewall_modify
    if %firewall_workNo% == 4 goto _firewall_delete

    if %firewall_workNo% == 5 goto _firewall_name_search
    if %firewall_workNo% == 6 goto _firewall_name_delete

    if %firewall_workNo% == 7 goto _firewall_program_add
    if %firewall_workNo% == 8 goto _firewall_program_delete


    goto _start_work

:_firewall_search

    echo.
    echo    ***********************************
    echo.
    echo   ▶▶▶ 방화벽 조회

    echo.
    set /p str="방화벽 포트를 입력하세요 : "
    set firewall_port=%str%
    echo.

    netsh advfirewall firewall show rule name=_port_%firewall_port%
    echo.

    goto _end

:_firewall_add

    echo.
    echo    ***********************************
    echo.
    echo   ▶▶▶ 방화벽 추가

    echo.
    set /p str="방화벽 포트를 입력하세요 : "
    set firewall_port=%str%
    echo.

    set /p str2="방화벽 IP를 입력하세요 : "
    set firewall_ip=%str2%

    netsh advfirewall firewall add rule name=_port_%firewall_port% dir=in action=allow localport=%firewall_port% protocol=tcp remoteIP=%firewall_ip%
    echo.

    netsh advfirewall firewall show rule name=_port_%firewall_port%
    echo.

    goto _end

:_firewall_modify

    echo.
    echo    ***********************************
    echo.
    echo   ▶▶▶ 방화벽 수정

    echo.
    set /p str="방화벽 포트를 입력하세요 : "
    set firewall_port=%str%
    echo.

    set /p str2="방화벽 IP를 입력하세요 : "
    set firewall_ip=%str2%

    netsh advfirewall firewall set rule name=_port_%firewall_port% new remoteip=%firewall_ip%
    echo.

    netsh advfirewall firewall show rule name=_port_%firewall_port%
    echo.

    goto _end

:_firewall_delete

    echo.
    echo    ***********************************
    echo.
    echo   ▶▶▶ 방화벽 삭제
    echo.
    set /p str="방화벽 포트를 입력하세요 : "
    set firewall_port=%str%
    echo.

    netsh advfirewall firewall delete rule name=_port_%firewall_port%
    echo.

    goto _end


:_firewall_name_search

    echo.
    echo    ***********************************
    echo.
    echo   ▶▶▶ 방화벽 설정이름 조회

    echo.
    set /p str="방화벽 설정이름을 입력하세요 : "
    set firewall_name=%str%
    echo.

    netsh advfirewall firewall show rule name=%firewall_name%
    echo.

    goto _end

:_firewall_name_delete

    echo.
    echo    ***********************************
    echo.
    echo   ▶▶▶ 방화벽 설정이름 삭제

    echo.
    set /p str="방화벽 설정이름을 입력하세요 : "
    set firewall_name=%str%
    echo.

    netsh advfirewall firewall delete rule name=%firewall_name%
    echo.

    goto _end    

:_firewall_program_add

    echo.
    echo    ***********************************
    echo.
    echo   ▶▶▶ 방화벽 program 추가
    echo.
    echo   프로그램 전체경로를 클립보드에 미리 저장하세요.
    echo   (ex. c:\abc\123.exe )
    echo.

    echo.
    set /p str="방화벽 설정이름을 입력하세요 : "
    set firewall_name=%str%
    echo.

    echo 방화벽 program 경로 : %CLIPBOARD_TEXT%
    pause
    rem set /p str2="방화벽 program 경로를 입력하세요 : "
    rem set firewall_program=%str2%
    set firewall_program=%CLIPBOARD_TEXT%

    netsh advfirewall firewall add rule name=%firewall_name% dir=in action=allow program=%firewall_program% enable=yes protocol=tcp
    netsh advfirewall firewall add rule name=%firewall_name% dir=in action=allow program=%firewall_program% enable=yes protocol=udp

    netsh advfirewall firewall show rule name=%firewall_name%
    echo.

    goto _end

:_firewall_program_delete

    echo.
    echo    ***********************************
    echo.
    echo   ▶▶▶ 방화벽 program 삭제
    echo.
    set /p str="방화벽 설정이름을 입력하세요 : "
    set firewall_name=%str%
    echo.

    netsh advfirewall firewall delete rule name=%firewall_name%
    echo.


    goto _end

: _end

    pause

 

반응형