分享

FreeBSD6.2+Squid2.6架设“对外网用户的squid代理+认证”服务器

 农夫子oice 2008-02-27

  架设一台代理,提供对外网用户的代理请求,端口仍然为3128,加入Squid认证功能。这样可以保证只提供给某些你信任的用户该服务。架设过程和架设对内网用户提供服务的过程基本相同,只是在编译安装squid时和squid的配置文件squid.conf有些不同。这次架设的服务器将保留对内网用户提供squid服务(内网用户不增加认证功能限制)的同时再增加对外网用户提供squid+认证功能。版本为FreeBSD6.2-RELEASE+Squid2.6-STABLE12。

  服务器及网络信息:

  外网网卡:em0;外网ip:221.6.117.50/255.255.255.240

  内网网卡:em1;内网ip:128.0.0.4/255.255.252.0

  架设过程:

  一、FreeBSD的安装

  1、最小化安装FreeBSD6.2RELEASE

  2、配置内核:

  jiulongproxynew# cd /usr/src/sys/i386/conf

  jiulongproxynew# cp GENERIC funpower

  jiulongproxynew# ee funpower

  修改内核配置文件,将不需要的选项(如网卡)之类的前面打#,然后按esc并按a保存退出,再执行:

  jiulongproxynew# /usr/sbin/config funpower

  jiulongproxynew# cd ../compile/funpower

  jiulongproxynew# make cleandepend

  jiulongproxynew#make depend

  jiulongproxynew# make

  jiulongproxynew# make install

  3、配置/etc/rc.conf:

  hostname="jiulongproxynew.jscpu.com"

  defaultrouter="221.6.117.97"

  ifconfig_em0="inet 221.6.117.50 netmask 255.255.255.240"

  ifconfig_em1="inet 128.0.0.4 netmask 255.255.252.0"

  sendmail_enable="NONE"

  inetd_enable="YES"

  linux_enable="YES"

  sshd_enable="YES"

  usbd_enable="YES"

  4、配置resolv.conf:

  jiulongproxynew# cd /etc

  jiulongproxynew# ee resolv.conf

  添加如下两行:

  nameserver 221.6.96.177

  nameserver 221.6.96.178

  5、重启服务器

  二、squid的安装

  1、安装perl以支持squid

  jiulongproxynew# cd /usr/ports/lang/perl5

  jiulongproxynew# make install

  2、安装Apache,squid认证用户设置密码时使用apache的密码管理程序htpasswd

  jiulongproxynew# cd /usr/ports/www/apache13

  jiulongproxynew# make install

  3、下载并安装squid

  从http://www./Versions/v2/2.6/下载squid-2.6.STABLE16.tar.gz并通过FTP放置服务器目录中/home/funpower,然后开始解压安装:

  jiulongproxynew# cd /home/funpower

  jiulongproxynew# tar zxvf squid-2.6.STABLE16.tar.gz

  jiulongproxynew# cd squid-2.6.STABLE16

  jiulongproxynew# ./configure –prefix=/usr/local/squid –enable-auth=”basic” –enable-basic-auth-helpers=”NCSA”

  jiulongproxynew# make

  jiulongproxynew#make install

  3、配置squid和创建认证用户及密码

  将ncsa_auth拷贝至可执行目录/usr/sbin

  jiulongproxynew# cd /home/funpower/squid-2.6.STABLE16

  jiulongproxynew# cd helpers/basic_auth/NCSA/

  jiulongproxynew# cp ncsa_auth /usr/sbin

  创建squid认证用户www

  jiulongproxynew# /usr/local/bin/htpasswd -c /usr/local/squid/etc/password www

  New password:

  Re-type new password:

  Adding password for user www

  输入www两遍密码后出现上面的信息就说明用户创建成功。

  4、配置squid.conf

  jiulongproxynew# cd /usr/local/squid/etc

  jiulongproxynew# ee squid.conf

  内容如下:

  auth_param basic program /usr/sbin/ncsa_auth /usr/local/squid/etc/password

  auth_param basic children 5

  auth_param basic realm Please enter the user name and password

  auth_param basic credentialsttl 2 hours

  acl web src 128.0.0.0/22 //内网ip段定义

  acl all src 0.0.0.0/0.0.0.0 //外网ip段定义

  acl all1 proxy_auth REQUIRED //定义all1字段为需要认证

  acl manager proto cache_object

  acl localhost src 127.0.0.1/255.255.255.255

  acl to_localhost dst 127.0.0.0/8

  acl SSL_ports port 443

  acl Safe_ports port 80 # http

  acl Safe_ports port 21 # ftp

  acl Safe_ports port 443 # https

  acl Safe_ports port 70 # gopher

  acl Safe_ports port 210 # wais

  acl Safe_ports port 1025-65535 # unregistered ports

  acl Safe_ports port 280 # http-mgmt

  acl Safe_ports port 488 # gss-http

  acl Safe_ports port 591 # filemaker

  acl Safe_ports port 777 # multiling http

  acl CONNECT method CONNECT

  #deny bbs

  acl bbs url_regex -i bbs

  http_access deny bbs

  #deny baidu post

  acl baidupost dstdom_regex post.baidu.com

  acl baidupost2 dstdomain post.baidu.com

  http_access deny baidupost

  http_access deny baidupost2

  http_access allow manager localhost

  http_access deny manager

  http_access deny !Safe_ports

  http_access deny CONNECT !SSL_ports

  http_access allow web //定义内网ip段为允许通过

  http_access allow all all1 //定义外网ip段为允许通过,但需要认证,因为加了all1字段

  icp_access allow all

  http_port 3128

  http_port 221.6.117.x:3128 //增加一个对本机外网地址的3128端口

  hierarchy_stoplist cgi-bin ?

  acl QUERY urlpath_regex cgi-bin \?

  cache deny QUERY

  cache_mem 64 MB

  cache_dir ufs /usr/local/squid/cache 7000 16 256

  access_log /dev/null

  cache_log /dev/null

  cache_store_log none

  refresh_pattern ^ftp: 1440 20% 10080

  refresh_pattern ^gopher: 1440 0% 1440

  refresh_pattern . 0 20% 4320

  acl apache rep_header Server ^Apache

  broken_vary_encoding allow apache

  cache_mgr webmaster@jscpu.com

  cache_effective_user squid

  cache_effective_group squid

  visible_hostname jiulongproxynew.jscpu.com

  4、创建用户及缓存等:

  jiulongproxynew# pw groupadd squid

  jiulongproxynew# pw adduser squid -g squid -s /nonexistent

  jiulongproxynew# mkdir /usr/local/squid/cache

  jiulongproxynew# chown -R squid /usr/local/squid/cache

  jiulongproxynew# chgrp -R squid /usr/local/squid/cache

  jiulongproxynew# chown -R squid /usr/local/squid/var/logs

  jiulongproxynew# chgrp -R squid /usr/local/squid/var/logs

  jiulongproxynew# /usr/local/squid/sbin/squid -z

  jiulongproxynew# cd /usr/local/squid/sbin

  jiulongproxynew# ./squid

  jiulongproxynew# ee /etc/rc.local

  加入如下一行:

  /usr/local/squid/sbin/squid

  保存退出。

  5、重启服务器

  三、客户端的设置及上网演示

  1、内网用户

  内网用户因为没有增加squid代理的认证功能,所以上网设置不变,只需在IE浏览器中设置服务器内网网卡地址128.0.0.4及3128端口即可。如下图:

  

  

  2、外网(家庭)用户

  外网用户,一般是家中,在使用该代理,需将IE上的代理服务器地址设置为该服务器的外网网卡地址221.6.117.50,端口仍为3128。如下图:

  

  

  设置完后,在IE上打开任一网址,即会跳出一认证对话框,如下图,输入刚才创建的www用户及密码,若能访问该网站,及该服务器架设正确。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多