squid安装设置(实现透明代理)

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

squid安装设置(实现透明代理)


来源: ChinaUnix博客 日期: 2006.05.22 15:31 (共有0条评论) 我要评论





下载软件包(我用的是squid-2.5.STABLE13.tar.gz)

我们公司代理服务器主机名称:Pproxy双网卡(接两个子网,然后连入internet)
OFFICE PC + OFFICE Servers
|
|
Pproxy.eth0(10.82.0.2)-----HUB--FireWall(10.82.0.3)----internet
|
|
Pproxy.eth1(192.168.1.2)---HUB --- OFFICE PC(192.168.1.0/24)
eth1与eth0网关为10.82.0.3
OFFICD PC + Server每个机子为单网卡双IP 10.82.0.0/24 192.168.1.0/24)
以下步骤全部以root用户进行
我用的RHlinux9.0,故先卸载安装系统时默认安装的squid(该Squid不支持MAC控制)
rpm -e squid

为系统添加squid用户(RHlinux安装squid过程中已经建立了用户squid,我试着用该用户建立缓存,总出错误。所以先删除RHlinux建立的用户,再重新添加)
userdel squid
groupdel squid
useradd squid
groupadd squid

把squid-2.5.STABLEA13.tar.gz拷贝到/usr/local/squid下(注意,以后启动squid必须用命令[root@pc]#/usr/local/squid/sbin/squid start)解压 安装
tar zxvf squid-2.5.STABLE13.tar.gz
或者
tar xvfj squid-2.5.STABLE.tar.bz2

改掉目录squid-2.5.STABLE的名字,方便,美观
mv squid-2.5.STABLE squid

编译
./configure --prefix=/usr/local/squid/ --enable-arp-acl --enable-err-language="Simplify_Chinese" --enable-default-err-languages="Simplify_Chinese" --enable-icmp --enable-linux-netfilter --enable-snmp --enable-storeio=ufs,null --enable-underscore --enable-delay-pools --enable-cache-digests -enable-auth-modules="NCSA"
--prefix=/usr/local/squid :指定安装路径 为便于管理,可用--sysconfdir=/etc把这个文件位置配置/etc
--enable-arp-acl #这样可以在规则设置中直接通过客户端的MAC地址进行管理,防止客户使用IP欺骗
--enable-async-io=80 :这个主要是设置async模式来运行squid,我的理解是设置用线程来运行squid,如果服务器配置很不错,有1G以上内存,cpu使用SMP的方式的话可以考虑设成160或者更高。如果服务器比较糟糕就根据实际情况设了。另外此项还另cache文件支持aufs
--enable-auth-modules 此编译选项启用认证模块,可以对访问代理用户进行授权。
--enable-cache-digests 使能缓存摘要,本来此项目的是为了在Squid集群服务之间迅速发现缓存对象,这里在本地使用,可以加快请求时,检索缓存内容的速度。
--enable-err-language="Simplify_Chinese" 和--enable-default-err-languages="Simplify_Chinese" :指定出错是显示的错误页面为简体中文
--enable-delay-pools 此选项使能一个延时池,这样能对某些特定的请求限制额定带宽。
--enable-gnuregex:由于Squid大量使用字

符串处理做各种判断,加此项能更好处理。
--enable-icmp :加入icmp支持
--disable-ident-lookups :防止系统使用RFC931规定的身份识别方法。
--enable-kill-parent-hack :关掉suqid的时候,要不要连同父进程一起关掉,这个当然要啦
--enable-linux-netfilter #允许使用Linux的透明代理功能。
--enable-poll :应启用Poll()函数而不是select()函数,通常而言poll(轮询)比select要好,但configure(脚本程序)已知Poll在某些平台下失效, 若你认为你比configure编译配置脚本程序要聪明的话,可以用这个选项启用Poll。总之就是用这个可以提升性能就是啦。
--enable-snmp :此选项可以让MRTG使用SNMP协议对服务器的流量状态进行监测,因此必须选择此项,使Squid支持SNMP接口。
--enable-storeio=ufs,null #使用的文件系统通常是默认的ufs,不过如果想要做一个不缓存任何文件的代理服务器,就需要加上null文件系统。
--enable-underscore :允许解析的URL中出现下划先,因为默认squid会认为带下划线的URL地址是非法的,并拒绝访问该地址。

系统缺省安装目录为/usr/local/squid。


设置squid.conf(以后慢慢续添,现在没空)
安装
make all
make install

查看是否可以启动
先启动缓存
/etc/local/squid/sbin/squid -z
一般出现的问题是squid对安装缓存的目录权限不够则开启适当的权限即可,例如
chown -R squid:squid /etc/local/squid/var
然后查看是否可以启动
/etc/local/squid/sbin/squid -DNdl
最后停留在一行(我忘了那行的标志了) 不动 则表示启动成功
用Ctrl+c终止
如果显示正常启动的正确信息 则现在可以启动Squid了

启动squid
/etc/local/squid/sbin/squid start

配置透明代理(squid+iptables一般安装系统默认安装了iptables)
cd /etc/rc.d
touch firewall
vi firewall
######### code(这些代码是师傅写的) ########
aecho "squid start"
/usr/local/squid/sbin/squid start
echo "starting ip forward"
echo "starting iptables rules"
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp
/sbin/iptables -t nat -F
/sbin/iptables -t nat -A POSTROUTING -s 10.82.0.0/24 -o eth1 -j SNAT --to-source 192.1.2.190
/sbin/iptables -t nat -A PREROUTING -s 10.82.0.0/24 -i eth0 -p tcp \
--dport 80 -j REDIRECT --to-port 3128
/sbin/iptables -A INPUT -j ACCEPT -m state \
--state NEW,ESTABLISHED,RELATED -i eth0 -p tcp \
--dport 3128
/sbin/iptables -A OUTPUT -j ACCEPT -m state \
--state NEW,ESTABLISHED,RELATED -o eth1 -p tcp \
--dport 80
/sbin/iptables -A INPUT -j ACCEPT -m state \
--state ESTABLISHED,RELATED -i eth1 -p tcp \
--sport 80
/sbin/iptables -A OUTPUT -j ACCEPT -m state \
--state ESTABLISHED,RELATED -o eth0 -p tcp \
--sport 80
######### code ########
chmod u+x firewall
vi /etc/rc.d/rc.

local
然后编辑rc.local文件
vi /etc/rc.d/rc.local
添上下面这句:
######### code ########
/etc/rc.d/firewall
######### code ########
作用是在系统启动时,执行firewall脚本。
OK 全部完工

还有些内容没写全 还有好几个功能没实现 等以后有空再写

NND 这么点东西 用了我两天时间才弄完
第一天尝试用RHlinux自带的squid进行配置 因为是rpm包安装系统时默认安装 不支持通过客户端的MAC地址进行管理
第二天开始重装操作系统和squid.tar.gz 下午进行透明代理配置
今天一大早去上班 我安装的Proxy Server还是出了很多问题 上网太慢 收发邮件(内网外网都是)太慢 不能MAC控制 不同IP不能互PING 等等等等问题 都是师傅一一改好的 我还没理出头绪来 只好慢慢添内容喽


相关文档
最新文档