公司企業網吧上網有好多種解決方案。按服務器OS來分。一個是采用windows做服務器,另一個是采用Linux做服務器。按代理方式來分
有透明代理和傳統代理。目前采用windows的居多,在windows最著名的有sygate和wingate,而它們采用的方式是透明代理和傳統代理。
但是由於windows本身的安全問題,使用此類代理不太適合對安全性要求比較高的公司企業上網。網吧上網主要解決速度問題,而這方面其實
linux也占上風。在linux下代理軟件也很多。著名的有:iptables,ipchains,squid,socks。前面兩個都是透明代理,squid可以用傳統代理也可以用透明代理工作。socks就是采用傳統代理。linux下的軟件質量很高,但是用法很復雜,對一般非專業人員很難使用。而在傳統代理方面又沒有像wingate這麼強大的軟件,可以代理多種協議,(squid只代理http,socks只代理socks)。更要命的是這些軟件還沒有中文版,這對英語不好的人是致命的。正因為此,我從2002年5月份著手准備,寫一個linux上的wingate,但某些方面還要超過它。現在正式推出0.1版,采用傳統代理模式。
1. kingate介紹
linux上的wingate,一個代理服務器軟件,支持http,pop3,smtp,dns,telnet,FTP,socks代理。支持ip過濾規則,支持每個用戶每個smtp服務器
,ftp完整解決(用戶名@主機地址),結合crontab可以實現某時間段關閉某服務或打開某服務,對一些公司要求上班時間可以用IE上網,而又
不允許用QQ很有用;支持TCP端口映射,使外面可以通過kingate連接內部網的任何一台機器。安裝及用法都用中文書寫,安裝配置很簡單。開
放源代碼,源代碼采用中文注釋。
以下假設kingate為0.1版
2.准備工作
官方網站:http://www.kingate.net 有kingate的最新消息,也有下載地址。
也可以直接下載
http://www.txsms.com/kingate/download/kingate-0.1.tar.gz
下載完後:
tar xzf kingate-0.1.tar.gz
cd kingate
3:安裝
./install.sh
4:反安裝
./uninstall.sh
5:使用
有兩個bash文件可以使用。
./run.sh 運行kingate
./stop.sh 關閉kingate
以下是詳細用法
bin/kingate 啟動kingate
bin/kingate -f 強行啟動kingate,如果啟動kingate提示有一個在運行,而你又確實kingate沒有運行,可以使用這個。
bin/kingate -h 查看kingate用法
bin/kingate -q 關閉kingate
bin/kingate -v 查看kingate版本
bin/kingate -s service 啟動服務,如 bin/kingate -s http 啟動http服務。
bin/kingate -k service 關閉服務。
bin/kingate -u model=onoff 啟動關閉模塊
模塊列表:
socks4 socks代理中socks4支持
socks5 socks代理中socks5支持
socks_udp socks代理中udp支持,
比如我們要socks代理支持ie上網,又要關閉QQ。我們可以運行
bin/kingate -u socks4=on
bin/kingate -u socks_udp=off
6:建議
kingate的運行最好是以普通用戶運行(如果不代理dns的話)。有助於安全。
假設以用戶nobody運行。在第2步後(解壓)運行:
#chown nobody * -R
#chgrp nobody * -R
#su nobody
$./install
$./run
7:技巧
結合crontab的使用,可以實現某時間段關閉某服務,打開某服務。還可以打開某些模塊,關閉某些模塊,滿足特殊要求。
比如:在每天9:00-17:00不准用QQ,其余時間可以用QQ。(假設:kingate目錄/usr/local/kingate,kingate運行用戶是nobody)
#su nobody
$crontab -e
加入:
9 * * * * /usr/local/kingate/bin/kingate -u socks_udp=off
17 * * * * /usr/local/kingate/bin/kingate -u socks_udp=on
保存退出
注意:此時socks代理要打開
用kingate -s socks 打開
8:tcp端口映射舉例
公司內部一台機器想對外提供http服務(假設這台機子的ip是:192.168.0.100,http端口為80)
我們在conf/kingate.conf的重定向功能加上
redirect 80_192.168.0.100:80_100_../conf/Access.conf
重起kingate:
kingate -q
kingate
9:ip過濾
在conf/kingate.conf的安全策略部分
後面的文件就是安全策略文件,可以為每個服務分別設置不同的過濾規則。
文件格式(一例):
model access
#src/port dest/port
#如果是地址是網絡段,末尾加"."。
192.168.0./* */*
127. */*
model deny
*/* 202.
注意:如果即有access和deny,取只有在deny的補集中也在access中才通過,如果某一條件在兩者中以放在後面的為優先。
所以上面的過濾規則意思就是:
192.168.0.網段(內部電腦)和127.(服務器本身)可以訪問外面的除了202.網段的所有地址.
#src/port dest/port
#如果是地址是網絡段,末尾加"."。
192.168.0./* */*
127. */*
model deny
*/* 202.
注意:如果即有access和deny,取只有在deny的補集中也在access中才通過,如果某一條件在兩者中以放在後面的為優先。
所以上面的過濾規則意思就是:
192.168.0.網段(內部電腦)和127.(服務器本身)可以訪問外面的除了202.網段的所有地址.