27.1 squid概述
squid是linux下常见的代理服务器。Linux下代理服务器对硬件的要求不高,但是对内存的要求很高。代理服务器主要实现对一定的网络管理要求以及带宽要求的地方。
27.2 squid基本配置
27.2.1 squid安装与启动服务
rpm -q squid
squid-2.5.STABLE12-5.1
fc5 linux默认已经安装了squid代理服务器软件,如果没有安装的话,可以在光盘中找到该软件进行安装即可。
chkconfig squid on /*设为开机自启动*/
service squid start /*开启服务*/
27.2.2 squid配置
Squid只要做一些基本的配置就能够提供代理服务,这里只是提供最基本的配置方案,如果需要有更加精细的配置要求的话,需要对其访问控制列表进行修改。
用vi删除原有配置文件的内容,输入以下内容。
vi /etc/squid/squid.conf
#代理服务器的监听端口
http_port 192.168.1.1:8080
#内存缓冲区的大小
cache_mem 64 MB
#设置硬盘缓冲区最大4096MB,16个一级目录,256个二级目录。
cache_dir ufs /var/spool/squid 4096 16 256
#设定使用缓存的有效用户
cache_effective_user squid
#设定使用缓存的有效组
cache_effective_group squid
#定义dns服务器的地址
dns_nameservers 202.103.1.117
#设置访问日志文件
cache_access_log /var/log/squid/access.log
#设置缓存日志文件
cache_log /var/log/squid/cache.log
#设置网页缓存日志文件
cache_store_log /var/log/squid/store.log
#设置squid主机名称,一般为IP地址。
visible_hostname 192.168.1.1
#设置管理员email地址
cache_mgr abc@126.com
#访问控制列表
#允许所有
acl all src 0.0.0.0/0.0.0.0
#定义允许名称为all的http请求。
http_access allow all
27.2.3 初始化squid配置
1.创建缓冲区目录结构
在初次启动squid之前应建立硬盘缓冲区目录结构。
/usr/sbin/squid -z
2009/02/13 19:54:33| Creating Swap Directories
目录缓冲区地址/var/spool/squid
2.设置squid错误提示信息为中文
mv /etc/squid/errors /etc/squid/errors.bak
#创建快捷方式
in -s /usr/share/squid/errors/simplify_chinese /etc/squid/errors
/etc/init.d/squid reload或service squid reload
27.3 squid透明代理配置
27.3.1 squid透明代理介绍
透明代理就是nat与代理的结合,透明就是工作在这种方式下的客户机感觉不到代理服务器的存在,不需要在浏览器中进行设置。只需要把网关设为代理服务器以及配置正确的dns地址。
27.3.2 squid透明代理配置
Squid只要做一些基本的配置就能够提供代理服务,以下基本配置文件的内容是一样的,只需要在此基础上进行必要的修改。
vi /etc/squid/squid.conf
http_port 192.168.1.1:8080
cache_mem 64 MB
cache_dir ufs /var/spool/squid 4096 16 256
cache_effective_user squid
cache_effective_group squid
dns_nameservers 202.103.1.117
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
visible_hostname 192.168.1.1
cache_mgr abc@126.com
#以下是透明代理的设置,不可少。
#定义代理服务器为virtual加速模式。
httpd_accel_host virtual
#要加速的端口
httpd_accel_port 80
#squid既是web请求加速器又是代理服务器
httpd_accel_with_proxy on
#代理服务器的缓存功能才能工作。
httpd_accel_uses_host_header on
acl all src 0.0.0.0/0.0.0.0
http_access allow all
27.3.3 配置iptables
将所有由eth0接口进入的web服务80端口的请求直接转发到8080口,由squid去处理。
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
27. 4 squid用户认证配置
27.4.1 squid认证介绍
squid本身不自带认证功能,需要由其它程序在进行认证。Squid就是可以实现没有经过认证的用户不能实现上网。
27.4.2 squid用户认证配置
基本配置文件都是相同的,只需要在此基础上进行修改。
vi /etc/squid/squid.conf
http_port 192.168.1.1:8080
cache_mem 64 MB
cache_dir ufs /var/spool/squid 4096 16 256
cache_effective_user squid
cache_effective_group squid
dns_nameservers 202.103.1.117
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
visible_hostname 192.168.1.1
cache_mgr abc@126.com
#以下实现用户身份认证的语名
#设定认证程序路径,与认证程序密码。
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
#认证程序进程数
auth_param basic children 5
#用户认证后的有效时间,超过时间需要再次认证。
auth_param basic credentialsttl 2 hours
#显示验证框时的提示内容。
auth_param basic realm Example.com's Squid proxy-caching
#允许经过认证的用户访问
#acl 列表名称 列表类型 列表值
acl auth_user proxy_auth REQUIRED
http_access allow auth_user
27.4.3 建立帐户文件
可以利用apache的htpasswd程序来生成帐户文件
htpassed -c /etc/squid/passwd redhat
在第一次生成帐户文件的时候需要加入-c,以后就不需要了。
注:还需要对passwd文件设置其它用户可读权限。在配置过程中可以出现认证框,但是输入密码不行。经发现权限为600。root用户root组,配置文件中squid的用户为squid,造成不能读取密码。
chmod o+r /etc/squid/passed
27.4.4 客户端配置
基本配置与认证代理,只需要在IE中internet选项/连接/局域网设置/代理服务器中填入代理服务器的IP地址与端口即可。
透明代理,与正常的nat配置主网的方式一样,只要设置网关与dns即可,不需要设置IE。
27.4.5 验证
其它两上配置都成功验证,可以直接应用于实际环境中。
27.5 squid访问控制应用
27.5.1 禁止访问网络
1.禁止一台电脑上网
acl ip src 192.168.1.200
http_access deny ip
2.禁止192.168.1.0网段的电脑上网
acl ip src 192.168.1.0/255.255.255.0
http_access deny ip
27.5.2 禁止访问特定网站
1.禁止访问某IP地址
acl ip dst 192.168.1.200
http_access deny ip
说明:不能访问该目标IP地址的所有内容,包含网站。与上面的内容区别。
2.禁止访问某网站
acl ip dstdomain -i www.abc.com
http_access deny ip
说明:只是不能访问www.abc.com,下面的子页面还是可以访问的。
3.禁止访问含有某域名的网站
acl ip url_regex -i abc.com
http_access deny ip
说明:比上面的控制严格。
27.5.3 基于时间的访问控制
1.禁止某子网在周一至周五9:00到18:00(上班时间不能上网)
acl ip src 192.168.2.0/255.255.255.0
acl worktime time MTWHF 9:00-18:00
http_access deny ip worktime
说明:可以参考此规则进行变通。
2.禁止下载含有.rar、.mp3
acl ip urlpath_regex -i \.mp3$\.rar$
http_access deny ip
相关推荐
本文介绍了代理服务器的概念、作用、产生的原因以及工作原理。使用Linux下的Squid代理上网的原因。 Squid 安装、配置、一个Squid配置实例以及客户端的设置。
提供用私有IP访问Internet的方法 IP地址是不可再生的宝贵资源,假如你只有有限的IP地址,但是需要提供整个组织的In ternet访问能力,那么,你可以通过使用代理服务器来实现这一点。 3.提高网络的安全性 这一点是很...
向squid服务器发送指令 -s 启用syslog日志 -z 创建缓存目录 -C 不捕获致命信号 -D 不进行DNS参数测试 -N 以非守护进程模式运行 -X 强制进入完全调试模式 参考实例 创建缓存目录: [root@linuxcoo
10.4 客户端配置Linux客户端的使用 10.5 NFS排错 10.6 本章练习 10.7 字段汇总 第11章 NIS 11.1 NIS原理 11.1.1 NIS简介 11.1.2 NIS工作原理 11.1.3 NIS工作模式 11.2 NIS的安装 11.2.1 NIS所需软件 11.2.2 安装...
第4章 TCPIP通信案例:访问Internet上的Web服务器 4.1 实例总图 4.2 部署代理服务器 4.2.1 HTTP代理服务器的工作原理 4.2.2 部署squid代理服务器 4.3 使用tcpdump抓取传输数据包 4.4 访问DNS服务器 4.5 本地...
由国内著名技术社区联合推荐的2012年IT技术力作:《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》,即将上架发行,此书从Web应用、数据备份与恢复、网络存储应用、运维监控与性能优化、集群高级应用等...
本章主要介绍了X Window以及它的配置,并且介绍了在KDE环境下汉化的基本思想,用实例来讲解了Linux汉化的基础知识。 第13章:网络的基本概念与设置。本章主要介绍了网络的基本概念,并在讲解这个概念的同时,讲解...
3.1. 1 构建NTP时间服务器 25 3.1. 2 构建DHCP服务器 27 ...5. 9 Squid缓存服务器配置 116 6. Linux下高并发系统内核优化 122 7. Nginx负载均衡机制及常见问题 124 8. Linux运维职业规划 127 9. Linux运维面试总结 127
php使用socket post数据到其它web服务器的方法C#使用PHP服务端的Web Service通信实例基于php在各种web服务器的运行模式详解Nginx + php 搭建 超性能 WEB 服务器Linux+Nginx+Php架设高性能WEB服务器Web服务器IIS6的...
与该功能相关的Linux命令:getty命令 – 用于设置终端机模式fping命令 – 检测主机是否存在route命令 – 显示并设置路由squid命令 – 代理服务器守护进程mesg命令 – 设置终端机的写入权限efax命令 – 收发传真min
1.2.3 cache服务器squid 18 1.2.4 带负载均衡的http服务器apache 19 1.2.5 支持集群功能的web服务器tomcat 21 1.2.6 开源数据库服务器之骄子mysql 23 1.2.7 功能强大的flv流媒体服务器red5 24 1.3 门户网站开发...