iptables (2) 基本配置

iptables 基本命令使用舉例

一、鏈的基本操作

1、清除所有的規則。
1)清除預設表filter中所有規則鏈中的規則。
# iptables -F

?

-F, --flush [chain]Flush the selected chain (all the chains in the table if none is given).  This is equivalent to deleting all  the  rules  one by one.

?

2)清除預設表filter中使用者自定鏈中的規則。

#iptables -X ??

-X 是刪除使用者自訂 table 項目,一般使用 iptables -N xxx 新增自訂 chain 后,可以使用 iptables -X xxx 刪除之。

?

-X, --delete-chain [chain]Delete the optional user-defined chain specified.  There must be no  references  to  the chain.  If there are, you must delete or replace the referring rules before the chain can be deleted.  If no  argument  is  given,  it  will  attempt to delete every nonbuiltin chain in the table.

2、設置鏈的默認策略。一般有兩種方法。
1)首先允許所有的包,然后再禁止有危險的包通過放火墻。
#iptables -P INPUT ACCEPT
#iptables -P OUTPUT ACCEPT
#iptables -P FORWARD ACCEPT
2)首先禁止所有的包,然后根據需要的服務允許特定的包通過防火墻。
#iptables -P INPUT DROP
#iptables -P OUTPUT DROP
#iptables -P FORWARD DROP
3、列出表/鏈中的所有規則。默認只列出filter表。
#iptables -L
4、向鏈中添加規則。下面的語句用于開放網絡接口:
#iptables -A INPUT -i lo -j ACCEPT
#iptables -A OUTPUT -o lo -j ACCEPT
#iptables -A INPUT -i eth0 -j ACEPT
#iptables -A OUTPUT -o eth1 -j ACCEPT
#iptables -A FORWARD -i eth1 -j ACCEPT
#iptables -A FORWARD -0 eth1 -j ACCEPT
注意:由于本地進程不會經過FORWARD鏈,因此回環接口lo只在INPUT和OUTPUT兩個鏈上作用。
5、使用者自定義鏈。
#iptables -N custom
#iptables -A custom -s 0/0 -d 0/0 -p icmp -j DROP
#iptables -A INPUT -s 0/0 -d 0/0 -j DROP
二、設置基本的規則匹配
1、指定協議匹配。
1)匹配指定協議。
#iptables -A INPUT -p tcp
2)匹配指定協議之外的所有協議。
#iptables -A INPUT -p !tcp
2、指定地址匹配。
1)指定匹配的主機。
#iptables -A INPUT -s 192.168.0.18
2)指定匹配的網絡。
#iptables -A INPUT -s 192.168.2.0/24
3)匹配指定主機之外的地址。
#iptables -A FORWARD -s !192.168.0.19
4)匹配指定網絡之外的網絡。
#iptables -A FORWARD -s ! 192.168.3.0/24
3、指定網絡接口匹配。
1)指定單一的網絡接口匹配。
#iptables -A INPUT -i eth0
#iptables -A FORWARD -o eth0
2)指定同類型的網絡接口匹配。
#iptables -A FORWARD -o ppp+
4、指定端口匹配。
1)指定單一端口匹配。
#iptables -A INPUT -p tcp --sport www
#iptables -A INPUT -p udp –dport 53
2)匹配指定端口之外的端口。
#iptables -A INPUT -p tcp –dport !22
3)匹配端口范圍。
#iptables -A INPUT -p tcp –sport 22:80
4)匹配ICMP端口和ICMP類型。
#iptables -A INOUT -p icmp –icimp-type 8
5)指定ip碎片。

