centos7 Squid代理服务器安装配置,包含ACL配置--内网环境代理上网配置

centos7 Squid代理服务器安装配置,包含ACL配置--内网环境代理上网配置

网络环境配置:

本次安装系统为centos7,采用外网和内网双网卡,外网网卡dhcp获取ip,内网网卡为固定IP,修改配置文件/etc/sysconfig/network-scripts/ifcfg-ens224(内网网卡名)为静态ip地址,默认路由走外网网卡( 即外网网卡配置网关(DHCP获取),内网网卡不配置网关)。双网卡,需要手工配置内网网段的路由,否则内网和这台代理服务器之间网络不通。

可将增加路由的命令写到/etc/rc.local,开机自动执行。以内网网卡ens224网关为10.100.1.1为例 :

[root@localhost ~]# grep -vE "^#|^$" /etc/rc.local 
touch /var/lock/subsys/local
/usr/sbin/ip route add 10.100.X.0/24 via 10.100.1.1 dev ens224
/usr/sbin/ip route add 10.100.XX.0/24 via 10.100.1.1 dev ens224

外网网卡:

[root@localhost network-scripts]# cat ifcfg-ens192
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens192
UUID=8baba929-1c40-4282-a975-cda67fe443f7
DEVICE=ens192
ONBOOT=yes
[root@localhost network-scripts]# 

内网网卡

[root@localhost network-scripts]# cat ifcfg-ens224 
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens224
UUID=b8b4edf8-c1a5-4ca3-b67c-1fafd97ec11a
DEVICE=ens224
ONBOOT=yes
IPADDR=10.100.1.1
NETMASK=255.255.255.0
[root@localhost network-scripts]# 

以上配置内容大部分为默认配置,只需按实际情况,修改BOOTPROTO,ONBOOT(开机是否自动启动网卡) IPADDR,NETMASK。

BOOTPROTO=static
ONBOOT=yes
IPADDR=10.100.1.1
NETMASK=255.255.255.0

本文以root用户操作,如果使用的非root,请使用sudo。

1.下载squid安装包:

wget http://www.squid-cache.org/Versions/v3/3.4/squid-3.4.14.tar.gz

2.解压并编译安装squid

tar xf squid-3.4.14.tar.gz -C /usr/src/ 
cd /usr/src/squid-3.4.14/ 
./configure --prefix=/usr/local/squid --sysconfdir=/etc/ --enable-arp-acl --enable-linux-netfilter --enable-linux-tproxy --enable-async-io=100 --enable-err-language="Simplify_Chinese" --enable-underscore --enable-poll --enable-gnuregex 
make && make install 
ln -s /usr/local/squid/sbin/* /usr/local/sbin/
useradd -M -s /sbin/nologin squid 
chown -R squid:squid /usr/local/squid/var/

3.安装完成后配置squid基本配置

vim /etc/squid.conf
http_port 8088 #配置代理服务器端口号 
reply_body_max_size 10 MB #限制下载文件大小

完整配置:

acl localnet src 172.16.0.0/12 # RFC1918 possible internal network 
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network 
acl localnet src fc00::/7 # RFC 4193 local private network range 
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines 
acl SSL_ports port 443 
acl Safe_ports port 80 # http 
acl Safe_ports port 21 # ftp 
acl Safe_ports port 443 # https 
acl Safe_ports port 70 # gopher 
acl Safe_ports port 210 # wais 
acl Safe_ports port 1025-65535 # unregistered ports 
acl Safe_ports port 280 # http-mgmt 
acl Safe_ports port 488 # gss-http 
acl Safe_ports port 591 # filemaker 
acl Safe_ports port 777 # multiling http 
acl CONNECT method CONNECT 
acl AdminIP src "/etc/squid/acl/AdminIP.list" 
acl UserIP src "/etc/squid/acl/UserIP.list" 
acl UserWeb dstdomain "/etc/squid/acl/UserWeb.list" 
acl BadUrl dstdomain "etc/squid/acl/BadUrl.list" 
http_access allow AdminIP all 
http_access deny UserIP BadUrl 
http_access allow UserIP UserWeb 
http_access deny !Safe_ports 
http_access deny all 
http_port 8088 #配置代理服务器端口号 
reply_body_max_size 10 MB #限制下载文件大小
coredump_dir /var/spool/squid 
refresh_pattern ^ftp: 1440 20% 10080 
refresh_pattern ^gopher: 1440 0% 1440 
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 
refresh_pattern . 0 20% 4320

配置防火墙允许策略

iptables -I INPUT -p tcp --dport 8088 -j ACCEPT service iptables save

 

查看squid端口状态

netstat -anpt | grep squid

4.客户端连接配置

IE浏览器:工具-->Internet选项-->局域网(LAN)设置-->配置代理服务器IP和端口号 填写内网IP和端口号8088


5.Squid acl权限配置说明

权限控制:按用户IP控制可以访问的网址, 将IP列表和网址URL列表分别配置在独立的文件中,文件名随便取,方便随时修改。

用户IP分为两类,admin管理员,普通用户USER

定义IP :文件AdminIP.list

[root@localhost acl]# cat AdminIP.list 
10.100.x.x/32

定义IP: 文件:UserIP.list

[root@localhost acl]# cat UserIP.list 
10.100.x.0/24 
10.100.x.0/24 

定义允许代理的URL 文件:UserWeb.list

.google.cn 以“." 开的匹配url后缀是 google.cn的所有网站,以”."开始,而不是“*”,写成*.google.cn是错误的。

以“.(点)”开始即可,不要写“  *(星号) ”

[root@localhost acl]# cat UserWeb.list
netty.io
.codeaurora.org
source.codeaurora.org
seccdn.libravatar.org
.google.cn
.googleapis.com
.google.com.hk
.google.com
.gstatic.com
.google-analytics.com
.googleusercontent.com
.gstatic.com
.admob.com

禁止同一域名下特定前缀的URL文件

[root@localhost acl]# cat BadUrl.list 
play.google.com
www.google.com.hk
www.google.com

设置IP禁止或允许访问的URL

允许指定IP访问指定URL: all表示任何网址. 注意先后顺序,匹配规则的顺序是从上往下,

deny某一域名后缀的特定URL的规则必须放在允许该域名的规则的前面.

比如禁止www.google.com ,但允许其它以google.com结尾的url

白名单机制,最后一条应该是deny all , 黑名单机制最后一条就是allow all

http_access allow AdminIP all 
http_access deny UserIP BadUrl 
http_access allow UserIP UserWeb 
http_access deny !Safe_ports 
http_access deny all

6, 需要添加允许访问规则的方法:

1.新增或编辑IP文件,URL文件,通过以下配置指定IP允许访问的URL.

在squid.conf适当的位置(考虑规则先后顺序)增加条目,关联IP与URL

http_access allow IP [或acl文件名] URL [或URLG文件名]

2.重启squid服务

service squid restart

systemctl restart squid

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值