首页 > 代码库 > Squid 代理服务器的构建与访问控制

Squid 代理服务器的构建与访问控制

Squid 一款开源的代理服务软件,用于实现HTTP和FTP以及DNS查询,SSL等应用的应用层代理

官方站点:http://www.squid-cache.org

squid 作为应用层代理服务软件,主要提供缓存加速,应用层过滤控制的功能(访问的目标,客户机地址,访问的时间)

squid可构建的代理服务:传统代理、透明代理、反向代理

DNS view(视图) + SQUID 反向代理 = CDN(内容分发网络)


代理的工作原理:
客户端通过代理来请求web页面时,指定的代理服务器首先检查自己的高速缓存,是否有客户端请求的页面
有 则直接从缓存中读取页面反馈给客户端
没有 缓存服务器向Internet发送访问请求,将结果缓存到本地并返回给客户端,缓存对象主要是文字,图像等静态的元素

当客户机在不同的时候访问同一WEB元素,不同的客户机访问相同的WEB元素时,可以直接从代理服务器的缓存中获得结果

优点:
减少向Internet提交重复访问过程
隐藏客户端的IP地址
加快客户端访问速度
在代理访问过程中过滤和控制机制(访问目标,客户机地址,时间段)


代理的基本类型:
根据实现方式,服务对象的不同,代理服务器可分为传统代理,透明代理和反向代理

传统代理:
普通的代理服务,以提供 HTTP、FTP 代理为主,客户端需要在浏览器或QQ聊天工具,下载软件中手动指定代理服务器的地址和端口号(默认为3128),对于网页浏览器,域名解析也会发给指定的代理服务器。对于企业局域网来说同样可通过代理接入Internet,但只能访问 HTTP、FTP 代理的缓存机制可为用户访问web站点提高访问速度

QQ程序使用代理可以隐藏本机真实IP地址
下载工具使用多个代理规避服务器的并发连接限制

 

透明代理(Transparent Proxy):
提供与传统代理相同功能,对于客户端来说代理服务器是透明的,客户端不需要指定IP地址与端口号,而是通过默认路由,防火墙策略将web访问重定向,实际上还是交给代理服务器处理,域名解析优先发给DNS服务器。

透明:客户端不需要在浏览器中指定代理服务器的地址和端口号

Squid+Iptables 将访问请求通过Iptables(Redirect 重新定向)给本机的代理服务程序


反向代理:
反向代理(Reverse.Proxy)也同样提供缓存加速,只不过服务的对象反过来了。传统代理也好,透明代理也好,大多是为局域网用户访问Internet中的Web站点提供缓存代理;
而反向代理恰恰相反,主要为Internet中的用户访问企业局域网内的 Web 站点提供缓存加速,是一个反向的代理过程,因此称为反向代理。

对于一些访问量较大的Web站点(如新浪,搜狐等),提供反向代理可以起到加速作用,同时缓解Web服务器的压力。例如,使用nslookup工具解析出www.sina.com.cn站点
对应的IP地址(通常有多个,这是基于 DNS解析的负载分担),任选其中一个在浏览器中直接访问,就会发现Squid反向代理服务反向的错误信息。而使用www.sina.com.cn
域名访问新浪站点使,用户基本上感觉不出squid服务的存在。


Internet应用:
传统代理
反向代理

局域网应用:
透明代理

安装与运行控制:
1、编译安装SQUID
[root@proxy ~]# rpm -q squid
package squid is not installed

[root@proxy ~]# tar xf squid-3.4.6.tar.gz -C /usr/src/
[root@proxy ~]# cd /usr/src/squid-3.4.6/
[root@proxy squid-3.4.6]# ./configure --prefix=/usr/local/squid --sysconfdir=/etc/ --enable-arp-acl --enable-linux-netfilter --enable-linux-tproxy --enable-async-io=100 --enable-err-language="Simplify_Chinese" --enable-underscore --enable-poll --enable-gnuregex && make && make install


--prefix=/usr/local/squid              #安装目录
--sysconfdir=/etc/                     #单独将配置文件修改到其他目录
--enable-arp-acl                    #在规则中设置直接通过客户端MAC进行管理,防止客户端使用IP欺骗
--enable-linux-netfilter          #使用内核过滤
--enable-linux-tproxy           #支持透明模式
--enable-async-io=100         #异步I/O,提升存储性能,相当于 --enable-pthreads --enable-storeio=ufs,aufs
--with-pthreads --with-aufs-thread=值
--enable-err-language="Simplify_Chinese"    #错误信息的显示语言
--enable-underscore                         #允许URL中有下划线
--enable-poll                          #使用poll() 模式,提升性能
--enable-gnuregex                            #使用GNU正则表达式

