>  기사  >  운영 및 유지보수  >  Linux의 소프트웨어 방화벽 iptables - 규칙 정의 및 삭제

Linux의 소프트웨어 방화벽 iptables - 규칙 정의 및 삭제

齐天大圣
齐天大圣원래의
2020-11-18 15:22:531936검색

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
  • -d 대상 주소
  • -j와 같은 IP 주소일 수 있으며 일반적인 작업은 ACCEPT(수락)입니다. ), DROP(삭제), REJECT(거부) )
IP, 네트워크 및 네트워크 카드 인터페이스에 대한 규칙 공식화

아래에는 몇 가지 규칙 체인 예가 나와 있습니다. 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

192.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               destination

192.168.1.111의 데이터 패킷이 허용될지 거부될지 질문에 대해 생각해 보세요. INPUT의 첫 번째 규칙으로 판단하면 거부되지만 마지막 규칙으로 판단하면 허용됩니다. 대답은 거부된다는 것입니다. 규칙 중 하나가 충족되면 다음 규칙은 따르지 않으므로 규칙 체인의 순서도 매우 중요합니다.

계속해서 사례를 살펴보세요: 로컬 루프백 주소인 한 허용됩니다

# iptables -A INPUT -i lo -j ACCEPT

포트에 대한 규칙 공식화

로컬 포트로 들어오는 모든 로컬 21포트 데이터 패킷을 차단

# iptables -A INPUT -i eth0 -p tcp --dport 21 -j DROP

1024에서 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.