iptables的一個小文檔

iptables:
    iptables五表五鏈
        felter表
            INPUT
            FORWARD
            OUTPUT
        nat表
            PREROUTING
            OUTPUT
            POSTROUTING
        mangle表
            PREROUTING
            INPUT
            FORWARD
            OUTPUT
            POSTROUTING
        raw表
            PREROUTING
            OUTPUT
        security表
            INPUT
            OUTPUT
            FOEWARD
iptables的通用格式:
    iptables [-t] TABLE [OPTIONS] CHAIN [NUMBER] RULE_match [-j] [target]
        -t:表示type,表的種類
        TABLE:意為表
        CHAIN:意為鏈
        NUMBER:表示規則條目編號
        RULE_matche:表示匹配的通信包
            -d:表示目錄地址
            -s:表示源地址
            -p:表示協議
            -m:要執行的擴展模塊,各模塊有其獨特的選項
        -j:將要執行動作
        target:表示要執行的動作
            ACCEPT:允許
            DROP:拒絕
            RETURN:不再匹配些規則
            REJECT:拒絕,并回復特定信息

部分擴展模塊介紹:
    tcp:定義協議的模塊
        –sport:定義源端口,可以定義連續的端口,如22:80
        –dport:目標端口,性能同–sport
        –tcp-flags:tcp標記位
            –tcp-flags SYN,ACK,FIN,RST, SYN:這個表示匹配SYN,ACK,FIN,RST中以SYN為1,ACK,FIN,RST為0,其余的忽略
        –syn:是–tcp-flags的一個擴展,就是匹配三次握手的第一次
    connlimit:允許的最大連接數
        [!] –connlimit-above NUMBER:最大允許連接的個數,可取反
    iprange:定義一個ip范圍,可用作源IP與目標IP的范圍
        [!] –src-range:源地址范圍
        [!] –dst-range:目標地址范圍
    limit:這個模塊用于定義連接頻率與首次連接最大連接個數(令牌筒)
        –limit RATE:定義其連接速率
        –limit-burst NUM:定義首次連接次個數
    state:這個模塊是根拒據狀態來判定數據包
        [!] –state STATE:對狀態流量進行操作
        STATE:
            ESTABLISHED:已連接
            NEW:新建立連接
            RELATED:關聯的連接,追蹤連接
            INVALID:不能識別的
            UNTRACKED:未追蹤的連接
    string:這個模塊是對內容中的字符串進行匹配
        –algo {bm|kmp}:匹配字符串的算法
        [!] –string STRING:所要匹配的字符串
    time:時間匹配數據包
        –datestart:開始日期時間
        –datestop:結束日期時間
        –timestart:開始時間
        –timestop:結束時間
        [!] –monthdays:一個有的那一日
        [!] weekdays:一周的那一天
    multiport:定義多個不連續的端口的模塊
        [!] –sport:源端口21,22,80:200
        [!] –dport:目標端口
部分擴展動作介紹:
    DNAT:目標地址轉換
        –to-destination:轉到那一個地址,可以跟端口,也可以跟多個連續的端口
    SNAT:源地址轉換
        –to-source:轉到那一個地址,可以跟一個商品,也可以跟多個端口
    LOG:是一個開啟日志的動作
        –log-level NUM:開啟日志的日志級別
        –log-prefix:日志的前綴
    MASQUERADE:IP為動態IP,連接貓的時候可以用戶這個動作
        –to-ports:轉化的商品有那些,如80-100
    REDIRECT:端口重定向
        –to-ports 9090:將指定商品生定向為9090
        
iptables指令:
    -N:創建一條新鏈
    -X:刪除一條新鏈
    -Z:將通過規則的包與字節數置0
    -S:打印現在使用的規則
    -F:清除所有現有正在使用的規則
    -L:打印現在使用的規則列表
        -n:對協議號不進行反解
        -v:顯示詳細信息
        -vv:顯示更加詳細的信息
        –line-numbers:顯示規則條目的序號
    -R:替換一條規則
    -A:追加一條規則
    -I:插入一條規則
    -P:更改默認策略