[root@proxy ~]# ln -s /usr/local/squid/sbin/* /usr/local/sbin/
[root@proxy ~]# useradd -M -s /sbin/nologin squid
[root@proxy ~]# chown -R squid:squid /usr/local/squid/var/


2.Squid的基本配置

配置项参考:/etc/squid.conf.documented
主配置文件:/etc/squid.conf

参数介绍:
http_port 3128 #指定代理服务监听的地址和端口(默认端口 3128) http_port 192.168.1.1:3128
cache_effective_user squid #指定squid程序用户,用来设置初始化,运行时的缓存帐号
cache_effective_group squid #默认为cache_effective_user指定帐号的基本组
coredump_dir /usr/local/squid/var/cache/squid


3.squid的运行控制
1)检查配置文件语法是否正确
[root@proxy ~]# squid -k parse

2016/01/26 22:01:24| WARNING: ‘proxy‘ rDNS test failed: (0) No error.
2016/01/26 22:01:24| WARNING: Could not determine this machines public hostname. Please configure one or set
‘visible_hostname‘.2016/01/26 22:01:24| WARNING: ‘proxy‘ rDNS test failed: (0) No error.

[root@proxy ~]# vim /etc/squid.conf
visible_hostname proxy
[root@proxy ~]# hostname proxy

 

2)启动,停止squid
第一次启动,会自动初始化缓存目录,在没有squid服务脚本时,可以直接调用squid程序启动服务。

[root@proxy ~]# vim /etc/squid.conf
cache_dir ufs /usr/local/squid/var/cache/squid 100 16 256

[root@proxy ~]# squid -z

[root@proxy ~]# ls /usr/local/squid/var/cache/squid
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

 

[root@proxy ~]# squid -z #用来初始化缓存目录
[root@proxy ~]# squid #启动squid服务
[root@proxy ~]# squid -D #直接执行squid启动服务,-D不进行DNS测试
[root@proxy ~]# squid -k reconfigure #用于重新加载配置文件
[root@proxy ~]# netstat -anpt |grep squid
tcp 0 0 0.0.0.0:3128 0.0.0.0:* LISTEN 88850/(squid-1)

3)squid服务脚本
[root@proxy ~]# vim /etc/init.d/squid
#!/bin/bash
# chkconfig: 2345 90 25
# config: /etc/squid.conf
# pidfile: /usr/local/squid/var/run/squid.pid
# Description: Squid - Internet Object Cache.
PID="/usr/local/squid/var/run/squid.pid"
CONF="/etc/squid.conf"
CMD="/usr/local/squid/sbin/squid"

case "$1" in
start)
netstat -anpt | grep squid &> /dev/null
if [ $? -eq 0 ]
then
echo "squid is running."
else
echo "正在启动squid..."
$CMD
fi
;;
stop)
$CMD -k kill &> /dev/null
rm -rf $PID &> /dev/null
;;
status)
[ -f $PID ] &> /dev/null
if [ $? -eq 0 ]
then
netstat -anpt | grep squid
else
echo "squid is not running."
fi
;;
restart)
$0 stop &> /dev/null
echo "正在关闭squid..."
$0 start &> /dev/null
echo "正在启动squid..."
;;
check)
$CMD -k parse
;;
reload)
$CMD -k reconfigure
;;
*)
echo "用法: $0 {start|stop|restart|reload|check|status}"
esac

[root@proxy ~]# chmod +x /etc/init.d/squid
[root@proxy ~]# chkconfig --add squid
[root@proxy ~]# chkconfig squid on
[root@proxy ~]# service squid start
[root@proxy ~]# service squid status

 

配置传统代理:
=========================================================================================================
代理服务器:192.168.200.211

要求:
Squid为客户端提供网站的代理服务
禁止客户端通过代理服务器下载超过10MB大小的文件
客户端的相关程序例如:QQ、IE浏览器等需要指定代理服务器的IP地址及端口号。
如果客户机需通过域名方式访问,代理服务器本身需能够正确解析域名

