45IT.COM- 电脑学习从此开始!
DIY硬件教程攒机经验装机配置
设计Photoshop网页设计特效
系统注册表DOS系统命令其它
存储主板显卡外设键鼠内存
维修显卡CPU内存打印机
WinXPVistaWin7unix/linux
CPU光驱电源/散热显示器其它
修技主板硬盘键鼠显示器光驱
办公ExcelWordPowerPointWPS
编程数据库CSS脚本PHP
网络局域网QQ服务器
软件网络系统图像安全

用Linux实现共享ADSL方案

电脑软硬件应用网 45IT.COM 时间:2007-08-11 08:49 作者:+lzy
  *案例名称
  用Linux实现共享ADSL方案
  
  *技术范围
  接入
  
  *技术关键词
  ADSL Linux Squid
  
  *案例描述
  某一小企业团体,局域网规模很小,只有20几台终端客户机,没有服务器,需要共享上网。还需要一定的互联网访问权限的设置,为了废物利用,要求利用现存的一台2000年购买的赛扬电脑进行改造成互联网代理服务器或者防火墙。
  
  *解决思路
  2001年购买的电脑,硬件性能普遍没有时下主流配置强劲,所以如果用Windows Server来做平台是不可能的了,原因有很多,撇开硬件因素不谈──想想吧,赛扬 466CPU128MB 内存跑Windows Server 2003ISA Server是什么感觉啊,老牛拉破车!该团体没有专职的网管员,不可能时刻去照顾服务器,但是Windows是众所周知的出了名的脆弱,如果对他放任不管,不去升级补丁,不去仔细设置,没几天就会被黑客给攻陷了。另外该团队的老板对使用破解的软件心存顾虑。经综合权衡,决定采用Linux+Squid+ Iptables来实现目标。这些都是开源软件,不存在破解带来的安全隐患。且Linux对硬件配置要求极低,像2000年买来的那样配置的硬件, Linux可以为50个客户端提供服务,速度丝毫不受影响,而且Linux由于没有Windows普及面广,针对它的病毒和黑客活动与Windows平台相比,可以说是微不足道。
  故本方案决定采用Debian Linux作为服务器平台,使用Squid为客户端提供HTTP代理服务。
  
  *关键技术
  Debian,是一种自由操作系统,全称Debian GNU/Linux,采用Linux作为内核,由Debian计划(Debian Project)组织维护。Debian是一个纯粹由自由软件所组合而成的操作环境,而其背后並沒有任何的营利组织支持,它的开发团队全部都是来自世界各地的志愿者,官方开发者的总数就将近1000名,而非官方的开发者亦为数众多。
  Debian以其坚守Unix和自由软件的精神,以及其给予用户的眾多选择(现时Debian包括了超过15,000个组件並支持11个计算机系统结构)而闻名。因此,其它众多Linux发行版,例如UbuntuKnoppixLinspire也建基于Debian
  Debian以稳定性闻名,所以很多服务器都使用Debian作为其作业系统具备以下几个特点:
  Debian是极为精简的Linux发行版,有著干淨的操作环境。
  安装步骤简易,大部分情况下只要<Enter><Enter>一直按下去便可以顺利安装。
  拥有方便的组件管理程序,可以让用户容易的寻找、安装、删除、更新程序,或系统昇级。
  健全的软件管理制度,包括了臭虫回报、组件维护人等制度,让Debian所收集的软件质量在其的Linux发行组件之上。
  拥有庞大的组件库,令用户只需通过其自身所带的软件管理系统便可下载並安装组件,不必再在网络上寻找。
  组件库分类清楚,用户可以明确地选择安装自由软件、半自由软件或闭源软件。
  Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛的用途,从作为网页服务器的前缀cache服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其它网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要设计用于在Unix一类系统运行。
  Squid的发展历史相当悠久,功能也相当完善。除了HTTP外,对於FTPHTTPS的支持也相当好,在3.0 测试版中也支持了IPv6
  
  *配置过程
  首先登录Debian官方站点下载Debian安装镜像,最新版本是etch 4.0r0,ISO镜像下载回来刻成光盘来安装最为妥当。
  Debian安装比较简单,若有问题可以参阅Debian参考手册(http://qref.sourceforge.net/),这本Debian参考手册很好,提供了大量的实例,涵盖了系统管理的方方面面。
  安装时要注意网络的设置,第一块网卡,即接ADSL Modem的网卡;第二块网卡即接入局域网;系统表现为eth0eth1,但实际上eth0eth1未必对应与相应的网卡,故当网络不通的时候应考虑交换一下网线,笔者就曾经犯过这样的低级错误。
  接内网的网卡的网络设置要和局域网的网络在同一网段,如有错误可以修改该网络的设置:
  #ifdown eth0
  #nano /etc/network/interfaces #根据你的实际需求做出调整
  #ifup eth0
  编辑/etc/network/interfaces
文件,使其包含类似下面这段的内容:
  iface eth0 inte static
    address 10.152.16.3
    netmask 255.255.255.0
  不要使用DHCP,否则其他客户端会找不到这台服务器。该文件避免出现:
  iface eth0 inet dhcp
  快速设置ADSL拨号上网的方法是使用pppoeconf,在终端中输入:
  #pppoeconf
  即可进行设置ADSL拨号。
  pppoeconf是使用菜单界面询问一些问题,设置后,系统每次启动都会自动拨号ADSL
  服务器设置最关键是在squid的设置。
  squid的安装有两种途径,一是从Debian的源中来安装;二是源码编译安装。
  第一个方法很简单,
  apt-get install squid
  就可以完成安装,但是Squid很多特性都不会实现,我通常更倾向于源码编译安装。
  到下面的官方网站下载最新的版本进行编译安装:
  http://www.squid-cache.org/
  其中STABLE稳定版、DEVEL版通常是提供给开发人员测试程序的,假定下载了最新 的稳定版squid-2.*.STABLE.tar.gz,用以下命令解开压缩包:
  tar xvfz squid-2.*.STABLE.tar.gz
  用bz2方式压缩的包可能体积更小,相应的命令是:
  tar xvfj squid-2.*.STABLE.tar.bz2
  然后,进入相应目录对源代码进行配置和编译,命令如下:
  cd squid-2.*.STABLE2
  配置命令configure有很多选项,如果不清楚可先用“-help”查看。通常情况下,用到的选项有以下几个:
  --prefix=/web/squid
  指定Squid的安装位置,如果只指定这一选项,那么该目录下会有binsbinmanconf等目录,而主要的配置文件此时在conf子目录中。为便于管理,最好用参数--sysconfdir=/etc把这个文件位置配置为/etc
  --enable-storeio=ufs,null
  使用的文件系统通常是默认的ufs,不过如果想要做一个不缓存任何文件的代理服务器,就需要加上null文件系统。
  --enable-arp-acl
  这样可以在规则设置中直接通过客户端的MAC地址进行管理,防止客户使用IP欺骗。
  --enable-err-languages="Simplify_Chinese"
  --enable-default-err-languages="Simplify_Chinese"
  上面两个选项告诉Squid编入并使用简体中文错误信息。
  --enable-linux-netfilter
  允许使用Linux的透明代理功能。
  --enable-underscore
  允许解析的URL中出现下划线,因为默认情况下Squid会认为带下划线的URL是非法的,并拒绝访问该地址。整个配置编译过程如下:
  ./configure --prefix=/var/squid
  --sysconfdir=/etc
  --enable-arp-acl
  --enable-linux-netfilter
  --enable-pthreads
  --enable-err-language="Simplify_Chinese"
  --enable-storeio=ufs,null
  --enable-default-err-language="Simplify_Chinese"
  --enable-auth="basic"
  --enable-baisc-auth-helpers="NCSA"
  --enable-underscore
  其中一些选项有特殊作用。最后执行下面两条命令,将源代码编译为可执行文件,并拷贝到指定位置。
  make
  make install
  配置squid是通过编辑/etc/squid/squid.conf文件来完成的。所有项目都在squid.conf中完成。Squid自带的squid.conf包括非常详尽的说明,相当于一篇用户手册,对配置有任何疑问都可以参照解决。
  本案例是要求分advance组、normal;advance组可以不受任何限制地访问Internet,而normal组则只能在工作时间上网,而且不能下载多媒体文件,不能访问某些特定的站点,而且发送请求不能超过3个。 squid.conf文件内容如下:
  http_port 10.152.16.38080
  cache_mgr lzy@51cto.com
  cache_dir null /tmp
  cache_access_log /var/squid/access.log
  cache_log /var/squid/cache.log
  cache_store_log /var/squid/store.log
  visible_hostname No1.proxy
  client_mask 255.255.255.255
  httpd_accel_host virtual
  httpd_accel_port 80
  httpd_accel_with_proxy on
  httpd_accel_user_host_header on
  acl advance arp 00:01:02:1f:2c:3e 00:01:02:3c:1a:8b ...
  acl normal proxy_auth REQUIED
  acl all src 0.0.0.0
  acl mmxfile urlpath_regex \.mp3$ \.avi$ \.exe$
  acl conncount maxconn 3
  acl worktime time MTWHF 8:30-12:00 14:00-18:00
  acl sinapage dstdomain ok.sina.com.cn
  acl qq dstdomain .tcccent.com.cn
  http_access allow advance
  http_access deny conncount normal
  http_access deny !worktime
  http_access deny mmxfile
  http_access deny sinapage
  http_access deny qq
  http_access allow normal
  Squid的能力远不止此,可以建立强大的代理服务器阵列,可以帮助本地的Web服务器提高性能,可以提高本地网络的安全性等。要想发挥它的功效,还需要进一步控制。 而这些就不是本案例所讨论的范畴了。
  对于普通的单位上网用户,Squid可充当代理服务器,而对于大型网站又可以充当web加速器,在这两个领域中Squid都表现异常优秀。
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
无法在这个位置找到: baidushare.htm
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
你可能感兴趣的文章
推荐知识