一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

[原創(chuàng)首發(fā)]Linux防火墻iptables設置基礎

 怡窩館 2014-01-22
原作:lvyanan EMAIL: lvyanan@hotmail.com
2005年11月19日

iptables是針對Linux防火墻 netfilter的管理配置工具。在進行iptables防火墻設置前,必須打開系統(tǒng)內核的IP轉發(fā)功能,使系統(tǒng)成為路由器。在Red Hat中有以下兩種方法實現(xiàn):
1.修改內核變量ip_forward
#echo "1" > /proc/sys/net/ipv4/ip_froward
2.修改腳本/etc/sysconfig/network
將FROWARD_IPV4=false 改為 FROWARD_IPV4=true
一、數(shù)據包流經netfilter防火墻的路徑
1.流入本機數(shù)據包的路徑:
所屬表           mangle         nat                    mangle    nat     filter
網絡數(shù)據包 à PREROUTING à PREROUTING à 路由選擇 à INPUT à INPUT à INPUT à 本地處理進程
2.流出本機數(shù)據包的路徑:
所屬表           mangle    filter                 mangle          nat
本地處理進程 à OUTPUT à OUTPUT à 路由選擇 à POSTROUTING à POSTROUTING à 外部網絡
3.流經本機轉發(fā)的數(shù)據包的路徑:
所屬表      mangle       nat                      mangle    filter      mangle         nat
A端網絡 à PREROUTING à PREROUTING à 路由選擇 à FORWARD à FORWARD à POSTROUTING à POSTROUTING à B端網絡

注:①.路徑上某表鏈規(guī)則匹配數(shù)據包并進行ACCEPT、DROP、REJECT操作時,ACCEPT使數(shù)據包直接到達目的地,DROP和REJECT則當場丟棄數(shù)據包,該數(shù)據包不會在后續(xù)路徑上再出現(xiàn),故會影響其它表的操作。
②.PREROUTING和POSTROUTING鏈只對請求連接的包進行操作,對屬于該連接的后續(xù)包,不予比對規(guī)則,只按已確定的規(guī)則自動進行操作,因此建議不要在此鏈上作過濾操作,否則將漏掉對后續(xù)包的過濾。
二、iptables指令的基本格式:
    <iptables> [-t table] < COMMAND>  [chains] [rule-matcher] [ -j target ]
      <指令>   [指定表] <指定操作命令> [指定鏈]  [指定匹配規(guī)則]  [指定目標動作]
    注:<>括起來的為必設項,[]括起來的為可設項。iptables指令要求嚴格區(qū)分大小寫
三、iptables指令的語法規(guī)則要素:
1、netfilter表(Table)
netfilter的表操作是以-t或--table<table>來指定的,未指定時默認為filte表。共有以下三種表:
      .Filter表 (過濾表)
      .Nat表 (網絡地址轉換表)
      .Mangle表 (數(shù)據包處理表)
