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 destination192.168.1.0/24 네트워크 주소에 대한 액세스를 허용하세요
# 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 destination192.168.1.111의 데이터 패킷이 허용될지 거부될지 질문에 대해 생각해 보세요. INPUT의 첫 번째 규칙으로 판단하면 거부되지만 마지막 규칙으로 판단하면 허용됩니다. 대답은 거부된다는 것입니다. 규칙 중 하나가 충족되면 다음 규칙은 따르지 않으므로 규칙 체인의 순서도 매우 중요합니다. 계속해서 사례를 살펴보세요: 로컬 루프백 주소인 한 허용됩니다
# iptables -A INPUT -i lo -j ACCEPT포트에 대한 규칙 공식화
로컬 포트로 들어오는 모든 로컬 21포트 데이터 패킷을 차단
# iptables -A INPUT -i eth0 -p tcp --dport 21 -j DROP1024에서 65534 사이의 포트를 차단합니다. 모두 열려 있습니다. 포트 번호를 사용할 수 있습니다. 포트 번호는 연속 포트 번호를 나타냅니다.
# iptables -A INPUT -i eth0 -p tcp --dport 1024:65534 -j ACCEPT두 가지 포괄적인 규칙을 살펴보겠습니다.이 시스템의 3306 포트는 네트워크 192.168에 열려 있지 않습니다. .1.0/24. 로컬 SSH 서비스는 네트워크 192.168.1.0/24
# 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!