1. 防火牆服務概念介紹
防火牆作用: 火災(危險) 防火牆 人(安全)
外網 防火牆 內網
防火牆實現: 軟體實現(firewalld iptables) 硬體實現(思科 華為 h3c 深信服)
ps: 中小企業網路防護(軟體) 大型企業(硬體) 2-3s
防火牆應用: 應用在osi7層 二層(mac) 三層(ip) 四層(埠) 80 443
nginx+lua(waf) --> 應用層
防火牆名詞:
1) 什麼是容器: 裝東西 盛東西 的 器皿
防火牆服務容器 ---> 防火牆表 ---> 鏈資訊 ---> 規則資訊
2) 什麼是規則: 安全策略
對客戶端資料報資訊進行過濾判斷
只有符合規則流量可以放行或者阻止
當第乙個規則沒有匹配, 會繼續匹配下一條規則
直到所有規則都沒有匹配, 匹配預設規則
3) 什麼是表: 不同規則資訊分類到不同表中進行配置
filter: 主要實現防火牆流量過濾功能
nat : 主要實現防火牆埠或ip位址對映 10.0.0.1 --防火牆 --- 公網位址
mangle: 對資料報進行標記
raw : 對資料報標記進行取消
4) 什麼是鏈: 對資料報做不同的處理
filter:
· input: 對進入防火牆流量進行規則控制
· output: 防火牆主機產生流量是否可以出去
· forward: 經過流量進行控制 外網 --> 防火牆服務 --> 內網
2. 防火牆服務安裝部署
yum install -y iptables-services
systemctl start iptables
3. 防火牆服務配置應用
檢視預設配置資訊:
iptables -l -n
-l list 列表顯示表的鏈和規則資訊
-n number 將部分資訊以數字形式顯示
chain input (policy accept)
target prot opt source destination
accept all -- 0.0.0.0/0 0.0.0.0/0 state related,established
accept icmp -- 0.0.0.0/0 0.0.0.0/0
accept all -- 0.0.0.0/0 0.0.0.0/0
accept tcp -- 0.0.0.0/0 0.0.0.0/0 state new tcp dpt:22
reject all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
chain forward (policy accept)
target prot opt source destination
reject all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
chain output (policy accept)
target prot opt source destination
將預設規則先清除
iptables -f --- 清除預設規則資訊(filter表)
iptables -z --- 清除計數器功能 (統計流量資料報個數 所有資料報位元組數) 排錯
iptables -x --- 刪除使用者自定義鏈 ???
filter表配置方法:
1) 阻止使用者訪問遠端服務22埠
input鏈
iptables -a input -s 10.0.0.1 -p tcp --dport 22 -j accept
iptables -a input -s 172.16.1.0/24 -p tcp --dport 22 -j accept
iptables -a input -i eth1 -p tcp --dport 22 -j accept
iptables -a input -p tcp --dport 22 -j drop(accept drop* reject)
output鏈:
iptables -a output -d 10.0.0.1 -p tcp --sport 22 -j accept
iptables -a output -d 172.16.1.0/24 -p tcp --sport 22 -j accept
iptables -a output -o eth1 -p tcp --sport 22 -j accept
iptables -a output -p tcp --sport 22 -j drop(accept drop* reject)
2) 允許外網位址可以連線22埠(10.0.0.6)
iptables -i output -o eth0 -d 10.0.0.6 -p tcp --sport 22 -j accept
3) 除了10.0.0.1位址可以訪問80埠,其他主機都不能訪問80埠
方法一:
iptables -a input -s 10.0.0.1 -p tcp --dport 80 -j accept
iptables -a input -p tcp --dport 80 -j drop
方法二:
iptables -a input -s 10.0.0.1 -p tcp --dport 80 -j accept
預設規則阻止
iptables -p input drop
方法三:
iptables -a input ! -s 10.0.0.1 -p tcp --dport 80 -j drop
4) 允許10.0.0.6使用者訪問防火牆服務 80 81 82 83埠
iptables -a input -s 10.0.0.6 -p tcp --dport 80:83 -j accept
5) 允許10.0.0.6使用者訪問防火牆服務 80,443,8080埠
iptables -a input -m multiport -s 10.0.0.6 -p tcp --dport 80,443,8080 -j accept
6) 刪除規則資訊
iptables -d input 2
7) 實現禁ping功能
其他主機 --- 禁止訪問防火牆伺服器
iptables -a input -p icmp --icmp-type 8 -j drop
iptables -a output -p icmp --icmp-type 0 -j drop
禁止防火牆主機 --> 其他主機
iptables -a output -p icmp --icmp-type 8 -j drop
iptables -a input -p icmp --icmp-type 0 -j drop
icmp 0: 回顯應答(ping應答)
icmp 8: 回顯請求(ping請求)
總結禁ping
iptables -a input -m icmp -p icmp --icmp-type any -j drop
問題: 還回介面(邏輯介面) loopback
iptables -i input -i lo -m icmp -p icmp --icmp-type any -j accept
8) 實現網路流量資料報限速
-m limit --- 使用限速功能(資料報傳送頻率)
--limit n/: --- 限制每秒鐘/每分鐘/每小時產生多少個資料報
--limit-burst [n] --- 定義限制資料報乙個標準
iptables -i input -s 10.0.0.6 -p icmp --icmp-type 8 -m limit --limit 6/min --limit-burst 5 -j accept
iptables -a input -m icmp -p icmp --icmp-type any -j drop
nat表配置方法:
0x: iptables命令引數資訊
-a 鏈資訊 : 在指定鏈上可以新增規則
-i 鏈資訊 : 在指定鏈上可以插入規則
-i 鏈資訊 編號 : 自定插入到第幾個規則之上
-p 協議資訊 : 指定過濾處理資料協議資訊(tcp udp icmp)
--dport 埠: 指定訪問目標埠號碼
--sport 埠: 指定訪問源埠號碼
-s 源ip位址 : 訪問源ip位址資訊
-d 目標ip位址 : 訪問目標ip位址資訊
-i 介面 : 流量流入的介面資訊
-o 介面 : 流量流出的介面資訊
-j 動作資訊 : 指定需要對匹配資料報執行什麼動作
-f : 清除預設規則資訊(filter表)
-z : 清除計數器功能 (統計流量資料報個數 所有資料報位元組數) 排錯
-x : 刪除使用者自定義鏈 ???
--line-number --- 顯示規則編號
iptables的簡單問題
編輯 etc sysconfig iptables 然後執行 sbin service iptables restart 防火牆規則只有在 iptables 服務執行的時候才能被啟用。要手工啟動服務,使用以下命令 sbin service iptables restart 要確保它在系統引導時啟動,...
iptables的簡單應用
當前主機ip 10.0.0.7 iptables a input d 10.0.0.7 p icmp icmp type 8 j reject當前主機ip 10.0.0.7 iptables a input d 10.0.0.7 p tcp dport 80 m state state new j ...
iptables入門介紹
說白了,iptables在linux當中充當類似防火牆的功能。它依賴於linux核心的netfilter模組,在它的基礎上實現了自己的規則,篩選資料報。我們只需要知道,區別就是篩選方式和手段不一樣,但是都是依賴netfilter實現的。具體的區別是什麼,有興趣的可以自己搜尋。yum install ...