squid web代理服务器安装与配置

目录

简介 

squid安装

squid基本用户认证配置

客户端代理配置

简介 

什么是squid呢?来看一下官方介绍:

yum info squid.x86_64

Description : Squid is a high-performance proxy caching server for Web clients,
            : supporting FTP, gopher, and HTTP data objects. Unlike traditional
            : caching software, Squid handles all requests in a single,
            : non-blocking, I/O-driven process. Squid keeps meta data and especially
            : hot objects cached in RAM, caches DNS lookups, supports non-blocking
            : DNS lookups, and implements negative caching of failed requests.
            : 
            : Squid consists of a main server program squid, a Domain Name System
            : lookup program (dnsserver), a program for retrieving FTP data
            : (ftpget), and some management and client tools.

squid安装

Linux发行版镜像源自带了squid,直接通过应用管理工具安装即可。以Redhat为例,通过如下命令进行安装:

yum -y install squid.x86_64

通过acl和http_access实现基本的安全访问控制,可以在/etc/squid/squid.conf默认配置的基础上进行修改。

squid基本用户认证配置

Squid3代理服务器支持多种认证方法,以下是其中一些常见的认证方式:

  1. 基本身份验证(Basic Authentication):这是一种最常见的身份验证方法,在HTTP请求中使用Base64编码的用户名和密码进行验证。

  2. NTLM身份验证(NTLM Authentication):这是一种Windows特定的身份验证方法,通常用于与Windows域控制器进行集成。

  3. Digest身份验证(Digest Authentication):这是一种更安全的身份验证方法,它使用摘要算法对用户名和密码进行加密,防止密码在网络传输中被截获。

  4. Negotiate身份验证(Negotiate Authentication):这是一种支持多种身份验证协议的扩展方法,如NTLM和Kerberos,可以根据客户端和服务器的支持情况自动选择最合适的协议进行认证。

  5. LDAP身份验证(LDAP Authentication):这是一种使用LDAP(轻量级目录访问协议)服务器进行身份验证的方法,通过与LDAP服务器进行通信来验证用户的凭据。

  6. PAM身份验证(PAM Authentication):这是一种通过Pluggable Authentication Modules(PAM)接口进行身份验证的方法,可以与系统的用户认证机制进行集成。

需要注意的是,Squid3支持的认证方法可能取决于编译时的配置选项和使用的操作系统。在配置Squid3时,可以根据具体需求选择适合的身份验证方法,并进行相应的配置。

这里只介绍基本身份验证:

1、编辑 /etc/squid/squid.conf配置文件:

vi /etc/squid/squid.conf              
#
# Recommended minimum configuration:
#
# basic auth
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated

auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd:

-- 指定了Squid使用的基本身份验证程序和密码文件的位置。这里需要注意squid版本,是squid3还是squid2,前者使用basic_ncsa_auth ,后者使用ncsa_auth。另外,不同的linux发行版路径有所不同。

auth_param basic realm proxy:

-- 定义了基本身份验证领域(realm),即身份验证提示信息。当客户端需要进行身份验证时,Squid会向客户端发送包含该领域信息的身份验证提示,以提示用户输入用户名和密码。

acl authenticated proxy_auth REQUIRED:

-- 定义了一个访问控制列表(ACL),名为"authenticated",用于限制只有经过身份验证的用户才能访问代理。proxy_auth表示使用基本身份验证进行身份验证。REQUIRED表示只允许通过身份验证的用户。

http_access allow authenticated:

-- 指定了访问控制规则,允许名为"authenticated"的ACL中的用户访问代理服务器。这意味着只有经过身份验证的用户才能成功访问代理服务器,其他用户将被拒绝访问。

在默认配置中一条访问控制规则为:http_access deny all;此规则将最后拒绝所有访问!将访问控制列表设置成了白名单。

一定将如上配置放到文件的最上方,否则可能无效。例如:不管你配置什么样的用户+密码,都允许使用代理。

2、创建密码文件

htpasswd -c /etc/squid/passwd 用户名

3、重启服务

systemctl restart squid

客户端代理配置

在客户服务器上,修改/etc/profile,配置:

#设置http代理

export http_proxy="http://192.168.11.229:3128"

#设置https代理

export https_proxy="http://192.168.11.229:3128"

#设置不通过代理的列表
export no_proxy="*.xxx.com,10.*,www.baidu.com"

# 如需用户名密码认证

export http_proxy="http://用户名:密码@192.168.11.229:3128"

export https_proxy="http://用户名:密码@192.168.11.229:3128"

你可能感兴趣的:(操作系统,proxy,代理,squid,linux)