방화벽을 활성화하고 다음과 같이 구성했습니다.
loopback (active)
target: DROP
icmp-block-inversion: no
interfaces: lo
sources:
services:
ports:
protocols:
forward: no
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
rule family="ipv4" source address="127.0.0.0/8" port port="8080" protocol="tcp" drop
rule family="ipv4" destination address="127.0.0.1" port port="8080" protocol="tcp" drop
그러나 실행은 차단하는 대신 curl -I localhost:8080
반환됩니다 .HTTP/1.1 200 OK
방화벽이 비활성화되고 iptables가 활성화되면 다음 규칙을 사용합니다.
iptables -I OUTPUT -o lo -p tcp --dport 8080 -j DROP
요청이 차단되었습니다!
Firewalld가 예상대로 작동하지 않는 이유는 무엇입니까? 구성은 실행 및 다시 로드 시에도 지속됩니다.
답변1
이것은 작동합니다. RH에 모두 설명되어 있습니다.기사. 모든 사람이 RH 계정을 갖고 있는 것은 아니지만 이에 대한 다른 기사를 찾을 수 없습니다.
--dports
버그를 수정 하고 OP의 요구 사항을 충족하기 위해 기사의 원래 명령을 변경했습니다 .
sudo firewall-cmd --direct --add-passthrough ipv4 -I OUTPUT -d 127.0.0.0/8 -p tcp --dport 8080 -j REJECT
RH 기사에서는 ipv6에 대해 언급하지 않지만, 물론 귀하의 경우에는 lo
ipv6을 통해 액세스할 가능성도 차단해야 합니다.
sudo firewall-cmd --direct --add-passthrough ipv6 -I OUTPUT -d ::1/128 -p tcp --dport 8080 -j REJECT