Squid配置说明

898阅读 0评论2012-04-03 linux_kaige
分类:

版本 11.10 server

安装 squid (版本为2.7):
apt-get install squid

配置 squid:
vi /etc/squid/squid.conf

基本配置项说明:

http_port IP:端口 设置squid监听的IP地址和端口

cache_mem 指定使用多少物理内存作为高速缓存.如果这台服务器仅用于共享上网,没有其他服务,
则可加大物理内存的1/2,但如果还有其他服务则cache_mem的大小不应超过物理内存
的1/3,否则会影响服务器的总体性能.

cache_dir ufs /var/spool/squid 4096 16 256
指定硬盘缓冲区的大小,其中ufs指的是缓冲的存储类型,一般为
ufs,/var/spool/squid指硬盘缓冲存放的目录,4096代表缓存空间最大为4096M,
16代表squid可以在硬盘缓冲存放的目录下建立的第一级子目录的数目,缺省值为16.
最后的256是可以建立第二级子目录的数目,缺省值256.

maximum_object_size 最大/最小单文件大小
minimum_object_size

maximum_object_size_in_memory
minimum_object_size_in_memory
内存中最大/最小单文件大小

error_directory         错误文档目录

dns_nameservers IP 为了使Squid能解析域名,必须告诉squid有效DNS服务器..

cache_access_log 定义了访问记录日志文件的路径,该日志记录了用户访问Internet的详细信息,
通过日志文件可以查看每台客户机上网的记录...所以大家不要干坏事的...

cache_log 设置记录缓存的相关信息日志文件的路径...

cache_store_log         定义了记录网页在缓存中调用情况日志文件的路径...

visible_hostname 定义了运行squid的主机名称,当访问发生错误时,该选项的值会显示在错误提示网页
中.建议输入主机的IP地址.

cache_mgr 定义设置squid管理员的d E-mail地址,当访问发生错误时,该选项会显示在页面上.

reply_body_max_size 缓存目录大小

cache_effective_user squid         设定使用缓存的有效用户.(系统默认)

cache_effective_group squid        设定使用缓存的有效用户组(系统默认)



acl访问控制:

列表类型:
src IP                源IP地址(客户机的IP地址).
dst IP                目标地址(服务的器IP地址).
scrdomain             源名称  (客户机所属的域).
dstdomain             目标名称(服务器所属的域).
url_regex             URL规则的表达式
urlpath_regex:        URL-path  略去协议和主机名的URL规则表达式匹配.
proxy_auth            通过外部程序进行用户认证.
maxconn               单一IP最大连接数.
time                  语法:[星期][时间段]
                      Monday-M;Tuesday-T ... Sunday-S

例子:
# 禁止地址或者网段(修改掩码可以设置网段,修改dst或src实现目的或源)
acl dropip src 192.168.5.110/32
http_access deny dropip

# 禁止源地址 /etc/squid/clist 列表
acl clist src "/etc/squid/clist"
http_access deny clist

# 禁止用户访问新浪域名
acl dropurl dstdomain
http_access deny dropurl

# 禁止访问域名包含sina.com的网站(-i 忽略大小写)
acl dropurl1 url_regex -i sina.com
http_access deny dropurl1

# 限制IP地址为192.168.5.200客户机并发最大连接数为5
acl clientip src 192.168.5.200
acl conn5 maxconn 5
http_access deny clientip1 conn5

# 禁止192.168.5.0这个网段在周一至周五的9:00至15:00上网
acl clientnet src 192.168.5.0/24
acl worktime tiem MTWHF 9:00-15:00
http_access deny clientnet worktime

# 禁止下载MP3 exe rar为后辍名的文件
acl download urlpath_regex -i \.MP3$ \.exe$ \.rar$
http_access deny download


运行squid:

添加squid账户
useradd squid

创建我们指定的缓存服务目录和修改权限为配置文件中的squid账户
mkdir -p /var/spool/squid /var/squid /var/squid
chown -R squid:squid /var/spool/squid /var/squid

创建子目录
squid -z

检查语法
squid -k parse

没有任何提示的话就证明配置正确,运行 squid 命令,默认为后台守护进程.

再端口重定向(把访问80端口的数据定义到我们的本机的squid监听端口)
  1. # 定义到本机的3180端口
  2. iptables -t nat -A PREROUTING -s 10.10.10.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3180
  3. # 定义单独的squid服务器
  4. iptables -t nat -A PREROUTING -s 10.10.10.0/24 -p tcp --dport 80 -j DNAT --to 172.0.0.2:3180

模版:
  1. http_port 10.10.10.1:3180 transparent
  2. cache_mem 128 MB
  3. cache_dir ufs /var/spool/squid 4096 16 256
  4. dns_nameservers 61.128.128.68
  5. cache_access_log /var/squid/access.log
  6. cache_log /var/squid/cache.log
  7. cache_store_log /var/squid/store.log
  8. visible_hostname 10.10.10.1
  9. cache_effective_user squid
  10. cache_effective_group squid

  11. acl all src all
  12. acl dropurl url_regex -i sina.com
  13. acl download urlpath_regex -i \.MP3$ \.exe$ \.rar$

  14. http_access deny dropurl
  15. http_access deny download


  1. http_port 122.228.70.202:3180 transparent
  2. cache_mem 4000 MB
  3. maximum_object_size 20480 KB
  4. minimum_object_size 1 KB
  5. cache_dir ufs /var/spool/squid 80960 16 256
  6. dns_nameservers 61.153.177.196
  7. cache_access_log /dev/null
  8. cache_log /dev/null
  9. cache_store_log none
  10. visible_hostname 122.228.70.202
  11. cache_effective_user squid
  12. cache_effective_group squid
  13. request_header_access Server deny all
  14. request_header_access Via deny all
  15. request_header_access X-Forwarded-For deny all

  16. http_access allow all

操作完毕后重新启动服务读取新的配置: service squid restart

这里有更相信的acl访问控制说明:
http://blog.csdn.net/gengoo/article/details/5158238

Squidclient简要参数说明:
取得squid运行状态信息:   squidclient -p 3180 -h 192.168.2.250 mgr:info
取得squid内存使用情况:   squidclient -p 3180 -h 192.168.2.250 mgr:mem
取得squid已经缓存的列表: squidclient -p 3180 -h 192.168.2.250 mgr:objects
取得squid的磁盘使用情况: squidclient -p 3180 -h 192.168.2.250 mgr:diskd



上一篇:TCP三次握手过程基础知识
下一篇:Linux的启动流程详解