教你架设Squid代理服务器
Squid的rpm文件已经和RedHat7.1捆绑发行了,在安装系统的时候,如果在Networks选项中选中的
话,它会自动安装在系统上。您可以用下面的命令检查您的系统中是否已经安装了Squid:
rpm-qsquid
Squid的最新版本可以在Squid主页或它的镜像站点得到。Squid可以用下述命令安装在系统上:
rpm-ivhsquid-2.3.STABLE4-10.i386.rpm
配置Squid
Squid的定制是通过编辑它的配置文件squid.conf来实现的,squid.conf文件通常在/etc/squid目录
下。这个配置文件内容很多,但好在它的每个选项都有详尽的说明。
首先要修改的是http_port,这个选项指定了Squid监听客户请求的端口,默认值是3128。要使用代理
功能,这个端口值要和运行Squid的机器的IP地址一起使用,可以修改成下面这样:
http_port192.168.0.1:8080
上述声明表示Squid绑定在IP地址192.168.0.1上,端口为8080。端口可以设置为任意值,但要确认
没有其他程序会使用同样的端口。其他的服务请求的端口设置也可以设为类似的配置。
访问控制
使用访问控制特性,可以控制在访问时根据特定的时间间隔进行缓存、访问特定站点或一组站点等等。Squid访问控制有两个要素:ACL元素和访问列表。访问列表可以允许或拒绝某些用户对此服务的访问。
下面列出一些重要的ACL元素类型
*src:源地址(即客户机IP地址)
*dst:目标地址(即服务器IP地址)
*srcdomain:源名称(即客户机名称)
*dstdomain:目标名称(即服务器名称)
*time:一天中的时刻和一周内的一天
*url_regex:URL规则表达式匹配
*urlpath_regex:URL-path规则表达式匹配,略去协议和主机名
*proxy_auth:通过外部程序进行用户验证
*maxconn:单一IP的最大连接数
为了使用控制功能,必须先设置ACL规则并应用。ACL声明的格式如下:
aclacl_element_nametype_of_acl_elementvalues_to_acl
注:
1.acl_element_name可以是任一个在ACL中定义的名称。
2.任何两个ACL元素不能用相同的名字。
3.每个ACL由列表值组成。当进行匹配检测的时候,多个值由逻辑或运算连接;换言之,即任一ACL
元素的值被匹配,则这个ACL元素即被匹配。
4.并不是所有的ACL元素都能使用访问列表中的全部类型。
5.不同的ACL元素写在不同行中,Squid将把它们组合在一个列表中。
我们可以使用许多不同的访问条目。下面列出我们将要用到的几个:
*http_access:允许HTTP访问。这个是主要的访问控制条目。
*no_cache:定义对缓存请求的响应。
访问列表的规则由一些类似'allow'或'deny'的关键字构成,用以允许或拒绝向特定或一组ACL元素提供服务。
注:
1.这些规则按照它们的排列顺序进行匹配检测,一旦检测到匹配的规则,匹配检测就立即结束。
2.一个访问列表可以又多条规则组成。
3.如果没有任何规则与访问请求匹配,默认动作将与列表中最后一条规则对应。
4.一个访问条目中的所有元素将用逻辑与运算连接:
http_accessAction声明1AND声明2AND声明OR.
http_accessAction声明3
多个http_access声明间用或运算连接,但每个访问条目的元素间用与运算连接。
5.请记住列表中的规则总是遵循由上而下的顺序。
回到配置Squid
Squid默认不做任何用户访问控制。若要允许某个访问,必须进行定制规则。在squid.conf中http_accessdeny行前输入下述文字:
aclmynetwork192.168.0.1/255.255.255.0
http_accessallowmynetwork
mynetwork是acl名称,下一行则是适用于特定acl(即mynetwork)的规则。192.168.0.1指明是网络中掩码为255.255.255.0的子网。mynetwork主要是为了给出网络上一组机器,下一条规则则允许这些
机器访问http服务。上述修改配合http_port就可以让Squid很好的工作起来了。修改完成后,Squid
可以用下述命令启动:
servicesquidstart
注:
Squid也可以在系统启动的时候自动运行,方法是在ntsysv或setup(系统服务菜单)中打开Squid。在
对配置文件做了任何更改之后,当前正运行的Squid进程必须重新启动。可以用下面的命令来完成:
1.servicesquidrestart或
2./etc/rc.d/init.d/squidrestart
配置客户端
由于客户端的请求是送到代理服务器的特定端口的,<
新文章:
- CentOS7下图形配置网络的方法
- CentOS 7如何添加删除用户
- 如何解决centos7双系统后丢失windows启动项
- CentOS单网卡如何批量添加不同IP段
- CentOS下iconv命令的介绍
- Centos7 SSH密钥登陆及密码密钥双重验证详解
- CentOS 7.1添加删除用户的方法
- CentOS查找/扫描局域网打印机IP讲解
- CentOS7使用hostapd实现无AP模式的详解
- su命令不能切换root的解决方法
- 解决VMware下CentOS7网络重启出错
- 解决Centos7双系统后丢失windows启动项
- CentOS下如何避免文件覆盖
- CentOS7和CentOS6系统有什么不同呢
- Centos 6.6默认iptable规则详解