답변:
간결하게 귀하의 질문에 대답하기 위해, 아니오 : 모든 테이블을 플러시 한 후 "남은"규칙이 없습니다. 그러나 철저하게하기 위해 내장 INPUT
및 FORWARD
체인 에 대한 정책을 다음 과 같이 설정할 수도 ACCEPT
있습니다.
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X
ip6tables 규칙 지우기 :
ip6tables -P INPUT ACCEPT
ip6tables -P FORWARD ACCEPT
ip6tables -P OUTPUT ACCEPT
ip6tables -t nat -F
ip6tables -t mangle -F
ip6tables -F
ip6tables -X
... 그리고 그렇게해야합니다. iptables -nvL
이 (또는 매우 유사한) 출력을 생성해야 합니다.
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
there would not be any "leftover" rules after flushing every table
OP는 모든 테이블을 플러시하지 않습니다 . 너도 그렇지 않아. 철저히 원한다면 다음과 같습니다 . 그리고 당신은 추가 할 수 있습니다 iptables -t "$table" -Z
. 이 방법으로 테이블 및 해당 체인의 목록을 하드 코딩합니다. 따라서 저장 복원 솔루션을 진지하게 고려할 것 입니다. 또는 iptables를 언로드 할 수 있습니다 .
이것은 iptables 시스템을 매우 기본 상태로 완전히 재설정합니다 :
iptables-save | awk '/^[*]/ { print $1 }
/^:[A-Z]+ [^-]/ { print $1 " ACCEPT" ; }
/COMMIT/ { print $0; }' | iptables-restore
모든 정책은 현재 사용중인 모든 테이블을 비울뿐만 아니라 ACCEPT로 재설정됩니다. 내장 체인 이외의 모든 체인은 더 이상 존재하지 않습니다.
iptables
도구가 명시 적으로 제공 하는 API 인 IMO 를 고수하는 것이 가장 좋습니다 .
print $1
를 print $0
일관된 것으로 바꾸고 싶을 수도 있습니다 :)
방화벽을 비활성화해야 할 때마다 다음과 같습니다.
iptables-save > iptables.bak
service iptables stop
(페도라에 있습니다)iptables
커널에서 모듈을 언로드 할 수 있습니다 :
modprobe -r iptable_raw iptable_mangle iptable_security iptable_nat iptable_filter
UPD 불행하게도, 사실 너무 좋아. 테이블에 규칙 또는 사용자 정의 체인이있는 한 해당 모듈의 참조 카운트는 1이며 modprobe -r
실패합니다. 다음과 같이 규칙 및 사용자 정의 체인을 삭제할 수 있습니다.
echo $'*raw\nCOMMIT\n*mangle\nCOMMIT\n*security\nCOMMIT\n*nat\nCOMMIT\n*filter\nCOMMIT' | iptables-restore
또는:
iptables-save | awk '/^[*]/ { print $1 "\nCOMMIT" }' | iptables-restore
또한 이런 식으로 모듈을 언로드 할 수 있습니다 (하드 코딩 모듈 이름 없음).
lsmod | egrep ^iptable_ | awk '{print $1}' | xargs -rd\\n modprobe -r
밝은면에서 이것은 iptables-save
좋은 빈 출력을 생성합니다 :)
하나 또는 두 개의 명령으로이를 수행 할 수 있습니다.
$ sudo iptables-save > iptables.bak
$ sudo iptables -F
결과:
$ sudo iptables -nvL
Chain INPUT (policy ACCEPT 3138 packets, 5567K bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 3602 packets, 6547K bytes)
pkts bytes target prot opt in out source destination
최근에 내가 한 일이 모든 연결을 차단해야했습니다.
iptables-policy INPUT DROP
iptables-policy OUTPUT DROP
iptables-policy FORWARD DROP
저장에 관해서는 다음을 권장합니다
우분투 :
/etc/init.d/iptables save
/sbin/service iptables save
RedHat / CentOS :
/etc/init.d/iptables save
/sbin/iptables-save
과거에 이것을 사용했던 모든 현재 ufw 규칙을 백업하는 것 외에도
cp /lib/ufw/{user.rules,user6.rules} /<BACKUP LOCATION>
cp /lib/ufw/{user.rules,user6.rules} ./
나는 이것이 나중에 참조 할 때 유용 할 것이라고 생각합니다. 내가 나누겠다고 생각했다.