一、正向代理
正向代理就是通常所说的代理,是某台电脑通过一台服务器来上Internet网的这种方式,其中这台电脑就叫客户机,这台服务器就叫正向代理服务器也就是通常所说的代理服务器。在这种方式中,你是主动的,网站是被动的,网站那里不能得到你的真实ip地址。(通俗讲法)
正向代理服务器。它只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器(一般在IE-Internet选项-连接-局域网设置),并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。
常见的代理服务器有Squid、Varnish(只做反向代理)、ATS、Nginx(既是可以做web服务器又可以做反向代理,但通常做反向代理)
1、先在正向代理服务器安装squid组件【服务器需要2块网卡,1块是(图中eth1)桥接用来连接外网,一块是(图中eth0)host-only链接方式,用于和内网主机链接】
命令:通过yum库安装squid的rpm包
#yum -y install squid
接下来了解一下安装后主要文件存放位置:
/usr/sbin/squid 安装位置
/etc/init.d/squid 启动脚本
/etc/squid/squid.conf 主配置文件
Squid的监听端口是tcp/3128 udp/3130
安装完成后squid默认配置是作为正向代理,向内网用户提供链接外网服务,可以配置squid.conf来限制内网用户上网时间,访问网址限制,访问外网文件格式限制等
vim配置squid.conf文件 (别忘记配置前先复制备份)
在末行模式下查找http_port 大约在910行附近
修改http_port 192.168.140.131:3128 让squid监听eth0对应ip的的3128端口
同理查找cache_mem 大约在1576行附近
添加一行cache_mem 128 MB squid可以使用的内存大小
同理查找visible_hostname 大约在3004行附近
添加一行visible_hostname squid.a.org 服务器名随便设一个,自行解析容易出错
查找cache_dir 1783行附近
添加一行cache_dir ufs /var/spool/squid 100 16 256 此是设置缓存目录,100表示100M
做缓存,16个一级子目录,256个2级子目录
查找http_access 大约在637行
修改http_access deny all为http_access allow all 允许用户访问
上述操作仅仅是设置完内网可以通过squid访问外网,并没有对访问进行限制
squid初始化
命令:
#squid -z 生成缓存目录等
容易出现的问题解析:
2011/05/29 14:24:47| WARNING cache_mem is larger than total disk cache space!
2011/05/29 14:24:47| Creating Swap Directories
上述意思缓存128M比缓存目录100M大,需要调整
Vim编辑配置文件将cache_mem 80M在执行#squid -z
4、启动服务service squid start
[root@bogon ~]# service squid start
Starting squid: . [ OK ]
[root@bogon ~]#
通过windows的ie代理设置,检查squid工作
(也可以用另外一台虚拟机进行验证,此虚拟机用host-only连接,并指明代理服务器
命令#export HTTP_PROXY=http://192.168.140.131:3128)
通过编辑主配置文件的acl实现正向代理的访问控制:
acl 列表名称 列表类型 列表内容
例acl MYNETWORKS src 192.168.0.0/24
http_access allow MYNETWORKS 允许上面的时间段通过squid正向代理访问网络
http_access deny all 除了上面允许的访问控制之外全部拒绝访问
dst方法,禁止访问某网络
dstdomain方法 ,以主机名称或者域名的方式禁止访问
例 acl NOYAHOO dstdomain .yahoo.com
acl NOYAHOO dst .yahoo.com 此方法先解析ip再对ip禁止访问(一般用dstdomain)
url_regex -i 跟完整路径 -i忽略大小写
urlpath_regex 部分路径
port端口访问控制
proto定义协议哪些不能用
browser 浏览器访问控制
max-conn最大链接数 256
time根据时间指定访问控制
time [day-abbrevs] h1:m1-h2:m2
例 acl worktime time 08:00-12:00 14:00-18:00
http_access allow MYNETWORKS worktime (这两个访问列表取其交集,要同时满足条件)
转载于:https://blog.51cto.com/dreamhigh/581833