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代理服务器配置" Squid 代理服务器是一种流行的开源代理服务器软件,广泛应用于 Linux 操作系统中。该软件能够帮助用户更好地管理和控制网络流量,提高网络的安全性和可靠性。 1.1 代理服务器的...
搭建 Linux 下的 Squid 代理服务器 ...搭建 Linux 下的 Squid 代理服务器需要对 Squid 软件的安装、配置和管理进行详细的了解和掌握,同时需要对其提供的访问控制策略进行配置,以保证代理服务器的合法使用。
论文首先介绍了 Linux 操作系统的优点和 Squid 代理服务器的工作原理,然后详细介绍了 Linux 下 Squid 代理服务器的安装和配置方法。 关键词:Linux、Squid、代理服务器、缓存技术 一、Linux 操作系统的优点 ...
在构建Linux下的Squid代理服务器的过程中,我们首先需要了解Squid的基本概念。Squid是一个开源的高性能代理缓存服务器,适用于多种操作系统,包括Linux。它主要用于提高网络访问速度,减少网络流量,以及对网络活动...
Squid服务器是Linux环境下的一种代理服务器,可以实现正向代理、透明代理和反向代理等多种代理服务。在Linux下配置和管理Squid服务器需要遵循一定的步骤和流程,本文将详细介绍Squid服务器的配置和管理过程。 一、...
透明代理服务器搭建(Linux 搭建 Squid 代理) 透明代理服务器是一种特殊的代理服务器,它可以在不需要客户端进行任何配置的情况下,自动将 HTTP 请求转发到代理服务器上。今天,我们将学习如何在 Linux 环境中搭建...
总结起来,Squid代理服务器是Linux环境下的一款高效、安全的代理解决方案,它通过缓存机制、多协议支持和严格的访问控制,极大地提升了内部网络用户的浏览体验,同时保证了网络的安全性。正确配置和使用Squid,可以...
透明代理则是指用户在使用网络时,无感知地通过代理服务器进行访问。而Squid与ICAP(Internet Content Adaptation Protocol)的结合,则可以实现更高级的功能,如内容过滤、病毒检测等。 一、Linux搭建Squid透明...
Squid 服务器是 Linux 下的一种流行的代理服务器软件,它可以实现正向代理、透明代理和反向代理等多种代理模式。本文将总结 Squid 服务器的配置与管理,在实验中,我们将使用 VMware 和 Red Hat Enterprise Linux ...
在本文中,我们将深入探讨如何在Linux环境下搭建Squid代理服务器,以及Squid代理服务器的基本概念、工作原理和应用价值。Squid是一个高度可配置的代理缓存服务器,它支持多种协议,如FTP、GOPHER和HTTP,并且具备SSL...
Squid是一款强大的开源代理服务器,适用于Linux及其他多种操作系统,如AIX、Digital Unix、FreeBSD、HP-UX、Irix、NetBSD、Nextstep、SCO和Solaris等。其设计目的是提高网络性能,通过缓存HTTP、FTP、gopher、SSL和...
在Linux系统中,Squid是一个广泛使用的开源代理服务器,它能够实现缓存网页内容,提高网络访问速度,同时还能用于网络安全控制和访问策略管理。本文将深入探讨如何修改Squid的配置来满足特定需求。 一、Squid安装与...
1. **Squid正向代理服务器配置与测试**: - 首先检查Squid是否已安装,通过`rpm -qa | grep squid`命令。 - 修改配置文件`/etc/squid/squid.conf`,设置监听端口(如8080),允许访问的IP范围等。 - 初始化配置并...
在Linux环境下,Squid是一个广泛使用的开源HTTP代理服务器,它可以作为正向代理、透明代理或反向代理来实现各种网络服务。Squid服务器的配置与管理是网络系统管理员的一项重要技能,尤其是在教育环境中,它有助于...
关于学习Squid,你可以参考"第八集 Squid代理服务器原理.wmv"这个视频,它应该会详细讲解Squid的配置和使用方法。"LAMP兄弟连 原创PHP、LAMP视频"可能包含有关如何在Linux环境安装和配置Squid的信息,而"PPT等下载...
- **标准代理**:需要客户端手动配置代理服务器地址和端口号。适用于企业内部网络,可有效管理内外部资源的访问。 - **透明代理**:无需客户端进行任何配置,通过网络层(如 Linux 下的 Iptables 或 Ipchains)实现...
本文主要给大家介绍了关于 linux 搭建squid代理服务器的相关内容,下面话不多说了,来一起看看详细的介绍吧 实验环境: 一台linux搭建Web服务器,充当内网web服务器(同时充当内网客户端) 202.100.10.100 一台linux...