2、常用操作命令(Command)
-A 或--append 在所選的鏈尾加入一條或多條規(guī)則。
-D 或--delete 從所選的鏈中刪除一條或多條匹配的規(guī)則。
-R 或--replace 在所選的鏈中替換一條匹配的規(guī)則,需指定規(guī)則中的數(shù)字。
-I 或--insert 按給出的規(guī)則號在所選的鏈中插入一條規(guī)則。
-L 或--list 列出指定鏈的全部規(guī)則,如未指定鏈,則列出所有鏈的全部規(guī)則。
-F 或--flush 清除指定鏈和表中的全部規(guī)則,如未指定鏈,則所有鏈都將被清。
-N 或--new-chain 以給定的名字創(chuàng)建一條新的用戶自定義鏈,不能與已有的鏈同名。
-X 或--delete-chain 刪除指定的用戶自定義鏈,必須保證鏈中的規(guī)則不在使用才能刪除,若未指定鏈,則刪除所有用戶自定義鏈。
-P 或--policy 為內置鏈指定默認規(guī)則(鏈政策)。用戶自定義鏈沒有默認規(guī)則,其默認規(guī)則是規(guī)則鏈中的最后一條規(guī)則,用-L命令時它顯示在第一行。
-E 或--rename-chain 根據用戶給出的名字對指定的自定義鏈進行重命名,該命令不影響Table的結構。
-C 或--check 檢查給定的包是否與指定的規(guī)則相匹配。
-Z 或--zero 將指定鏈中所有規(guī)則的數(shù)據包(PKTS)和字節(jié)(byte)計數(shù)器清零。該計數(shù)器用來計算同一數(shù)據包出現(xiàn)的次數(shù),是過濾阻斷式攻擊不可或缺的工具。
-h 或--help 給出當前命令語法的簡短說明。
3、鏈(Chains)
①.INPUT鏈 處理輸入的規(guī)則鏈。
②.OUTPUT鏈 處理輸出包的規(guī)則鏈。
③.FORWARD鏈 處理轉發(fā)包的規(guī)則鏈。
④.PREROUTING鏈 對到達且未經路由判斷之前的包進行處理的規(guī)則鏈。
⑤.POSTROUTING鏈 對發(fā)出且經過路由判斷之后的包進行處理的規(guī)則鏈。
⑥.用戶自定義鏈 是由filter表內置鏈來調用的,它是針對調用鏈獲取的數(shù)據包進行處理的規(guī)則鏈。
注:①.Filter表有INPUT、OUTPUT、FORWARD和自定義四種鏈形式。
    ②.Nat表有OUTPUT、PREROUTING、POSTROUTING三種鏈形式。
    ③.Mangle表有INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING五種鏈形式。
4、常用匹配規(guī)則(rule Matcher)
-c或--set-counters 重新設置規(guī)則的計數(shù)器,可指定PKTS和BYTES選項來設置計數(shù)器計數(shù)規(guī)則。
-s 或--source [!] address[/mask] 指定匹配規(guī)則的源主機名稱、源IP地址或源IP地址范圍。
--sport 或--source-port [!] port[:port] 指定匹配規(guī)則的源端口或源端口范圍,可用端口號,也可用/etc/services文件中的名字, 端口范圍格式xxx:yyy。
-d 或--destination [!]address[/mask] 指定匹配規(guī)則的目的地址或目的地址范圍。
--dport 或--destination-port [!] port[:port] 指定匹配規(guī)則的目的端口或目的端口范圍,可用端口號,也可用/etc/services文件中的名字, 端口范圍格式xxx:yyy。
-i 或--in-interface [!]interface name[+] 指定匹配規(guī)則的對內網絡接口名,默認則符合所有接口,可制定暫未工作的接口,待其工作后才起作用,該選項只對INPUT、FROWARD和PREROUTING鏈是合法的。
-o 或—out-interface[!]interface name[+] 指定匹配規(guī)則的對外網絡接口名,默認則符合所有接口,可制定暫未工作的接口,待其工作后才起作用,該選項只對OUTPUT、FROWARD和POSTROUTING鏈是合法的。
-j 或--jump 指定規(guī)則的目標即動作或跳轉,如未指定則此規(guī)則無任何效果。
-p 或--protocol [!] protocol 指定匹配規(guī)則的通訊協(xié)議,如:tcp、udp、icmp、all,如未指定則匹配所有通訊協(xié)議。
--icmp-type [!]typename 指定匹配規(guī)則的ICMP消息類型,選項后需有一個icmp名稱類型、數(shù)字類型(如3)、或一對用/號分隔的數(shù)字類型和編碼(如3/3),可用以下命令查看有效的icmp類型名表: iptables -p icmp -h
-f  
規(guī)則應用于IP數(shù)據包第二分片以后的分片。