1)编译安装SQUID
2)修改/etc/squid.conf 配置文件
[root@proxy ~]# vim /etc/squid.conf
http_access allow all #允许任意主机使用代理服务器(注意:需要放在http_access deny all前面)
http_access deny all
http_port 3128 #配置代理服务器端口号
reply_body_max_size 10 MB #限制下载文件大小
cache_effective_user squid
cache_effective_group squid
visible_hostname proxy
cache_dir ufs /usr/local/squid/var/cache/squid 100 16 256
coredump_dir /usr/local/squid/var/cache/squid

[root@proxy ~]# service squid check
[root@proxy ~]# service squid restart && service squid reload && squid -k reconfigure

防火墙配置:
1)关闭防火墙
[root@proxy ~]# service iptables stop

2)配置防火墙允许策略
[root@proxy ~]# iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
[root@proxy ~]# service iptables save

[root@proxy ~]# netstat -anpt | grep squid
tcp 0 0 0.0.0.0:3128 0.0.0.0:* LISTEN 90052/(squid-1)

[root@proxy ~]# tail -f /usr/local/squid/var/logs/access.log
1452937491.308 5 192.168.200.212 TCP_MISS/200 366 GET http://192.168.200.212/ - HIER_DIRECT/192.168.200.
212 text/html
1452937502.785 2 192.168.200.212 TCP_CLIENT_REFRESH_MISS/304 220 GET http://192.168.200.212/ - HIER_DIRE
CT/192.168.200.212 -


web服务器:192.168.200.212
[root@web ~]# mount /dev/cdrom /media/cdrom/
[root@web ~]# rpm -ivh /media/cdrom/Packages/httpd-2.2.15-39.el6.x86_64.rpm
[root@web ~]# echo "<h1>www.crushlinux.com</h1>" > /var/www/html/index.html
[root@web ~]# service httpd start
[root@web ~]# service iptables stop

[root@web ~]# tail -f /var/log/httpd/access_log
192.168.200.211 - - [17/Jan/2016:01:45:27 +0800] "GET / HTTP/1.1" 200 28 "-" "Mozilla/4.0 (compatible; MSIE 6


客户端设置:192.168.200.254
IE浏览器:工具-->Internet选项-->局域网(LAN)设置-->配置代理服务器IP和端口号
Firefox: 首选项 高级 网络连接

浏览器访问:WEB服务器IP地址 http://192.168.200.212

 

Linux客户机的命令行界面(elinks,wget)必须通过环境变量来指定代理服务器的地址,端口

[root@client ~]# vim /etc/profile
HTTP_PROXY=http://192.168.200.211:3128 #为使用HTTP协议指定代理
HTTPS_PROXY=http://192.168.200.211:3128 #为使用HTTPS协议指定代理
FTP_PROXY=http://192.168.200.211:3128 #为使用FTP协议指定代理
NO_PROXY=http://192.168.200.,192.168.100. #对两个局域网段不使用代理
export HTTP_PROXY HTTPS_PROXY FTP_PROXY NO_PROXY

source /etc/profile

 


配置透明代理并作为内网服务器的网关服务器(squid+iptables):
=========================================================================================================
透明代理服务器:
透明代理服务器的功能与传统代理是一致的,其透明功能是结合默认路由和防火墙的重定向策略实现的。
域名解析功能建议采用专用DNS服务器来实现,不建议交给SQUID服务器。

适合与局域网,不适合Internet

Linux网关服务器+Squid服务器:
内网(VMnet8):192.168.200.211
外网(VMnet2):172.16.1.2

Client 192.168.200.201 <VMnet8> [192.168.200.101 <Linux网关服务器+Squid服务器> 172.16.1.2 ] <VMnet2> WEB服务器172.16.1.3
GW:192.168.200.101

修改squid主配置文件
[root@proxy ~]# vim /etc/squid.conf
http_port 3128 transparent

设置iptables的重定向(REDIRECT)策略,及本机端口重定向,将访问网站协议http,https的外发数据包交给本机的Squid服务(3128)端口
REDIRECT 重定向 ,在防火墙主机内部转发数据包(只能在nat表的PREROUTING或OUTPUT链及其他调用链中使用)结合 “--to-ports 端口号” 映射目标端口

[root@proxy ~]# iptables -t nat -I PREROUTING -i eth0 -s 192.168.200.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128

[root@proxy ~]# iptables -t nat -I PREROUTING -i eth0 -s 192.168.200.0/24 -p tcp --dport 443 -j REDIRECT --to-ports 3128
[root@proxy ~]# service iptables save
[root@proxy ~]# iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
REDIRECT tcp -- 192.168.200.0/24 anywhere tcp dpt:https redir ports 3128
REDIRECT tcp -- 192.168.200.0/24 anywhere tcp dpt:http redir ports 3128

