首先介绍下代理的几种方式
1.普通代理:需要客户机在浏览器中设定代理服务器的地址和端口。
2.透明代理:适用于企业网关主机,客户机不需要指定代理服务器地址端口等信息,通过iptables将客户机的web访问数据交给代理服务程序处理。
3.反向代理:外部用户通过代理服务器来访问公司内部数据。
squid的安装
yum -y install squid*【默认安装的配置文件地址在/etc/squid/squid.conf】【squid命令】service squid start/restart/stop 【启动服务】squid -k reconfig 【重新加载配置文件】
在配置之前 首先要了解一下 ACL访问控制
定义ACL列表acl 列表名 列表类型 列表内容例子:acl all src 192.168.10.0/24定义acl动作http_access deny/allow 列表名例子: http_access allow all列表类型src 源ipdst 目的ipport 端口srcdomain 源域名dstdomain 目的域名time 时间maxconn 最大连接数url_regex url正则过滤urlpath_regex urlpath正则过滤
1.普通代理配置
假设squid服务器的ip为 192.168.10.1做测试请先清空squid.conf文件内容vi /etc/squid/squid.conf在squid.conf中加入http_port 192.168.10.1:3128visible_hostname 192.168.10.1acl innet src 192.168.10.0/24acl all src 0.0.0.0/0.0.0.0http_access allow innethttp_access deny all
2.透明代理配置
1.修改squid.conf的 http_port为http_port 192.168.10.1:3128 transparent2.重新加载配置文件squid -k reconfig3.添加iptables规则把全部的内部http请求重定向到3128端口iptables -t nat -I PREROUTING -i eth0 -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
3.反向代理
修改squid.conf为http_port 200.168.10.1:80 vhostvisible_hostname 200.168.10.1acl all src 0.0.0.0/0.0.0.0http_access allow allcache_peer 192.168.10.2 parent 80 0 originserver如果是反向代理需要配置虚拟主机(同ip同端口不同域名)映射则代码为http_port 200.168.10.1:80 vhostacl all src 0.0.0.0/0.0.0.0cache_peer 192.168.10.2 parent 80 0 originserver name = a cache_peer 192.168.10.2 parent 80 0 originserver name = bcache_peer_domain a www.lamp.comcache_peer_domain b www.baidu.comcache_peer_access a allow allcache_peer_access b allow all