--tcp-option 這個選項后需接一個數(shù)字,用來匹配tcp選項等于該數(shù)字的數(shù)據包。如果需要檢查tcp選項,那些tcp表頭部完整的數(shù)據包就會被自動刪除。
--tcp-flags 此選項后需接2個參數(shù),以對TCP標志進行篩選。第一個參數(shù)表示屏蔽(MASK),它可用來指定數(shù)據包中需要檢查的TCP標志,而第二個參數(shù)表示需要設置的標準,可用的標志包括:SYN、ACK、FIN、RST、URG、PSH、ALL和NONE等,如果指定多個標志,則每個標志間需以逗號分隔。以下范例表示所有標志都要檢查,但只有SYN和ACK被設置。
例:iptables –A INPUT –protocol tcp –tcp-flags ALL SYN,ACK –j DENY
-l 在系統(tǒng)日志/var/log/messages中記錄與該規(guī)則匹配的數(shù)據包。
-v 詳細輸出。
-n 當顯示時,不對IP地址執(zhí)行DNS查找。
[!] -y -y表明tcp握手中的連接請求標志位SYN;!-y表示對該請求的響應。
[!]-syn 指定僅僅匹配設置了SYN位,清除了ACK、FIN位的TCP包,該參數(shù)僅針對TCP協(xié)議類型使用。
-m -state 標記數(shù)據包。
注:“!”為邏輯非;接口名后跟“+”表示所有以此接口名開頭的接口都會被匹配。
附:匹配條件擴展:
 TCP-----匹配源端口,目的端口,及tcp標記的任意組合,tcp選項等。
 UPD-----匹配源端口和目的端口
 ICMP----匹配ICMP類型
 MAC-----匹配接收到的數(shù)據的mac地址
 MARK----匹配nfmark
  OWNE----(僅僅應用于本地產生的數(shù)據包)來匹配用戶ID,組ID,進程ID及會話ID
   TOS——匹配IP頭的TOS字段的值。
  LIMIT---匹配特定時間段內的數(shù)據包。這個擴展匹配對于限制dos攻擊數(shù)據流非常有用。
  STATE---匹配特定狀態(tài)下的數(shù)據包(由連接跟蹤子系統(tǒng)來決定狀態(tài)),可能的狀態(tài)包括:
  INVALID---不匹配于任何連接的數(shù)據包
  ESTABLISHED--- 屬于某個已經建立的連接的數(shù)據包
  NEW--- 請求建立連接的數(shù)據包
   RELATED---屬于某個已建立連接產生的新連接的數(shù)據包,例如一個ICMP錯誤消息或ftp數(shù)據連接
5、目標動作(Target)
當規(guī)則匹配一個包時,要執(zhí)行的目標動作以-j參數(shù)標識。
①.Filter表的目標動作:
ACCEPT 允許數(shù)據包通過。
DROP 丟棄數(shù)據包。
②.Nat表的目標動作:
SNAT 修改數(shù)據包的源地址。
MASQUERADE 修改數(shù)據包的源地址,只用于動態(tài)分配IP地址的情況。
DNAT 修改數(shù)據包的目標地址。
REDIRECT 將包重定向到進入系統(tǒng)時網絡接口的IP地址,目標端口改為指定端口。
③.Mangle表的目標動作:
TTL
TOS 用來設置IP表頭中8位長度的TOS字段的值,此選項只在使用Mangle Tables時才有效。
MARK 對數(shù)據包進行標記,供其它規(guī)則或數(shù)據包處理程序使用,此選項只在Mangle表中使用。
④.擴展的目標動作:
REJECT 丟棄數(shù)據包的同時返回給發(fā)送者一個可配置的錯誤信息。
LOG 將匹配的數(shù)據包信息,傳遞給syslog()進行記錄。
ULOG 將匹配的數(shù)據包信息,使用用戶空間的log進程進行記錄。
MIRROR 互換源和目的地址以后重新傳輸該數(shù)據包。
TOS 改寫包的TOS值。
QUEUE 表示把這個包重導入本機的隊列中。
RETURN 表示跳離這條鏈的匹配,如果是用戶自定義鏈,就會返回原鏈的下一個規(guī)則處繼續(xù)檢查,如果是內置鏈,那會參考政策來處理數(shù)據包。
注:要使用擴展的目標動作,必須在內核中激活相應選項或裝載相應內核模塊。
四、iptables規(guī)則集的保存、恢復和啟動
1、保存與恢復
用iptables指令在內存中逐條建立起來的規(guī)則集,經測試通過后,可用iptables-save命令保存,其中/etc/sysconfig/iptables是iptables守護進程調用的默認規(guī)則集文件。
保存規(guī)則集命令:
#/sbin/iptables-save > /etc/sysconfig/iptables
恢復規(guī)則集命令:
#/sbin/iptables-restore < /etc/sysconfig/iptables
2、iptables規(guī)則集腳本的啟動
①.默認腳本的啟動
Red Hat iptables的啟動腳本文件/etc/rc.d/init.d/iptables在每次啟動時都要使用/etc/sysconfig/iptables提供的規(guī)則進行規(guī)則恢復,并可以使用如下命令保存規(guī)則:
#service iptables save
②.自定義腳本的啟動
用戶可以在自定義腳本中直接用iptables命令編寫一個規(guī)則集,并在啟動時執(zhí)行這個腳本。設用戶自定義腳本文件名為/etc/fw/rules,則可以在啟動腳本/etc/rc.d/rc.local中加入代碼:if[-x/etc/fw/rules];then /etc/fw/rules;fi;即可在每次啟動時執(zhí)行該腳本。
注:如果使用此種方式,建議使用ntsysv命令關閉系統(tǒng)的iptables守護進程。

 