[root@proxy ~]# service squid restart
停止 squid:. [确定]
启动 squid:. [确定]

[root@proxy ~]# tail -f /usr/local/squid/var/logs/access.log
1453818728.932 10 192.168.200.254 TCP_MISS/200 358 GET http://172.16.1.212/ - ORIGINAL_DST/172.16.1.212 t
ext/html

web服务器 外网(VMnet2):172.16.1.212
[root@web ~]# mount /dev/cdrom /media/cdrom/
[root@web ~]# rpm -ivh /media/cdrom/Packages/httpd-2.2.15-39.el6.x86_64.rpm
[root@web ~]# echo "<h1>www.crushlinux.com</h1>" > /var/www/html/index.html
[root@web ~]# service httpd start
[root@web ~]# service iptables stop

[root@web ~]# tail -f /var/log/httpd/access_log

 

客户端设置 (VMnet8):192.168.200.254
网关设置为:iptables IP 即:192.168.200.211

浏览器访问:http://172.16.1.3


linux 客户机的命令界面,可以通过Unset命令取消变量
[root@client ~]# unset HTTP_PROXY HTTPS_PROXY FTP_PROXY NO_PROXY

 

ACL 访问控制
=========================================================================================================
Squid提供了强大的代理控制机制,通过结合ACL(Access Control List,访问控制列表)进行限制,可以针对源地址,目标地址,访问的URL路径,访问的时间等进行条件过滤。


在squid.conf文件中,HTTP的访问控制主要由 acl 和 http_access 共同实现,控制条件和实施控制
1)使用acl定义需要控制的条件
2)通过http_access对已定义的列表做allow或deny访问控制


1)定义acl访问控制列表
acl 列表名称 列表类型 列表内容

列表名称 管理员自定义的,用于识别控制条件
列表类型 squid预定的值,对应不同类别的控制条件
列表内容 控制的具体对象,不同类型的列表所对应的内容也不一样(可包含多个值,之间是“或”关系),只要满足一个值即可匹配成功

列表类型 列表内容示例 含义/用途
src 192.168.1.168 源IP地址、网络地址、IP地址范围
192.168.1.0/255.255.255.0
192.168.1.0-192.168.3.0/24

dst www.playboy.com 目标IP地址,网段、域名
216.163.137.3
61.135.167.0/24

port 80 8000 8080 21 目标端口

srcdomain .benet.com .accp.com 客户端来源域
dstdomain .qq.com .msn.com 目标域,匹配内的所有站点

time MTWHF 8:30-17:30 用户上网时间段
12:00-13:00 M Monday
AS T Tuesday
W Wednesday
H Thursday
F Friday
A Saturday
S Sunday


maxconn 20 每个客户端的并发HTTP连接数
url_regex url_regex -i ^rtsp:// ^mms:// 用户访问的整个URL网址,可使用正则表达式 -i 忽略大小写
url_regex -i \.mp3$ \.rar$

urlpath_regex urlpath_regex -i sex adult nude 匹配用户的访问路径,可使用正则表达式
urlpath_regex -i \.mp3$ \.rar$

 

2)设置访问权限

acl all src 0.0.0.0/0.0.0.0 #任意客户机地址
acl localhost src 127.0.0.1/255.255.255.255 #源地址为127.0.0.1
acl MYLAN src 192.168.1.0/24 192.168.200.0/24 #客户机网段
acl to_localhost dst 127.0.0.0/8 #目标地址为127.0.0.0/8网段
acl MC20 maxconn 20 #最大并发连接20
acl BlackURL url_regex -i ^rtsp:// ^emule:// #以 rtsp:// emule:// 等开头的URL路径
acl MEDIAFILE urlpath_regex -i \.mp3$ \.mp4$ \.rmvb$ #以.mp3 .mp4 .rmvb结尾的URL路径
acl WORKTIME time MTWHF 08:30-17:30 #时间为周一至周五08:30-17:30

 


[root@proxy ~]# mkdir /etc/squid
[root@proxy ~]# cd /etc/squid
[root@proxy squid]# vim ipblack.list #建立目标IP地址名单
61.135.167.36
125.39.127.25
60.28.14.0/24

[root@proxy squid]# vim dmblack.list #建立目标域地址名单
.qq.com
.msn.com
.live.com
.verycd.com


