一.四表
filter 表:
主要用于控制數據包的過濾,決定數據包是否允許進出及轉發 。比如設置規則允許特定 IP 訪問服務器的 SSH 端口(22 端口),或禁止某些 IP 訪問網站端口(80 或 443 端口 )。可作用于 INPUT、OUTPUT、FORWARD 鏈。
nat 表:
即 Network Address Translation(網絡地址轉換)表,負責處理數據包中的地址轉換,如源地址轉換(SNAT)和目標地址轉換(DNAT) 。比如局域網內設備共享公網 IP 上網,就需要用到 NAT 轉換。可作用于 PREROUTING、INPUT、OUTPUT、POSTROUTING 鏈。
mangle 表:
用于修改數據包的原數據,比如修改 IP 頭中的 TOS(Type of Service,服務類型)字段等 。一般用于一些對數據包有特殊標記、修改需求的場景。可作用于 PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING 鏈。
raw 表:
主要控制 nat 表中連接追蹤機制的啟用狀況 ,比如通過設置可以讓某些連接不被連接跟蹤機制處理。可作用于 PREROUTING、OUTPUT 鏈。
二.五鏈
PREROUTING(路由前):
在數據包進入路由決策之前進行處理,當外部數據包進入本機時,首先會經過此鏈。可在此鏈上設置規則對進入的數據包進行地址轉換等操作 。
INPUT(數據包流入口):
處理進入本機的數據包,比如設置規則允許或拒絕哪些外部請求進入本機的特定端口 。
FORWARD(轉發關卡):
當數據包需要經過本機轉發到其他設備時(如路由器場景),會經過此鏈 。比如局域網內的網關服務器轉發數據包到互聯網時,就會用到此鏈規則。
OUTPUT(數據包出口):
處理本機發出的數據包,可在此設置規則控制本機發出的數據包的走向等 。
POSTROUTING(路由后):
在數據包完成路由決策,即將離開本機時進行處理,常用于源地址轉換(SNAT),如將局域網內不同 IP 轉換為統一的公網 IP 發出 。
1.安裝systemctl 管理iptables啟動
dnf install iptables-services
2.系統啟動時自動加載這些 iptables 相關內核模塊
cat >> /etc/rc.local<<EOF
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ip_nat_state
EOF
核心掌握:
實操: