DNS服务器安全---通过ipset对DNS异常解析流量的源IP地址进行管控
ipset介绍
ipset是iptables的扩展,它允许你创建 匹配整个地址集合的规则。而不像普通的iptables链只能单IP匹配, ip集合存储在带索引的数据结构中,这种结构即时集合比较大也可以进行高效的查找,除了一些常用的情况,比如阻止一些危险主机访问本机,从而减少系统资源占用或网络拥塞,IPsets也具备一些新防火墙设计方法,并简化了配置.官网:http://ipset.netfilter.org/
ipset配置步骤
一、安装ipset
yum -y install ipset
二、创建ipset规则
ipset create blacklist hash:net
ipset create whitelist hash:net
三、添加黑/白名单IP
ipset add blacklist 192.168.0.1
ipset add whitelist 192.168.0.2
ipset add blacklist 192.168.0.0/24
四、ipset默认存储位置,以及保存
/etc/sysconfig/ipset
如果需要保存到其他路径,使用如下命令
ipset save -f /opt/ipset.conf
五、关联ipset和iptables
iptables -I INPUT -m set --match-set blacklist src -j DROP -m comment --comment "Reject from blacklist"
iptables -I INPUT -m set --match-set whitelist src -j ACCEPT -m comment --comment "Allow from whitelist"
六、保存iptables规则
service iptables save
实现自动化的添加ip黑名单
通过脚本自动化的从query.log筛选出异常的IP地址并加入到ipset的blacklist中
#!/bin/bash
# query log location
query_location='/var/named/data/query.log'
# Get the time 2s before the current time.
date_time=$(date +%H:%M:%S -d '-2 Seconds')
printf "The IP traffic statistics time point is %s\n" $date_time
# Get the ip access count list at the current time in the dns query log, and display the corresponding information, such as: total number, ip number, maximum access ip.
num_list=`grep $date_time $query_location | awk -F '[ #]' '{print $5}' | sort | uniq -c | awk '{print $1}' | sort -n`
total_num=0
for n in $num_list
do
total_num=`echo "$total_num+$n" | bc`
done
printf "The total number of queries in 1 second is %s\n" $total_num
max_num=`echo $num_list | awk '{print $NF}' -`
max_num_ip=`grep $date_time $query_location | awk -F '[ #]' '{print $5}' | sort | uniq -c | grep $max_num | awk '{print $2}'`
printf "The highest queried IP is:\n%s\nThe total amount of queries is: %s\n" "$max_num_ip" $max_num
if [ "$max_num" -lt "100" ]
then
echo "There is no ip address for the exception query!"
else
ipset list
for l in $num_list
do
if [ "$l" -ge "100" ]
then
ip_stop=`grep $date_time $query_location | awk -F '[ #]' '{print $5}' | sort | uniq -c | grep $l | awk '{print $2}'`
echo $ip_stop
ipset add blacklist $ip_stop
fi
done
ipset list
echo "IPs with more than 100 ips have been blacklisted!"
fi
再添加cron任务即可。
至此,DNS异常IP的ipset配置已经完成。
DNS服务器安全---通过ipset对DNS异常解析流量的源IP地址进行管控的更多相关文章
- 架构师成长之路6.6 DNS服务器搭建(构建企业级DNS)
点击返回架构师成长之路 架构师成长之路6.6 DNS服务器搭建(构建企业级DNS) 采用LVS-DR模式负载均衡,多IDC,多套DNS集群,通过master-slave技术保证dns配置的一致性. 1 ...
- 架构师成长之路6.4 DNS服务器搭建(部署主从DNS)
点击返回架构师成长之路 架构师成长之路6.3 DNS服务器搭建(部署主从DNS) 部署主DNS : 点击 部署从DNS : 如下步骤 1.与主DNS一样,安装bind yum -y install ...
- DNS反射放大攻击分析——DNS反射放大攻击主要是利用DNS回复包比请求包大的特点,放大流量,伪造请求包的源IP地址为受害者IP,将应答包的流量引入受害的服务器
DNS反射放大攻击分析 摘自:http://www.shaojike.com/2016/08/19/DNS%E6%94%BE%E5%A4%A7%E6%94%BB%E5%87%BB%E7%AE%80%E ...
- 一台独立的服务器是可以可以建立多个网站的,一个ip地址,一个端口
# 1,若开启虚拟主机,这个一定要有(IP:端口),找到 #NameVirtualHost *:80 修改成: NameVirtualHost 127.0.0.1:80 # 2,修改<Direc ...
- IP地址,子网掩码,默认网关,DNS服务器知识详解(转)
转自:http://www.cnblogs.com/JuneWang/p/3917697.html 为了更深入的学习TCP/IP协议,最近看了不少有关资料,收集整理记录如下,以备后面的使用和方便各位学 ...
- IP地址,子网掩码,默认网关,DNS服务器详解
为了更深入的学习TCP/IP协议,最近看了不少有关资料,收集整理记录如下,以备后面的使用和方便各位学习: IP地址,子网掩码,默认网关,DNS服务器是什么意思? (一) 问题解析 001. 问: ...
- 在Debian上用Bind 配置DNS服务器
1 什么是DNS 初学者可能不理解DNS到底是什么,干什么用.我是在1998年大学毕业时才听说这个词的.那时我在聊天室碰到潍坊信息港的一个网管,我恬不知耻地说我也是个网管,他说也维护DNS吗?我说,D ...
- DNS服务器搭建与配置
DNS服务器搭建与配置目录 1.DNS查询方式 2.DNS服务器类型 3.DNS主要配置文件组 4.name.conf文件配置介绍 5.DNS的资源记录格式 6.DNS服务器和客户端配置 7.简单搭建 ...
- bind搭建内网DNS服务器架构(主从、子域授权、DNS转发器)
实验目的 模拟企业DNS服务架构服务器及原理 实验环境准备 实验架构图 实验设备 DNS服务器4台 主服务器master(centos8):IP_192.168.100.30, 从服务器slave(r ...
随机推荐
- Samsung WLAN AP RCE漏洞及利用工具
1.漏洞详情: 三星 WLAN AP WEA453e 路由器 远程命令执行 2.fofa语句 title=="Samsung WLAN AP" 3.复现 payload: POST ...
- python+selenium基础篇,切入切出frame
1.首先制作一个html的文件,代码如下 <!DOCTYPE html> <html> <head> <title>Frame_test</tit ...
- Django(59)验证和授权
验证和授权概述 Django有一个内置的授权系统.他用来处理用户.分组.权限以及基于cookie的会话系统.Django的授权系统包括验证和授权两个部分.验证是验证这个用户是否是他声称的人(比如用 ...
- Maven execution terminated abnormally (exit code 1) 完美解决
https://www.pianshen.com/article/1477185745/ 找到本地仓库这个包中, 删掉,重新导入,,完美解决
- 28.qt quick-ListView高仿微信好友列表和聊天列表
1.视图模型介绍 在Qml中.常见的View视图有: ListView: 列表视图,视图中数据来自ListModel.XmlListModel或c++中继承自QAbstractItemModel或Q ...
- 十、构建memcached服务
装包-------配置----起服务---验证 装包: [root@proxy ~]# yum -y install memcached //安装软件包memcached [root@ ...
- 『动善时』JMeter基础 — 47、JMeter的HTTP代理服务器详细介绍
目录 1.HTTP代理服务器的添加 2.HTTP代理服务器界面详解 (1)State:状态 (2)Global Settings:全局设置 (3)Test Plan Creation:测试计划创建 ( ...
- 『心善渊』Selenium3.0基础 — 5、XPath路径表达式详细介绍
目录 1.XPath介绍 2.什么是XML 3.XML与HTML对比 4.为什么使用XPath定位页面中的元素 5.XPath中节点之间的关系 (1)节点的概念 (2)节点之间的关系类型 6.XPat ...
- 【知识点】SQLite3总结
目录 基本的DDL.DML 创建表,包含日期字段 插入一行,包含日期字段 查找,包含日期字段 查找,按照排序以及限制条目输出 删除记录 更新数据 视图 索引 触发器 事务 专业术语 基本的DDL.DM ...
- MVC,MVVM模式的理解
基本上,我们的产品就是通过接口从数据库中读取数据,然后将数据经过处理展示到用户看到的视图上.当然我们还可以从视图上读取用户的输入,然后通过接口写入到数据库.但是,如何将数据展示到视图上,又如何将用户的 ...