ipitables 방화벽에 대한 소개와 규칙을 보는 방법 및 정리 규칙 등은 이전 기사에서 설명했습니다. 오늘은 방화벽 규칙을 공식화하는 방법에 대한 데모입니다. 직장에서는 주로 필터 체인에 대한 규칙을 공식화하므로 여기서는 시연을 위해 주로 필터 체인을 사용합니다.
준비
규칙을 작성하기 전에 먼저 방화벽 서비스를 닫고 iptables 서비스를 활성화한 다음 기존 규칙을 삭제합니다.
# systemctl stop firewalld # systemctl start iptables # iptables -F # iptables -X # iptables -Z
새 규칙 체인
iptables에 규칙 체인을 추가하는 데는 다양한 옵션이 있습니다. 아래에서 기본 사용법을 살펴보겠습니다.
iptables [-t tables] -A|I 链名 [-i|o 网络接口] [-m state] [--state 数据包状态] \ > [-p 网络协议] [-s 源地址 --sport 端口范围] [-d 目标地址 --dport 端口范围] \ > -j [ACCEPT|DROP|REJECT]
옵션 및 매개변수:
-A|I 체인 이름 A. 기존 규칙 뒤에 규칙 추가를 의미하고, 나는 앞에 규칙을 삽입합니다.
-i|o 네트워크 인터페이스 i는 데이터 패킷이 들어가는 네트워크 인터페이스를 나타내며 INPUT 또는 PREROUTING 체인과 함께 사용해야 합니다. o는 나가는 데이터 패킷을 나타냅니다. 해당 인터페이스는 OUTPUT 체인
-p 네트워크 프로토콜과 함께 사용해야 합니다. 일반적인 프로토콜에는 tcp, upd, icmp 및 all
-m 상태가 포함됩니다. 데이터 패킷의 상태
--상태 데이터 패킷 상태가 공통입니다. 상태에는 INVALID(잘못된 데이터 패킷), ESTABLISHED(성공적으로 연결된 상태), NEW(새로 설정된 데이터 패킷), RELATED(기존 연결과 관련된 새 연결)가 포함됩니다.
-s 소스 주소 주소는 192.168.1.110 또는 네트워크 주소 192.168.1.0/24아래에는 몇 가지 규칙 체인 예가 나와 있습니다. 192.168.1.110에서 보낸 데이터는 허용하고 192.168.1.111에서 보낸 데이터는 거부합니다.
# iptables -A INPUT -s 192.168.1.110 -j ACCEPT # iptables -I INPUT -s 192.168.1.111 -j DROP # iptables -vnL Chain INPUT (policy ACCEPT 33 packets, 3048 bytes) pkts bytes target prot opt in out source destination 0 0 DROP all -- * * 192.168.1.111 0.0.0.0/0 0 0 ACCEPT all -- * * 192.168.1.110 0.0.0.0/0 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 18 packets, 1844 bytes) pkts bytes target prot opt in out source destination
# iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT # iptables -vnL Chain INPUT (policy ACCEPT 29 packets, 2328 bytes) pkts bytes target prot opt in out source destination 0 0 DROP all -- * * 192.168.1.111 0.0.0.0/0 0 0 ACCEPT all -- * * 192.168.1.110 0.0.0.0/0 0 0 ACCEPT all -- * * 192.168.1.0/24 0.0.0.0/0 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 15 packets, 1460 bytes) pkts bytes target prot opt in out source destination
# iptables -A INPUT -i lo -j ACCEPT
로컬 포트로 들어오는 모든 로컬 21포트 데이터 패킷을 차단
# iptables -A INPUT -i eth0 -p tcp --dport 21 -j DROP
# iptables -A INPUT -i eth0 -p tcp --dport 1024:65534 -j ACCEPT
# iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --dport 3306 -j DROP # iptables -A INPUT -i etc0 -p tcp -s 192.168.1.0/24 \ > --sport 1024:65535 --dport 22 -j DROP
데이터 패킷의 일반적인 상태는 INVALID입니다( 잘못된 데이터 패킷), ESTABLISHED(성공적으로 연결된 상태), NEW(새로 설정된 데이터 패킷), RELATED(기존 연결과 관련된 새 연결).
ESTABLISHED 및 RELATED 상태의 모든 데이터 패킷이 허용되고 INVALID 상태의 모든 데이터 패킷이 삭제됩니다.# iptables -t filter -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # iptables -A INPUT -m state --state INVALID -j DROP
규칙 체인 삭제는 기본적으로 규칙 체인 추가와 동일합니다. -A가 -D로 대체된다는 점을 제외하면 몇 가지 규칙을 함께 삭제해 보겠습니다.
# iptables-save # Generated by iptables-save v1.4.21 on Sun Nov 15 22:36:41 2020 *filter :INPUT ACCEPT [4:1920] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [16:1380] -A INPUT -s 192.168.1.111/32 -j DROP -A INPUT -s 192.168.1.110/32 -j ACCEPT -A INPUT -s 192.168.1.0/24 -j ACCEPT …… # iptables -t filter -D INPUT -s 192.168.1.111/32 -j DROP # iptables -D INPUT -s 192.168.1.110/32 -j ACCEPT
참고: 위의 iptables 설정은 메모리에만 저장되며 서비스를 다시 시작한 후 시스템을 다시 시작하면 해당 설정이 사라집니다. 그러니 외부 상황에서 자신을 차단하지 않는 한 마음껏 연습해주세요
규칙을 저장하려면 /usr/libexec/iptables/iptables.init save를 입력하여 저장하세요.
관련 추천: "linux 비디오 튜토리얼
"위 내용은 Linux의 소프트웨어 방화벽 iptables - 규칙 정의 및 삭제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!