個網絡接口都有一個MTU(最大傳輸單元),這個參數定義了可以通過的數據包的最大尺寸。如果一個數據包大于這個參數值時,系統會將其劃分成更小的數據包
(稱為ip碎片)來傳輸,而接受方則對這些ip碎片再進行重組以還原整個包。這樣會導致一個問題:當系統將大數據包劃分成ip碎片傳輸時,第一個碎片含有
完整的包頭信息(IP+TCP、UDP和ICMP),但是后續的碎片只有包頭的部分信息(如源地址、目的地址)。因此,檢查后面的ip碎片的頭部(象有
TCP、UDP和ICMP一樣)是不可能的。假如有這樣的一條規則:
#iptables -A FORWARD -p tcp -s 192.168.1.0/24 -d 192.168.2.100 –dport 80 -j ACCEPT
并且這時的FORWARD的policy為DROP時,系統只會讓第一個ip碎片通過,而余下的碎片因為包頭信息不完整而無法通過。可以通過—fragment/-f 選項來指定第二個及以后的ip碎片解決上述問題。
#iptables -A FORWARD -f -s 192.168.1.0/24 -d 192.168.2.100 -j ACCEPT
注意現在有許多進行ip碎片攻擊的實例,如DoS攻擊,因此允許ip碎片通過是有安全隱患的,對于這一點可以采用iptables的匹配擴展來進行限制。
三、設置擴展的規則匹配(舉例已忽略目標動作)
1、多端口匹配。
1)匹配多個源端口。
#iptables -A INPUT -p tcp -m multiport –sport 22,53,80,110
2)匹配多個目的端口。
#iptables -A INPUT -p tcp -m multiport –dpoort 22,53,80
3)匹配多端口(無論是源端口還是目的端口)
#iptables -A INPUT -p tcp -m multiport –port 22,53,80,110
2、指定TCP匹配擴展
使用 –tcp-flags 選項可以根據tcp包的標志位進行過濾。
#iptables -A INPUT -p tcp –tcp-flags SYN,FIN,ACK SYN
#iptables -A FROWARD -p tcp –tcp-flags ALL SYN,ACK
上實例中第一個表示SYN、ACK、FIN的標志都檢查,但是只有SYN匹配。第二個表示ALL(SYN,ACK,FIN,RST,URG,PSH)的標志都檢查,但是只有設置了SYN和ACK的匹配。
#iptables -A FORWARD -p tcp --syn
選項—syn相當于”--tcp-flags SYN,RST,ACK SYN”的簡寫。
3、limit速率匹配擴展。
1)指定單位時間內允許通過的數據包個數,單位時間可以是/second、/minute、/hour、/day或使用第一個子母。
#iptables -A INPUT -m limit --limit 300/hour
2 )指定觸發事件的閥值。
#iptables -A INPUT -m limit –limit-burst 10?
用來比對一次同時涌入的封包是否超過10個,超過此上限的包將直接丟棄。
3)同時指定速率限制和觸發閥值。
#iptables -A INPUT -p icmp -m limit –-limit 3/m –limit-burst 3
表示每分鐘允許的最大包數量為限制速率(本例為3)加上當前的觸發閥值burst數。任何情況下,都可保證3個數據包通過,觸發閥值burst相當于允許額外的包數量。?
4)基于狀態的匹配擴展(連接跟蹤)
每個網絡連接包括以下信息:源地址、目標地址、源端口、目的端口,稱為套接字對(socket pairs);協議類型、連接狀態(TCP協議)
和超時時間等。防火墻把這些信息稱為狀態(stateful)。狀態包過濾防火墻能在內存中維護一個跟蹤狀態的表,比簡單包過濾防火墻具有更大的安全性,命令格式如下:?
iptables -m state –-state [!]state [,state,state,state]
其中,state表是一個逗號分割的列表,用來指定連接狀態,4種:
>NEW: 該包想要開始一個新的連接(重新連接或連接重定向)
>RELATED:該包是屬于某個已經建立的連接所建立的新連接。舉例:
FTP的數據傳輸連接和控制連接之間就是RELATED關系。
>ESTABLISHED:該包屬于某個已經建立的連接。
>INVALID:該包不匹配于任何連接,通常這些包被DROP。
例如:
(1)在INPUT鏈添加一條規則,匹配已經建立的連接或由已經建立的連接所建立的新連接。即匹配所有的TCP回應包。
#iptables -A INPUT -m state –state RELATED,ESTABLISHED
(2)在INPUT鏈鏈添加一條規則,匹配所有從非eth0接口來的連接請求包。
#iptables -A INPUT -m state -–state NEW -i !eth0
又如,對于ftp連接可以使用下面的連接跟蹤:
(1)被動(Passive)ftp連接模式。
#iptables -A INPUT -p tcp --sport 1024: --dport 1024: -m state –-state ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -p tcp --sport 1024: --dport 1024: -m?
state -–state ESTABLISHED,RELATED -j ACCEPT
(2)主動(Active)ftp連接模式
#iptables -A INNPUT -p tcp --sport 20 -m state –-state ESTABLISHED,RELATED -j ACCEPT
#iptables -A OUTPUT -p tcp –OUTPUT -p tcp –dport 20 -m state --state ESTABLISHED -j ACCEPT

