代理服务器是目前网络中常见的服务器之一,它可以提供文件缓存.复制和地址过滤等服务,充分利用有限的出口带宽,加快内部主机的访问速度,也
可以解决多用户需要同时访问外网,但共有IP地址不足的问题.同时可以作为一个防火墙,隔离内网与外网,并且能提供监控网络和记录传输信息的功能,加
强局域网的安全性等.它的主要作用有以下几点...
1.共享网络:它是代理服务器最主要的服务之一,内网的主机通过代理服务器可以同时访问外网,而不受公有IP地址数目的限制...
2.加快访问速度,节约通信带宽:
3.防止内部主机受到攻击:内部主机的访问是通过代理服务器完成的.在这个过程中,内部主机地址等信息不会发送到外部,这样外部攻击者就无法通
过扫描对内部主机进行渗透,进而起到保护内部主机的作用...
4.限制用户访问,完善网络管理:在代理服务器上设置相应的访问策略和访问权限.
代理分为:普通代理. (标准的传统的代理服务器,需要客户机在浏览器中指定代理服务器的IP地址...)
透明代理. (适用于企业的网关主机,共享接入Internet,客户机不需要指定代理服务器IP,端口等信息,需要设置防火墙策略将客户机的web访问
数据转交给代理服务程序处理..)
反向代理. (将客户机作为目的端,外网服务器作为客户端)
Squid是Linux和Unix平台下最为流行的高性能免费应用层代理服务器,它具有权限管理灵活,性能高,效率快等特点.
软件包名:squid
服务名:squid
主程序:/usr/sbin/squid
主配置文件:/etc/squid/squid.conf
默认监听端口:3128
默认访问日志文件:/var/log/squid/access.log
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。
cache_effective_user squid 设定使用缓存的有效用户.(系统默认)
cache_effective_group squid 设定使用缓存的有效用户组(系统默认)
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地址,当访问发生错误时,该选项会显示在页面上.
规则:我们还可以使用acl 定义squid访问控制列表.下面是其选项信息..
src IP 源IP地址(客户机的IP地址).
dst IP 目标地址(服务的器IP地址).
scrdomain 源名称 (客户机所属的域).
dstdomain 目标名称(服务器所属的域).
time 一天中的某一时刻和一周内的某一天.
url_regex URL规则的表达式
urlpath_regex:URL-path 略去协议和主机名的URL规则表达式匹配.
proxy_auth 通过外部程序进行用户认证.
maxconn 单一IP最大连接数.
time 语法[星期][时间段].星期可以使用这些关键字M(Mondy),T(Tuesday)...
时间段:某一时刻-另一时刻
我们来模拟一个实验环境,squid代理服务器两网卡假设外网卡IP:192.168.0.195,内网卡IP:192.168.10.10,内网客户端IP:192.168.10.11,外网有个
web服务器IP:192.168.0.197,在18:30-8:30不允许客户机访问外网,但是不下载以.rmvb和.mp3为结尾的文件,使用透明代理的方式,单个文件最大不能超
过10M,代理端口为8080,错误提示显示的中文信息,管理员邮箱为root@test.com,内存大小64M,缓存目录1024M,必须有可见主机名
好了就以这个信息,下面我们去配置Squid服务器...
[root@station195 ~]# yum -y install squid (我本机配置好yum源,直接就使用yum安装)
[root@station195 ~]# cd /etc/squid/
[root@station195 squid]# cp -p squid.conf squid.conf.bak(对文件进行备份)
[root@station195 squid]# vim squid.conf
cache_mgr root@example.com
http_port 192.168.10.10:8080 transparent
error_directory /usr/share/squid/errors/Simply_Chinese
visible_hostname station195.example.com
cache_mem 64 MB
reply_body_max_size 1024000000 allow all
cache_dir ufs /var/spool/squid 1024
acl mynetwork src 192.168.10.0/24
acl worktime time 18:00-23:59
acl worktime time 00:00-8:30
http_access allow mynetwork !worktime
acl nomp3 url_regex -i ^http.*.mp3$
acl normvb url_regex -i ^http.*.rmvb$
http_access allow mynetwork !nomp3
http_access allow mynetwork !normvb
#squid -z (初始化swqp目录)
#squid -k parse (测试配置文件语法信息)
#service squid restart (重启动服务)
客户端的网关指向192.168.10.10
squid server要开启路由功能....
#vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 (将此项的值改为一,表示上网卡的时候要进行转发)
#sysctl -p (单单修改完后不会立即生效,重新读取一下配置文件才生效..)
#cat /proc/sys/net/ipv4/ip_forward (返回的值为1,证明我们已经开启路由功能了..)
#iptables -t nat -A PREROUTING -i eth1 -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 8080
#service iptables save
测试结果全部成功的,很晚了就不在这抓图了,大家可以模仿着做着试试,有疑问可以给我留言,欢迎共同交流...