使用SQUID 3的匿名代理在CentOS 5.x上

使用SQUID 3的匿名代理在CentOS 5.x上 这个 howto逐步描述一个将SQUID 3服务器安装为匿名的方法 代理。一个anon ...

使用SQUID 3的匿名代理在CentOS 5.x上

本文将逐步描述一种将SQUID 3服务器安装为匿名代理的方法。 匿名代理是一种尝试在互联网上进行活动的工具。 它以用户身份访问互联网,通过隐藏源计算机的识别信息来保护个人信息。 简单地说来隐藏您的IP。

以下如何将CentOS 5设置为操作系统,但可以在CentOS 4,Fedora Core 5-9上以相同的步骤和SQUID版本3实现。默认情况下,SQUID仅使用默认IP在Internet上进行通信,但将使用在服务器上可用作匿名代理的所有IP,即如果用户连接到服务器的IP1,则IP1将用作代理并转发相同的IP,如果用户连接到IP2,则IP2将作为代理并提供相同的IP等等,我们还将实施基于ncsa用户的身份验证,以保护服务器免受未经授权的使用。

Server = CentOS 5.2,SQUID =版本3,IPs = 192.168.0.1 - 192.168.0.5

1)安装Squid3:

CentOS 5带有Squid 2.6,但是我们需要Squid 3,所以我们将下载squid 3的源rpm并为我们的操作系统编译它。

1.1)安装先决条件

安装先决软件,即开发工具,以获取编译SQUID 3的所有编译器,库和其他rpms。

yum -y groupinstall "Development Tools"
yum -y install rpm-build openjade linuxdoc-tools openldap-devel pam-devel openssl-devel httpd rpm-devel

1.2)下载squid 3源RPM

从FEDORA网站下载Squid 3的源rpm并安装它。

cd /usr/src
wget http://download.fedora.redhat.com/pub/fedora/linux/releases/10/Fedora/source/SRPMS/squid-3.0.STABLE10-1.fc10.src.rpm
rpm -ivh squid-3.0.STABLE10-1.fc10.src.rpm

1.3)编译Squid3

使用以下命令启动编译,最后将生成要安装的rpm文件:

cd /usr/src/redhat/SPECS
rpmbuild -bb squid.spec

1.4)安装Squid 3

安装新建的rpm,它将在/ usr / src / redhat / RPMS / i386中找到,用于i686和/ usr / src / redhat / RPMS / x86_64 for x86_64。

rpm -Uvh /usr/src/redhat/RPMS/i386/squid-3.0.STABLE10-1.i386.rpm

2)配置

我将使用默认的squid.conf进行编辑。

vi /etc/squid/squid.conf

2.1)配置auth_param

我们将启用ncsa身份验证来访问我们的squid服务器。 查找以下行:

#auth_param basic program <uncomment and complete this line>
#auth_param basic childred 5
#auth_param basic realm Squid proxy-caching web server
#auth_param basic credentialsttl 2 hours 

将其更改为:

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd
auth_param basic childred 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours  

2.2)创建proxy_auth acl

在这里,我们将创建proxy_auth acl来提示用户/传递给所有想要使用我们的匿名代理的用户。 找到以下行:

#INSERT YOUR OWN RULES(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS

我们将在上面的行中插入我们的proxy_auth规则。

#INSERT YOUR OWN RULES(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
acl ncsaauth proxy_auth REQUIRED
http_access allow ncsaauth

2.3)禁用转发的客户端IP

默认情况下,squid将客户端IP转发到相应的网站,但是要设置匿名代理,我们将禁用它来隐藏客户端IP,并仅发送在Squid服务器上配置的IP。 找到以下行squid.conf

forwarded_for on

将其更改为:

forwarded_for off

2.4)配置IP

现在我们将生成出站IP的规则,即如果有人连接到我的服务器的任何IP,那么它将与目标服务器使用相同的IP。 以这种方式,我们可以连接不同IP上的几个客户端,所有的IP作为匿名代理。 找到以下行:

# TAG: tcp_outgoing_address

在其下方添加以下行:

acl ip1 myip 192.168.0.1
tcp_outgoing_address 192.168.0.1 ip1
acl ip2 myip 192.168.0.2
tcp_outgoing_address 192.168.0.2 ip2
acl ip3 myip 192.168.0.3
tcp_outgoing_address 192.168.0.3 ip3
acl ip4 myip 192.168.0.4
tcp_outgoing_address 192.168.0.4 ip4
acl ip5 myip 192.168.0.5
tcp_outgoing_address 192.168.0.5 ip5

您可以添加任意数量的IP,只需使用与上述相同的模式。

2.5)启用匿名器(匿名代理)

将以下行放在squid.conf的底部:

request_header_access Allow allow all 
request_header_access Authorization allow all 
request_header_access WWW-Authenticate allow all 
request_header_access Proxy-Authorization allow all 
request_header_access Proxy-Authenticate allow all 
request_header_access Cache-Control allow all 
request_header_access Content-Encoding allow all 
request_header_access Content-Length allow all 
request_header_access Content-Type allow all 
request_header_access Date allow all 
request_header_access Expires allow all 
request_header_access Host allow all 
request_header_access If-Modified-Since allow all 
request_header_access Last-Modified allow all 
request_header_access Location allow all 
request_header_access Pragma allow all 
request_header_access Accept allow all 
request_header_access Accept-Charset allow all 
request_header_access Accept-Encoding allow all 
request_header_access Accept-Language allow all 
request_header_access Content-Language allow all 
request_header_access Mime-Version allow all 
request_header_access Retry-After allow all 
request_header_access Title allow all 
request_header_access Connection allow all 
request_header_access Proxy-Connection allow all 
request_header_access User-Agent allow all 
request_header_access Cookie allow all 
request_header_access All deny all 

配置完成后,保存文件。

3)用户管理

现在是时候创建squid_passwd文件,我们将使用ncsa将我们的用户进行身份验证。 为此,我们需要htpasswd命令来生成用户/通行证。

创建保存用户名和密码的文件:

touch /etc/squid/squid_passwd

3.1)创建新用户

htpasswd /etc/squid/squid_passwd proxyadmin

其中/ etc / squid / squid_passwd是一个文件,其中所有用户都去,而proxyadmin是一个用户名,将被添加的密码给出。

3.2)更新密码

对现有用户使用相同的命令。

htpasswd /etc/squid/squid_passwd proxyadmin

4)服务管理

运行squid服务,并在启动时添加。

service squid start
chkconfig squid on

5)故障排除

5.1)visible_hostname错误

如果在启动服务后看到visible_hostname错误,请再次编辑/etc/squid/squid.conf文件,并将visible_hostname标记与服务器主机名相加

visible_hostname server1  

您的服务器已经准备就绪,您可以在客户端上使用Firefox或IExplorer来检查它是否正常工作。 我已经使用默认端口3128为squid,所以使用上述任何一个IP和端口连接。 当它连接它会提示你一个用户/通行证; 输入正确的用户/通行证,您将开始浏览网站。 检查匿名打开http://www.whatsmyipaddress.com 。 如果您在request_header_access中发生错误,可以检测您的代理; 但是如果一切都很好,它只会显示IP,并假设它是一个没有代理的直接连接。