Linux iptables
iptables防火墻應用
一、iptables防火墻基礎;
二、iptables規則編寫;
三、實戰演練;
一、iptables防火墻基礎;
1.概述:保護內部主機和內部網絡的安全,通過過濾的方式對網絡層的ip地址和端口進行處理;
2.了解防火墻:
硬件防火墻:ASA
軟件防火墻:iptables(linux平臺)、ISA(windows自帶的)
3.iptables防火墻結構:
netfilter內核模塊、iptables用戶工具、firewall用戶工具
4.iptables的表:按照不同功能來劃分;
raw(狀態跟蹤)、mangle(標記)、nat(修改)、filter(過濾)
raw:主要是為了提高效率使用的,raw本身的含義是指“原生的”、“未經過加工 的”,符合raw表所對應規則的數據包將會跳過一些檢查,這樣就可以提高效率;
mangle:mangle表的規則可以對數據包進行修改,比如修改ttl值等;
nat:進行源地址或目標地址修改轉換;
filter:通過過濾數據包的ip地址、mac地址、協議、端口,對數據包進行控制;
5.iptables規則鏈:根據不同時機來劃分鏈,在鏈中存放規則;
INPUT(入站)、OUTPUT(出站)、FORWARD(轉發)、PREROUTING(路由前)、POSTROUTING(路由后)
6.表中默認包含鏈:
raw:PREROUTING、OUTPUT
mangle:PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING
nat: PREROUTING、POSTROUTING、OUTPUT
filter:INPUT、FORWARD、OUTPUT
總結:表相當于內核空間的一個容器,在表容器中又包含不同的鏈,在鏈中包含不同的規則;
7.iptables匹配流程:(根據數據流的方向確定匹配順序)
鏈:入站數據流向:PREROUTING、INPUT
出站數據流向:OUTPUT、POSTROUTING
轉發數據流向:PREROUTING、FORWARD、POSTROUTING
表:raw--mangle--nat--filter
總結:鏈內規則匹配順序:從上到下、匹配即停止、未匹配使用默認規則;
二、編寫iptables規則:
語法:iptables -t 表名 選項 鏈名 條件 -j 動作
1.編寫規則語法注意:
省略表名,默認表示filter表,省略鏈名,表示表內所有鏈;
除非設置默認規則,否則必須設置匹配的規則;
選項、鏈名、動作必須大寫,其他小寫;
2.動作:對匹配的條件進行處理;
ACCEPT:允許
DROP:丟棄
REJECT:拒絕
LOG:日志
3.選項:對鏈中的規則進行增刪改查操作;
a.增加:-A鏈的末尾添加、-I 鏈的指定位置添加,需要指定序號(若不指定,默認作為第一條規則),例:-I INPUT 2
b.刪除:-D 刪除一條規則,-F清空鏈內所有規則,例:iptables -D 鏈名 2
c.查看:-L -n 查看規則,-L -n -v 查看更詳細的信息,-L -n --line-number顯示規則的序號(大寫為選項,后邊小寫為子選項, 子選項需要跟在鏈名的后邊)
d.設置默認規則:-P 鏈名 DROP或ACCEPT
4.匹配條件:
a.通用匹配條件:
-p 協議 ##常用的協議ICMP、TCP、UDP協議;
-s 源地址 ##控制源地址訪問,網段書寫格式:192.168.1.0/24
-d 目的地址 ##控制目的地址訪問
-i 入站網卡名稱 ##控制傳輸數據的入站網卡
-o 出站網卡名稱 ##控制傳輸數據的出站網卡
注:編寫規則時,需要判斷主機數據的流向,如INPUT鏈只能用-i入站網卡;
b.隱含匹配條件:
端口:-p 協議 --dport 目的端口
-p 協議 -sport 源端口
c.顯式匹配條件:
多端口:-m multiport -p tcp或udp --dports 端口號 ##指定多個端口,若連續端口11:22,若不連續端口11,22
mac地址:-m mac --mac-source MAC地址 ##MAC地址中間用:隔開,指定的mac地址為源地址
ip地址范圍:-m iprange --src-range 192.168.1.1-192.168.1.10 ##指定的ip地址范圍是源地址
數據包的狀態:-m state --state NEW,ESTABLISHED,RELATED ##三個選項分別表示,新建,已經建立的連接,已經相關,例:默認規則為DROP并且無允許ssh22號端口,但是允許已經建立的連接,ssh不會斷開,ss命令查看當前的連接;
三、實戰演練:
[root@lwh ~]# /etc/init.d/iptables stop ##清空防火墻規則;
iptables:將鏈設置為政策 ACCEPT:filter [確定]
iptables:清除防火墻規則: [確定]
iptables:正在卸載模塊: [確定]
[root@lwh ~]# iptables -A INPUT -i lo -j ACCEPT ##允許本地網卡所有訪問
[root@lwh ~]# iptables -A INPUT -s 192.168.100.1-p tcp -m multiport --dports 80,443,20,21,22,25,45000:50000 -j ACCEPT ##設置開啟的端口
[root@lwh ~]# iptables -A INPUT -m mac --mac-source 00:0C:29:D9:32:C9 -p icmp -j ACCEPT ##設置此mac地址可以ping訪問本主機
[root@lwh ~]# iptables -A INPUT -m iprange --src-range 192.168.100.1-192.168.100.10 -d 192.168.100.150 -p icmp -j ACCEPT ##設置此ip地址范圍可以訪問ping此主機
[root@lwh ~]# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT ##設置數據的狀態,本機可以訪問別的主機
[root@lwh ~]# iptables -P INPUT DROP ##設置INPUT入站鏈的默認規則為丟棄
[root@lwh ~]# iptables -P FORWARD DROP ##設置FORWARD轉發鏈的默認規則為丟棄
[root@lwh ~]# /etc/init.d/iptables save ##保存防火墻配置到/etc/sysconfig/iptables文件中,每次開機都會加載這個文件中的防火墻規則
iptables:將防火墻規則保存到 /etc/sysconfig/iptables: [確定]
[root@lwh ~]# chkconfig iptables on ##設置開機啟動防火墻

浙公網安備 33010602011771號