squid代理服务
代理服务是指由一台拥有标准IP地址的机器代替若干没有标准IP地址的机器和Internet上的其它主机打交道,提供代理服务的这台机器称为代理服务器。
squid工作机制与基本功能
工作机制
代理服务器有何优点
1.快速的存取
由于它是先将网页下载到本地使用,因此访问频率越高的站点速度就会越快 。
2.降低网络的费用.
Squid
Squid是Linux下最为流行的代理服务器软件,它功能强大。
Squid的做为代理 服务器,性能远远超过WINNT加MSPROXY2.0,为几百人的小型局域网代理绰绰有余。
1。 支持对HTTP,FTP,Gopher,SSL和WAIS等协议的代理。
2。 设置简单,只需对配置文件中稍稍改动就可使代理服务器运转起来。
配置参数
/etc/squid/squid.conf
1.http_port 10.10.10.1:3128
绑定的 IP 地址 .端口为 3128。
2.cache_mem指定squid可以使用的内存理想值,建议设为内存的1/3.
3 cache_dir ufs /var/spool/squid 100 16 256
定义硬盘缓存空间.
ufs是指存储类型,/var/spool/squid代表缓存的位置
100代表缓存空间最大为100M
16和256代表缓存目录下的一级和二级目录数。
简单的代理
例作一个简单的代理.
http_access deny all
deny 改为 allow.
#squid -z
#service squid start
访问控制
Squid 访问控制的两个要素
acl god src 192.168.100.0/24(1818)
http_access allow god(1860)
1.ACL
2.访问控制(允许或拒绝)
ACL
ACL格式:
acl 列表名称 控制方式 控制目标
acl god src x.x.x.x/24
访问控制
http_access allow/deny aclname
ACL控制类型
src : 源地址(即客户机IP地址)
dst : 目标地址(即服务器IP地址)
srcdomain : 源名称
dstdomain : 目标名称
time : 时间
url_regex : URL 规则表达式匹配
试验2 只允许地址为192.168.100.0/24的客户可以使用代理.
根据IP 控制
acl god src 192.168.100.0/24
http_access allow god
在http_access deny al前面添加
多个ip
IP地址写在一个文件里
acl good src "/etc/squid/authorizedip.txt“
试验3 代理两个网段其中172.16.0.0/16全可以上网,192.168.100.0/24的客户不可以使用代理,但是192.168.110.2可以。
acl god src 172.16.0.0/24
acl god1 src 192.168.100.2
acl god2 src 192.168.100.0/24
http_access allow god
http_access allow god1
http_access deny god2
实验3 根据时间控制
time 参数
S - Sunday,
M - Monday,
T - Tuesday,
W - Wednesday,
H - Thursday,
F - Friday
A - Saturday,
时间控制
acl work time MTWHF 8:30-12:00
acl work time MTWHF 14:00-18:00
http_access allow work
实验4 控制部分客户机时间 允许特定客户机在规定的时间访问
acl work time MTWHF 8:30-12:00
acl god src 10.0.0.0/8
http_access allow work god
acl总结
1. 这些规则按照它们的排列顺序进行匹配检测,一旦检测到匹配的规则,匹配检测就立即结束。
根据关键字过滤网址
实验5 过滤×××网站
acl god src 10.0.0.0/8
acl deny url_regex sex xxx
http_access deny deny
http_access allow god
实验7 禁止对某个IP地址的访问
acl badaddr dst 202.108.0.182
实验8控制文件类型
不允许用户下载MP3、AVI等文件
acl Xfile urlpath_regex \.mp3$ \.avi$
http_access deny Xfile
实验9 透明代理
添加或修改如下行
http_port 3128
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
#iptables -F
#echo 1 > /proc/sys/net/ipv4/ip_forward
#iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
#iptbales –t nat –A POSTROUTING –o eth0 –s 192.168.1.0/24 –j SNAT --to 166.32.129.10
#service iptables save