새로운 iptables 규칙은 새로 생성된 프로세스에만 영향을 미칩니다.

새로운 iptables 규칙은 새로 생성된 프로세스에만 영향을 미칩니다.

다시 시작할 필요 없이 연결을 차단하도록 iptables 규칙을 업데이트하는 방법이 있습니까?

다음은 내가 피하고 싶은 행동의 예입니다.

On shell#1: I start a ping command 8.8.8.8
On shell#2: I block ping command with iptables rules.
On shell#1: The ping command is still working and I get replies from 8.8.8.8, 
            but if I end the ping command and I restart it, now it will not work.

다시 시작할 필요 없이 ping 명령을 차단하는 방법이 있는지 알고 싶습니다.

답변1

1) 귀하가 요청한 것은 가장 간단한 iptables작업 방법입니다. 연결 상태에 관계없이 대상으로의 모든 트래픽을 차단하여 기존 연결이 시간 초과되도록 합니다. 그래서 귀하의 예에서

iptables -I OUTPUT -d 8.8.8.8 -j DROP

8.8.8.8에 도달하는 UDP(DNS), ICMP(ping) 및 TCP 패킷을 즉시 차단합니다. 그래서 그것이 당신의 대답인 것 같습니다. 설명하는 동작이 발생하는 경우 사용 중인 iptables 명령줄을 게시하세요.

2) 다른 동작을 원했다면 프로세스가 다시 시작될 때까지 기존 연결을 유지하기 위해 다음 중 하나를 수행할 수 있습니다.

iptables -I OUTPUT -d 8.8.8.8 -m state --state NEW -j DROP

또는

iptables -I OUTPUT -d 8.8.8.8 -p tcp --syn -j REJECT

3) 설정된 TCP 연결을 차단하고 시간 초과되도록 두는 대신 가능한 한 빨리 실제로 닫으려는 고급 사례에서는 -j REJECT --reject-with tcp-reset입력 및 출력 체인에 기반을 두거나 tcpkill몇 초 동안 실행할 수 있습니다. 이는 어려운 일이며 거의 모든 경우에 해결 방법 1)과의 연결을 끊고 싶어합니다.

관련 정보