![가상 머신에서 웹 애플리케이션을 테스트하기 위해 방화벽을 설정하는 방법은 무엇입니까? [폐쇄]](https://linux55.com/image/138028/%EA%B0%80%EC%83%81%20%EB%A8%B8%EC%8B%A0%EC%97%90%EC%84%9C%20%EC%9B%B9%20%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98%EC%9D%84%20%ED%85%8C%EC%8A%A4%ED%8A%B8%ED%95%98%EA%B8%B0%20%EC%9C%84%ED%95%B4%20%EB%B0%A9%ED%99%94%EB%B2%BD%EC%9D%84%20%EC%84%A4%EC%A0%95%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%ED%8F%90%EC%87%84%5D.png)
다양한 방화벽 환경에서 로컬로 웹 애플리케이션의 동작을 테스트하고 싶습니다.
특정 조건에 따라 브라우저에서 다른 포트로 요청을 보내는 애플리케이션이 있는데, 포트가 비활성화될 때 애플리케이션이 어떻게 작동하는지 확인하기 위해 방화벽 규칙을 동적으로 수정할 수 있는 방화벽을 설정하고 싶습니다.
내 컴퓨터에서 게스트 컴퓨터의 포트로 보내는 요청을 차단하도록 방화벽을 설정하여 이를 달성하고 싶습니다.
저는 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)하도록 지정합니다.