局域網通過LINUX主機上網手記
發表于:2007-07-02來源:作者:點擊數:
標簽:
前兩天接到一項任務,要把一個局域網的機器通過一臺機器上INTERNET,這樣的事情做過不少,無非是選一臺好點的機器裝上SYGATE什么的就行了,但是這次不同,人家非要求用 LINUX ,說什么穩定?!救藢Υ瞬o異議,只好放棄最熟悉的WIN,開始試這把牛刀,LIN
前兩天接到一項任務,要把一個局域網的機器通過一臺機器上INTERNET,這樣的事情做過不少,無非是選一臺好點的機器裝上SYGATE什么的就行了,但是這次不同,人家非要求用
LINUX,說什么穩定?!救藢Υ瞬o異議,只好放棄最熟悉的WIN,開始試這把牛刀,LINUX其實很早就玩過,不過只是玩玩而已。
***
首先配置
網絡,把局域網的機器全部使用私有IP(192.168.0.*,其中DNS和代理用44,別人不愿意用這個嘛),如果大家有興趣還可以試試DHCP,反正我是干完就好也無所謂了,這里不說。
操作系統這次選擇的是TURBOLINUX,這版本自己帶了不少東西,不管那么多,反正有SQUID可以做代理應該就可以拉,安裝過程還算順利(就算有麻煩也不會在這里說)。
***
設置域名服務DNS,其實簡單的設個緩存能夠找到你的ISP就可以(當然你要架站另當別論,不過只能指向真實IP,如果你有足夠多的IP,速度夠快還可以搞托管賺錢)
設置DNS要修改這些文件:
/etc/host.conf
/etc/resolv.conf
/etc/named.boot # BIND4
/etc/named.conf # BIND8
# 以下路徑以及文件名在named.boot和named.conf中設定
具體的設置請大家翻書吧,最經典的是《DNS 與 BIND》O’REILLY的
/var/named/named.cache # 尋找根DNS
/var/named/named.local # 設置本地主機
/var/named/named.host # 設置域名——》IP解析
/var/named/named.rev # 設置IP——》域名解析
以上的還可以用TURBOLINUX的 TURBONETCFG來設置。完成后記得把NAMED進程重啟動一把:
/etc/rc.d/init.d/named restart(可以用的參數start|stop|start)
然后用NSLOOKUP測試,看能不能解析成功,還可以用 ANY、NS 等參數
***
然后開始設置SQUID。
TURBOLINUX所帶的SQUID配置文件在/ETC/SQUID/SQUID.CONF(別的系統我可不敢說)
改如下的幾行夠用就行:
http_port 3128
# 默認代理
服務器的端口
cache_mem 24 MB
# 在內存中開辟出緩沖區
cache_dir /var/spool/squid 2048 16 256
# 開辟硬盤緩沖區
# 各種LOG文件(可以只要a
clearcase/" target="_blank" >ccess.log)
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
pid_filename /var/run/squid.pid # 也可以不要這個進程文件
#自己的DNS服務器
dns_nameservers 192.168.0.44
# 這些都是系統缺省的,核對就行了。如果要設置其他可以看注釋,很簡單的
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl allowed_hosts src 192.168.0.0/255.255.255.0
acl SSL_ports port 443 563
acl Safe_ports port 80 21 443 563 70 210 1025-65535
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all # 改為 http_access allow all 允許所有機器存取
icp_access allow all
miss_access allow all
設置好以后記得啟動SQUID讓設置生效
/etc/rc.d/init.d/squid start # 可以用的參數 start|stop|restart
這時候去局域網的WIN98上設置DNS、網關,在IE里設置代理服務器的IP和端口號
我用的是192.168.0.44:3128,你需要REBOOT你的WIN98,然后試試看,應該可以訪問WEB了。
成功了嗎?如果你只要訪問網頁這就可以,不過如果你想用OI
CQ和OUTLOOK還得望下看。
****
最后該設置IPCHAINS:(一定要內核支持IP轉發才好,不然還得重連內核)
TURBILINUX的配置在這里/usr/src/
linux/configs/kernel-2.2.13-i686.config
如果不是這套系統可不一定在哦?;蛟S會在/usr/src/linux/.config 自己找吧
該文件中如果有這些就不必重連內核了否則自己想辦法
CONFIG_IP_FIREWALL=y
CONFIG_IP_MASQUERADE=y
CONFIG_IP_MASQUERADE_ICMP=y
CONFIG_IP_MASQUERADE_MOD=y
CONFIG_IP_MASQUERADE_IPAUTOFW=m
CONFIG_IP_MASQUERADE_IPPORTFW=m
CONFIG_IP_MASQUERADE_MFW=m
否則要連內核或者換一套LINUX(最簡單)
如果不是Y是M,表示是模塊支持,得加模塊
啟動ip轉發功能:
原先什么也沒有長度是0,重起機后也是0
echo 1 > /proc/sys/net/ipv4/ip_forward
相應的模塊在/lib/modules/2.2.13/ipv4目錄中,裝入它們:
depmod -a
/sbin/modprobe ip_masq_ftp
/sbin/modprobe ip_masq_irc
/sbin/modprobe ip_masq_portfw
/sbin/modprobe ip_masq_user
/sbin/modprobe ip_masq_autofw
/sbin/modprobe ip_masq_quake
/sbin/modprobe ip_masq_vdolive
/sbin/modprobe ip_masq_cuseeme
/sbin/modprobe ip_masq_mfw
/sbin/modprobe ip_masq_raudio
以上的可要手工輸入的最好制作一個腳本:ipchains.start
不然每次手工敲還不累死你
現在測試一下IPCHAINS:
# ipchains -L
Chain input (policy A
CCEPT):
Chain forward (policy ACCEPT):
Chain output (policy ACCEPT):
好了,我們運行:
# ipchains -P forward DENY
然后看 ipchains -L,變成了
Chain input (policy ACCEPT):
Chain forward (policy DENY):
Chain output (policy ACCEPT):
繼續下去:
# ipchains -A forward -s 192.168.0.0/255.255.255.0 -j MASQ
再看 ipchains -L:
Chain input (policy ACCEPT):
Chain forward (policy DENY):
target prot opt source destination ports
MASQ all ------ 192.168.0.0/24 anywhere n/a
Chain output (policy ACCEPT):
這樣就好了。測試吧。記得把最后的兩行也加入腳本ipchains.start
# ip masq
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/depmod -a
/sbin/modprobe ip_masq_ftp
/sbin/modprobe ip_masq_irc
/sbin/modprobe ip_masq_portfw
/sbin/modprobe ip_masq_user
/sbin/modprobe ip_masq_autofw
/sbin/modprobe ip_masq_quake
/sbin/modprobe ip_masq_ vdolive
/sbin/modprobe ip_masq_cuseeme
/sbin/modprobe ip_masq_mfw
/sbin/modprobe ip_masq_raudio
/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -s 192.168.0.0/255.255.255.0 -j MASQ
chmod 777 ipchains.start
以后每次REBOOT后要這樣啟動SQUID和IPCHAINS
/etc/rc.d/init.d/squid start
/etc/ipchains.start # 看你把這個腳本放哪里了
當然,如果要省事,最好把這兩行放進系統初始化的文件里,讓每次REBOOT的時候能夠自動調用。
我的初始化文件在/etc/rc.d/rc.sysinit(你的是不是我就不管了)在該文件的最后加入如下:
/etc/rc.d/init.d/squid start
/etc/ipchains.start
好了,這樣你局域網里的機器就不僅可以上網瀏覽,還可以用OICQ和OUTLOOK等軟件了。如果有問題,可以發MAIL和我交流
原文轉自:http://www.kjueaiud.com