搭建squid代理服务器

简介:

搭建squid代理服务器


准备环境:

客户机:192.168.118.4

squid代理服务器:192.168.118.3(内网IP)1.1.1.1(外网IP)

web服务器:1.1.1.2


实现目标:客户机通过squid代理服务器访问web服务器


一、普通代理

1.首先将各个主机的防火墙关闭,然后实现squid服务器分别与另外两台机器互通

2.给web服务器搭建HTTP服务

[root@localhost ~]# yum -y install httpd

[root@localhost ~]# service httpd start

[root@localhost ~]# cd /var/www/html/

[root@localhost html]# echo "it is work" > index.html

测试能否成功访问

[root@localhost html]# elinks --dump 1.1.1.2 

3.squid在服务器上安装squid服务

[root@localhost ~]# yum -y install squid

[root@localhost ~]# service squid start

[root@localhost ~]# cd /etc/squid/

[root@localhost squid]# mv squid.conf squid.conf.bak

[root@localhost squid]# grep -vE "^$|^#" squid.conf.bak  > suqid.conf

[root@localhost squid]# vim squid.conf

修改允许所有主机访问

http_access allow all

添加缓存目录和高级缓存目录

cache_dir ufs /var/spool/squid 100 16 256

cache_mem 64 MB

[root@localhost squid]# service squid restart

测试访问web服务器

[root@localhost squid]# elinks --dump 1.1.1.2

4.设置客户机的浏览器

以火狐浏览器为例

首选项—高级—网络—设置—手动配置代理—HTTP代理:192.168.118.3 端口:3128

然后用浏览器访问web服务器1.1.1.2


二、透明代理

1.必须是网络中的网关主机。

2.必须和防火墙服务运行在同一台服务器上。

3.修改squid服务器

[root@localhost squid]# vim /etc/squid/squid.conf

修改

http_port 3128 transparent

[root@localhost squid]# service squid restart

停止 squid:.                                              [确定]

启动 squid:.                                              [确定]

4.修改防火墙规则

[root@localhost squid]# service iptables start

[root@localhost squid]# iptables -t nat  -A  PREROUTING -s 192.168.118.0/24 -i eth0  -p tcp  --dport 80  -j REDIRECT --to-ports    3128

查看防火墙规则

[root@localhost squid]# iptables -t nat -L

保存防火墙规则

[root@localhost squid]# service iptables save

5.修改客户机

取消浏览器的代理

设置网关为squid服务器的Ip地址

[root@localhost ~]# route add default gw 192.168.118.3

[root@localhost ~]# route -n

测试访问web服务器

[root@localhost ~]# elinks --dump 1.1.1.2


三、访问控制列表

1.在透明传输的基础上实现

2.修改squid服务器主机的配置文件

3.[root@localhost ~]# vim /etc/squid/squid.conf

添加以下

acl pc22 src 192.168.118.22/32   //声明一个源地址为192.168.118.22的地址

acl no_time time MTWHF 09:00-18:00   //声明一个时间段为周一到周五每天的9点到18点

acl no_nodamin dstdomain baidu.com qq.com  //声明两个域

acl no_url urlpath_regex -i \.mp3$ \.mp4$  //声明两个url地址,分别是音乐和电影地址

acl mynet src 192.168.118.0/24  //定义一个网段

http_access deny pc22  //拒绝192.168.118.22访问外网

http_access deny mynet no_time no_nodamin no_url//拒绝192.168.118.0网段在规定时间内访问指定网站和范围内的网址

http_access allow mynet  //允许所有该网段所有主机访问

修改

http_access deny all  //拒绝所有主机访问


[root@localhost ~]# service squid restart


4.内网的客户端验证

[root@localhost ~]# elinks --dump 1.1.1.2

修改IP地址

[root@localhost ~]# ifconfig eth0 192.168.118.22

[root@localhost ~]# elinks --dump 1.1.1.2

发现访问出错


可以得出squid的acl配置生效



四、反向代理