沒人頂就只好自己躺沙發(fā)了,一些朋友想學習Linux系統(tǒng),而一旦開始學習,馬上會遇到一個難題,即如何面對Linux防火墻的問題,網上一般是教你如何去回避它,將其功能關閉,我以為這樣做是不對的,Linux系統(tǒng)的網絡功能是最強的,這是它的長處,而其防火墻功能又是網絡功能的保障和擴展,掌握了它我們可以很容易的將一臺Linux主機設置為一臺網關、路由器以及防火墻,性能決不遜于專用防火墻和專用路由器,特別是其針對多網卡的靈活配置,是Windows系統(tǒng)望塵莫及的,我希望有志于從事網絡方面工作的朋友,花一些時間去研究它,一旦有所掌握,對你網絡技術的提高,必將產生突飛猛進的推動作用。我學習Linux就是從研究其防火墻技術而真正開始的,用了半年時間搜集資料和研究實驗,終于掌握了該技術,本帖是我學習的精華,網上很難找到,此地是原創(chuàng)首發(fā),居然無人識貨,悲哀!太悲哀了!我斷定此文必將是墻內開花墻外香!




    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    高清不卡视频在线观看| 亚洲一区二区三区熟女少妇| 日韩人妻少妇一区二区| 国产免费黄片一区二区| 亚洲伊人久久精品国产| 在线视频免费看你懂的| 日本黄色高清视频久久| 久久精品国产第一区二区三区| 亚洲专区中文字幕在线| 99国产高清不卡视频| 91蜜臀精品一区二区三区| 国产真人无遮挡免费视频一区| 国产精品免费视频久久| 国产熟女一区二区三区四区| 午夜成年人黄片免费观看| 99免费人成看国产片| 午夜精品福利视频观看| 国产香蕉国产精品偷在线观看| 日本午夜乱色视频在线观看| 欧美精品二区中文乱码字幕高清| 伊人网免费在线观看高清版 | 国产精品欧美一区二区三区不卡| 亚洲一区二区三区四区| 久久精品亚洲情色欧美| 女人高潮被爽到呻吟在线观看| 国产又大又硬又粗又湿| 久久成人国产欧美精品一区二区| 国产精品一区二区三区黄色片| 免费久久一级欧美特大黄孕妇| 亚洲精品偷拍一区二区三区| 国产日韩熟女中文字幕| 亚洲国产精品肉丝袜久久| 免费性欧美重口味黄色| 91欧美日韩中在线视频| 欧美亚洲综合另类色妞| 亚洲av一区二区三区精品| 精品少妇一区二区视频| 日本高清中文精品在线不卡| 加勒比人妻精品一区二区| 日韩日韩日韩日韩在线| 国产成人精品一区二三区在线观看|