iptables命令是linux上常用的防火牆軟體,是netfilter專案的一部分。可以直接配置,也可以通過許多前端和圖形介面配置
語法:
iptables (選項) (引數)
選項:
-t《表》 : 指定要操縱的表
-a : 向規則鏈中新增條目
-d : 從規則鏈中刪除條目
-i : 向規則鏈中插入條目
-r : 替換規則鏈中的條目
-l :顯示規則鏈中已有的條目
-f : 清除規則鏈中已有的條目
-z : 清空規則鏈中的資料報計算器和位元組計算器
-n :建立新的使用者自定義規則鏈
-p : 定義規則鏈中預設目標
-h :顯示幫助資訊
-p : 指定要匹配的資料報協議型別
-j《目標》 :指定要跳轉的目標
-i《網路介面》 :指定資料報進入本機的網路介面
-o《網路介面》 :指定資料報要離開本機所使用的網路介面
iptables命令選項輸入順序:
iptables -t 表名 <-a/i/d/r> 規則鏈明 [規則號] <-i/o 網絡卡名》 -p 協議名 <-s 源ip/源子網》 --sport 源埠 <-d 目標ip/目標子網》 --dport 目標埠 -j 動作
表名包括:
mangle:資料報修改(qos),用於實現服務質量
net:位址轉換,用於閘道器路由器
filter:包過濾,用於防火牆規則
規則鏈名包括:
input鏈:處理輸入資料報
output鏈:處理輸出資料報
porward鏈:處理**資料報
動作包括:
accept:接收資料報
drop:丟棄資料報
redirect:重定向,對映,透明**
masquerade:ip偽裝(nat),用於adsl
log:日誌記錄
例項:清除已有iptables規則:
iptables -f
iptables -x
iptables -z
開放指定的埠:
iptables -a input -s 127.0.0.1 -d 127.0.0.1 -j accept #允許本地回環介面(即執行本機訪問本機)
iptables -a input -m state --state established,related -j accept #允許已建立的或相關連的通行
iptables -a output -j accept #允許所有本機向外的訪問
iptables -a input -p tcp --dport 22 -j accept #允許訪問22埠
iptables -a input -p tcp --dport 80 -j accept #允許訪問80埠
iptables -a input -p tcp --dport 21 -j accept #允許ftp服務的21埠
iptables -a input -p tcp --dport 20 -j accept #允許ftp服務的20埠
iptables -a input -j reject #禁止其他未允許的規則訪問
iptables -a forward -j reject #禁止其他未允許的規則訪問
遮蔽ip
iptables -i input -s 123.45.6.7 -j drop #遮蔽單個ip的命令
iptables -i input -s 123.0.0.0/8 -j drop #封整個段即從123.0.0.1到123.255.255.254的命令
iptables -i input -s 124.45.0.0/16 -j drop #封ip段即從123.45.0.1到123.45.255.254的命令
iptables -i input -s 123.45.6.0/24 -j drop #封ip段即從123.45.6.1到123.45.6.254的命令
檢視已新增的iptables規則
[root@localhost ~]# iptables -l -n -v
chain input (policy accept 99 packets, 8432 bytes)
pkts bytes target prot opt in out source destination
0 0 accept udp -- virbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:53
0 0 accept tcp -- virbr0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
0 0 accept udp -- virbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:67
0 0 accept tcp -- virbr0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:67
0 0 accept all -- * * 127.0.0.1 127.0.0.1
chain forward (policy accept 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 accept all -- * virbr0 0.0.0.0/0 192.168.122.0/24 ctstate related,established
0 0 accept all -- virbr0 * 192.168.122.0/24 0.0.0.0/0
0 0 accept all -- virbr0 virbr0 0.0.0.0/0 0.0.0.0/0
0 0 reject all -- * virbr0 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
0 0 reject all -- virbr0 * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
chain output (policy accept 82 packets, 7684 bytes)
pkts bytes target prot opt in out source destination
0 0 accept udp -- * virbr0 0.0.0.0/0 0.0.0.0/0 udp dpt:68
輸出已新增的iptables規則
將所有iptables以序號標記顯示,執行:
iptables -l -n --line-numbers
比如要刪除input裡序號為8的規則,執行:
iptables -d input 8
學習筆記 Linux學習
echo i am whoami 反引號裡的內容會被當做命令執行 echo the cpu in my pc has cat proc cpuinfo grep c processor cores 等價於反引號 a 10 定義乙個變數,等號兩邊不能有空格 echo a的值為 a a的值為10 ech...
linux學習筆記
開機流程簡介 1 載入 bios 的硬體資訊,並取得第乙個開機裝置的代號 2 讀取第乙個開機裝置的 mbr 的 boot loader 亦即是 lilo,grub,spfdisk 等等 的開機資訊 3 載入 kernel 作業系統核心資訊,kernel 開始解壓縮,並且嘗試驅動所有硬體裝置 4 ke...
Linux 學習筆記
配置 telnet 服務 vi etc hosts.deny 在all all 行前加 號注釋,登出該行。新增一行all all 用 登出disable yes,或者修改為 disble no vi etc pam.d login 在auth required lib security pam se...