搭建squid代理服务器
传统代理
需要手动设置代理服务器的地址和端口,然后使用代理服务器访问网络
配置squid.conf
主要配置如下 http_port 3128 #用于指定代理服务器监听的地址和端口 cache_mem 64 MB #指定缓存功能使用的内存空间,建议为实际物理内存的1/4 maximum_object_size 4096 KB #允许保存到缓存空间的最大文件大小 visible_hostname localhost.localdomain #代理服务器的本地主机名称,uname –n可以看到 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选项”
设置代理
透明代理
提供予传统代理服务器相同的功能和服务,其区别在于:客户机不需要指定代理服务器的地址和端口,而是通过默认路由,防火墙策略将web访问重定向。
安装域名解析bind-9.3
[[email protected] ~]# 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%] [[email protected] ~]# 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%] [[email protected] ~]# 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%] [[email protected] ~]# cd /var/named/chroot/etc/ [[email protected] etc]# ls localtime named.caching-nameserver.conf named.rfc1912.zones rndc.key [[email protected] etc]# cp -p named.caching-nameserver.conf named.conf [[email protected] etc]# cat >named.conf <<end > options { > directory "/var/named"; > forwarders { 8.8.8.8; };//DNS解析转发给8.8.8.8处理 > }; > end [[email protected] etc]# service named restart 停止 named: [失败] 启动 named: [确定]
防火墙重定向请求:
[[email protected] ~]# iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-ports 3128//把所有80端口请求转交squid [[email protected] ~]# iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 443 -j REDIRECT --to-ports 3128////把所有443端口请求转交squid
配置squid.conf
[[email protected] ~]# vim /etc/squid/squid.conf http_port 192.168.1.10:3128 transparent //修改为透明模式
配置客户端ip,DNS使用192.168.1.10的代理
测试成功:
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
转载于:https://blog.51cto.com/dragon123/1591545