轉載于:https://www.cnblogs.com/lilidun/p/5547829.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/287487.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/287487.shtml
英文地址,請注明出處:http://en.pswp.cn/news/287487.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[python opencv 計算機視覺零基礎到實戰] 十六、用opencv畫畫

一、學習目標 了解如何使用line方法了解如何使用rectangle方法了解如何使用ellipse方法 如有錯誤歡迎指出~ 二、了解OpenCV的繪圖方法 2.1 了解直線繪圖方法 我們在前兩節中有了解使用OpenCV中的矩形繪制,接下來我們了解一下更多的圖形繪制方法。我們在OpenCV中…

基于.NetCore開發博客項目 StarBlog - (5) 開始搭建Web項目

系列文章基于.NetCore開發博客項目 StarBlog - (1) 為什么需要自己寫一個博客?基于.NetCore開發博客項目 StarBlog - (2) 環境準備和創建項目基于.NetCore開發博客項目 StarBlog - (3) 模型設計基于.NetCore開發博客項目 StarBlog - (4) markdown博客批量導入基于.N…

java計算每個元素出現的百分比_Java程序計算百分比

百分數表示百分數(百),即百分數與100之比。百分數的符號為%。我們通常會計算獲得的商標,投資回報率等百分比。該百分比也可以超過100%。例如,假設我們有總數和一部分。所以我們說那一部分占總數的百分之幾,…

ECShop 前臺用戶中心調整左側欄目及中心部分呈現頁面

1、首先調整用戶中心左側欄目,在 .dwt 里面我修改了半天,頁面沒改動。。后來某大神說這個是在另一個文件里:/themes/你用的模板目錄/library/user_menu.lbi 文件改一個試試吧~ 不出意外的成功了吧2、中心部分呈現內容的調整。(今天…

【測繪程序設計】高斯克呂格投影:帶號及中央經度計算神器V1.0(附源程序)

【問題描述】:很多情況下,我們知道某一地點的坐標(經緯度),需要計算其在高斯克呂格投影中的帶號及中央經度。關于該問題,有具體的公式可言,只是計算過程稍微繁瑣一些,當然啦,我們可以寫程序來解決,誰叫我們是名副其實的GISer呢?另外,這些復雜的計算過程還是交給計算…

外部中斷0(含知識點)

1 #include "stm32f10x.h" // 相當于51單片機中的 #include <reg51.h>2 #include "stm32f10x_gpio.h"3 #include "stm32f10x_exti.h"4 #include "misc.h"5 6 /*外部中斷配置*/7 8 9 int main(void)10 {11 /*************…

Git之tag

1 tag相關命令 1) 打上tag git tag v1.0.0 git tag -a v1.0.0 -m info 2) 查看tag git tag 3) 切換tag git checkout tagname 4) 刪除tag git tag -d v1.0.0 5) 推送遠程 推送單個tag git push origin v1.0.0 推送所有tag git push origin --tags

[python opencv 計算機視覺零基礎到實戰] 十七、用鼠標畫畫

一、學習目標 了解長軸和短軸參數了解旋轉角度參數了解起始角度參數了解終止角度參數 二、深入了解OpenCV的ellipse方法 2.1 縱橫 橢圓的繪制方法在上一節中我們已經知道了是使用ellipse&#xff0c;ellipse的函數原型如下&#xff0c;為了清晰認識ellipse方法&#xff0c;…

Microsoft Build 2022 到來,開發者們做好準備了嗎?

Microsoft Build 2022 將會在5月24日 - 5月26日正式舉行&#xff0c;作為開發者的你是否和我一樣期待本次的 Build&#xff0c;它會帶來什么的技術革新以及黑科技呢&#xff1f;下面我就針對今年 Build 的幾個主題結合相關技術來談談我對 Build 的期待。開發技術和相關工具今年…

【測繪程序設計】視距測量神器V1.0(附源程序)