将内网主机作为web服务器供外网主机访问

1.在内网客户端IP地址为192.168.1.4的主机上配置以下

安装HTTP服务

[root@localhost ~]# yum -y install httpd

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf 

添加以下基于域名虚拟主机

NameVirtualHost *:80

<VirtualHost *:80>

    ServerName www.tarena.com

    DocumentRoot /var/www/html

</VirtualHost>

<VirtualHost *:80>

    ServerName bbs.tarena.com

    DocumentRoot /bbs

</VirtualHost>

建立虚拟主机主页

[root@localhost ~]# echo "<center><h1>inside-web</h1></center>" > /var/www/html/index.html 

[root@localhost ~]# mkdir /bbs

[root@localhost ~]# echo "bbs.tarena.com" > /bbs/index.html 

重启服务

[root@localhost ~]# service httpd restart

添加域名解析

[root@localhost bbs]# vim /etc/hosts

添加

192.168.118.4 www.tarena.com www

192.168.118.4 bbs.tarena.com bbs

验证能否正确访问虚拟主机

[root@localhost bbs]# elinks --dump www.tarena.com

                                   inside-web

[root@localhost bbs]# elinks --dump bbs.tarena.com

   bbs.tarena.com

2.修改squid主机配置文件

[root@localhost ~]# vim /etc/squid/squid.conf

修改

http_access allow all

http_port 80 vhost

添加

cache_peer 192.168.118.4 parent 80 0 originserver

重启服务

[root@localhost ~]# service squid restart


3.修改外网IP地址为1.1.1.2的主机

添加域名解析

[root@localhost ~]# vim /etc/hosts

添加

1.1.1.1 www.tarena.com www

1.1.1.1 bbs.tarena.com bbs

验证

[root@localhost ~]# elinks --dump www.tarena.com

                                   inside-web

[root@localhost ~]# elinks --dump bbs.tarena.com

   bbs.tarena.com

能否成功访问内网主机的web











本文转自 无心低语 51CTO博客,原文链接:http://blog.51cto.com/fengzhankui/1557117,如需转载请自行联系原作者

目录
相关文章
|
10月前
|
域名解析 存储 缓存
Squid代理服务器
Squid代理服务器
339 0
|
存储 缓存 安全
Web缓存服务——Squid代理服务器应用(下)
正向代理:代替客户端向服务端发送请求。 反向代理:代理服务端,将请求转发给多个服务端。
178 0
|
缓存 网络安全 Apache
Web缓存服务——Squid代理服务器应用(中)
正向代理:代替客户端向服务端发送请求。 反向代理:代理服务端,将请求转发给多个服务端。
180 0
|
缓存 前端开发 JavaScript
Web缓存服务——Squid代理服务器应用(上)
正向代理:代替客户端向服务端发送请求。 反向代理:代理服务端,将请求转发给多个服务端。
440 1
|
缓存 应用服务中间件 开发工具
squid反向代理
squid反向代理
|
缓存 监控 安全
squid 代理服务器应用(下)
定位是缓存加速 缓存从后端的web服务器获取到的 加速是为了客户端访问的 squid 三种模式: 传统代理 需要客户端指向squid代理服务器,客户端能感知到squid代理服务器的存在 透明代理(常用) 客户端不需要配置,只要直接访问即可,服务端,借助了防火墙规则及静态路由的方式,完成透明代理 反向代理 做为类似与Nginx服务器的反向代理功能,但自身不需要一个首页,基于IP:端口,权重的方式完成反向 代理 对于Squid自身的管理/功能 : ACL:主要做的是http access (基于http协议,access访问) 的允许和拒绝管理 sarg:日志分析功能,可以以天的方式指定将ac
squid 代理服务器应用(下)
|
缓存 网络安全
squid 代理服务器应用(上)
Squid 主要提供缓存加速、应用层过滤控制的功能。
squid 代理服务器应用(上)
|
Web App开发 缓存 监控
|
Web App开发 缓存 测试技术
|
Web App开发 缓存 监控