데비안 시스템을 다시 시작할 때 iptables 규칙이 사라지는 이유는 무엇입니까?


48

이 규칙을 추가합니다.

sudo iptables -t nat -A OUTPUT -d a.b.c.d -p tcp \
       --dport 1723 -j DNAT --to-destination a.b.c.d:10000
  1. 컴퓨터를 다시 시작하면 규칙이 삭제됩니다. 왜?
  2. 규칙을 유지하려면 어떻게해야합니까?

답변:


45

iptables에는 규칙을 영구적으로 만드는 옵션이 없습니다. 그러나 작업을 사용 iptables-save하고 iptables-restore수행 할 수 있습니다 .

먼저 제공 한 명령을 사용하여 iptable 규칙을 추가하십시오.

그런 /etc/iptables.conf다음 다음 명령을 사용하여 iptables 규칙을 일부 파일에 저장하십시오 .

$  iptables-save > /etc/iptables.conf

/etc/rc.local재부팅 할 때마다 규칙을 다시로드 하려면 다음 명령을 추가하십시오 .

$  iptables-restore < /etc/iptables.conf

15
데비안에는이 iptables-persistent작업을 수행 할 패키지가 있습니다.
bahamat

7
rc.local서비스 시작과 방화벽 정책 적용 사이에 열린 창 간격이 있기 때문에 배치하는 것이 좋지 않습니다 . 이것을 극복하기 pre-up 위해 루프백 인터페이스후크를 사용하는 /etc/network/interfaces것이 좋습니다.
poige

@ poige : 100 % 동의 rc.local하고 의도 한 효과가있을 수 있지만이 상황에서는 혼란입니다.
JM Becker

3
@bahamat :이 패키지를 설치하는 것이 가장 좋은 해결책입니다.
JM Becker

1
@TechZilla : 완료
bahamat

53

(이것은 그 자체의 대답으로 만들 것을 제안했기 때문에 ...)

데비안 설치 iptables-persistent.

/etc/iptables/rules부팅하는 동안 패키지가 자동으로로드됩니다 .

규칙을 수정할 때마다 실행하여 규칙 /sbin/iptables-save > /etc/iptables/rules을 저장하십시오. 원하는 경우 종료 시퀀스에 추가 할 수도 있습니다.


12
이 두 개의 서로 다른 규칙 파일은 다음과 같습니다 /etc/iptables/rules.v4/etc/iptables/rules.v6IPv4 및 IPv6에 대한 각각. 테이블을 두 종류의 연결 모두에 적용하려면 두 규칙 파일 모두에 테이블을 저장해야합니다.
PetaspeedBeaver

11
종료 시퀀스에 추가하지 마십시오! 변경 / 설정 중에 규칙을 위반하면 적어도 이전에 다시 부팅하면 이전 작업 상태로 돌아갑니다.
VertigoRay 2013

1

iptables-persistent위에서 설치 한 후 Ubuntu 16.04+에서 다음과 같은 짧은 명령으로 규칙을 저장할 수도 있습니다. sudo netfilter-persistent save

또한 마지막으로 저장 한 상태로 복원 할 수도 있습니다. sudo netfilter-persistent reload

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.