公司企业网吧上网有好多种解决方案。按服务器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=on|off 启动关闭模块
模块列表:
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.网段的所有地址.