CentOS 6.x 시스템에 ipset을 추가했는데 iptables
시스템이 재부팅되었을 때 규칙이 손실되었습니다.
찾았어요이 답변재부팅 후 Ubuntu 시스템 다시 로드 규칙을 만드는 방법을 보여 주지만 iptables
이 디렉터리는 CentOS에 존재하지 않습니다.
재부팅 후 CentOS 시스템이 방화벽 규칙을 로드하도록 만드는 방법은 무엇입니까?
노트:예, 저장 규칙을 사용하고 iptables save
있으며 파일이 저장되고 있습니다.
내부 내용은 다음과 같습니다 /etc/sysconfig/iptables
.
# Generated by iptables-save v1.4.7 on Mon Apr 8 09:52:59 2013
*filter
:INPUT ACCEPT [2713:308071]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1649:1766437]
-A INPUT -p tcp -m multiport --dports 25,587,465,110,143,993,995 -m state --state INVALID,NEW,RELATED,ESTABLISHED -m set
--match-set blocking src -j DROP
COMMIT
# Completed on Mon Apr 8 09:52:59 2013
명령이 표시되지만 -A INPUT
생성할 때 이미 -I INPUT
.
이 규칙을 만드는 데 사용되는 규칙은 다음과 같습니다.
iptables -I INPUT -p tcp -m multiport --dports 25,587,465,110,143,993,995 -m state --state NEW,ESTABLISHED,RELATED,INVALID -m set --set blocking src -j DROP
답변1
다음과 같은 이유로 규칙을 잃게 됩니다.
규칙을 추가한 후 서비스나 서버를 다시 시작하기 전에 저장해야 합니다. 규칙을 추가하면 메모리에 있지만 저장 후에는 파일에 저장되고 시작 시 해당 파일에서 복원되기 때문입니다.
따라서 먼저 다음을 사용하여 추가된 규칙을 저장해야 합니다.
$ /etc/init.d/iptables save
그러면 모든 규칙이 저장 /etc/sysconfig/iptables
되고 시작 시 iptables 서비스가 활성화됩니다.
$ chkconfig --level 53 iptables on
방법 2
규칙 저장:
$ /sbin/iptables-save > /etc/iptables.rules
규칙을 복원하려면 [다음 항목 추가 /etc/rc.local
]:
$ /sbin/iptables-restore < /etc/iptables.rule
답변2
나는 또한 같은 문제에 직면했습니다.
"block"이라는 ipset 을 생성했는데 어디에 저장되어 있는지 set
알 수 없어서 set
재부팅 후 스크립트에서 다시 생성해야 하는 것 같은데요?
답변3
Centos 6.4에서도 동일한 문제가 발견되었습니다.
@reboot /etc/init.d/iptables restart
방금 crontab을 넣었 는데 작동합니다.
답변4
Host Gator에 이메일을 보냈고 마침내 Host Gator의 Linux 관리자로부터 다음 응답을 받았습니다.
안녕하세요!
HostGator는 모든 VPS 및 전용 서버 계획에 기본적으로 설치되는 사용자 정의 방화벽을 구축했습니다.
다행히 방화벽 구성에는 iptables 구성을 저장하는 파일이 있습니다.
파일은 다음과 같습니다.
/etc/firewall/INCLUDE
파일에 iptables 줄을 추가하고 서비스 방화벽을 다시 시작하여 방화벽을 다시 시작하면 됩니다. iptables 규칙은 계속 존재합니다.
실제로 이 줄을 파일에 추가했으므로 이제 iptables 규칙이 로드되고 유지되어야 합니다.
다른 질문이나 우려사항이 있으면 언제든지 문의해 주세요.