방화벽은 사용자가 특정 IP 또는 사용자의 호스트에 대한 액세스를 제한하는 방법입니다. 방화벽은 하드웨어 방화벽과 소프트웨어 방화벽이라는 두 가지 범주로 나뉩니다. 소프트웨어 방화벽은 주로 데이터 패킷을 필터링하는 데 사용되는 반면, 하드웨어 방화벽은 주로 DDOS 공격과 같은 악의적인 공격으로부터 보호하고 데이터 패킷을 필터링하는 데 사용됩니다. 여기서는 Linux-iptables의 소프트웨어 방화벽에 대해 설명하겠습니다.
iptables 및 Firewalld
centOS6에서는 기본 소프트웨어 방화벽이 iptables이고, centos7에서는 Firewalld입니다. 실제로 방화벽은 원래 iptables에 새로 패키지된 소프트웨어입니다.
iptables를 배울 때 먼저 방화벽을 닫고 iptables를 활성화하는 것이 좋습니다
yum install iptables-services systemctl stop firewalld systemctl start iptables
iptables 테이블과 체인
iptables의 서로 다른 테이블은 기본적으로 4개의 테이블이 있습니다
filter( 필터. ) nat(주소 변환) mangle raw
다양한 테이블에는 자체 규칙 체인이 있습니다.
filter(INPUT/OUTPUT/FORWARD)
nat(프리라우팅/아웃풋/포스트아웃)
의미
INPUT 체인 - 들어오는 데이터 패킷은 이 규칙 체인의 규칙을 적용합니다.
OUTPUT 체인 - 나가는 데이터 패킷은 이 규칙 체인의 규칙을 적용합니다.
FORWARD 체인 - 적용 데이터 패킷을 전달할 때 이 체인의 규칙
PREROUTING 체인 - 데이터 패킷을 라우팅하기 전에 이 체인의 규칙을 적용
POSTROUTING 체인 - 데이터 패킷에 대한 라우팅을 수행 이 체인의 규칙은 라우팅 후에 적용됩니다
iptables 규칙 보기 및 삭제
규칙 보기
사용 예: iptables [-t tables] -L [-nv]
옵션 및 매개변수:
-t 팔로우함 이 옵션을 생략하면 기본값은 필터 테이블입니다.
-L 현재 테이블의 규칙 나열
-n 도메인 이름 및 IP 역방향 확인을 수행하지 않음
-v 추가 정보 표시
# 查看filter表的规则 # iptables -nvL Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 67 4444 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 2 286 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT 38 packets, 4664 bytes) pkts bytes target prot opt in out source destination # 查看nat表的规则 iptables -t nat -L -nv
아래 규칙 옵션의 의미 체인은 다음과 같습니다.
target: 수행된 작업, ACCEPT 릴리스, 삭제 삭제, 거부 거부를 나타냅니다.
prot: tcp, udp 및 icmp
opt를 포함하여 사용된 데이터 패킷 프로토콜을 나타냅니다. information
source : 특정 소스 호스트를 제한합니다
destination: 특정 대상 호스트를 제한합니다
위에 표시된 INPUT 체인의 5가지 규칙은 다음과 같은 의미를 갖습니다.
상태 데이터 패킷 중 RELATED, ESTABLISHED, 둘 다 Accept
ICMP 패킷이면 허용됩니다
로컬 루프백 네트워크 카드이면 모든 데이터가 허용됩니다
포트 22로 전송된 활성 연결 TCP 패킷이면 허용됩니다.
모든 패킷 거부
Clear the rule of iptables
centOS7이 기본적으로 설치된 후 시스템에는 이미 많은 iptables 규칙이 있습니다. 여기서는 이러한 규칙을 지우는 방법을 알려드리겠습니다.
사용 예: iptables [-t tables] [-FXZ]
옵션 및 매개변수:
-F 모든 사용자 정의 규칙 정리
-X 모든 사용자 정의 규칙 정리
- Z 모든 통계 개수를 0으로 설정
# iptables -F # iptables -X # iptables -Z
특정 규칙 보기
iptables-save를 사용하여 특정 규칙 보기
사용법: iptables-save [-t tables]
# iptables-save -t filter # Generated by iptables-save v1.4.21 on Sat Nov 14 21:51:56 2020 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [56:7196] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited # Completed on Sat Nov 14 21:51:56 2020
기본 전략 정의
룰을 클리어하고 나면 기본 전략만 남습니다. 기본 정책은 규칙 중 하나라도 충족되지 않으면 기본 규칙이 사용된다는 것입니다. 기본 정책은 ACCEPT(패킷 허용) 및 DROP(패킷 삭제)
사용법: iptables [-t tables] -P [INPUT|OUTPUT|FORWARD…] [ACCEPT|DROP]
이제 기본 수정을 시도합니다. 필터의 INPUT 체인이 DROP, OUTPUT 및 FORWARD 체인이 ACCETP
iptables -t filter -P INPUT DROP # 注意,该命令敲完后,你的终端就可能会断开连接了 iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT
로 수정되었습니다. 관련 권장 사항: "linux 강좌"
위 내용은 Linux의 소프트웨어 방화벽 iptables - 규칙 보기 및 지우기, 기본 정책 정의의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!