linux的防火牆包含了2部分,分別是存在於核心空間的netfilte和使用者空間的iptables
而iptable可以定義4類規則
filter:防火牆核心所在
nat:位址轉換
mangle:實現資料報修改;如ttl
raw:不常用,這裡不做多解釋
優先順序次序:raw-mangle-nat-filter
在iptable中定義的規則要輸送到核心中的netfilte才能生效
定義防火牆規則一般有2種模式。一種是比較嚴格的,只放行允許通過的資料報,其餘資料報全部阻止。還有一種比較寬鬆的,只阻止不允許通過的資料報。在企業應用中,一般使用第一種,根據業務需要放行對應的資料報。
iptable定義規則的一般機制(更加具體的語法參照man文件)
iptable [-t table] sub_command chain [num] [cretiria] [-j acction]
-t:
預設沒有指定是filter,也可以指定mangle,nat,raw
chain:
-f(flush):清空鏈
-n(new):新增一條鏈
-x:刪除使用者自定義的空鏈
-z:清空計數器
關於計數器:每條規則都有2條計數器
1:記錄被本條規則匹配到的包個數
2:記錄匹配到本條規則到的包的體積之和
-e:重新命名鏈
policy:
-p chain
exsample:
將input鏈的預設策略修改為drop
iptables -t filter -p intput drop
view:
-l 顯示定義的規則
-n:使用這個選項,就不會去反向解析ip位址的主機名,加快察看速度
-v:詳細資訊,可以多加幾個v,越多越詳細
-x:精確顯示資料報體積
--line-numbers
匹配條件:
通用匹配:
-s ip/network:源位址
-d ip/network:目標位址
-p :指定協議
-i input inte***ce:指定資料報進入的介面
-o output inte***ce:指定資料報出去的介面
example:
禁止192.168.1.0/24網段ping192.168.2.1主機
iptables -t fliter -a intup -s 192.168.1.0/24 -d 192.168.2.1 -p icmp -j drop
擴充套件匹配
隱式擴充套件:指對-p選項中指定的協議進行的擴充套件
-p
--sport portnum 源埠
--dport portnum 目標埠
--tcpflags 針對tcp的標誌位
--icmp-type icmp的包型別。
擴充套件上面的exapmle
iptables -t fliter -a intup -s 192.168.1.0/24 -d 192.168.2.1 -p icmp –icmp-type 8 -j drop
這裡明確拒絕了192.168.1.0/24網段的icmp-request包,8是icmp-request包,0是icmp-echo包
example:
拒絕192.168.2.1主機訪問本機的web服務
iptables -t fliter -a input -s 192.168.2.1 -p --dport 80 -j drop
iptables -t fliter -a input -s 192.168.2.1 -p --dport 443 -j drop
規則的寫法有多種,也可以寫在output鏈上,不過效率沒有input上高,而如果寫在output上 ,應該這樣寫
iptables -t fliter -a output -d 192.168.2.1 -p –sport 80 -j drop
iptables -t fliter -a output -d 192.168.2.1 -p –sport 443 -j drop
具體寫法要按照需求,分析資料報的走向而定
顯式擴充套件:使用-m指定要載入的擴充套件(下一章具體描述)
-j target:跳轉到到的鏈常見的有以下3種
accept
drop
reject
測試基礎編(二)
什麼是軟體測試?把軟體交付使用者之前,我們要站使用者的場景把各自正常和異常都模擬一遍,把各種功能,效能,穩定性,相容性,安全性,使用者體驗等進行測試,而介面,自動化這些就看你專案的需求了。軟體測試的目的又是什麼?發現軟體缺陷與錯誤,對軟體質量進行度量和評估,以提高軟體的質量。軟體測試常見的誤區 除錯...
swift基礎之《二》
型別安全,swift中不支援隱式轉換 var c 100 var c1 100.85 let res c c1 總結 swift 中不同資料型別,不能賦值和運算 迴圈語句 for in for while dowhile var sum 1 100 while sum 1 50 do while r...
python基礎之二
1.元組 tuple tuple 元素1,元素2,建立元組 tuple 建立空元組,只需要一堆空的圓括號即可注 建立單元素元組時,元素後的逗號不可少,不加逗號則無法區分是元組還是表示式。tuple m n 其中m,n可以是0 正整數 負整數,包括索引為m的元素,但不包括索引為n的元素a,b,c,d ...