Chinaunix首页 | 论坛 | 博客
  • 博客访问: 86415
  • 博文数量: 18
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 272
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-14 17:24
文章分类

全部博文(18)

文章存档

2011年(1)

2009年(17)

我的朋友

分类: LINUX

2009-08-13 17:11:08

Squid(代理服务器)
 
安装
rpm -ivh /mnt/Server/squid-2.6.STABLE6-5.el5_1.3.i386.rpm
启动前先编辑配置文件,否则服务起不来
 
配置文件一共有4K多行……狂晕。(不过大部分是注释)
 
先添加一行
visible_hostname 192.168.0.1 --让服务器知道自己是谁,这就是为什么前面装完直接启服务起不来的原因了
然后修改缓存目录相关的信息:
 
#       (hard coded at 1 MB).
#
#Default:
# cache_dir ufs /var/spool/squid 100 16 256
                                                              993,3         22%
这里就是执行squid -Z初始化的时候的配置
意思为:缓存目录  存储格式  路径 大小(MB) 一级目录 二级目录
默认是100MB,16个一级目录,每个一级目录下有256个二级目录,存放分类的缓存内容,默认的目录应该是够了,所有我们不用改它
还有个高速缓存的配置
#
#Default:
# cache_mem 8 MB (大小根据实际空闲内存大小设置,空闲内存60%)
直接缓存在内存里面
 
注意这里虽然有#号注释,但是squid的注释文件里如果有Default这个关键字就说明下面的配置是默认有效的;一旦这里的缓存设置设置好以后启动服务,以后都不要去更改它了,不然会有问题。
 
 
保存以后启动服务:
service squid start (不用squid -Z初始化)
 
这样就可以工作了,但是默认是拒绝所有的,我们还要配置访问规则
编辑配置文件
 
#Recommended minimum configuration:
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT
这里是系统默认设置的一些acl的别名,在写acl的时候可以引用定义好的acl别名。我们可以自己设置一个
acl internal src 10.0.0.0/24  --所有内部主机
然后写个最简单的,允许internal上网
#Default:
# http_access deny all

#
#Recommended minimum configuration:
#
# Only allow cachemgr access from localhost
http_access allow manager localhost
http_access deny manager
# Deny requests to unknown ports
http_access deny !Safe_ports
# Deny CONNECT to other than SSL ports
http_access deny CONNECT !SSL_ports
#
http_access allow internal
http_access deny all
最后面写上拒绝所有,(这段话有点问题,我自己做实验没有写最后一行,也可以,有待核实。因为上面有个default的deny all,所以按这个顺序,默认拒绝所有就不会再匹配后面的规则了。写到下面的没注释,应该是优先。(不放心可以吧上面那个Default的删除))
 
squid默认代理端口3128,在客户机的浏览器设置就可以了。(client不用设网关)
 
vim /etc/sysctl.conf
# sysctl.conf(5) for more details.
# Controls IP packet forwarding
net.ipv4.ip_forward = 0    --没开内核转发,即没有启用linux的路由功能,证明是通过代理的
透明代理:
 
iptables -t nat-A PREROUTING -s 10.0.0.0/8 -p tcp -dport 80 -j REDIRECT \
--to-port 3128
 
下班,待续
阅读(715) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~