国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 網絡通信 > 正文

使用iptables設定使用NAT分享網絡頻寬

2019-11-04 20:10:29
字體:
來源:轉載
供稿:網友

  作者: kenduest (小州)
  linux 上使用 ip-Masquerade 所謂的 IP ?裝以便于達成該功能。
  
  Linux 上的 IPMASQ 因為 kernel 一些核心功能有調整過,所以相關的設定工具
  因為不同的核心版本所以不同.
  
  kernel 2.0.x 時代,是使用 ipfwadm 程序。(這個說法不算是完全正確)
  
  kernel 2.1.x/2.2.x 時代,則是使用 ipchains 程序
  
  kernel 2.3.x/2.4.x 時代,使用 netfilter 過濾機制, 是使用
  iptables 程序。
  
  演進來看,目前 kernel 2.4 配合使用 netfilter 核心過濾機制,
  可以達到的功能相當棒.... 那 netfilter 提供那些機制呢?
  比方:
  
  1. 傳統 ipchains 的任何功能(基本來源與目的封包過濾、導向、偽裝)
  2. 提供 Source NAT 與 Destination NAT 的功能
  3. 可以針對特定使用者、群組、PID 等限制網絡連結的過濾存取
  4. 可以設定封包在 Routing Table 進出前時先預先處理
  5. 提供可以讓 UserSpace 的程序處理 filter 部分。
  6. 可以針對外面自動建立、與現有聯機有關這類聯機過濾處理...
  7. 可以針對 Mac 卡號處理。
  
  ipmasq 的文件,那邊可以閱讀呢? linux 本身提供的 howto 很足夠了...
  
  使用 ipfwadm/ipchains 等程序的 kernel 環境,可以參考:
  
  http://www.linux.org.tw/CLDP/IP-Masquerade-HOWTO.Html
  
  不過該版文件中文翻譯已經太久沒有更新了,建議找原文的
  IP-Masquerade-HOWTO 文件。那邊找呢?可以上這里找找:
  
  http://www.linuxdoc.org
  
  里面提到了包含 port forward 等相關重要的信息。比方
  ipmasqadm 等程序的使用。
  
  若是您目前使用 kernel 2.3/2.4,可以參考這給篇中譯文:
  
  http://www.linux.org.tw/CLDP/NAT-HOWTO.html
  
  http://www.linux.org.tw/CLDP/Packet...ring-HOWTO.html
  
  相同的,原文部份,上 http://www.linuxdoc.org 也有喔..
  
  當然,若是您的 linux dist 版本是最近的,那系統安裝好的
  HOWTO 文件應該也可以找到..
  
  ok.. 若是您目前要使用 nat 功能的話,首先就是確定您的核心是支持
  linux firewall 與 ip masquerade 功能... 不過目前許多 Linux
  Distribution 都已經把 IP Masquerade 支持編入到 kernel 內了,
  所以重編 kernel 的部份可以略過....
  
  當然啦,目前 kernel 2.4.0 正式 release 出沒有多久,所以若是
  您打算使用 netfilter 提供的一些先進的機制,那您需要先更新
  核心到 2.4,編譯核心時要選擇把 netfilter 提供的一些功能打開..
  (可以選擇編入核心 或者是編譯成為 module)
  
  這里環境,假設:
  
  對外 internet 連結的 ip 是: 210.1.1.1
  對內的部份,使用 192.168.1.1
  
  當然,您需要兩張網絡卡,一張就是設定 210.1.1.1,另外一張
  就是設定 192.168.1.1 (netmask: 255.255.255.0)
  
  另外提到,有人會說到也許可以使用 ip aliases 達到一張網絡卡
  就可以有兩個 ip .. 當然,這是可行的.. 不過弟不建議使用在
  nat 的環境下.. 一者是因為一般 nat 多半充當 firewall,而
  若是使用 ip aliases 后對外與對內的封包都跑在同一個 interface
  上,那就失去封包過濾功能了... 而不同區段的封包跑在一起,網絡
  效能也是會變差的...
  
  OK.. 目前要激活 nat/ipmasq 功能的話,首先就是只要 Linux 主機把
  IP Forwarding 打開 (ip 轉送),并使用 ipchains/iptables 等這類程序
  設定好后,Client 端就可以透過 Linux 這臺 gateway 主機的協助而上網了。
  
  kernel 2.2.x :
  
  echo "1" > /PRoc/sys/net/ipv4/ip_forward
  ipchains -P forward DENY
  ipchains -A forward -i eth0 -j MASQ -s 192.168.1.0/24
  ipchains -M -S 86400 86400 360 <-- 這是讓 timeout 拉長一點
  modprobe ip_masq_FTP <-- 掛入 ftp 等 module 處理 ftp 相關連結問題
  
  當然,我想另外的一些 ipmasq module 一起掛入也許比較完整一點...
  
  ip_masq_cuseeme、ip_masq_irc、ip_masq_mfw、ip_masq_PPTp、
  ip_masq_quake、ip_masq_raudio、ip_masq_user、ip_masq_vdolive ..
  
  kernel 2.3.x/2.4.x :
  
  echo "1" > /proc/sys/net/ipv4/ip_forward
  modprobe ip_tables # 這是編譯核心是選擇 module 才需要
  modprobe ip_nat_ftp # 同上,處理 ftp 等連結問題
  modprobe ip_conntrack
  modprobe ip_conntrack_ftp
  modprobn ip_conntrack_irc
  iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE
  
  上面等使用上,請先注重各位系統目前預設每個 INPUT、OUTPUT、FORWARD CHAIN
  是不是為 ACCEPT ,而不是 DROP/DENY 或者是 REJECT。
  
  for kernel 2.2 :
  
  ipchains -P input ACCEPT
  ipchains -P output ACCEPT
  ipchains -P forward ACCEPT
  
  若是要把就有規則清除,可以補上:
  
  ipchains -F
  ipchains -X
  
  for kernel 2.4 :
  
  iptables -P INPUT ACCEPT
  iptables -P OUTPUT ACCEPT
  iptables -P FORWARD ACCEPT
  
  若是要把就有規則清除,可以補上:
  
  iptables -F
  iptables -X
  iptables -F -t nat
  iptables -X -t nat
  
  上面很單純的提供 nat/ipmasq 服務,沒有針對一些安全性考量,比方
  聲稱來自內部網絡的 ip 范圍,是由 eth0 這個對外 interface 進入的話那就
  應該拒絕.... 比方像是位于 eth1 上 192.168.1.x 這段虛擬 ip 區段就
  是一個例子。所以這里要說的是,若是要嚴謹一點的話,額外的設定是很需要的...
  
  另外補充的,就是 port forward 部份,kernel 2.2.x 內是使用
  ipmasqadm 達成:
  
  ipmasqadm portfw -a -P tcp -L 210.1.1.1 25 -R 192.168.1.100 25
  
  該 ipmasqadm 敘述,提供讓 nat 對外主機,可以讓他人使用
  210.1.1.1 port 25 進行 tcp 服務連結,而該連結請求會轉給內部主機
  192.168.1.100 port 25 .. 簡單說,這行敘述是給有一臺 mail server
  是放在 nat 架構內使用虛擬 ip,然后透過 nat 主機設定 port 重導
  到內部的真實主機。
  
  若是使用 kernel 2.4 的話,iptables 指令則是:
  
  iptables -A PREROUTING -t nat -p tcp -d 210.1.1.1 /
  --dport 25 -j DNAT --to 192.168.1.100:25
  
  當然,以前有人提到,外面使用 telnet 210.1.1.1 25 的確是可以 work,
  不過內部 192.168.1.x 的計算機若是 telnet 210.1.1.1 25 就不行..
  那補上下面的敘述:
  
  iptables -A OUTPUT -t nat -p tcp -d 210.1.1.1 /
  --dport 25 -j DNAT --to 192.168.1.100:25
  
  上面說的是單一 port 重導.. 若是需要的功能是全部 port 都
  重導的話,比方就是使用:
  
  iptables -A PREROUTING -t nat -p all -d 210.1.1.1 /
  -j DNAT --to 192.168.1.1
  
  ok.. 此外幾點要說明的是:
  
  1. 目前許多人都使用 adsl 寬頻,若是使用計時制的話要注重的是,
  因為透過 pppoe 這類程序撥接后,會產生一個 ppp0 的 interface,
  然后再透過一個網絡卡接口作封包的傳輸,所以先前的指令有指定
  eth0 的敘述要改成 ppp0 才正確....
  
  2. 使用 nat 后,使用虛擬 ip 連上網絡的計算機,一般使用上應該是
  不大會有問題的... 不過若是想與 internet 上的計算機玩網絡
  游戲對戰的話,可能會發生一些問題.... 因為許多 game 的網絡聯機
  的運作方式在 nat 架構下多半無法工作.... 一般解決方式,找看看
  是否有專人寫出了 ipmasq 的 module,掛入后就可以解決了...
  或者是找出相關的 game 是有那些 port 的連結,然后設定好 port
  forwarding 的動作即可。
  
  關于 port forwarding 部份,這里有個連結提供很好的信息:
  
  http://www.tsmservices.com/masq
  
  許多 ap 程序、game 等等都有提供相關解決設定,不過都是針對
  kernel 2.2.x 內配合使用 ipmasqadm 程序.. 若是是使用 kernel 2.4
  的話,研究一下 iptables 指令的用法后,同樣也是可以完成的。
  
  3. 有人無法使用 icq 傳檔案,甚至無法正確傳訊息?我建議更新
  icq 到 2000 等版本,然后把連結設定改成在 firewall 后面
  使用,那就沒有問題了...
  
  4. 要觀察目前設定規則,請使用 iptables -L 。若是當初有使用 -t xxxx
  的話,請使用 iptables -L -t xxx 。ex: iptables -L -t nat
  
  5. 先前 netfilter 核心機制有一些 bug (Connection State,Related state
  bug) 會導致一些安全性的問題,see:
  
  http://www.tempest.com.br/advisories/01-2001.html
  
  http://netfilter.samba.org/secu


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 喀喇沁旗| 石嘴山市| 百色市| 漳浦县| 云梦县| 建阳市| 武功县| 新河县| 宜州市| 图木舒克市| 临高县| 堆龙德庆县| 尤溪县| 西平县| 府谷县| 开封县| 泰州市| 额济纳旗| 交城县| 曲麻莱县| 田东县| 馆陶县| 昌宁县| 宝鸡市| 荣成市| 迁西县| 潮州市| 仁布县| 富阳市| 乐安县| 安国市| 行唐县| 晋中市| 新巴尔虎左旗| 孙吴县| 洮南市| 门源| 浪卡子县| 中山市| 上思县| 邛崃市|