搭建squid代理服务器


wKiom1SVko_gHaIAAADuNBBzu4c215.jpg(图片来源网络)

传统代理

 手动设置代理服务器的地址和端口,然后使用代理服务器访问网络

配置squid.conf

主要配置如下
http_port 3128    #用于指定代理服务器监听的地址和端口
cache_mem 64 MB   #指定缓存功能使用的内存空间,建议为实际物理内存的1/4
maximum_object_size 4096 KB    #允许保存到缓存空间的最大文件大小
visible_hostname localhost.localdomain  #代理服务器的本地主机名称,uname �Cn可以看到
reply_body_max_size 10240000 allow all    #允许 用户下载的最大文件大小,单位字节
cache_dir ufs /var/spool/squid 100 16 256   #指定缓存数据所使用的目录,容量,子目录数量,ufs缓存文件格式。缓存目录分配的磁盘空间大小(单位MB),一级目录数量16个,二级目录数据量256个
cache_swap_high 90   #缓存目录空闲空间小于90%时,新缓存自动取代旧缓存
cache_swap_low 85    #空闲空间降到85%才停止取代
cache_replacement_policy lru   #缓存替换策略  
memory_replacement_policy lru   #内存替换策略  
memory_pools on   #开启内存池


客户端手动设置代理

打开浏览器的“Internet选项”

wKiom1SSyzDRpqYiAABmW6av8nA483.jpg

设置代理

wKioL1SSy9OwA2dnAAHRSPlPHBA796.jpg


透明代理

  提供予传统代理服务器相同的功能和服务,其区别在于:客户机不需要指定代理服务器的地址和端口,而是通过默认路由,防火墙策略将web访问重定向。

 

安装域名解析bind-9.3

[root@localhost ~]# rpm -Uvh /media/Server/bind-9.3.3-7.el5.i386.rpm 
warning: /media/Server/bind-9.3.3-7.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:bind                   ########################################### [100%]
[root@localhost ~]# rpm -Uvh /media/Server/caching-nameserver-9.3.3-7.el5.i386.rpm 
warning: /media/Server/caching-nameserver-9.3.3-7.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:caching-nameserver     ########################################### [100%]
[root@localhost ~]# rpm -Uvh /media/Server/bind-chroot-9.3.3-7.el5.i386.rpm 
warning: /media/Server/bind-chroot-9.3.3-7.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:bind-chroot            ########################################### [100%]
[root@localhost ~]# cd /var/named/chroot/etc/
[root@localhost etc]# ls
localtime  named.caching-nameserver.conf  named.rfc1912.zones  rndc.key
[root@localhost etc]# cp -p named.caching-nameserver.conf named.conf
[root@localhost etc]# cat >named.conf <<end
> options {
> directory "/var/named";
> forwarders { 8.8.8.8; };//DNS解析转发给8.8.8.8处理
> };
> end
[root@localhost etc]# service named restart
停止 named:                                               [失败]
启动 named:                                               [确定]


 防火墙重定向请求:

[root@localhost ~]# iptables -t nat -A PREROUTING -i eth1  -p tcp --dport 80 -j REDIRECT --to-ports 3128//把所有80端口请求转交squid
[root@localhost ~]# iptables -t nat -A PREROUTING -i eth1  -p tcp --dport 443 -j REDIRECT --to-ports 3128////把所有443端口请求转交squid


配置squid.conf

[root@localhost ~]# vim /etc/squid/squid.conf 
http_port 192.168.1.10:3128 transparent   //修改为透明模式


 


配置客户端ipDNS使用192.168.1.10的代理

wKiom1SSzE3zpgUCAAFZsTjNzBE935.jpg


测试成功:


wKiom1SSzH7xDh6EAADjuUtRnXE487.jpg


ACL控制上网行为

    


ACL列表名 类型 内容

http_accessallow或deny列表名

no_cacheallow或deny 列表名

acl all src 0.0.0.0/0.0.0.0
acl Safe_ports port 80 443#除80和443以外,!表示取反
acl ConnLimit maxconn 40    #多于40个请求
acl src_ip 192.168.2.167 192.168.1.0/24#源地址,网段   
acl dst_ip dst 192.168.2.167 192.168.1.0/24#目标地址,网段
acl dstdomain  .qq.com .taobao.com#匹配qq,淘宝的域名
acl forbid urlpath_regex   -i   \.mp3 \.rmvp  #匹配MP3,rmvb,-i表示不区分大小写
acl limit_time time 12:00-13:00 #匹配每天的12到13点,M-monday.T-tuesday.W-wednesday.H-Thursday.F-fariday.A-Saturday.S-sunday
acl QueryString urlpath_regex -i cgi-bin \? \.asp \.php \.jsp \.cgi#匹配动态内容    
no_cache deny query  #不缓存动态内容
http_access deny ConnLimit     
http_access allow all#接受所有请求,与ACL定义的all相关 
http_access deny !Safe_ports  #除80和443端口以外拒绝其他端口请求
http_access deny srcip  #源地址是192.168.1.0被拒绝
http_access deny dstdomain  #禁止上qq和淘宝
http_access deny forbid    #禁止下载MP3和rmvb


wKioL1SVoPyhskW_AAIZUI6WRkw550.jpg



你可能感兴趣的:(squid)