神器預覽: 一、視距測量概念 視距測量是利用水準儀的望遠鏡內十字絲分劃板上的視距絲在視距尺(水準尺)上讀數,根據光學和幾何學原理,同時測定儀器到地面點的水平距離和高差的一種方法。 視距測量具有操作簡便、速度快、不受地面起伏變化的影響的優點,被廣泛應用于碎部測…

補作業:隨機生成二元四則運算

四則運算代碼如下&#xff0c;基礎不好&#xff0c;剛完成作業&#xff0c;希望老師多給點平時成績&#xff0c;謝謝老師&#xff01;#include<stdio.h>#include<stdlib.h>#include<time.h>int right0,wrong0;int a,b,c,d;/*加法運算*/void add(){int i,j;fo…

java 從數據庫取值_java 連接數據庫取值問題

publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException,ServletException{//TODOAuto-generatedmethodstubXzdatasqlToolnewXzdata();//初始化并...public void doGet(HttpServletRequest request,HttpServletResponse response) throws I…

條件表達式

1.python中&#xff1a; a 1b 2 if a>1 else 3 2.C語言中&#xff1a;max (a>b)?a:b; 說明&#xff1a;條件運算符優先于賦值運算符 也可以這樣寫&#xff1a;a>b? a:c>d? c:d / a>b? (a100):(b100)轉載于:https://www.cnblogs.com/yjw9520/p/4841301.ht

oracle導出數據庫中表出現導出報錯(EXP-00003)未找到段 (0,0) 的存儲定義

前兩天在使用oracle數據庫&#xff0c;使用dba用戶利用PL/SQL 中的tool中export table導出表結構時&#xff0c;出現了如下問題&#xff1a;好多張表“報錯&#xff08;EXP-00003&#xff09;未找到段 (0,0) 的存儲定義 ”&#xff0c;出現這樣的結果&#xff0c;經過查找相關資…

Android Studio之查找當前類的位置圖標沒了

1 問題 我們知道在Android studio里面如果想快速看到該文件所在的目錄位置&#xff0c;點擊這個圖標 現在這個圖標沒了&#xff0c;找不到了 2 解決辦法 把下面的Autoscroll from Source的勾去掉就行。

[python opencv 計算機視覺零基礎到實戰] 十八、用鼠標進行畫畫

一、學習目標 了解如何在圖片中加入文字了解如何使用鼠標進行圖像繪制 二、了解如何通過鼠標進行圖像繪制 2.1 了解putText方法的使用 putText方法接收圖像&#xff0c;文字內容&#xff0c; 坐標 &#xff0c;字體&#xff0c;大小&#xff0c;顏色&#xff0c;字體厚度這…

【測繪程序設計】坐標正算神器V1.0(附C/C#/VB源程序)

坐標正算,就是根據直線的邊長、坐標方位角和一個端點的坐標,計算直線另一個端點的坐標的工作。本文用C#語言和VB語言實現坐標正算,編寫坐標正算神器。 計算實例: 實例1,設直線AB的邊長DAB和一個端點A的坐標XA、YA為已知,則直線另一個端點B的坐標為: XB=XA+ΔXAB YB=YA+…

2.2 PostgreSQL 概念

PostgreSQL 是一種關系型數據庫管理系統(RDBMS)。這意味著它是一種用于管理那些以關系形式存儲數據的系統。關系實際上是表的數學稱呼。今天&#xff0c;把數據存儲在表里的概念已經快成固有的常識了&#xff0c;但是還有其它一些方法用于組織數據庫。在類 Unix 操作系統上的文…

Blazor University (22)路由 —— 定義路由

原文鏈接&#xff1a;https://blazor-university.com/routing/路由與標準 ASP.NET MVC 一樣&#xff0c;Blazor 路由是一種用于檢查瀏覽器 URL 并將其匹配到要呈現的頁面的技術。路由比簡單地將 URL 匹配到頁面更靈活。它允許我們根據文本模式進行匹配&#xff0c;例如&#xf…

Linux文件I/O編程(二)lseek函數

文件I/O編程處理open、read、write、close&#xff0c;等必要函數對文件進行讀寫操作外&#xff0c;lseek、fcntl也是I/O編程很重要的函數。lseek函數lseek函數主要用來移動當前讀寫位置&#xff0c;第一個參數是文件描述符fd&#xff0c;第二個參數是偏移距離&#xff0c;第三…