`

Linux下Squid代理服务器的配置(转)

阅读更多

Linux下Squid代理服务器的配置(转)

启动squid时如果不在squid.conf中设置主机名将无法启动,必须要设置visible_hostname这个参数值,本文中,设置的主机名是服务器的真实机器名powersite,在squid.conf中找到该项并修改:
visible_hostname linuxserver

你想让所有员工仅在上班时可上网,而且不允许192.168.1.23这台主机上网,可以加入这样的配置:
# 将以下ACL添加到squid.conf的ACL配置部分
acl home_network src 192.168.1.0/24
acl business_hours time M T W H F 9:00-17:00
acl RestrictedHost src 192.168.1.23
# 将这些内容添加到squid.conf的http_access配置部分
http_access deny RestrictedHost
http_access allow home_network business_hours

你只想在早晨这段时间允许员工访问Internet:
# 将以下ACL添加到squid.conf的ACL配置部分
acl mornings time 08:00-12:00
# 将这些内容添加到squid.conf的http_access配置部分
http_access allow mornings

Squid支持从外部读取包含有web站点或域名的文件进行ACL限制。在下面的例子中创建了两个文件,/etc/squid/allowed-sites.squid和/etc/squid/restricted-sites.squid,很明显,一个是允许访问的站点文件,另一个是限制访问站点文件。
# vi /etc/squid/allowed-sites.squid
www.163.com
www.yahoo.cn

# vi /etc/squid/restricted-sites.squid
www.sex.com
sex.com
然后配置在工作时间允许或限制访问的目标站点,以下的ACL配置和前面的略微不同:
#
# 将以下ACL添加到squid.conf的ACL配置部分
#
acl home_network src 192.168.1.0/24
acl business_hours time M T W H F 9:00-17:00
acl GoodSites dstdomain "/etc/squid/allowed-sites.squid"
acl BadSites dstdomain "/etc/squid/restricted-sites.squid"

#
# 将这些内容添加到squid.conf的http_access配置部分
#
http_access deny BadSites
http_access allow home_network business_hours GoodSites

根据IP地址限制Web访问
这个ACL访问控制列表可以限制整个一个网段,功能还是很强的。
#
# 将以下ACL添加到squid.conf的ACL配置部分
#
acl home_network src 192.168.1.0/255.255.255.0
然后添加http_access允许这个ACL:
#
# 将这些内容添加到squid.conf的http_access配置部分
#
http_access allow home_network

设置Squid为透明代理
如果客户端连接网络,就需要在浏览器设置Squid代理服务器,这是件比较麻烦的工作,而且代理服务器的地址或端口更换,每台服务器都必须重新设置才能生效,想解决这个问题,可以使用透明代理的方法。透明代理就是使用iptables防火墙将squid的3128端口的请求全部转发到HTTP的80端口,从而实现透明代理。
2.6内核版本之上:新版本的squid只需要修改成如下的内容即可。默认是“http_port 3128”,要将其改为“http_port 3128 transparent”的形式:
另外还要配置iptables防火墙
在下面两个例子中,作为防火墙的服务器有两块网卡,连接Internet的eth0和连接内网的eth1,同时防火墙也是内网的网关。
如果Squid服务器和防火墙在一台服务器上,那么所有的HTTP80端口的请求将转发到Squid服务的配置端口3128上。
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -A INPUT -j ACCEPT -m state --state NEW,ESTABLISHED,RELATED -i eth1 -p tcp --dport 3128
iptables -A OUTPUT -j ACCEPT -m state --state NEW,ESTABLISHED,RELATED -o eth0 -p tcp --dport 80
iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED -i eth0 -p tcp --sport 80
iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED -o eth1 -p tcp --sport 80
如果Squid服务器和防火墙在不同的服务器上,iptables的规则将有所不同:
iptables -t nat -A PREROUTING -i eth1 -s ! 192.168.1.100 -p tcp --dport 80 -j DNAT --to 192.168.1.100:3128
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.0/24 -d 192.168.1.100 -j SNAT --to 192.168.1.1
iptables -A FORWARD -s 192.168.1.0/24 -d 192.168.1.100 -i eth1 -o eth1 -m state
--state NEW,ESTABLISHED,RELATED -p tcp --dport 3128 -j ACCEPT
iptables -A FORWARD -d 192.168.1.0/24 -s 192.168.1.100 -i eth1 -o eth1 -m state --state ESTABLISHED,RELATED -p tcp --sport 3128 -j ACCEPT

Squid的密码验证
1) 创建密码文件。密码和用户名存放在/etc/squid/squid_passwd文件中,并需要将这个文件的权限设置为其它用户只读。
# touch /etc/squid/squid_passwd
# chmod o+r /etc/squid/squid_passwd
(2)使用htpasswd添加用户,并设置密码。添加用户不需要对squid进行重启操作,我创建的用户名是www
# htpasswd /etc/squid/squid_passwd www
New password:
Re-type password for user www
#
(3)找到ncsa_auth命令的具体位置,后面的配置需要用到绝对路径
# which ncsa_auth
/usr/sbin/ncsa_auth
(4) 然后我们就要在squid.conf文件中定义验证程序了,创建名为ncsa_users的ACL并加入关键字REQUIRED来强制让Squid使用NCSA验证方法。
#
# 在squid.conf的auth_param部分添加下列内容
#
auth_param basic program /usr/sbin/ncsa_auth /etc/squid/squid_passwd

#
# 将以下ACL添加到squid.conf的ACL配置部分
#
acl ncsa_users proxy_auth REQUIRED

#
# 将这些内容添加到squid.conf的http_access配置部分
#
http_access allow ncsa_users

分享到:
评论

相关推荐

    基于Linux的Squid代理服务器配置.doc

    基于Linux的Squid代理服务器配置.doc

    Linux下Squid配置指南

    利用Squid配置Linux下代理服务器的说明文档,并结合一个示例说明

    高效配置的Linux代理服务器Squid介绍

    Squid与Linux下其它的代理软件如Apache、Socks、TIS FWTK和delegate相比,下载安装简单,配置简单灵活,支持缓存和多种协议。用ipchains+Squid的解决方案,就可以获得通过缓存高性 能的同时能够无缝的访问Internet。...

    linux搭建squid代理服务器的完整步骤

    本文主要给大家介绍了关于 linux 搭建squid代理服务器的相关内容,下面话不多说了,来一起看看详细的介绍吧 实验环境: 一台linux搭建Web服务器,充当内网web服务器(同时充当内网客户端) 202.100.10.100 一台linux...

    squid代理服务器设置详情

    linux下的squid代理服务器配置详情。。。

    Linux下Squid配置详解 Squid代理服务器配置第1/3页

     Squid是Linux下一个缓存Internet数据的代理服务器软件,其接收用户的下载申请,并自动处理所下载的数据。也就是说,当一个用户想要下载一个主页时,可以向Squid发出一个申请,要Squid代替其进行下载,然后Squid...

    在LINUX下用SQUID实现代理上网

    本文介绍了代理服务器的概念、作用、产生的原因以及工作原理。使用Linux下的Squid代理上网的原因。 Squid 安装、配置、一个Squid配置实例以及客户端的设置。

    在Linux机器上设置pop3代理

    在Linux服务器上,http/https/ftp代理的应用非常广泛, squid大家都很熟悉,但是有 些特殊情况下,你可能需要让一台Linux 机器也做为pop3代理服务器,代理客户端从互联网上接收邮件, 并传送邮件给客户工作站。

    squid 代理服务器的配置

    linux 操作系统tonsquid 代理服务器的配置

    Linux下架设代理服务器-Squid配置归纳.pdf

    Linux下架设代理服务器-Squid配置归纳.pdf

    linux_squid服务器详细介绍.txt

    该笔记由博主本人亲自整理撰写,介绍以及各方面的操作都进行了简化提示,很适合linux的萌新进行学习,内容大致:【squid的安装】【正向代理】【反向代理】【ACL访问控制列表】【配置文件简单介绍】【简化记忆】

    linux下安装Squid代理的详细配置教程

    1.如果系统中还没有装squid,按以下顺序输入命令后即可完成安装 # wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE18.tar.gz //下载Squid代理安装包 # tar -zxvf squid-3.0.STABLE18.tar.gz //...

    Squid详细配置文档

    linux下Squid代理服务器的详细搭建配置。有图有真相哦!

    linux中小企业服务器配置方案

    第一章 第五节 Squid代理服务器 第一章 第六节 Modem拨号 第一章 第七节 ISDN拨号 第二章 DNS服务器--第一节 第三章 Web服务器--第一节 第三章 第二节 Tomcat服务器 第三章 第三节 Apache+Jserv整和 第三章 第四节 ...

    squid配置forlinux

    Squid二级代理配置,用公司的内网做代理服务器,两台机器可以同时上网。

    squid+linux

    代理服务器配置 linux+squid 详细配置说明,供大家参考学习。

    squid配置说明文档

    squid的配置说明 squid:一款在linux下的代理服务器软件 功能相当强大

    Linux下Squid代理服务器的架设与维护经验分享

    通过架设专门的WWW(FTP)代理来满足用户的主要需求,通过架设socks5代理来满足用户的其他需求。 一、对使用者的分析 现有网络情况: 我校校园网通过光缆已将31座建筑物连通,光缆总长度约15Km,绝大多数楼中实现结构...

    linux_代理服务器squid__haproxy.txt

    该笔记由博主本人亲自整理撰写,介绍以及各方面的操作都进行了简化提示,很适合linux的萌新进行学习,基础的配置时候入门新手了解squid与haproxy两个服务

    NAT+Squid配置

    NAT+Squid linux下的代理服务器

Global site tag (gtag.js) - Google Analytics