linux dns禁止某用户或某个网端的用户使用这台DNS进行地址解析
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux dns禁止某用户或某个网端的用户使用这台DNS进行地址解析相关的知识,希望对你有一定的参考价值。
在Centos6.5上搭建了一台DNS服务器,允许所有人都可以进行解析,我想限制某一个网段的ip不能使用我的DNS解析地址或者某一个ip的计算机不能使用我的DNS进行解析,在named.conf里应该加上哪一项?
可以使用named自带的黑名单功能,用法是在options选项内添加语句blackhole IP; ... ;比如要禁止网段192.168.1.0/24和10.1.0.0/16访问DNS,配置如下语句
options
……
blackhole 192.168.1.0/24; 10.1.0.0/16; ;
……
之后需要重启named服务。 参考技术A 用iptables防火墙禁止某ip到本机53端口的数据包。追问
除了防火墙上限制还有别的方法么
追答有一个allow-query选项,它是控制哪些ip可以进行查询。
追问这个是允许吧,拒绝怎么写呢
使用memcache或redis限制某个用户或者某ip用户一段时间内最大投票次数
实现每个用户在某网站10分钟内最多投票5次
function isFrequently($key){ $t = 60*10; $n = 5; $mem = new Memcache(); $mem->connect(‘127.0.0.1‘,‘11211‘); if(!$mem){ echo ‘memcache连接失败!‘; exit; } $val = unserialize($mem->get($key)); $val = $val ? $val : array(); // if(count($val) >= 5 && time()-$val[0]<$t){ // echo ‘10分钟之内最多投票5次‘; // }else{ // if(count($val) > 1){ // array_shift($val); // } // $val[] = time(); // $mem->set($key,serialize($val),0,$t); // echo ‘投票成功!‘; // } if(count($val) < 5 || $b = array_shift($val)<time()-$t){ $val[] = time(); $mem->set($key,serialize($val),0,$t); echo ‘投票成功!‘; }else{ echo ‘10分钟之内最多投票5次‘; } }
注:$b = array_shift($val)<time()-$t中运算符优先级是-高于<,<高于=。因此右边小于成立,$b=1,否则$b=0。
开始写的注释部分代码,后来进行优化,对||了解更加深入。 null与数字进行比较时候,默认为0。
以上是关于linux dns禁止某用户或某个网端的用户使用这台DNS进行地址解析的主要内容,如果未能解决你的问题,请参考以下文章
Linux如何禁止一个网段(192.168.70.0/24)的主机访问此DNS服务器
Windows Server 2016 DNS Policy Split-Brain 3