• ipset可使iptables一次性封多个ip


    ipset是什么?

    ipset是iptables的扩展,它允许你创建 匹配整个地址集合的规则。而不像普通的iptables链只能单IP匹配, ip集合存储在带索引的数据结构中,这种结构即时集合比较大也可以进行高效的查找,除了一些常用的情况,比如阻止一些危险主机访问本机,从而减少系统资源占用或网络拥塞,IPsets也具备一些新防火墙设计方法,并简化了配置.官网:http://ipset.netfilter.org/

    1、ipset安装

    yum安装: yum install ipset

    源代码安装:进官网下载ipset-6.30.tar.bz2 ,

    yum -y install libmnl-devel libmnl

    tar -jxvf ipset-6.30.tar.bz2  && cd ipset-6.30 && ./configure --prefix=/usr/local/ipset && make && make install   完成安装

    2、创建一个ipset
    ipset create allset hash:net (也可以是hash:ip ,这指的是单个ip)
    2.1、查看已创建的ipset
    2.2、ipset默认可以存储65536个元素,使用maxelem指定数量
    ipset create openapi hash:net maxelem 1000000
    ipset list
    3、加入一个黑名单ip
    ipset add allset 145.201.56.109
    4、创建防火墙规则,与此同时,allset这个IP集里的ip都无法访问80端口(如:CC攻击可用)
    iptables -I INPUT -m set --match-set allset src -p tcp --destination-port 80 -j DROP
    service iptables save
    5、去除黑名单,与此同时,又可以访问了
    ipset del allset 145.201.56.109
    6、将ipset规则保存到文件
    ipset save allset -f allset.txt
    7、删除ipset
    ipset destroy allset
    8、导入ipset规则
    ipset restore -f allset.txt
     
    注意:
    1、ipset的一个优势是集合可以动态的修改,即使ipset的iptables规则目前已经启动,新加的入ipset的ip也生效
     

    实例解释:

    例:某服务器被CC攻击,经过抓包或者一序列手段发现有一批IP是源攻击ip,因此我们需要封掉这些IP,如果用iptables一条一条加就麻烦些了。
     
    #对TIME_WAIT的外部ip以及此对ip出现的次数经行求重排序。
    netstat -ptan | grep TIME_WAIT | awk '{print $5}' | awk -F: '{print $1}' |sort |uniq -c | sort -n -r
     
    #tcpdump 抓取100个包,访问本机80的ip进行求重排序  只显示前20个,数量多的ip可能为攻击源IP,我们需要封掉它
    tcpdump -tnn dst port 80 -c 100 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -n -r |head -20
     
    #新建一个setname.txt文件,以如下格式加入这些ip (有多少个ip就多少行)
    vim setname.txt
      add setname xxx.xxx.xxx.xxx
     
    #导入setname.txt文件到ipset集
    ipset restore -f setname.txt
     
    #查看是否导入成功 (成功的话会发现一个新ipset名为 sername,且Members里就是那些攻击IP)
    ipset list
     
    #建立一条iptables规则,拦截这些攻击ip访问服务器80,也可以直接禁止这些ip的所有访问
    iptables -I INPUT -m set --match-set setname src -p tcp --destination-port 80 -j DROP
     
     
    iptables -A INPUT -m iprange --src-range 192.168.1.2-192.168.1.7  -j DROP
    过滤目标地址范围:

    iptables -A INPUT -m iprange --dst-range 192.168.1.2-192.168.1.7 -j DROP
  • 相关阅读:
    记录下平台多种语言加密算法实施的历程
    Php AES加密、解密与Java互操作的问题
    Tomcat服务器常用配置和HTTP简介
    淘宝IP地址查询
    linux下hexdump和od命令:显示文件十六进制格式
    技术讨论 | 简谈渗透测试各阶段我常用的那些“神器”
    串口发送数据速度
    在Qt示例项目的C ++ / QML源中的//! [0]的含义是什么?
    C++ 函数参数中“ *&代表什么? ”
    c++中三种参数引用方式
  • 原文地址:https://www.cnblogs.com/linkenpark/p/9116976.html
Copyright © 2020-2023  润新知