iptables iptables服務用於處理或過濾流量的策略條目(規則),多條規則可以組成一個規則鏈,而規則鏈則依據數據包處理位置的不同進行分類。 在進行路由選擇前處理數據包(PREROUTING); 處理流入的數據包(INPUT); 處理流出的數據包(OUTPUT); 處理轉發的數據包(FORW ...
iptables
iptables服務用於處理或過濾流量的策略條目(規則),多條規則可以組成一個規則鏈,而規則鏈則依據數據包處理位置的不同進行分類。
在進行路由選擇前處理數據包(PREROUTING);
處理流入的數據包(INPUT);
處理流出的數據包(OUTPUT);
處理轉發的數據包(FORWORD);
在進行路由選擇後處理數據包(POSTROUTING)。
一般來說,從內網向外網發送的流量一般都是可控且良性的,因此使用最多的就是INPUT規則鏈,該規則鏈可以增大黑客人員從外網入侵內網的難度。
iptables中的基本參數
iptables中常用的參數以及作用
參數 | 作用 |
-P | 設置預設策略 |
-F | 清空規則鏈 |
-L | 查看規則鏈 |
-A | 在規則鏈的末尾加入新規則 |
-I num | 在規則鏈的頭部加入新規則 |
-D num | 刪除某一條規則 |
-s | 匹配來源地址IP/MASK,加嘆號“!”表示這個IP除外 |
-d | 匹配目標地址 |
-i 網卡名稱 | 匹配從這塊網卡流入的數據 |
-o 網卡名稱 | 匹配從這塊網卡流出的數據 |
-p | 匹配協議,如TCP、UDP、ICMP |
--dport num | 匹配目標埠號 |
--sport num | 匹配來源埠號 |
在iptables命令後添加-L參數查看已有的防火牆規則鏈
[root@localhost ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
target prot opt source destination
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
INPUT_direct all -- anywhere anywhere
INPUT_ZONES_SOURCE all -- anywhere anywhere
INPUT_ZONES all -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
在iptables命令後添加-F參數清空已有的防火牆規則鏈
[root@localhost ~]# iptables -F
[root@localhost ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
把INPUT規則鏈的預設策略設置為拒絕:
[root@localhost ~]# iptables -P INPUT DROP
將INPUT規則鏈設置為只允許指定網段的主機訪問本機的22埠,拒絕來自其他所有的主機流量:
[root@localhost ~]# iptables -I INPUT -s 10.6.12.0/24 -p tcp --dport 22 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p tcp --dport 22 -j REJECT
[root@localhost ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 10.6.12.0/24 anywhere tcp dpt:ssh
ACCEPT icmp -- anywhere anywhere
REJECT tcp -- anywhere anywhere tcp dpt:ssh reject-with icmp-port-unreachable
防火牆策略規則是按照從上到下的順序匹配的,因此一定要把允許動作放在拒絕動作前面。否則所有的流量就將被拒絕掉
使用CRT
一個是來自192.168.72.0/24的主機訪問,會被拒絕
Connection timed out
來自10.6.72.0/24的主機訪問
Last login: Sat Aug 31 11:43:09 2019 from 10.6.12.47
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]#