分享
 
 
 

加速你的REDHAT AS 3.0上的SQUID透明代理

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

前些时在网上看到了张微波的《用squid再次疯狂加速你的web》一文后,我按原文在我的rhas 3.0上安装了一遍发现不能访问本地web服务器加之这篇文章缺少了相应的操作细节,因此我就在原文的基础上进行了补充和完善,希望大家都来关心squid的应用。

一、安装squid-2.5

groupadd squid

useradd ?g squid squid

rpm ?ivh squid-2.5.STABLE3-3.3E.i386.rpm

二、设置squid.conf文档:

#设定SQUID的代理端口 (加上IP地址,Squid就不会监听外部的网络接口)

http_port 192.168.0.1:3128

#配置选项是服务器管理者的电子邮件

cache_mgr llzqq@nero.3322.org

#设定错误文档

error_directory /usr/share/squid/errors/Simplify_Chinese

#设定电信公用DNS:

dns_nameservers 202.99.160.68 202.99.168.8

#设定标志主机名

visible_hostname nero.3322.org

#设定http1.1协议支持

httpd_accel_uses_host_header on

httpd_accel_host virtual

#是否让squid代理本地的web服务

httpd_accel_with_proxy on

#允许所有主机通过代理服务器上网

http_access allow all

#指定Squid可以使用的RAM

cache_mem 20 MB

#缓存文件的最大和最小值

maximum_object_size 4096 KB

minimum_object_size 0 KB

maximum_object_size_in_memory 30 KB

minimum_object_size_in_memory 0 KB

#设定squid的磁盘缓存目录(我们就是要在这个目录上做些手脚)

cache_dir ufs /tmp 100 16 256

#指定进行空间交换的空占比(缓存数值超过或低于某个百分比时和交换空间进行数据交换)

cache_swap_low 85

cache_swap_high 90

#被缓存服务器的port

httpd_accel_port 80

三、建立squid的高速缓存目录

大家知道通常情况下squid的缓存目录是建立在磁盘上的,这时磁盘的I/O就限制了squid性能的发挥,同时我们知道RAM是计算机中最快的存储单元,我们现在就关注一下怎样把squid的缓存目录放到系统RAM中去。我们注意到在linux的文件系统中/dev/shm是驻留在RAM 中的一个特殊的文件系统。好了我们的思路有了:把/dev/shm绑定到squid的缓存目录上。下面是操作的过程。

mkdir /dev/shm/tmp

chmod 1777 /dev/shm/tmp

mount --bind /dev/shm/tmp /tmp

上面的三个命令完成了目录的建立和绑定,但是我们reboot后就得重复上面的过程重新建立和绑定目录并且必须是在squid启动以前进行。为了解决这个问题我是这样作的,把三个命令加到squid的启动脚本中。

Vi /etc/init.d/squid

====================== squid =====================

PATH=/usr/bin:/sbin:/bin:/usr/sbin

export PATH

#

mkdir /dev/shm/tmp

chmod 1777 /dev/shm/tmp

mount --bind /dev/shm/tmp /tmp

squid ?z

#

# Source function library.

====================== squid =====================

chkconfig squid on

这样就能在我们每次开机的时候就能自动完成任务了。同时这样的设置对PHP的性能也有一定的提高

四、我的防火墙FOR ADSL

#!/bin/bash

# Do iptables based masquerading and firewalling.

# lllzqq. 02/28/2004

export PATH=/sbin:/usr/sbin:/bin:/usr/bin

modprobe iptable_nat

modprobe ip_nat_ftp

modprobe ip_nat_irc

modprobe ip_conntrack

modprobe ip_conntrack_ftp

modprobe ip_conntrack_irc

echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

echo 0 >/proc/sys/net/ipv4/conf/all/accept_source_route

echo 0 >/proc/sys/net/ipv4/conf/all/accept_redirects

echo 1 >/proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

echo 1 >/proc/sys/net/ipv4/conf/all/log_martians

echo 1 >/proc/sys/net/ipv4/ip_forward

/sbin/iptables -F INPUT

/sbin/iptables -F FORWARD

/sbin/iptables -X

/sbin/iptables -Z

## Allow forwarding through the internal interface

/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

## Do masquerading through ppp0

/sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

## Loopback - Allow unlimited traffic

/sbin/iptables -A INPUT -i lo -j ACCEPT

/sbin/iptables -A OUTPUT -o lo -j ACCEPT

## SYN-Flooding Protection

iptables -N syn-flood

iptables -A INPUT -i ppp0 -p tcp --syn -j syn-flood

