xsmscb 发表于 2018-12-26 08:48:25

初装squid

1,安装
   
rpm -ivh

2,初步配置文件

# cat /etc/squid/squid.conf
http_port 192.168.0.151:3128                        #监听客户机请求
cache_mem 64 MB                                       #设置一部分内存为高速缓冲区
cache_dir ufs /uar/spool/squid 4096 16 256       #设置硬盘存储位置,大小(4096MB),一级目录数目(16),二级目录数目(256)
cache_effective_user squid                              #设定缓存有效用户和组
cache_effective_group squid
dns_nameservers 202.106.0.20                        #设定DNS,为了DNS能解析域名
cache_access_log /var/log/squid/access.log         #设置访问日志文件
cache_log /var/log/squid/cache.log                     #设置缓存日志文件
cache_store_log /var/log/squid/store.log            #设置了网页在缓存中调用情况日志文件
visible_hostname 192.168.16.1                            #定义主机名
cache_mgr 345013657@qq.com                           #定义管理员联系方式
acl all src 0.0.0.0/0.0.0.0                                 #设置访问列表,默认是拒绝所有。所以要开放
http_access allow all

3,创建squid使用硬盘缓冲区的目录结构

/usr/abin/squid -z

4,设置squid错误提示信息为中文


mv /etc/squid/errors /etc/squid/errors.bak
ln -s /usr/share/squid/errors/Simplify_Chinese /etc/squid/errors
/etc/init.d/squid reload

5,设置访问控制列表


由于squid是按照顺序读取访问控制列表的,因此把拒绝所有放在最后:
acl all src src 0.0.0.0/0.0.0.0
http_access deny all

6,acl举例


acl badclientpl src 192.168.16.200
http_accessdenybadclientpl
定义了一个名叫badclientpl的ACL,类型为src源IP地址方式。
然后用http_access禁止该列表

acl badclientpl dst 192.168.16.200
http_accessdenybadclientpl
禁止用户访问这个目的网站

acl badclientpl url_regex -i 163.com
http_accessdenybadclientpl
禁止用户访问域名包含有163.com的网站

acl qq url_regex -i qq
http_accessdenyqq
禁止用户访问QQ(禁止用户访问URL中含有qq的网站)

7,实现透明代理:squid和NAT结合

在squid.conf的ACL访问控制语句前加上四条关键语句:
http_accel_host virtual       #用来定义squid加速模式,这里用virtual 来指定为虚拟主机模式,加速端口为80
http_accel_port 80
http_accel_with_proxy_on#既是WEB请求加速器,又是缓存代理服务器
http_accel_uses_host_header on

配置iptables,将80端口的请求转发到8080端口
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
然后在主机上开启内核转发:
sysctl -w "net.ipv4.ip_forward=1"





页: [1]
查看完整版本: 初装squid