设置acl访问权限,需放在对应的acl配置行之后:
http_access allow 列表名
http_access deny 列表名


[root@proxy squid]# vim /etc/squid.conf
acl localhost src 127.0.0.1/255.255.255.255
acl MYLAN src 192.168.1.0/24 192.168.200.0/24
acl to_localhost dst 127.0.0.0/8
acl MC20 maxconn 20
acl BlackURL url_regex -i ^rtsp:// ^emule://
acl MEDIAFILE urlpath_regex -i \.mp3$ \.mp4$ \.rmvb$
acl WORKTIME time MTWHF 08:30-17:30

acl IPBLACK dst "/etc/squid/ipblack.list"
acl DMBLACK dstdomain "/etc/squid/dmblack.list"

http_access deny MYLAN MEDIAFILE #禁止客户机下载MP3,MP4等文件
http_access deny MYLAN IPBLACK #禁止客户机访问黑名单中的IP地址
http_access deny MYLAN DMBLACK #禁止客户机访问黑名单中的网站域
http_access deny MYLAN MC20 #客户机的并发连接超时20时将被组织
http_access allow MYLAN WORKTIME #允许客户机在工作时间上网
http_access deny all #默认禁止所有客户机使用代理


列表名可以出现多个 "与" 关系,空格分开,若需要使用取反条件,可以在控制列表前添加“!”符号


http_access 按照先后顺序进行扫描,找到匹配就不再向后搜索
没有设置任何规则时:Squid服务将拒绝客户端的请求
有规则但找不到匹配的项,squid将采用与最后一条规则相反的权限,即如果最后一条规则是allow,那么就拒绝客户端请求,否则就允许

建议将常用规则放到前面,减少squid的负载。在访问控制的总体策略上,建议采用“先拒绝后允许”或“先允许后拒绝”的方式
最后加上一条设为默认策略。 http_access allow all 或者 http_access deny all


3)验证访问控制效果

测试访问权限限制
[root@proxy squid]# cat ipblack.list
61.135.167.36
125.39.127.25
60.28.14.0/24
172.16.1.212
[root@proxy squid]# service squid restart

客户机访问 http://172.16.1.212


测试文件下载限制
[root@web ~]# dd if=/dev/zero of=/var/www/html/test bs=1M count=15
[root@web ~]# service httpd restart

客户机访问 http://172.16.1.212/test

 


Squid日志分析:
Sarg全名是Squid Analysis Report Generator 是一款 Squid日志分析工具,采用Html格式,可以列出每一位用户访问Internet的站点信息,时间占用信息,排名,连接次数,访问量等

1.安装GD库
[root@proxy ~]# yum -y install gd httpd
[root@proxy ~]# service httpd start
[root@proxy ~]# mkdir /usr/local/sarg
[root@proxy ~]# tar xf sarg-2.3.7.tar.gz -C /usr/src/
[root@proxy ~]# cd /usr/src/sarg-2.3.7/
[root@proxy sarg-2.3.7]# ./configure --prefix=/usr/local/sarg/ --sysconfdir=/etc/sarg --enable-extraprotection && make && make install

--sysconfdir=/etc/sarg         #配置文件目录,默认是/usr/local/etc
--enable-extraprotection             #添加额外的安全保护

2.配置sarg
[root@proxy ~]# cd /etc/sarg/
[root@proxy sarg]# vim sarg.conf
7 access_log /usr/local/squid/var/logs/access.log          #指定squid的访问日志文件
25 title "Squid User Access Reports"                    #网页标题
120 output_dir /var/www/html/sarg              #sarg报告的输出目录
178 user_ip no                            #使用用户名显示
206 exclude_hosts /usr/local/sarg/noreport          #指定不计入排序的站点列表文件
184 topuser_sort_field connect reverse              #在top排序中,指定连接次数,访问字节数,采用降序排序,升序将reverse换成normal
190 user_sort_field connect reverse          #对于用户访问记录,连接次数按降序排序
257 overwrite_report no              #当那个日期报告已经存在,是否覆盖报告
289 mail_utility mailq.postfix               #发送邮件报告的命令
434 charset UTF-8                   #使用字符集
518 weekdays 0-6                                         #指定top排序时的星期周期,0为周日
523 hours 9-12,14,16,18-20                               #指定top排序时的时间周期
633 www_document_root /var/www/html          #网页根目录

为不计入排序的站点准备配置文件,文件中添加的域名不被显示在排序中

