iptables上課內(nèi)容-創(chuàng)新互聯(lián)

                                                  iptables

長安網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),長安網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為長安上千多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的長安做網(wǎng)站的公司定做!

全稱Packets Filter Firewall; iptables/netfilter:包過濾型防火墻;帶狀態(tài)檢測的包過濾型防火墻;連接追蹤(connection tracking);

   Firewall:隔離工具;工作于主機或網(wǎng)絡(luò)的邊緣,對經(jīng)由的報文根據(jù)預(yù)先定義的規(guī)則(識別條件)進行檢測,對于能夠被規(guī)則匹配到的報文實行某預(yù)定義的處理機制的一套組件;
       硬件防火墻:在硬件級別能部分防火墻,另一部分功能基于軟件實現(xiàn);
       軟件防火墻:應(yīng)用軟件處理邏輯運行通用硬件實現(xiàn)的防火墻;

       主機防火墻:服務(wù)范圍為當前主機;
       網(wǎng)絡(luò)防火墻:服務(wù)范圍為局域網(wǎng);

   獲取幫助:
           CentOS 7:man iptables-extensions
           CentOS 6:man iptables

   iptables/netfilter:軟件實現(xiàn)的主機或網(wǎng)絡(luò)防火墻;
netfilter:位于內(nèi)核中tcp/ip協(xié)議棧上的一個framework;5個鉤子函數(shù);
       iptables:位于用戶空間的命令行程序,用于生成規(guī)則送往內(nèi)核中的netfilter之上;
           hook function鉤子函數(shù):
               prerouting
               input
               forward
               output
               postrouting
           chain鏈:
               PREROUTING
               INPUT
               FORWARD
               OUTPUT
               POSTROUTING
           四表
               filter:過濾,防火墻;
               nat:network address translation;用于修改報文的源地址或目標地址,甚至是端口;
               mangle:拆解報文,做出修改,并重新封裝起來;
               raw:關(guān)閉nat表上啟用的連接追蹤機制;
           優(yōu)先級次序(由高而低):
               raw --> mangle --> nat --> filter

       4個表中,每個表多對應(yīng)的鏈分別為(功能<-->鉤子):
           raw:PREROUTING,OUTPUT
           mangle:PREROUTING,INPUT,F(xiàn)ORWARD,OUTPUT,POSTROUTING
           nat:PREROUTING,INPUT,OUTPUT,POSTRUTING
           filter:INPUT,F(xiàn)ORWARD,OUTPUT

       報文流向:
           到本機某進程的報文:PREROUTING --> INPUT
           由本轉(zhuǎn)發(fā)的報文:PREROUTING --> FORWARD --> POSTROUTING
           由本某進程發(fā)出的:OUTPUT --> POSTROUTING

       規(guī)則的組成的部分:
           匹配條件:
               網(wǎng)絡(luò)層首部屬性值;
               傳輸層首部屬性值;
               附加的條件;
           處理動作:

       TCP/IP協(xié)議棧:
           數(shù)據(jù)鏈接層:物理到物理設(shè)備之間的通信;(MAC,Media Access Control)
           網(wǎng)絡(luò)層:源主機到目標主機之間的通信;
           傳輸層:進程到進程之間的通信;

       CentOS 5/6:iptables命令編寫規(guī)則;
       CentOS 7:firewalld;
           systemctl disable firewalld.service

   iptables命令:
       規(guī)則:根據(jù)指定的匹配條件來嘗試匹配每個流經(jīng)此處的報文,一旦匹配成功,就由規(guī)則后面指明的處理動作進行處理;
           匹配條件:
               基本匹配條件:簡單檢查IP、TCP、UDP等報文的某屬性進行匹配的
               擴展匹配條件:需要借助于擴展模塊進行的匹配條件指定即為擴展匹配;
           處理動作:
               基本動作:ACCEPT,DROP, ...
               擴展動作:需要借助擴展模塊進行的動作;
       添加規(guī)則之時需要考量的問題:
           (1) 報文的流經(jīng)路徑,判斷添加規(guī)則至哪個鏈上;
           (2) 確定要實現(xiàn)的功能,判斷添加規(guī)則至哪個表上;
           (3) 要指定的匹配條件,以用于匹配目標報文;

   規(guī)則的編寫格式:iptables [-t table] COMMAND chain [-m matchname [per-match-options]] [-j targetname [per-target-options]]
       -t table:
           默認為filter;其它可用的有raw, mangle, nat;
       COMMAND:
           鏈:
           -P:policy,策略,定義默認策略; 一般有兩種選擇,ACCEPT和DROP;
           -N:new,新建一條自定義的規(guī)則鏈;被內(nèi)建鏈上的規(guī)則調(diào)用才能生效;[-j chain_name];
           -X:drop,刪除自定義的引用計數(shù)為0的空鏈;
           -F:flush,清空指定的鏈;
           -E:重命名自定義的引用計數(shù)和為0的鏈;
       規(guī)則:
           -A:append,追加,在指定鏈的尾部追加一條規(guī)則;
           -I:insert,插入,在指定的位置(省略位置時表示鏈首)插入一條規(guī)則
           -D:delelte,刪除,刪除指定的規(guī)則;
           -R:replace,替換,將指定的規(guī)則替換為新規(guī)則;不能僅修改規(guī)則中的部分,而是整條規(guī)則完全替換;
       查看:
           -L:list,列出表中的鏈上的規(guī)則;
               -n:numeric,以數(shù)值格式顯示;
               -v:verbose,顯示詳細格式信息;
                   -vv, -vvv
               -x:exactly,計數(shù)器的精確結(jié)果;
               --line-numbers:顯示鏈中的規(guī)則編號;

       計數(shù)器:
           規(guī)則,以及默認策略有專用的計數(shù)器;
           記錄被當前規(guī)則所匹配到的:
               (1) 報文個數(shù);
               (2) 字節(jié)總數(shù);

           重置規(guī)則計數(shù)器:
               -Z:zero,置0;

       chain:
           (1) 內(nèi)建鏈;
           (2) 自定義鏈;

       匹配條件:
           多重條件:邏輯關(guān)系為“與”;
           基本匹配條件:
               [!] -s, --source address[/mask][,...]:檢查報文中的源IP地址是否符合此處指定的地址或范圍;
               [!] -d, --destination address[/mask][,...]:檢查報文中的目標IP地址是否符合此處指定的地址或范圍;
               [!] -p, --protocol protocol:
               protocol:{tcp|udp|icmp}
               [!] -i, --in-interface name:數(shù)據(jù)報文的流入接口;INPUT, FORWARD and PREROUTING
               [!] -o, --out-interface name:數(shù)據(jù)報文的流出接口; FORWARD, OUTPUT and POSTROUTING
       擴展匹配條件
           隱式擴展:不用-m選項指出matchname即可使用此match的專用選項進行匹配;
           -p tcp:隱含了-m tcp;
               [!] --source-port,--sport port[:port]:匹配報文中傳輸層的源端口;
               [!] --destination-port,--dport port[:port]:匹配報文中傳輸層的目標端口;
               [!] --tcp-flags mask comp
                   SYN,ACK,F(xiàn)IN,RST,URG,PSH;

                   mask:要檢查的標志位列表,以逗號分隔;
                   comp:必須為1的標志位,余下的出現(xiàn)在mask列表中的標志位則必須為0;

           --tcp-flags SYN,ACK,FIN,RST SYN
               [!] --syn:
                   相當于--tcp-flags SYN,ACK,FIN,RST SYN
           -p udp:隱含了-m udp:
               [!] --source-port,--sport port[:port]:匹配報文中傳輸層的源端口;
               [!] --destination-port,--dport port[:port]:匹配報文中傳輸層的目標端口;
           -p icmp:隱含了-m icmp:
                [!] --icmp-type {type[/code]|typename}
                   8:echo-request
                   0:echo-reply

       顯式擴展:必須使用-m選項指出matchname,有的match可能存在專用的選項;

   1、multiport擴展
       以離散或連續(xù)的方式定義多端口匹配條件;

            [!] --source-ports,--sports port[,port|,port:port]...:指定多個源端口;
            [!] --destination-ports,--dports port[,port|,port:port]...:指定多個目標端口
            [!] --ports port[,port|,port:port]...:指定多個端口;

   2、iprange擴展
           以連續(xù)的ip地址范圍指明連續(xù)的多地址匹配條件;
           [!] --src-range from[-to]:源IP地址;
           [!] --dst-range from[-to]:目標IP地址;

   3、string擴展
           對報文中的應(yīng)用層數(shù)據(jù)做字符串匹配檢測;

           [!] --string pattern:要檢測字符串模式;
           [!] --hex-string pattern:要檢測的字符串模式,16進制編碼;
               --algo {bm|kmp}

