답변1
일반적으로 다음과 같은 iptables 규칙이 있습니다.
# define standard chains and default behaviour (here ACCEPT, could be DROP)
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
# everything as a continuation is OK, This will be the bulk => 1st rule
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# drop garbage packages
-A INPUT -m conntrack --ctstate INVALID -j DROP
# server services including your new web server
-A INPUT -p tcp -m tcp --dport 12345 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 2103 -m conntrack --ctstate NEW -j ACCEPT
# (perhaps some more, do include SSH!)
# allow incoming ping (good for testing)
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
# rest / default: DROP!
-A INPUT -j DROP
# Again, everything related is allowed
-A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# allow DNS, both UDP and TCP
-A OUTPUT -p tcp -m tcp --dport 53 -m conntrack --ctstate NEW -j ACCEPT
-A OUTPUT -p udp -m udp --dport 53 -m conntrack --ctstate NEW -j ACCEPT
# allow access to time servers (NTP)
-A OUTPUT -p udp -m udp --dport 123 -m conntrack --ctstate NEW -j ACCEPT
# Allow anything else you need, e.g. for OS update servers
-A OUTPUT -p tcp -m conntrack --ctstate NEW -m tcp -m multiport --dports 80,443 -j ACCEPT
# Allow outgoing ping
-A OUTPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
# disallow the rest!
-A OUTPUT -j DROP
# Forward usually not needed except for routing and NAT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
RELATED 상태가 누락되었습니다.
위와 같은 규칙은 일반적으로 파일에 기록됩니다.
# /etc/sysconfig/iptables
명령을 통해 저장할 수 있습니다.
# iptables-save > /etc/sysconfig/iptables
해당 파일에서 복구
# iptables-restore < /etc/sysconfig/iptables
iptables.service
시작 시 이 파일에서 테이블을 복원할 수 있는 시스템 서비스가 있습니다 . 시스템에 따라 이 서비스가 있을 수도 있고 없을 수도 있으며 비활성화될 수도 있습니다( systemctl status iptables
).
서비스가 있는 경우( yum install iptables-services
CentOS에) iptables 규칙을 테스트한 후 한 번 저장합니다.
# iptables-save > /etc/sysconfig/iptables
그런 다음 서비스를 활성화하십시오.
# systemctl enable iptables
# systemctl start iptables
다음 부팅 후 다음을 실행하여 현재 항목을 확인하여 이것이 작동하는지 테스트하십시오(여기의 모든 명령과 마찬가지로 루트로).
# iptables -L -nv