Debian에서 iptables 지우기 및 재설정

Debian에서 iptables 지우기 및 재설정

iptables의 모든 규칙을 지우려면 이것을 사용합니다.

#!/bin/bash
echo "clearing iptables ... "
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT

이것은 iptables에 더 이상 항목이 없는 한 작동합니다.

sudo iptables -L

또는

sudo iptables -S

그러나 다른 대상으로 전달된 트래픽은 여전히 ​​해당 대상으로 라우팅됩니다.

삭제된 iptables가 삭제된 후에도 여전히 활성 상태인 것 같습니다!

지금까지 이러한 규칙을 제거하는 유일한 방법은 그다지 우아하지 않은 시스템을 재부팅하는 것입니다.

~ 안에데비안iptables는 서비스로 실행되지 않는 것 같으므로 해당 서비스의 시작 또는 중지가 작동하지 않습니다.

이전에 정의한 규칙이 비활성화된 결과로 iptable을 완전히 지우거나 재설정하려면 어떻게 해야 합니까?

답변1

  1. iptables 규칙을 플러시해도 로 리디렉션된 이미 설정된 연결에는 영향을 주지 않습니다 DNAT. 이는 UDP 패킷의 conntrack 항목에 iptables 규칙 외에 사용되는 리디렉션 정보가 포함되어 있기 때문에 관련이 있습니다.

  2. 명령을 사용하여 기존 conntrack 항목을 확인 conntrack -L하고 conntrack 이벤트를 모니터링합니다 conntrack -E.

  3. conntrack -Fconntrack 항목을 지우려면 명령 을 사용하십시오 . 새 UDP 패킷은 더 이상 리디렉션되지 않습니다.

  4. iptables 규칙을 서비스로 관리하려면 netfilter-persistentiptables-persistent패키지를 사용하십시오.

  5. .dll을 수동으로 실행하는 대신 iptables-save/ 명령을 사용하는 것이 더 좋습니다 . 더 안전하고 원자적입니다.iptables-restoreiptables

  6. 원격 호스트에서 iptables 규칙을 관리하려면 iptables-apply규칙 세트가 확인되지 않은 경우 롤백을 허용하는 명령을 사용하십시오.

답변2

sudo ufw status verbose; sudo iptables -L; 

어쩌면 ufw가 실행되고 있습니까? 중지하십시오.

시스템, 네트워크 및 아직 라우팅되는 트래픽에 대해 좀 더 자세히 말씀해 주시겠습니까?

1~2개의 예시는 괜찮습니다. 초기 방화벽 규칙.

편집하다:

내 스크립트 중 일부로 확인했습니다..... 또한 체인을 플러시합니다.

sudo iptables -F INPUT
sudo iptables -F FORWARD 
sudo iptables -F OUTPUT

답변3

iptables 규칙을 지우는 스크립트는 모든 규칙을 플러시하고 기본 정책을 ACCEPT로 설정하기에 충분합니다. 규칙이 없고 모든 것이 허용되므로 방화벽이 효과적으로 비활성화됩니다.

귀하의 의견을 통해 귀하가 UDP 패킷을 보내고 있다는 것을 알고 있습니다. 특히 방화벽 시스템을 통과하는 UDP 패킷의 연속 스트림이 있는 경우에는 이전 규칙이 한동안 여전히 활성화되어 있는 것처럼 느낄 수 있습니다. 이는 주로 UDP에 연결을 닫을 방법이 없기 때문에 방화벽이 현재 활성 흐름이 언제 완료되는지 알 수 없기 때문입니다. 유일한 방법은 더 이상 패킷이 표시되지 않을 때 유휴 시간 제한을 사용하여 활성 "연결"을 플러시하는 것입니다.

두 가지 옵션이 있습니다:

  1. 다시 시도하기 전에 잠시 기다리십시오. 이를 위해서는 현재 활성화된 "연결"을 모두 중지해야 합니다. 에서 UDP 시간 초과를 확인할 수 있습니다 /proc/sys/net/netfilter/nf_conntrack_udp_timeout.
  2. 도구를 사용하여 conntrack기존 "연결"을 수동으로 삭제합니다.

UDP가 연결 없는 프로토콜인 경우에도 Linux 방화벽은 TCP/UDP에 대한 활성 소켓을 추적합니다.

관련 정보