Centos 7.2 安装配置带用户认证的squit正向代理

squit介绍

 Squid 是一个缓存 Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据。当一个用户想要下载一个主页时,可以向 Squid 发出一个申请,要 Squid 代替其进行下载,然后 Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户。
 按照代理类型的不同,可以将 Squid 代理分为正向代理和反向代理,正向代理中,根据实现方式的不同,又可以分为普通代理和透明代理。
普通代理:需要客户机在浏览器中指定代理服务器的地址、端口。
透明代理:适用于企业的网关主机(共享接入 Internet)中,客户机不需要指定代理服务器地址、端口等信息,代理服务器需要设置防火墙策略将客户机的 Web 访问数据转交给代理服务程序处理。
反向代理:是指以代理服务器来接受 Internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 Internet 上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

一、代理服务器系统环境


[root@ecs-35f2 ~]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 

[root@ecs-35f2 ~]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether fa:16:3e:49:29:b4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.181/24 brd 192.168.2.255 scope global dynamic eth0
       valid_lft 75669sec preferred_lft 75669sec
    inet6 fe80::f816:3eff:fe49:29b4/64 scope link 
       valid_lft forever preferred_lft forever

二、yum安装squid,这里使用基于web服务apache的htpasswd密码认证,所以也安装上httpd

[root@ecs-35f2 ~]# yum install -y squid
[root@ecs-35f2 ~]# yum install -y httpd

三、创建用户并设置密码,注意密码长度不要超过8位

[root@ecs-35f2 squid]# htpasswd -cd /etc/squid/passwords test  #test是自己取得用户名
New password:     #输入两次相同的密码
Re-type new password: 
Adding password for user test

四、验证密码文件

[root@ecs-35f2 squid]# /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwords 
test qq..123
OK 
#显示OK就证明成功(用户名:test ,密码qq..123),按ctrl+c 终端退出

五、配置squid文件,打开默认安装路径 /etc/squid/squid.conf

[root@ecs-35f2 squid]# vim /etc/squid/squid.conf

这里我只放通可以使用代理的内网IP网段和端口号


因为规则是从上往下的,所以要在http_access deny all 拒绝所有这条规则上面添加认证用户配置,使用默认端口3128,也可以自己更改,等下客户端需要用到这个端口号。
添加注释:
#http_access allow localnet
添加:
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwords
auth_param basic credentialsttl 5 hours
acl ncsa_users proxy_auth REQUIRED
http_access allow ncsa_users
去掉注释:
cache_dir ufs /var/spool/squid 100 16 256


保存退出

六、初始化squid

[root@ecs-35f2 ~]# squid -z

按ctrl+c 终端退出

七、开启squid并设置开机启动

[root@ecs-35f2 ~]# systemctl start squid.service 

[root@ecs-35f2 ~]# systemctl enable  squid.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/squid.service to /usr/lib/systemd/system/squid.service.

八、关闭防火墙,设置SELINUX=disabled

[root@ecs-35f2 ~]# systemctl stop firewalld
[root@ecs-35f2 ~]# cat /etc/selinux/config 


# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 

九、客户端

Windows设置:
打开IE浏览器》Internet选项》连接》局域网设置》代理服务器(设置代理服务器的IP和端口,这里的代理服务器内网ip是192.168.2.181,默认端口3128。代理服务器是可以上公网的)



设置好如果点击上网就会弹出输入用户名和密码窗口,输入用户名和和密码即可上网。


查看IP

Linux客户端:
[root@ecs-5c78-0002 ~]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether fa:16:3e:08:88:97 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.34/24 brd 192.168.2.255 scope global dynamic eth0
       valid_lft 80590sec preferred_lft 80590sec
    inet6 fe80::f816:3eff:fe08:8897/64 scope link 
       valid_lft forever preferred_lft forever

设置

[root@ecs-5c78-0002 ~]# export http_proxy="test:[email protected]:3128"

#export http_proxy="代理用户名:密码@代理服务器IP:端口"


注:停止使用代理的时候,要把改过的文件改成原样.尤其是如果使用了export http_proxy=" "代理用户名:密码@代理服务器IP:端口"命令,
要在命令行输入: unset http_proxy ,去除环境变量.
因为export http_proxy=" "代理用户名:密码@代理服务器IP:端口"这条命令的实质是把export后面的设置写进环境设置文件中

删除之后就异常

至此完成!

猜你喜欢

转载自blog.csdn.net/tladagio/article/details/79182187