[root@proxy sarg]# touch /usr/local/sarg/noreport

设置命令符号连接,便于执行sarg
[root@proxy sarg]# ln -s /usr/local/sarg/bin/sarg /usr/local/bin/

[root@proxy sarg]# sarg
SARG: 纪录在文件: 20, reading: 100.00%
SARG: 成功的生成报告在 /var/www/html/squid-reports/2016Jan2
9-2016Jan29


客户机访问 http://192.168.200.211/sarg/index.html


计划任务:
[root@proxy ~]# vim /usr/local/sarg/daily.sh #每日报告
#!/bin/bash
#Get current date
TODAY=$(date +%d/%m/%Y)
#Get one week ago today
YESTERDAY=$(date -d "1 day ago" +%d/%m/%Y)

/usr/local/sarg/bin/sarg -l /usr/local/squid/var/logs/access.log -o /var/www/html/sarg -z -d $YESTERDAY-$TODAY &> /dev/null exit 0

[root@proxy ~]# chmod +x /usr/local/sarg/daily.sh
[root@proxy ~]# crontab -e #添加计划任务,每天00:00执行
00 00 * * * /usr/local/sarg/daily.sh
[root@proxy ~]# service crond restart
[root@proxy ~]# chkconfig crond on

 

扩展实验:配置反向代理
=========================================================================================================
主要面向Internet中的客户端提供服务,对访问企业内部的web站点提供缓存加速,访问目标相对比较固定
使用squid反向代理,真正提供web服务的站点可以位于Internet,也可以位于企业局域网内,提供web服务的主机可以只有一个,也可以有多个(集群)

WEB服务器 192.168.200.212 <VMnet8> [192.168.200.211 <Linux网关服务器+Squid服务器> 172.16.1.2 ] <VMnet2> Client 172.16.1.100

反向代理服务器地址:

内网(VMnet8):192.168.200.211
外网(VMnet2):172.16.1.2


添加反向代理支持
[root@proxy ~]# vim /etc/squid.conf
http_port 172.16.1.2:80 vhost


vhost 虚拟主机映射(vhost与transparent不可同时使用)

cache_peer web服务器地址 服务器类型 http端口 icp端口 [可选项]

服务器类型:到目标主机的缓存级别,上游web主机一般使用parent
icp端口: 用于连接相邻ICP(Internet Cache Protocol)缓存服务器(通常为另一台squid主机没有则为 0)
可选项: 提供缓存时的一些附件参数,
originserver 该服务器作为提供web服务的原始主机
weight=n 指定服务器的优先级,n为数字,数字越大优先级越高(默认为 1)
max-conn=n 指定反向代理主机到该web服务器的最大连接数

案例:
cache_peer 192.168.200.212 parent 80 0 originserver weight=5 max-conn=30
cache_peer 192.168.200.200 parent 80 0 originserver weight=2 max-conn=15


[root@proxy ~]# vim /etc/squid.conf
cache_peer 192.168.200.212 parent 80 0 originserver

[root@proxy ~]# service squid restart
停止 squid: [确定]
启动 squid:. [确定]
[root@proxy ~]# service iptables stop
清除防火墙规则: [确定]
把 chains 设置为 ACCEPT 策略:nat filter [确定]
正在卸载 Iiptables 模块: [确定]

[root@proxy ~]# tail -f /usr/local/squid/var/logs/access.log
1453824172.602 3 172.16.1.100 TCP_MISS/200 358 GET http://172.16.1.2/ - FIRSTUP_PARENT/192.168.200.212 t
ext/html


web服务器:192.168.200.212
[root@web ~]# hostname web.com
[root@web ~]# bash
[root@web ~]# mount /dev/cdrom /mnt/
[root@web ~]# rpm -ivh /mnt/Server/httpd-2.2.3-43.el5.i386.rpm
[root@web ~]# echo "www.crushlinux.com" > /var/www/html/index.html
[root@web ~]# service httpd start
停止 httpd: [确定]
启动 httpd: [确定]

[root@web ~]# tail -f /var/log/httpd/access_log
192.168.200.211 - - [27/Jan/2016:08:03:20 +0800] "GET / HTTP/1.1" 200 28 "-" "Mozilla/4.0 (compatible; MSIE 6
.0; Windows NT 5.1; SV1)"


客户端设置 (VMnet2):172.16.1.100
浏览器访问:http://172.16.1.2

 

Squid 代理服务器的构建与访问控制