윈도우는 기본 방화벽인 "Windows 방화벽"을 사용합니다. 윈도우 10에서는 Windows Defender 방화벽이라 이름이 바뀌었으며 윈도우 디펜더 보안센터에서 통합 관리 됩니다. 제어판의 방화벽 고급설정 (wf.msc) 에서 프로필 속성을 설정하고 각각의 규칙을 만들거나 변경할 수 있습니다. Netsh advfirewall 명령어를 사용한다면 더욱 빠르고 편리하게 원하는 설정이 가능합니다. 특히 여러 가지 규칙을 변경해야 하는 경우 배치파일을 만들면 한 번에 모든 작업을 완료할 수 있습니다.
Netsh advfirewall 명령어
보통 netsh advfirewall + 명령어 ... 의 형태로 사용합니다. 또는
방화벽 사용 / 사용 안 함 설정
방화벽 프로필은 도메인 네트워크 / 개인 네트워크 / 공용 네트워크 3가지가 있습니다. netsh advfirewall set 명령어를 사용하여 프로필 설정을 변경할 수 있습니다.
{프로필 종류}에 원하는 항목을 넣을 수 있습니다.
개인 네트워크의 방화벽을 사용하지 않음으로 변경한다면 다음과 같습니다.
인바운드 / 아웃바운드 정책 설정
윈도우 방화벽은 기본으로 규칙과 일치하지 않는 인바운드 연결은 차단, 아웃바운드 연결은 허용으로 설정되어 있습니다. 사용자가 다른 컴퓨터(서버) 또는 사이트에 접속할 때는 아웃바운드 연결, 사용자가 서버 역할을 할 때는 인바운드 연결이 적용됩니다. 명령어의 형태는 다음과 같습니다.
인바운드 정책과 아웃바운드 정책 변수
예시) 공용 프로필에서 규칙과 일치하지 않는 아웃바운드 연결을 차단합니다.
새 규칙 만들기
명령어를 사용하여 각각의 프로그램을 허용하고 차단하는 규칙을 추가합니다. 사용할 수 있는 조건은 다음과 같습니다.
몇 가지 예를 보면 쉽게 사용 방법을 알 수 있습니다.
예시) 파이어폭스 아웃바운드 허용
규칙 사용함 / 안 함
예시) Xbox 인바운드 사용안함
규칙 삭제
예시) 모든 규칙 삭제
이름 확인
모든 규칙의 이름을 확인합니다.
마치며
Microsoft에서는 netsh advfirewall 명령어 대신 Powershell을 사용할 것을 권고하고 있습니다. 하지만 윈도우 10의 현재 버전까지는 netsh advfirewall을 사용하여 충분히 원하는 규칙을 변경하고 만들 수 있습니다. 더 자세한 사항은 하단의 사이트를 참고 하시기 바랍니다.
참고:
https://technet.microsoft.com/en-us/library/cc771920
https://technet.microsoft.com/en-us/library/dd734783
Netsh advfirewall 명령어
보통 netsh advfirewall + 명령어 ... 의 형태로 사용합니다. 또는
netsh advfirewall을 입력하면 그림과 같이 netsh advfirewall 프롬프트가 시작되며 netsh advfirewall 을 생략하고 명령어를 사용할 수 있습니다. exit 를 사용하여 빠져 나옵니다.
방화벽 사용 / 사용 안 함 설정
방화벽 프로필은 도메인 네트워크 / 개인 네트워크 / 공용 네트워크 3가지가 있습니다. netsh advfirewall set 명령어를 사용하여 프로필 설정을 변경할 수 있습니다.
방화벽 사용: netsh advfirewall set {프로필 종류} state on 방화벽 중지: netsh advfirewall set {프로필 종류} state off
{프로필 종류}에 원하는 항목을 넣을 수 있습니다.
모든 프로필 : allprofiles
현재 프로필 : currentprofile
도메인 네트워크: domainprofile
개인 네트워크: privateprofile
공용 네트워크: publicprofile
현재 프로필 : currentprofile
도메인 네트워크: domainprofile
개인 네트워크: privateprofile
공용 네트워크: publicprofile
개인 네트워크의 방화벽을 사용하지 않음으로 변경한다면 다음과 같습니다.
netsh advfirewall set privateprofile state off
인바운드 / 아웃바운드 정책 설정
윈도우 방화벽은 기본으로 규칙과 일치하지 않는 인바운드 연결은 차단, 아웃바운드 연결은 허용으로 설정되어 있습니다. 사용자가 다른 컴퓨터(서버) 또는 사이트에 접속할 때는 아웃바운드 연결, 사용자가 서버 역할을 할 때는 인바운드 연결이 적용됩니다. 명령어의 형태는 다음과 같습니다.
netsh advfirewall set {프로필 종류} firewallpolicy {인바운드 정책,아웃바운드 정책}
인바운드 정책과 아웃바운드 정책 변수
blockinbound : 허용 규칙 이외의 모든 인바운드 연결을 차단합니다.
blockinboundalways : 허용 규칙을 포함한 모든 인바운드 연결을 차단합니다.
allowinbound : 차단 규칙 이외의 모든 인바운드 연결을 허용합니다.
blockoutbound : 허용 규칙 이외의 모든 아웃바운드 연결을 차단합니다.
allowoutbound : 차단 규칙 이외의 모든 아웃바운드 연결을 허용합니다.
blockinboundalways : 허용 규칙을 포함한 모든 인바운드 연결을 차단합니다.
allowinbound : 차단 규칙 이외의 모든 인바운드 연결을 허용합니다.
blockoutbound : 허용 규칙 이외의 모든 아웃바운드 연결을 차단합니다.
allowoutbound : 차단 규칙 이외의 모든 아웃바운드 연결을 허용합니다.
예시) 공용 프로필에서 규칙과 일치하지 않는 아웃바운드 연결을 차단합니다.
netsh advfirewall set publicprofile firewallpolicy blockinbound,blockoutbound기본 설정은 다음과 같습니다.
netsh advfirewall set allprofiles firewallpolicy blockinbound,allowoutbound
새 규칙 만들기
netsh advfirewall firewall add rule {조건1} {조건2} {조건3} ...
명령어를 사용하여 각각의 프로그램을 허용하고 차단하는 규칙을 추가합니다. 사용할 수 있는 조건은 다음과 같습니다.
조건 | 설명 |
---|---|
name="규칙 이름" | all 이라는 이름은 사용할 수 없습니다. |
dir=in dir=out |
인바운드 / 아웃바운드를 설정합니다. |
action=allow action=block |
허용 / 차단을 설정합니다. |
program="프로그램 경로" | 프로그램 위치와 이름을 입력합니다. |
service="서비스 이름" | 허용하거나 차단할 서비스를 입력합니다. |
description="규칙 설명" | 규칙 설명을 추가 합니다. |
enable=yes enable=no |
규칙을 사용할지 사용 안 할지 선택합니다. |
profile=public profile=private profile=domain profile=any |
규칙을 적용할 프로필을 선택합니다. 쉼표를 이용해 복수의 프로필을 선택할 수 있습니다. 예) profile=public,private |
protocol=any protocol=tcp protocol=udp |
프로토콜을 설정합니다. |
localip=12.34.56.78 remoteip=12.34.56.78 remoteip=any |
로컬 및 원격 IP를 지정합니다. |
localport=500 remoteport=500 remeteport=any |
로컬 포트 및 원격 포트를 설정합니다. IP와 포트는 - 를 사용해 범위를 지정할 수 있습니다. 쉼표를 사용하여 복수의 ip, 포트를 지정할 수 있습니다. 예시) remoteport=5000-5020 예시) localport=500,600 |
몇 가지 예를 보면 쉽게 사용 방법을 알 수 있습니다.
예시) 파이어폭스 아웃바운드 허용
netsh advfirewall firewall add rule name="Firefox" dir=out action=allow program="C:\Program Files\Mozilla Firefox\firefox.exe" enable=yes예시) 팟플레이어 광고 IP 차단
netsh advfirewall firewall add rule name="Block Potplayer Ad" dir=out action=block program="C:\Program Files\DAUM\PotPlayer\PotPlayer64.exe" remoteip="110.76.142.69" enable=yes
규칙 사용함 / 안 함
netsh advfirewall firewall set rule {조건1} {조건2} ... new enable=yes(or no)규칙을 사용 또는 사용 안 함으로 변경합니다. 이름을 직접 지정할 수도 있고 그룹을 지정하여 해당하는 규칙을 모두 변경할 수 있습니다.
예시) Xbox 인바운드 사용안함
netsh advfirewall firewall set rule name="Xbox" dir=in new enable=no예시) 네트워크 검색 모두 사용 안 함 (그룹 지정)
netsh advfirewall firewall set rule group="네트워크 검색" new enable=No
규칙 삭제
netsh advfirewall firewall delete {조건1} {조건2}...
사용할 수 있는 조건들은 다음과 같습니다.
name / dir / profile / program / service / localip / remoteip / localport / remoteport / protocol
name=all을 사용하여 모든 규칙을 선택할 수 있습니다.
name / dir / profile / program / service / localip / remoteip / localport / remoteport / protocol
name=all을 사용하여 모든 규칙을 선택할 수 있습니다.
예시) 모든 규칙 삭제
netsh advfirewall firewall delete name=all예시) 특정 이름 삭제
netsh advfirewall firewall delete name="rule 12"예시) TCP 포트 80을 허용하거나 차단하는 모든 규칙 삭제
netsh advfirewall firewall delete name=all protocol=tcp localport=80
이름 확인
모든 규칙의 이름을 확인합니다.
netsh advfirewall firewall show rule name=all모든 인바운드 규칙의 이름을 확인합니다.
netsh advfirewall firewall show rule name=all dir=in
마치며
Microsoft에서는 netsh advfirewall 명령어 대신 Powershell을 사용할 것을 권고하고 있습니다. 하지만 윈도우 10의 현재 버전까지는 netsh advfirewall을 사용하여 충분히 원하는 규칙을 변경하고 만들 수 있습니다. 더 자세한 사항은 하단의 사이트를 참고 하시기 바랍니다.
참고:
https://technet.microsoft.com/en-us/library/cc771920
https://technet.microsoft.com/en-us/library/dd734783
작성자가 댓글을 삭제했습니다.
답글삭제