基于MAC过滤是使用DHCP分配的IP地址,在系统网络中很有用。正如我们所知道的MAC是硬编码在NIC中,它不能被改变的,但由DHCP分配的IP地址可能在未来IP分配中发生变化。本教程将帮助您如何配置Squid代理服务器基于MAC地址的过滤。 如果您没有安装Squid,转到下面的链接了解如何在Squid CentOS/RHEL/Fedora系统中安装Squid。
在CentOS/RHEL Linux中安装并配置Squid代理服务器 ACL规则需要在Squid配置文件
/etc/squid/squid.conf 中添加。请记住,Squid总是首先从上到下顺序应用匹配规则。
1.阻止所有网站对于单个MAC地址
下面的配置将阻止所有的网站系统具有MAC地址01:23:45:AB:CD:EF。
Squid ACL规则:
acl pcmac1 arp 01:23:45:AB:CD:EF
http_access deny pcmac1
2.阻止单个站点的单MAC地址
下面的配置将有MAC地址块www.example.com网站系统01:23:45:AB:CD:EF。
Squid ACL规则:
acl blocksite1 dstdomain www.example.com
acl pcmac1 arp 01:23:45:AB:CD:EF
http_access deny blocksite1 pcmac1
3.阻止所有站点的多个MAC地址
下面的配置将阻止所有的网站具有MAC地址系统的01:23:45:AB:CD:EF 和 AB:CD:EF:01:23:45。
MAC地址列表
# cat /etc/squid/mac-addrs.lst
01:23:45:AB:CD:EF
AB:CD:EF:01:23:45
Squid ACL规则:
acl pcmacs arp "/etc/squid/mac-addrs.lst"
http_access deny pcmacs
4.阻止单个站点的多个MAC地址
下面的配置将阻止www.example.com具有MAC地址系统的01:23:45:AB:CD:EF 和 AB:CD:EF:01:23:45。
MAC地址列表
# cat /etc/squid/mac-addrs.lst
01:23:45:AB:CD:EF
AB:CD:EF:01:23:45
Squid ACL规则:
acl blocksite1 dstdomain www.example.com
acl pcmacs arp "/etc/squid/mac-addrs.lst"
http_access deny blocksite1 pcmacs
5.允许单MAC地址的特定地址
下面的配置将允许www.example.com具有系统MAC地址01:23:45:AB:CD:EF和拒绝其他网站。
SquidACL规则:
acl pcmac1 arp 01:23:45:AB:CD:EF
acl allowsite1 dstdomain www.example.in
http_access allow allowsite1 pcmac1
http_access deny pcmac1
6.允许单MAC地址的多个站点
下面的配置将允许/etc/squid/allowsites.lst添加到系统,具有MAC地址01:23:45:AB:CD:EF和拒绝其他网站。
允许的站点列表
# cat /etc/squid/allowsites.lst
www.google.co.in
yahoo.com
in.yahoo.com
Squid ACL规则:
acl pcmac1 arp 01:23:45:AB:CD:EF
acl allowsite1 dstdomain "/etc/squid/allowsites.lst"
http_access allow allowsite1 pcmac1
http_access deny pcmac1
7.允许特定网站的多个MAC地址
下面的配置将允许www.example.com具有MAC地址01:23:45:AB:CD:EF 和AB:CD:EF:01:23:45 和拒绝其他网站。
MAC地址列表
# cat /etc/squid/mac-addrs.lst
01:23:45:AB:CD:EF
AB:CD:EF:01:23:45
SquidACL规则:
acl blocksite1 dstdomain www.example.com
acl pcmacs arp "/etc/squid/mac-addrs.lst"
http_access allow blocksite1 pcmacs
http_access deny pcmacs
8.允许多个MAC地址的多个站点
下面的配置将允许/etc/squid/allowsites.lst 里的所有站点,和所有系统包含/etc/squid/mac-addrs.lst 文件中MAC地址并拒绝其他网站。
MAC地址列表
# cat /etc/squid/mac-addrs.lst
01:23:45:AB:CD:EF
AB:CD:EF:01:23:45
允许的站点列表
# cat /etc/squid/allowsites.lst
www.google.co.in
yahoo.com
in.yahoo.com
Squid ACL规则:
acl pcmacs arp "/etc/squid/mac-addrs.lst"
acl allowsites dstdomain "/etc/squid/allowsites.lst"
http_access allow allowsites pcmacs
http_access deny pcmacs