CentOS7--iptables的配置
在紅帽RHEL7系統中firewalld服務取代了iptables服務,如果我們不想用或者不習慣使用firewalld服務,請看下面的操作:
iptables命令中則常見的控制型別有:
- ACCEPT:允許通過.
- LOG:記錄日誌資訊,然後傳給下一條規則繼續匹配.
- REJECT:拒絕通過,必要時會給出提示
- DROP:直接丟棄,不給出任何迴應.
規則鏈則依據處理資料包的位置不同而進行分類:
PREROUTING:在進行路由選擇前處理資料包
INPUT:處理入站的資料包
OUTPUT:處理出站的資料包
FORWARD:處理轉發的資料包
POSTROUTING:在進行路由選擇後處理資料包
Iptables中的規則表:
規則表的先後順序:raw→mangle→nat→filter
規則鏈的先後順序:
入站順序:PREROUTING→INPUT
出站順序:OUTPUT→POSTROUTING
轉發順序:PREROUTING→FORWARD→POSTROUTING
iptables的基本引數:
引數 | 作用 |
-P | 設定預設策略:iptables -P INPUT (DROP|ACCEPT) |
-F | 清空規則鏈 |
-L | 檢視規則鏈 |
-A | 在規則鏈的末尾加入新規則 |
-I num | 在規則鏈的頭部加入新規則 |
-D num | 刪除某一條規則 |
-s | 匹配來源地址IP/MASK,加歎號"!"表示除這個IP外。 |
-d | 匹配目標地址 |
-i 網絡卡名稱 | 匹配從這塊網絡卡流入的資料 |
-o 網絡卡名稱 | 匹配從這塊網絡卡流出的資料 |
-p | 匹配協議,如tcp,udp,icmp |
--dport num | 匹配目標埠號 |
--sport num | 匹配來源埠號 |
例項:iptables的filter的配置:
--關閉firewall:
[[email protected] ~]# systemctl stop firewalld.service #停止firewall
[[email protected] ~]# systemctl disable firewalld.service #禁止firewall開機啟動
--安裝安裝iptables防火牆
[[email protected] ~]# yum install iptables-services #安裝
--清空已有的規則:
iptables -F iptables -X iptables -Z
--配置允許SSH登陸埠進入
iptables -A INPUT -p tcp -s 192.168.0.0/24 -j ACCEPT
--允許所有的ping操作
iptables -A INPUT -p tcp -s 192.168.0.0/24 -j ACCEPT
--允許本機lo通訊
iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT
--設定預設的訪問規則
iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT
--允許關聯的狀態包通過
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
--開放特定的埠,以80為例
iptables -A INPUT -p tcp --dport 80 -j ACCEP
--儲存配置
service iptables save
--重啟
systemctl restart iptables.service
--設定開機自啟動
systemctl enable iptables.service