在紅帽RHEL7系統中firewalld服務取代了iptables服務,但依然可以使用iptables命令來管理內核的netfilter。 iptables命令中則常見的控制類型有: 規則鏈則依據處理數據包的位置不同而進行分類: PREROUTING:在進行路由選擇前處理數據包 INPUT:處理入站 ...
在紅帽RHEL7系統中firewalld服務取代了iptables服務,但依然可以使用iptables命令來管理內核的netfilter。
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:
[root@localhost ~]# systemctl stop firewalld.service #停止firewall
[root@localhost ~]# systemctl disable firewalld.service #禁止firewall開機啟動
--安裝安裝iptables防火牆
[root@localhost ~]# 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