4、time擴展
       根據(jù)報文到達的時間與指定的時間范圍進行匹配度檢測;

           --datestart YYYY[-MM[-DD[Thh[:mm[:ss]]]]]:起始日期時間;
           --datestop YYYY[-MM[-DD[Thh[:mm[:ss]]]]]:結(jié)束日期時間;
           --timestart hh:mm[:ss]
           --timestop hh:mm[:ss]
            [!] --monthdays day[,day...]
            [!] --weekdays day[,day...]

           ~]# iptables -I INPUT -d 172.16.100.67 -p tcp --dport 23 -m time --timestart 09:00:00 --timestop 18:00:00 --weekdays Tue,Thu,Sat -j ACCEPT

5、connlimit擴展
       根據(jù)每客戶端IP做并發(fā)連接數(shù)匹配;
--connlimit-upto n:連接數(shù)數(shù)量小于等于n,此時應(yīng)該允許;
       --connlimit-above n:連接數(shù)數(shù)量大于n,此時應(yīng)該拒絕;

       ~]# iptables -A INPUT -d 172.16.100.67 -p tcp --dport 23 -m connlimit --connlimit-upto 2 -j ACCEPT

   6、limit擴展
       基于收發(fā)報文的速率進行匹配;
--limit rate[/second|/minute|/hour|/day]:平均速率
           --limit-burst number:峰值速率

   7、state擴展
       狀態(tài)檢測;連接追蹤機制(conntrack);
           INVALID:無法識別的狀態(tài);
           ESTABLISHED:已建立的連接;
           NEW:新連接;
           RELATED:相關(guān)聯(lián)的連接;
           UNTRACKED:未追蹤的連接;

           nf_conntrack內(nèi)核模塊;
               追蹤到的連接:/proc/net/nf_conntrack文件中;
               能追蹤的大連接數(shù)量定義在:/proc/sys/net/nf_conntrack_max
                   此值可自行定義,建議必要時調(diào)整到足夠大;

               不同的協(xié)議的連接追蹤的時長:
                   /proc/sys/net/netfilter/

                    [!] --state STATE

   如何開放被模式的ftp服務(wù):
        (1) 裝載追蹤ftp協(xié)議的模塊;
           # modprobe nf_conntrack_ftp

        (2) 放行命令連接
           ~] # iptables -A INPUT -d 172.16.100.67 -p tcp -m state --state ESTABLISHED -j ACCEPT
           ~] # iptables -A INPUT -d 172.16.100.67 -p tcp --dport 21 -m state --state NEW -j ACCEPT

        (3) 放行數(shù)據(jù)連接
           ~] iptables -A INPUT -d 172.16.100.67 -p tcp -m state --state RELATED -j ACCEPT

   處理動作(目標)
       -j targetname [per-target-options]
