linux學習筆記 iptables命令

2021-07-25 17:13:42 字數 3946 閱讀 8661

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...