부팅 할 때마다 iptable 규칙을 복원해야합니까?


18

내가 다시 부팅 할 때마다 나는 너무 길어 들어간 iptables 규칙을 느슨하게했다. 나는 그것들저장하고 부팅 할 때 복원 할 수 있다는 것을 알고 있지만 영원히 저장 할 수 있습니까? 부팅 할 때마다 복원해야합니까? 진심이야?

문제는 while 루프를 사용하여 IP를로드 하는 거대한 IP 목록 이 있다는 것입니다.이 작업에는 10 분 이상 걸릴 수 있습니다.

이것은 내 집 FTP 서버입니다. 1GB 램과 처리 능력이 거의없는 작은 VM입니다. 내가 아시아 대륙에서 거의 포기했기 때문에 IP가 너무 많습니다. 난폭 한 힘으로 매일 FTP 서버를 공격 할 필요가 없습니다. 또한 정부를 차단합니다. 모니터, 트래커 및 스패머.

이것은 목록에로드하는 데 사용하는 while 루프입니다.

grep INPUT block.list | while read LISTA; do sudo iptables -A $LISTA; done

귀하의 질문은 약간 모호합니다. '영원히 저장하십시오'라고 말하면 파일에서와 같이 생각한 것으로 생각되지만 나머지를 읽은 후에 실제로 의미하는 것처럼 들립니다. 수동으로 다시로드하지 않아도됩니다. 부팅 할 때마다. 또한 다시로드 해야하는 규칙의 수는 동일하므로 여전히 시간이 걸리지 만 pankaj의 답변에 따라 수동으로 수행 할 필요는 없습니다.
Jeff Welling

답변:


21

먼저 다음과 같은 내용으로 파일을 만듭니다 iptables-save.

sudo iptables-save > /etc/iptables_rules

파일을 어디에 두는지는 중요하지 않으므로 다음 줄이 동일한 파일을 참조해야합니다. 그런 다음 /etc/rc.local이 줄을 열고 추가하십시오.

/sbin/iptables-restore < /etc/iptables_rules

이제부터는 컴퓨터 전원을 켜거나 재시작 할 때마다 iptables가 지정한 파일에서 규칙을로드합니다.


1
나는 -bash: /etc/iptables_rules: Permission denied첫 번째 명령을 받는다 . sudo와 all을 사용하는 것이 이상합니다.
capdragon

5
오류 sudo sh -c '/sbin/iptables-save > /etc/iptables.save'를 피하기 위해 사용해야 했습니다 Permission denied. 참조
capdragon

u는 모든 디렉토리에서 파일을 생성 할 수 있습니다. / etc /에 파일을 생성 할 필요는 없습니다
pankaj sharma

8
나는 /etc/rc.local이것을 사용하지 않는 것이 좋습니다 . 나머지 시스템 시작 이후에 실행되어 시스템을 방화벽이 아닌 상태로 남겨 둘 수 있습니다. 이 한 줄짜리 스크립트를 /etc/network/if-up.d/firewall(새 파일) 에 배치하는 것이 좋습니다 . 이렇게하면 네트워크 인터페이스를 활성화 할 때마다 실행됩니다.
gertvdijk

2
권한 오류가 정상 / 예상입니다. sudo는 ">"앞의 명령에만 적용되며 파일 리디렉션은 셸에서 별도로 수행됩니다.
ImaginaryRobots

16
apt-get install iptables-persistent

설치시 현재 iptables 구성을 저장해야합니다. 그렇지 않으면 (v4 또는 v6에 따라) 이러한 파일에 파일을 저장할 수 있으며 iptables-persistent는 부팅시 파일을로드합니다 :)

iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6

1

규칙이 많으면 iptables와 함께 ipset을 사용하는 것도 고려해야합니다. Ipset은 인덱싱 된 데이터베이스 테이블을 사용하며 주소를 조회 할 때 iptables보다 훨씬 빠르므로 수락 또는 거부 여부를 결정합니다.

http://ipset.netfilter.org/index.html

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