開發語言:
服務器端:在內核中實現,無守護程序
客戶端:一般是cli界面下的iptables命令
相關包:iptables-1.4.7-11.el6.x86_64
Netfilter采用模塊化設計,具有良好的可擴充性。其重要工具模塊IPTables連接到Netfilter的架構中,并允許使用者對數據報進行過濾、地址轉換、處理等操作,Netfilter提供了一個框架,將對網絡代碼的直接干涉降到最低,并允許用規定的接口將其他包處理代碼以模塊的形式添加到內核中,具有極強的靈活性。
根據工作的層次的不同來劃分,常見的防火墻工作在OSI第三層,即網絡層防火墻,工作在OSI第七層的稱為應用層防火墻,或者代理服務器(代理網關)。網絡層防火墻又稱包過濾防火墻,在網絡層對數據包進行選擇,選擇的依據是系統內設置的過濾邏輯,被稱為訪問控制列表(ACL),通過檢查數據流中每個數據的源地址,目的地址,所用端口號和協議狀態等因素,來確定是否允許該數據包通過。特點:對用戶來說透明,處理速度快且易于維護。但是一旦黑客突破防火墻,就可以輕易地偽造數據包的源地址,目的地址和IP的端口號,即“IP地址偽造”。代理服務型防火墻(PRoxy Service)將所有跨越防火墻的網絡通信鏈路分為兩段。當代理服務器接收到用戶對某個站點的訪問請求后會檢查該請求是否符合控制規則。如果規則允許,則代理服務器會替用戶去那個站點取回所需要的信息,轉發給用戶。內外網用戶的訪問都是通過代理服務器上的“鏈接”來實現的,從而起到了隔離防火墻內外計算機系統的作用。特點:在應用層對數據進行檢查,比較安全。但是會增加防火墻的負載。
包過濾防火墻將對每一個接收到的包做出允許或拒絕的決定。具體地講,它針對每一個數據包的包頭,按照包過濾規則進行判定,與規則相匹配的包依據路由信息繼續轉發,否則就丟棄。包過濾是在IP層實現的,包過濾根據數據包的源IP地址、目的IP地址、協議類型(TCP包、UDP包、ICMP包)、源端口、目的端口等包頭信息及數據包傳輸方向等信息來判斷是否允許數據包通過。包過濾也包括與服務相關的過濾,這是指基于特定的服務進行包過濾,由于絕大多數服務的監聽都駐留在特定TCP/UDP端口,因此,為阻斷所有進入特定服務的鏈接,防火墻只需將所有包含特定TCP/UDP目的端口的包丟棄即可。現實生產環境中所使用的防火墻一般都是二者結合體。即先檢查網絡數據,通過之后再送到應用層去檢查。
netfilter/iptables IP 信息包過濾系統是一種功能強大的工具,可用于添加、編輯和除去規則,這些規則是在做信息包過濾決定時,防火墻所遵循和組成的規則。這些規則存儲在專用的信息包過濾表中,而這些表集成在 Linux 內核中。在信息包過濾表中,規則被分組放在我們所謂的鏈(chain)中。雖然 netfilter/iptables IP 信息包過濾系統被稱為單個實體,但它實際上由兩個組件 netfilter 和 iptables 組成。netfilter 組件也稱為內核空間(kernelspace),是內核的一部分,由一些信息包過濾表組成,這些表包含內核用來控制信息包過濾處理的規則集。iptables 組件是一種工具,也稱為用戶空間(userspace),它使插入、修改和除去信息包過濾表中的規則變得容易。iptables包含4個表,5個鏈。其中表是按照對數據包的操作區分的,鏈是按照不同的Hook點來區分的,表和鏈實際上是netfilter的兩個維度。
四種處理機制(表):過濾(filter)主要用于過濾數據包,該表根據管理員預定義的一組規則過濾符合條件的數據包。filter表是iptables默認的表。INPUT:主要與想要進入我們 Linux 本機的數據包有關;OUTPUT:主要與我們 Linux 本機所要送出的數據包有關;FORWARD:與 Linux 本機比較沒有關系,他可以傳遞數據包到后臺的計算機中,與下列 nat table 相關性較高。地址轉換(NAT)主要用于網絡地址轉換,該表可實現一對一。一對多,多對多等工作,iptables就是使用該表實現共享上網功能。PREROUTING:在進行路由判斷之前所要進行的規則(DNAT/REDIRECT)POSTROUTING:在進行路由判斷之后所要進行的規則(SNAT/MASQUERADE)OUTPUT:與發送出去的數據包包有關包重構(mangle)對指定的數據包進行修改,例如更改TTL和TOS等,實際中很少使用。RAW 很少使用
一條鏈可以包含一條或者數條規則。nat:prerouting,postrouting,outputmangle:Input ,Output,Forward,prerouting,postrouting。RAW:prerouting,output
4個表:filter,nat,mangle,raw,默認表是filter(沒有指定表的時候就是filter表)。表的處理優先級:raw>mangle>nat>filter。filter:一般的過濾功能nat:用于nat功能(端口映射,地址映射等)mangle:用于對特定數據包的修改raw:有限級最高,設置raw時一般是為了不再讓iptables做數據包的鏈接跟蹤處理,提高性能5個鏈:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING。PREROUTING:數據包進入路由表之前INPUT:通過路由表后目的地為本機FORWARDING:通過路由表后,目的地不為本機OUTPUT:由本機產生,向外轉發POSTROUTIONG:發送到網卡接口之前。如下圖:
-j target drop,accept,reject
-Z:zero 清空計數器,iptables中每條規則默認有兩個計數器,用于記錄本條規則所匹配到的數據包的個數和本條規則所匹配到的數據包的總大小支持-vv -vvv格式,v越多,信息越詳細
有狀態的防火墻能夠指定并記住為發送或接收信息包所建立的連接的狀態。防火墻可以從信息包的連接跟蹤狀態獲得該信息。在決定新的信息包過濾時,防火墻所使用的這些狀態信息可以增加其效率和速度。這里有四種有效狀態,名稱分別為 ESTABLISHED 、 INVALID 、 NEW 和 RELATED。
例如:comment (備注匹配),string(字符串匹配,可以用做內容過濾),iprang(ip范圍匹配),time(時間匹配),ipp2p(點對點匹配),connlimit(同時連接個數匹配),Nth(第n個包匹配),geoip(根據國家地區匹配). quota(配額匹配)-m state --state established,invalid,new,related-m string-m connlimit --connlimit-above,-m iprange --src-range,-m ipp2p-m qutoa
TARGET EXTENSIONSLOG--log-level level記錄級別(數字或參看 syslog.conf⑸)。--log-prefix prefix在紀錄信息前加上特定的前綴:最多14個字母長,用來和記錄中其他信息區別。MARK--set-mark mark用來設置包的netfilter標記值。只適用于mangle表。REJECT作為對匹配的包的響應,返回一個錯誤的包:其他情況下和DROP相同。TOS用來設置IP包的首部八位tos。只能用于mangle表。SNAT--to-source [-][:port-port]這個目標只適用于nat表的POSTROUTING鏈。它規定修改包的源地址(此連接以后所有的包都會被影響),停止對規則的檢查,
作為主機使用,保護本機
作為網關使用,保護網絡
mangle表應用
這次講解的是iptables之mangle表應用實現策略路由。前面的文章已經講解了:mangle表主要用于修改數據包的TOS(Type Of Service,服務類型)、TTL(Time To Live,生存周期)指以及為數據包設置Mark標記,以實現Qos(Quality Of Service,服務質量)調整以及策略路由等應用,由于需要相應的路由設備支持,因此應用并不廣泛。mangle 表對應的內核模塊為 iptable_mangle。修改IP包頭的TTL值偽裝系統版本;修改IP包頭的DSCP值或對特定的數據包設置QOS;不同業務的傳送優先級、帶寬使用率都可以設置。下面就來案例說明一下實用且常用的用途吧:
案例1、iptables網關服務器三塊網卡:eth0(網通ip:10.0.0.1)、eth1(電信ip:20.0.0.1);eth2:網關192.168.10.1。要求:公司內網要求192.168.10.1---100以內的ip使用 10.0.0.1 網關上網(網通),其他IP使用 20.0.0.1 (電信)上網;iptables網關服務器配置如下: ip route add default gw 20.0.0.1ip route add table 10 via 10.0.0.1 dev eth0#eth0 是10.0.0.1所在的網卡,10 是路由表的編號ip rule add fwmark 10 table 10#fwmark 10 是標記,table 10 是路由表10。 標記了 10 的數據使用table10 路由表iptables -A PREROUTING -t mangle -i eth2 -s 192.168.10.1 - 192.168.10.100 -j MARK --set-mark 10#使用iptables給相應的數據打上標記 mangle應用順序要高于nat、filter哈。
案例2、iptables網關服務器三塊網卡:eth0(網通ip:10.0.0.1)、eth1(電信ip:20.0.0.1);eth2:網關192.168.10.1。要求:公司內網要求員工訪問外面的網站服務;使用 10.0.0.1 網關上網(網通),其他IP使用 20.0.0.1 (電信)上網;iptables -t mangle -A PREROUTING -i eth2 -p tcp --dport 80 -j MARK --set-mark 20ip route add default gw 20.0.0.1ip route add table 20 via 10.0.0.1 dev eth0ip rule add fwmark 20 table 20
SNAT
有兩臺機器,其中一臺可以訪問外網(hostA),有兩個網卡,地址分別為202.102.32.156(eth0),192.168.222.1(eth1)。其中202.102.32.156可以上外網。另外一臺機器地址為192.168.222.2(hostB),是個內網地址,但是可以與192.168.222.1連通,把其網關設置成了192.168.222.1。這樣設置后,并不能訪問外網,必須在第一臺機器上設置轉發規則才行。iptables -P FORWARD DROPiptables -A FORWARD -s 192.168.222.0/24 -j ACCEPTiptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPTiptables -t nat -A POSTROUTING -o eth0 -s 192.168.222.0/24 -j SNAT --to 202.102.32.156
這個流程需要說明的是,如果這是一個新的連接跟蹤,那么hook操作會操作NAT表,尋找對應的規則進行處理,如果這個連接不是新的連接,即連接跟蹤已經記錄并且NAT已經更改過連接的源地址,那么hook操作會直接調用nf_nat_packet來修改報文的目的地址,這個不同于DNAT,它都是在SNAT中完成。也就是說netfilter中所有的NAT操作都可以通過一次NAT設置完成,也就是說NAT會自動幫我們判斷另一個方向的報文。進一步分析nf_nat_rule_find的工作流程如下:
我們假設應用層的iptables有如下的NAT設置:iptables -t nat -A POSTROUTING -o eth0 -s192.168.0.0/24 -j SNAT -to 11.11.11.11這條命令的意義在于將私用ip段:192.168.0.0/24,封包的源地址都改為公用ip:11.11.11.11,這個IP為NAT主機的ip。現在我們假設有一臺私用ip為:192.168.18.135的機器用臨時端口45678來訪問218.247.215.238的80端口。則連接跟蹤建立如下的連接ORIGINAL: 192.168.18.135.45678->218.247.215.238.80REPLY: 218.247.215.238.80->192.168.18.135.45678設定了SNAT后,我在POSTROUTING進入NAT的hook操作,并用SNAT的target做相應的處理,進入6.1流程的nf_nat_fn后,我們發現這個連接是一個新的連接,則遍歷NAT表,發現設置了如上描述的規則,并且此私用IP符合我們的設定的私用ip范圍,故對此報文做SNAT處理,在流程圖6.2的nf_nat_setup_info中,我們調用get_unique_tuple獲得一個唯一的tuple(符合上面iptables所設定的),我們通過find_best_ips_proto在指定的ip范圍內尋找合適的ip,本例中只使用了唯一的公用IP:11.11.11.11,則合適的IP就為這個。在協議相關的成員函數unique_tuple中我們找到一個端口,同時判斷新的tuple是否在連接跟中存在,如果存在,在換另一個端口,這樣一個新的tuple被建立起來了他為:REPLY: 218.247.215.238.80-11.11.11.11.56789(這個端口為NAT主機上的端口)同時我們更改連接跟蹤的REPLY tuple為如上的tuple,這樣連接跟蹤建立的新連接如下:ORIGINAL: 192.168.18.135.45678->218.247.215.238.80REPLY: 218.247.215.238.80-11.11.11.11.56789這個封包發送到主機218.247.215.238后,218.247.215.238后發送一個確認的數據包,連接為:218.247.215.238.80-11.11.11.11.56789NAT主機11.11.11.11收到這個封包后,連接跟蹤發現這個連接已經被記錄,不做新的記錄,同時設定ctinfo為:IP_CT_RELATED+IP_CT_IS_REPLY,NAT發現這個數據包的信息為這個時,直接調用nf_nat_packet,而不是去查NAT表所對應的規則,nf_nat_packet中會有連接的相反方向,即本例中為REPLY封包,相反為ORINGAL,修改相應的報文。即將數據包中的11.11.11.11.56789再次替換成192.168.18.135.45678,NAT主機將這個數據包轉發給192.168.18.135,這就完成了一次SNAT操作。
用iptables實現單網卡做網關上網?
http://www.360doc.com/content/10/0720/22/25127_40415401.shtml 很好的樣例,先畫拓撲圖,再有明確的需求描述
http://lyp0909.blog.51cto.com/508999/509408
http://blog.chinaunix.net/uid-22590270-id-3245147.htmlhttp://blog.chinaunix.net/uid-20775448-id-3504538.html
[root@localhost kernel]# pwd/lib/modules/2.6.32-431.el6.x86_64/kernel[root@localhost ip_tables]# pwd/sys/module/ip_tables[root@Firewall ~]# lsmod|grep "^ip"iptable_mangle 6784 1ipt_REDIRECT 5760 3ipt_MASQUERADE 6656 5iptable_nat 8964 1ipt_REJECT 6912 0ipv6 216820 28iptable_filter 6656 1ip_tables 14224 3 iptable_mangle,iptable_nat,iptable_filter[root@Firewall ~]# lsmod|grep "^iptable"iptable_mangle 6784 1iptable_nat 8964 1iptable_filter 6656 1連接跟蹤conntrack有些特殊,它是NAT模塊和狀態防火墻的功能基礎conntrack模塊連接跟蹤模塊是NAT的基礎,但作為一個單獨的模塊實現。它用于對包過濾功能的一個擴展,管理單個連接(特別是TCP連接),并負責為現有的連接分配輸入、輸出和轉發IP數據報,從而基于連接跟蹤來實現一個“基于狀態”的防火墻。當連接跟蹤模塊注冊一個連接建立包之后,將生成一個新的連接記錄。此后,所有屬于此連接的數據報都被唯一地分配給這個連接。如果一段時間內沒有流量而超時,連接將被刪除,然后其他需要使用連接跟蹤的模塊就可以重新使用這個連接所釋放的資源了。 NAT模塊網絡地址轉換的機制一般用于處理IP地址轉換,在Netfilter中,可以支持多種NAT類型,而其實現的基礎是連接跟蹤。 NAT可以分為SNAT和DNAT,即源NAT和目的NAT,在Netfilter中分別基于以下HOOK: NF_IP_PRE_ROUTING:可以在這里定義DNAT的規則,因為路由器進行路由時只檢查數據報的目的IP地址,所以為了使數據報得以正確路由,我們必須在路由之前就進行DNAT NF_IP_POST_ROUTING:可以在這里定義SNAT的規則,系統在決定了數據報的路由以后在執行該HOOK上的規則 NF_IP_LOCAL_OUT:定義對本地產生的數據報的DNAT規則同時,MASQUERADE(偽裝)是SNAT的一種特例,它與SNAT幾乎一樣,只有一點不同:如果連接斷開,所有的連接跟蹤信息將被丟棄,而去使用重新連接以后的IP地址進行IP偽裝;而REDIRECT(重定向)是DNAT的一種特例,這時候就相當于將符合條件的數據報的目的IP地址改為數據報進入系統時的網絡接口的IP地址數據報修改模塊--mangle表mangle這個詞的原意是撕裂、破壞,這里所謂“packet mangling”是指對packet的一些傳輸特性進行修改。mangle表被用來真正地對數據報進行修改,它可以在所有的5個HOOK上進行操作。其它高級功能模塊 Netfilter中還有一些其它的高級功能模塊,基本是為了用戶操作方便的,沒有對它們進行分析,如: REJECT,丟棄包并通知包的發送者,同時返回給發送者一個可配置的ICMP錯誤信息,由ipt_REJECT.o完成 MIRROR,互換源和目的地址以后并重新發送,由ipt_MIRROR.o完成 LOG, 將匹配的數據報傳遞給系統的syslog()進行記錄,由ipt_LOG.o完成 ULOG,Userspace logging,將數據報排隊轉發到用戶空間中,將匹配的數據適用用戶空間的log進程進行記錄,由ip_ULOG.o完成。這是Netfilter的一個關鍵技術,可以使用戶進程可以進行復雜的數據報操作,從而減輕內核空間中的復雜度 Queuing,這是上面ULOG技術的基礎,由ip_queue.o完成,提供可靠的異步包處理以及性能兩號的libipq庫來進行用戶空間數據報操作的開發。 等等……
啟動iptables日志一、配置syslogd的配置文件/etc/syslog.conf在文件syslog.conf里添加如下內容kern.debug /var/log/iptables用的日志源是/proc/kmsg,由它產生
iptables 內就是只要是符合就進行某動作,所以您也只是需要插入一個 rule 讓流通的封包 jump 到 LOG or ULOG 這些 target 即可. 像是:iptables -A FORWARD -m state --state NEW -j LOG 這樣可以記錄nat的日志到指定的文件
iptables -nvL --line-number -t nat
iptables-save >aa 保存規則
iptables-restore <aa 恢復規則
[root@iptables ~]# iptables -L iptable_filter模塊Chain INPUT (policy ACCEPT)target prot opt source destinationChain FORWARD (policy ACCEPT)target prot opt source destinationChain OUTPUT (policy ACCEPT)target prot opt source destination[root@iptables ~]# iptables -L -t mangle iptable_mangle模塊Chain PREROUTING (policy ACCEPT)target prot opt source destinationChain INPUT (policy ACCEPT)target prot opt source destinationChain FORWARD (policy ACCEPT)target prot opt source destinationChain OUTPUT (policy ACCEPT)target prot opt source destinationChain POSTROUTING (policy ACCEPT)target prot opt source destination[root@iptables ~]# iptables -L -t nat iptable_nat模塊Chain PREROUTING (policy ACCEPT)target prot opt source destinationChain POSTROUTING (policy ACCEPT)target prot opt source destinationSNAT all -- 192.168.3.0/24 anywhere to:172.16.1.92Chain OUTPUT (policy ACCEPT)target prot opt source destination[root@iptables log]# iptables -L -t nat -n -v 加參數-v列出詳細信息Chain PREROUTING (policy ACCEPT 166 packets, 11758 bytes)pkts bytes target prot opt in out source destinationChain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)pkts bytes target prot opt in out source destination 2 155 SNAT all -- * eth0 192.168.3.0/24 0.0.0.0/0 to:172.16.1.92Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)pkts bytes target prot opt in out source destination
添加規則有兩個參數:-A和-I。其中-A是添加到規則的末尾;-I可以插入到指定位置,沒有指定位置的話默認插入到規則的首部[root@iptables log]# iptables -I INPUT 3 -s 192.168.1.3 -j DROP 插入一條規則到第三行[root@iptables log]# iptables -A INPUT -p icmp --icmp-type echo-request -j DROP 添加一條規則到尾部[root@iptables log]# iptables -L -n --line-numbers 查看規則行號,下一步準備刪除Chain INPUT (policy ACCEPT)num target prot opt source destination1 DROP icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 8Chain FORWARD (policy ACCEPT)num target prot opt source destinationChain OUTPUT (policy ACCEPT)num target prot opt source destination[root@iptables log]# iptables -R INPUT 3 -j ACCEPT 修改第三行為接受[root@iptables log]# iptables -D INPUT -s 192.168.1.5 -j DROP 刪除有兩種方法,刪除規則號與規則,規則有時太長,就刪號,簡單方便[root@iptables log]# iptables -D INPUT 2[root@iptables log]# iptables -D INPUT 1 這樣便可以刪除規則
[root@iptables log]# iptables-save 臨時保存生效# Generated by iptables-save v1.4.7 on Wed Sep 24 02:00:26 2014*nat:PREROUTING ACCEPT [1284:101615]:POSTROUTING ACCEPT [0:0]:OUTPUT ACCEPT [0:0]-A POSTROUTING -s 192.168.3.0/24 -o eth0 -j SNAT --to-source 172.16.1.92COMMIT# Completed on Wed Sep 24 02:00:26 2014# Generated by iptables-save v1.4.7 on Wed Sep 24 02:00:26 2014*filter:INPUT ACCEPT [798:65414]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [596:57240]COMMIT# Completed on Wed Sep 24 02:00:26 2014[root@iptables log]# service iptables save 保存到配置文件中永久生效iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ][root@iptables log]# vi /etc/sysconfig/iptables
先清空,再添加規則,以免干擾# iptables -F# iptables -X# iptables -Z# iptables -t nat -F# iptables -t nat -X# iptables -t mangle -F# iptables -t mangle -X添加默認策略 ACCEPT或DROP 這兩個的區別是accept表明除非明確禁止的,其它一切皆可訪問。drop表明除非明確允許的,其它一切皆不能訪問。# iptables -P INPUT ACCEPT# iptables -P OUTPUT ACCEPT# iptables -P FORWARD ACCEPT 此策略還是默認accept的好,然后再drop,如果默認是drop,再accept,很多都不成功,除非對應用或協議非常明確,才可以Type the following command to block ICMP ping requests:# iptables -A INPUT -p icmp --icmp-type echo-request -j DROP 阻止所有接口# iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j DROP 阻止特定接口# iptables -A INPUT -s 192.168.1.0/24 -p icmp --icmp-type echo-request -j ACCEPT 阻止特定IP或網段# iptables -L -n --line-number 查看# iptables -D INPUT 1 刪除The following only accepts limited type of ICMP requests:### ** assumed that default INPUT policy set to DROP ** ### 只允許從防火墻上往外pingiptables -A INPUT -p icmp --icmp-type echo-reply|0 -j ACCEPTiptables -A INPUT -p icmp --icmp-type destination-unreachable|3 -j ACCEPTiptables -A INPUT -p icmp --icmp-type time-exceeded|11 -j ACCEPT## ** all our server to respond to pings ** ## 允許防火墻響應外部pingiptables -A INPUT -p icmp --icmp-type echo-request|8 -j ACCEPT# iptables -A INPUT -m mac --mac-source 00:0F:EA:91:04:08 -j DROP 阻止此mac的所有應用,大小寫無所謂,針對直連網段,因為mac不能跨網段# iptables -A INPUT -p tcp --destination-port 22 -m mac --mac-source 00:0F:EA:91:04:07 -j ACCEPT 只允許此mac訪問22口# iptables -A INPUT -p icmp --icmp-type 8 -m mac --mac-source 00:0F:EA:91:04:07 -j ACCEPT 只允許此macping防火墻# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j LOG --log-prefix "int: " 記錄從內部某個網段的所有日志# iptables -A INPUT -i eth0 -s 10.0.0.0/8 -j LOG --log-prefix "ext: " 記錄從外部某個網段的所有日志 # grep --color 'IP SPOOF' /var/log/iptables 給過濾的關鍵字上色# iptables -P FORWARD ACCEPT 默認轉發允許# iptables -A FORWARD -j LOG --log-prefix "beta: " 并記錄進出防火墻的日志# iptables -A FORWARD -d www.cnbeta.com -j DROP 再阻止內網用戶訪問此網站,可以針對域名與ip,但是像迅雷這種p2p,這兩個效果不理想,應該用協議去禁用。# grep --color 'beta' /var/log/iptables# iptables -A INPUT -m state --state NEW,ESTABLISHED -j ACCEPT# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 7000:7010 -j ACCEPT# iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j REJECT# iptables -A INPUT -p tcp --destination-port 80 -m iprange --src-range 192.168.1.100-192.168.1.200 -j ACCEPT## nat example ### iptables -t nat -A POSTROUTING -j SNAT --to-source 192.168.1.20-192.168.1.25# iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -o eth0 -j SNAT --to-source 172.16.1.92
新聞熱點
疑難解答