다양한 방화벽 환경에서 로컬로 웹 애플리케이션의 동작을 테스트하고 싶습니다.
특정 조건에 따라 브라우저에서 다른 포트로 요청을 보내는 애플리케이션이 있는데, 포트가 비활성화될 때 애플리케이션이 어떻게 작동하는지 확인하기 위해 방화벽 규칙을 동적으로 수정할 수 있는 방화벽을 설정하고 싶습니다.
내 컴퓨터에서 게스트 컴퓨터의 포트로 보내는 요청을 차단하도록 방화벽을 설정하여 이를 달성하고 싶습니다.
저는 OS X Sierra를 실행하는 Virtualbox를 사용하고 있습니다 pfctl
.
호스트에서 이 명령으로 시작하고 게스트의 포트를 차단하려고 시도했지만(에서 192.168.99.100
) 성공하지 못했습니다.
block in quick inet proto { tcp, udp } from any to 192.168.99.100 port 63342
답변1
당신이 진행하는 방식은 나에게 약간 직관에 반하는 것 같습니다. 일반적으로 웹 애플리케이션이 있는 실제 서버에 방화벽을 설정합니다.
Firewalld를 사용하는 경우 이는 매우 간단합니다. 다음 명령을 사용하면 처리할 수 있는 모든 서비스의 이름을 이름별로 볼 수 있습니다.
$ firewall-cmd --get-services
네트워크 이름
$ firewall-cmd --get-services | grep -oE '\shttp[s]*'
http
https
VM에 이 두 프로토콜을 허용하려면 다음 안내를 따르세요.
$ firewall-cmd --permanent --add-service http --add-service https
success
$ firewall-cmd --reload
success
이제 방화벽이 다음과 같이 구성되었습니다.
$ firewall-cmd --list-all
public (active)
target: DROP
icmp-block-inversion: no
interfaces: eth0 eth1
sources:
services: ssh dhcpv6-client http https
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
위의 내용은 4개의 서비스를 허용하고 그 외 모든 서비스는 기본 대상에 따라 삭제(DROP)하도록 지정합니다.