iptables示例:
    filter表:
           INPUT與OUTPUT功能:
            對172.18.0.0/16網段地址放行22號端口
                iptables     -A     INPUT     -s     172.18.0.0/16     -d     172.18.0.31     -p     tcp     –dport     22     -j     ACCEPT
            寫一條默認策略,使用拒絕所有
                iptables     -A     INPUT     -j     DROP
                iptables     -P     INPUT     DROP
            現在有這么一種情況,一個網段,但是這個網段是無類網絡,IP范圍為172.18.0.32到172.18.0.63,現在要禁止這個網段訪問本機的22號端口
                iptables     -I     INPUT     -m     iprange     –src-range     172.18.0.32-172.18.0.63     -d     172.18.254.31     -p     tcp     –dport     22     -j     DROP
            為了使服務器的web不宕機,我們現在要限制訪問最大訪問量,還有限制訪問頻率,而公司的web的首頁是https,由于運維人員的技術問題,有個別頁面是http頁面
                iptalbes     -I     INPUT     -d     172.18.132.2     -p     tcp     -m     connlimit     –connlimit-above-above     2000     -m     limit     –limit     300/minute     –limit-burst     1000     -m     multiport     –dport     80,443     -j     ACCEPT
            上面這么多都是入口的filter,那么我該怎么寫出口的策略呢,這個出口的策略能不能寫的少一點的壁呢,
                iptables     -A     OUTPUT     -s     172.18.132.2     -p     tcp     -m     multiport     –sport     22,80,445     -m     state     –state     ESTABLISHED     -j     ACCEPT
            昨天boss開會說,公司應該有一個文件服務器,供員工去下載一些資料或者程序,所以就布設了一個ftp服務器,可是這個ftp服務有點另類,這個數據商品可能是隨機的,怎么配置入口過濾規則呢
                iptables     -I     INPUT     -d     172.18.0.1     -m     state     –state     ESTABLISHED,RELATED     -j     ACCEPT
            昨天看新聞說,國家正在嚴打網上出現的有關于H7N9字樣的訪問,老板發話說,我們的網站要禁止訪問含有這個字樣的網頁
                iptables     -I     INPUT     -d     172.18.0.1     -t     tcp     –dport     80     -m     string     –algo     bm     –string     “H7N9”     -j     DORP
            昨天boss看到隔壁工位小王上班期間在下載電影,導致辦公網絡這慢,現在boss說在上班時間不允許下載ftp上的電影
                iptables     -I     INPUT     -d     172.18.0.1     -m     time     –timestart     9:00     –timestop     6:00     -p     tcp     –dport     21     -j     DROP
    
        自定義一條鏈,配置samba的過濾規則
            iptables     -t     filter     -N     samba_rule        //新建一條自定義鏈
            iptables     -A     samba_rule     -d     172.18.0.1     -p     tcp     -m     multiport     –dport     139,445     -j     ACCEPT              //TCP的訪問規則
            iptables     -A     samba_rule     -d     172.18.0.1     -p     udp     -m     multiport     –dport     137,138     -j     ACCEPT              //UDP的訪問規則 iptables     -I     INPUT     2     -d     172.18.0.1     -j     samba_rule             //調用自定義的鏈

        FORWARD功能:
            由于FORWARD只有轉發過濾功能,如果要對一個轉發的數據包進行操作,那么就需要定怲條規則
            現在有一個中間轉發服務器,現在要對這個服務器的數據包進行控制,要求可出不可進,內網IP為172.18.0.0/16
                iptables     -A     FORWARD     -s     172.18.0.0/16     -j     ACCEPT
                iptables     -A      FORWARD     -d     172.18.0.0/16     -j     DROP
    
