1. 程式人生 > >ubuntu 共享ADSL上網

ubuntu 共享ADSL上網

2007-12-16

#

Windows 下的共享上網比較簡單,選中ADSL連線,右鍵屬性,將共享選上即可。在ubuntu下,也需要設定,但是使用iptables進行IP偽裝。或者使用 firestarter之類的圖形介面的工具。 ubuntu下用ADSL撥號,需要在終端輸入sudo pppoeconf,然後根據提示,自動檢測網絡卡和ADSL撥號modem,如果找到,則提示輸入使用者名稱和密碼,注意將使用者名稱前面的username幾個 英文字母去掉。 以後使用 sudo pon dsl-provider 撥號上網,使用sudo poff dsl-provider下線。sudo plog檢視撥號日誌。 通過 系統->系統管理->網路 來配置網絡卡IP,或通過命令列方式。 網絡卡IP和配置放在/etc/network/interfaces ,可以用超級使用者進行編輯。 對 於無線網絡卡,配置同上。

下面摘自ubuntu 共享上網的幫助。 IP 偽裝的目的是為了允許您網路上那些有著私有的、不可路由的 IP 地址的機器可以通過做偽裝的機器訪問 Internet。來自您私有網路並要訪問 Internet 的傳輸必須是可以操作的,也就是說回覆要可以被路由回來以送到發出請求的機器上。要做到這一點,核心必須修改每個包 源 IP 地址以便回覆能被路由回它這裡,而不是發出請求的私有 IP 地址,因為它們對於 Internet 來說是不存在的。Linux 使用 Connection Tracking (conntrack) 來保持那個連線是屬於哪個機器的,並相應地對每個返回包重新做路由。發自您私有網路的流量就這樣被偽裝成源於您的閘道器機器。這一過程在 Microsoft 文件中被稱為 Internet 連線共享。

這可以用單條 iptables 規則來完成,也許基於您網路配置來說會有一些小的差異:

sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o ppp0 -j MASQUERADE

上述命令假設您的私有地址空間是 192.168.0.0/16,您與 Internet 相連的裝置是 ppp0。語法分解如下所示:

  • -t nat – 該規則將進入 nat 表
  • -A POSTROUTING – 該規則將被追加 (-A) 到 POSTROUTING 鏈
  • -s 192.168.0.0/16 – 該規則將被應用在源自指定地址空間的流量上
  • -o ppp0 – 該規則應用於計劃通過指定網路裝置的流量。
  • -j MASQUERADE – 匹配該規則的流量將如上所述 “跳轉” (-j) 到 MASQUERADE (偽裝) 目標。

在過濾表 (預設表,在那裡有著大多數或全部包過濾指令) 中的每條鏈 (chain) 都有一個預設的 ACCEPT 策略,但如果您還在閘道器裝置上設定防火牆,那麼您也許還要設定 DROP 或 REJECT 策略,這時您被偽裝過的流量還需要被 FORWARD 鏈 (chain) 中的規則允許才能正常工作:

sudo iptables -A FORWARD -s 192.168.0.0/16 -o ppp0 -j ACCEPT sudo iptables -A FORWARD -d 192.168.0.0/16 -m state –state ESTABLISHED,RELATED -i ppp0 -j ACCEPT

上述命令將允許通過從您區域網到 Internet 的所有連線,這些連線所有的相關流量也都返回到發起它們的機器。

有很多工具可以幫助您構建一個完整的防火牆,而不需要 iptables 的專業知識。偏好圖形介面的,Firestarter 非常流行也易於使用,fwbuilder 則非常強大而且其介面對於用過諸如 Checkpoint FireWall-1 商業防火牆工具的管理員來說相當熟悉。如果您偏好有著純文字配置文件的命令列工具,Shorewall 是個非常強大的解決方案,可以幫您為任何網路配置一個高階防火牆。如果您的網路相對簡單,或如果您沒有網路,那麼 ipkungfu 將給您一個無需配置就可以工作的防火牆,也允許您通過編輯簡單友好的配置檔案來輕鬆設定更高階的防火牆。另一個感興趣的工具就是fireflier,被設 計成桌面防火牆應用程式。它由一個伺服器 (fireflier-server) 和可選的 GUI 客戶端 (GTK 或 QT) 組成,操作就象 Windows 中許多流行的互動式防火牆應用程式一樣。

如非註明轉載, 均為原創. 本站遵循知識共享CC協議,轉載請註明來源