targetname:
           ACCEPT:接受;
           DROP:丟棄;
           REJECT:拒絕;

   保存和重載規(guī)則:
       iptables-save > /PATH/TO/SOME_RULE_FILE
       iptables-restore < /PATH/FROM/SOME_RULE_FILE

       CentOS 6:
           保存規(guī)則:
               service iptables save
                   自動保存規(guī)則至/etc/sysconfig/iptables文件中;
           重載規(guī)則:
               server iptables restore
                   從/etc/sysconfig/iptables文件中重載規(guī)則;
   規(guī)則優(yōu)化:
       (1) 可安全放行所有入站及出站,且狀態(tài)為ESTABLISHED的連接;
       (2) 服務(wù)于同一類功能的規(guī)則,匹配條件嚴格的放前面,寬松放后面;
       (3) 服務(wù)于不同類功能的規(guī)則,匹配報文可能性較大擴前面,較小放后面;
       (4) 設(shè)置默認策略;
           (a) 最后一條規(guī)則設(shè)定;
           (b) 默認策略設(shè)定;

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)站題目:iptables上課內(nèi)容-創(chuàng)新互聯(lián)
標題路徑:http://muchs.cn/article14/dscpge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google外貿(mào)建站、電子商務(wù)、網(wǎng)站內(nèi)鏈、小程序開發(fā)、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)