iptables防火牆

4表
filter 過濾(數據過濾,默認) INPUT/OUTPUT/FORWARD
nat 轉換(地址轉換) PREROUTING/POSTROUTING/OUTPUT
mangle 校正(數據包打標記) INPUT/OUTPUT/FORWARD/PREROUTING/POSTROUTING
raw    

 

5鏈

INPUT

接受,發送方不一定是你,但接收方一定是你
OUTPUT 發送,接受方不一定是你,但發送方一定是你
FORWARD 轉發,接受方和發送方都不是你
PREROUTING 路有前,指定在決定去向前處理
POSTROUTING 路由後,指定在決定去向後處理

 

 

 

 

 

 

 

 

 

 

走向:
不考慮鏈 mangle>nat>filter
不考慮表 PREROUTING>INPUT>(FORWARD)>OUTPUT>POSTROUTING

 

 

 

 

centos7 iptables 替換firewalld

#systemctl stop firewalld
#systemctl disable firewalld

#yum -y install iptables*

#systemctl start iptables
#systemctl enable iptables

 

iptables的格式
iptables -t filter -A INPUT -p tcp --dport 23 -j REJECT
命令 4表 5鏈 數據描述 處理方式

 

 

 

 

-L

查看規則(內建鏈,自帶表(原本自帶的))

#iptables -L INPUT 查看鏈

#iptables -L 查看錶 

#iptablse -L -v 查看詳細,查看數據流量

#iptables -L -vx 查看精確流量

#iptables -L -n 查看數字

#iptables -L --lin(--line-numbers) 查看規則序號

-A

在所選的鏈末尾添加規則

#iptables -A INPUT -p tcp --dport 22 -j ACCEPT

#iptables -A INPUT -p tcp --dport 22:80 -j ACCEPT

-I

插入(不指定編號默認第1條)

#iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT

-R

替換

#iptables -R INPUT 7 -p tcp --dport 80 -j ACCEPT

-D

刪除

#iptables -D INPUT -p tcp --dport 80 -j ACCEPT

#iptables -D INPUT 7

-N

新建鏈

#iptables -N pikachu

#iptables -N PIKACHU

#iptables -A INPUT -p tcp --dport 60000 -j pikachu

#iptables -A INPUT -p tcp --dport 60001 -j PIKACHU 

-E

改鏈的名

#iptables -E pikachu pokemon

-X

刪除鏈(0 references才能刪除)

#iptables -X pokemon

-F

清空

#iptables -F INPUT 清空鏈

#iptables -F 清空表

-P

修改默認規則

#iptables -P INPUT ACCEPT

#iptables -P INPUT DROP

-Z

清空計數器

#iptables -Z INPUT

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

通用匹配:
-p

匹配協議  tcp、udp、icmp、all

#iptables -A INPUT ! -p tcp

-s

匹配來源地址

#iptables -A INPUT -s 192.168.146.201

-d 匹配目的地址
-i

匹配包進入的接口

#iptables -A INPUT -i ens33

-o

匹配包送出的接口

#iptables -A OUTPUT -o ens33

 

 

 

 

 

 

 

 

端口掃描
#nmap 192.168.146.201
#namp 192.168.146.201 -Pn

 

tcp的端口
sport 匹配來源端口
dport 匹配目的端口
tcp-flags

匹配tcp的封包標記

SYN/ACK/FIN/RST/URG/PSH

#iptables -A INPUT -p tcp --tcp-flags syn,ack,fin syn -j ACCEPT

#iptables -A INPUT -p tcp --syn -j ACCEPT

syn 第二次不需要認證

 

 

 

 

 

 

 

 

udp
sport 匹配來源端口
dport

匹配目的端口

 

 

 

 

顯示匹配
multiport 不連續多端口匹配

--source-port

--destination-port

--port

#iptables -A INPUT -p tcp -m multiport --port 22,25 -j ACCEPT

owner 匹配所有

--uid-owner

--gid-owner

--pid-owner

state 匹配包的狀態 --state

 

 

 

 

 

 

 

狀態
ESTABLISHED 已連接的數據包
NEW 新數據包
RELATED

相關聯數據包

INVALID 錯誤的數據包

 

 

 

 

 

 

處理
ACCEPT 允許  
REJECT 拒絕且返回錯誤信息  
DROP 丟棄不返回錯誤信息

 

LOG 記錄到/var/log/messages  
DNAT 目標地質轉換 --to-destination
MASQUERADE 僞裝 --to-ports
SNAT 來源地址轉換 --to-source
REDIRECT 重定向 --to-ports
RETURN 返回 返回上級

 

 

 

 

 

 

 

 

 

 

永久保存
#iptables-save > /etc/sysconfig/iptables

常用iptables規則

#iptables -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

#iptables -A INPUT -p tcp --syn -m state --state NEW --dport 80 -j ACCEPT

#iptables -A INPUT -p tcp --syn -m state --state NEW --dport 25 -j ACCEPT

#iptables -A INPUT -p tcp --syn -m state --state NEW --dport 110 -j ACCEPT

#iptables -A INPUT -p tcp --syn -m state --state NEW --dport 22 -j ACCEPT

#iptables -A INPUT -p tcp --syn -m state --state NEW --dport 23 -j ACCEPT

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章