iptables -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN

iptables -A syn-flood -j DROP

## Make sure that new TCP connections are SYN packets

/sbin/iptables -A INPUT -i ppp0 -p tcp ! --syn -m state --state NEW -j DROP

## SQUID

iptables -t nat -A PREROUTING -i eth0 -p tcp -s 0/0 --dport 80 -j REDIRECT --to-ports 3128

## HTTP

/sbin/iptables -A INPUT -i ppp0 -p tcp -s 0/0 --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT

/sbin/iptables -A INPUT -i ppp0 -p tcp -s 0/0 --sport 443 -m state --state ESTABLISHED,RELATED -j ACCEPT

/sbin/iptables -A INPUT -i ppp0 -p tcp -d 0/0 --dport 80 -j ACCEPT

/sbin/iptables -A INPUT -i ppp0 -p tcp -d 0/0 --dport 443 -j ACCEPT

## DNS

/sbin/iptables -A INPUT -i ppp0 -p udp -s 0/0 --sport 53 -m state --state ESTABLISHED -j ACCEPT

/sbin/iptables -A INPUT -i ppp0 -p udp -d 0/0 --dport 53 -j ACCEPT

## IP packets limit

/sbin/iptables -A FORWARD -f -m limit --limit 10/s --limit-burst 10 -j ACCEPT

/sbin/iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 3 -j ACCEPT

/sbin/iptables -A INPUT -i ppp0 -p icmp -j DROP

## FTP

/sbin/iptables -A INPUT -i ppp0 -p tcp --dport 21 -j ACCEPT

/sbin/iptables -A INPUT -i ppp0 -p tcp --dport 20 -j ACCEPT

/sbin/iptables -A INPUT -i ppp0 -p tcp --dport 30000:40000 -j ACCEPT

## SSH

/sbin/iptables -A INPUT -i eth0 -m mac --mac-source 00:F0:4B:92:B7:87 -p tcp --dport 22 -j ACCEPT

/sbin/iptables -A INPUT -p tcp --dport 22 -j DROP

## MAIL

/sbin/iptables -A INPUT -i ppp0 -p tcp --dport 25 -j ACCEPT

/sbin/iptables -A INPUT -i ppp0 -p tcp --dport 110 -j ACCEPT

## Anything else not allowed

/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

/sbin/iptables -A INPUT -i ppp0 -j DROP

五、附录:squid的一些常用功能的配置说明

# 允许某一特定网段通过代理服务器上网:

acl one_clients src 192.168.0.0/255.255.255.0

http_access allow one_clients

# 利用ARP地址标示客户:

acl OK arp 00:20:ed:39:48:b3 00:01:02:98:87:88 00:10:60:73:CE:BD

http_access allow OK

# cache_dir ufs /var/spool/Squid 100 16 256 指定Squid用来存储对象的交换空间的大小及其目录结构。100是交换空间大小,指100MB,16、256分别是一级目录、二级目录数量。

# 限制外网电脑使用代理,只允许IP为192.168.0.2~192.168.0.255的机器访问。

acl our_clients src 192.168.0.0/255.255.255.0

acl other_clients src 0.0.0.0/0.0.0.0

http_access allow our_clines

http_access deny other_clients (禁止其他用户通过本机上网)

# 限制使用时间。只允许IP为192.168.1.1~192.168.1.255的机器在每周一到周五的7∶00到17∶00使用。如果不限制周一到周五,把下面第二行“MTWHF”去掉。“!”表示逻辑非。

acl allow_time time MTWHF 8:30-12:00 14:00-17:30

http_access allow work_clients allow_time

http_access deny !work_clients

# 限制用户下载文件的类型如:.avi .mp3

acl mmxfile urlpath_regex ?i \.mp3$ \.avi$ (-i参数忽略大小写如:mp3=MP3)

http_access deny mmxfile

# 屏蔽某些含有特定关键词的站点:

acl refused_sites url_regex sex

也可把要禁止的站点写到文档中方便管理如下

acl refused_sites url_regex “/etc/squid/refused_sites.txt”

http_access deny fefused_sites

http_access allow all

注意:这些规则按照它们的排列顺序进行匹配检测,列表中的规则总是遵循由上而下的顺序。因为deny在前,将屏蔽所有电脑的访问,包括内网在内。我们可以定义多个ACL规则,但名字不能相同。

注意事项:

如果SQUID在启动时出错,在排错过程中可查看它的日志文件/VAR/LOG/SQUID,里面有SQUID出错的详细记录。我的squid配置文件ftp://test:123456@nero.3322.org/squid

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有