nat表:網絡地址轉換,也有人說是私網IP訪問公網IP的一種機制
    源地址轉換:
        一個網絡172.18.0.0/16需要訪問公網,,公司買了一個公網IP為201.132.202.13,需要寫一條轉換語句,使內部主機可以訪問公網
            iptables -t nat -A PREROUTING -s 172.18.0.0/16 -j SNAT –to-source 201.132.202.13
        現在開發部門已經做好了web,需要發布在主機172.18.31.12上的網站
            iptables -t nat -A POSTROUTING -d 172.18.31.12 -j DNAT –to-destination 201.132.202.13
        由于公司資金出現了問題,公網IP也沒有了,只剩下一個貓了,但公司這么多人,網還是需要上的,該怎么寫這條規則呢
            iptables -t nat -A PREROUTING -s 172.18.0.0 -j MASQUERADE

原創文章,作者:gaomei,如若轉載,請注明出處:http://www.www58058.com/74455

(0)
gaomeigaomei
上一篇 2017-04-30 00:03
下一篇 2017-04-30 12:49

相關推薦

  • HAProxy基于Keepalived做高可用并簡單實現Web站點的動靜分離

    HAProxy簡介   HAProxy 是一個免費的,非??焖俸涂煽康慕鉀Q方案,提供 高可用性, 負載均衡和代理對TCP和HTTP的應用程序。它特別適用于非常大流量網站。多年來,它已成為標準開源的負載均衡,現在隨最主流的Linux發行版,并且通常默認的云平臺部署。 實驗描述 1、本實驗主要是在前端放置兩臺通過Keepalived做了高可用的HAProxy反向…

    Linux干貨 2016-04-16
  • 正則表達式

    什么是正則表達式? 正則表達式(Regular Expression)是一種文本模式,包括普通字符(例如,a 到 z 之間的字母)和特殊字符(稱為”元字符”)。正則表達式使用單個字符串來描述、匹配一系列匹配某個句法規則的字符串,許多程序設計語言都支持利用正則表達式進行字符串操作。正則表達式是煩瑣的,但它是強大的,學會之后的應用會讓你除…

    Linux干貨 2017-06-01
  • Linux系統中快捷鍵和man手冊講解

    1、Linux中的man手冊   man這個單詞的翻譯是男人的意思,但在Linux中是我們對于命令的幫助查找,我們知道在Linux中命令有很多,簡直浩瀚如海,我們不可能都能理解每個命令的意思。所以,Linux的幫助文件大大解決了我們對于命令的理解性。通過man指令可以查看Linux中的指令幫助、配置文件幫助和編程幫助等信息。 2、語法格式…

    Linux干貨 2016-10-17
  • 快速搭建SVN服務器

    一、背景介紹 svn服務器是一款上傳代碼的工具(貌似這么說不怎么嚴謹,但是在日常工作中基本上是這么用的),今天一個小伙伴折騰了一天也沒有搭建好這個svn服務器。各種問題,其實搭建SVN服務器最重要的就是三個配置文件(svnserver.conf、 passwd 、authz)。出了問題的話十有八九是這三個配置文件的問題。最后,我自己搭建了一個,測試成功。于是…

    Linux干貨 2016-12-11
  • CA服務器的搭建以及證書簽署、dropbear的編譯安裝

    CA服務器的搭建以及證書簽署、dropbear的編譯安裝 一、CA Server和Client: 1、CA server:創建私鑰CA (1)   openssl的配置文件:/etc/pki/tls/openssl.conf   如果Client端的申請是來自不同的國家,則需要將下圖中紅色框內的三項,由“match”改為“opt…

    Linux干貨 2016-09-23
  • 文本處理工具 練習

    7.1 練習   1 、找出ifconfig 命令結果中本機的所有IPv4 地址 2 、查出分區空間使用率的最大百分比值   3 、查出用戶UID 最大值的用戶名、UID 及shell 類型 4 、查出/tmp 的權限,以數字方式顯示   5 、統計當前連接本機的每個遠程主機IP 的連接數,并按從大到小排序   &nb…

    Linux干貨 2016-08-07
欧美性久久久久