ipset 笔记
官网:http://ipset.netfilter.org/
ipset是维护内核中IP sets结构的工具,允许你创建 匹配整个地址集合的规则。iptables配合ipset使用后不仅能单IP匹配, 还可以匹配整个IP集合。IP集合存储在带索引的数据结构中, 这种结构即时集合比较大也可以进行高效的查找,除了一些常用的情况,比如阻止一些危险主机访问本机,从而减少系统资源占用或网络拥塞,ipset也具备一些新防火墙设计方法,并简化了配置。
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 完成安装
创建ipset集合
[root@localhost ~]# which ipset
/usr/sbin/ipset
[root@localhost ~]# ipset --list
[root@localhost ~]# ipset create zabbix_server hash:net
[root@localhost ~]# ipset add zabbix_server 192.168.1.20
[root@localhost ~]# ipset create mysql_server hash:net
[root@localhost ~]# ipset add mysql_server 192.168.1.20
[root@localhost ~]# ipset --list
Name: zabbix_server
Type: hash:net
Header: family inet hashsize 1024 maxelem 65536
Size in memory: 16784
References: 0
Members:
192.168.1.20
Name: mysql_server
Type: hash:net
Header: family inet hashsize 1024 maxelem 65536
Size in memory: 16784
References: 0
Members:
192.168.1.20
ipset create xxx hash:net (也可以是hash:ip ,这指的是单个ip,xxx是ipset名称)
ipset默认可以存储65536个元素,使用maxelem指定数量
ipset create blacklist hash:net maxelem 1000000 #黑名单
ipset create whitelist hash:net maxelem 1000000 #白名单
# 查看已创建的ipset
ipset list
保存规则到ipset文件
[root@localhost ~]# /etc/init.d/ipset save
ipset: Saving IP sets to /etc/sysconfig/ipset: [确定]
[root@localhost ~]# cat /etc/sysconfig/ipset
create zabbix_server hash:net family inet hashsize 1024 maxelem 65536
add zabbix_server 192.168.1.20
create mysql_server hash:net family inet hashsize 1024 maxelem 65536
add mysql_server 192.168.1.20
使用timeout设置超时时间,如果设置为0,表示永久生效,超时时间可以通过 -exist来进行修改
ipset -exist add qq 1.1.1.2 timeout 60
iptables规则文件
[root@localhost ~]# cat /etc/sysconfig/iptables
#Generated by iptables-save v1.4.7 on Wed Jul 31 10:21:39 2019
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [10988:6938377]
-A INPUT -s 118.32.234.103/32 -j DROP
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m multiport --dports 80,81,82,443 -m state --state NEW -j ACCEPT
-A INPUT -s 211.144.68.140/32 -p tcp -m multiport --dports 10050,3306 -j ACCEPT
-A INPUT -p tcp -m set --match-set zabbix_server src -m tcp --dport 10050 -j ACCEPT
-A INPUT -p tcp -m set --match-set mysql_server src -m tcp --dport 3306 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 570,21,1038 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 5/sec --limit-burst 10 -j ACCEPT
-A INPUT -j DROP
COMMIT
使allset这个IP集里的IP都无法访问80端口
iptables -I INPUT -m set –match-set allset src -p tcp –destination-port 80 -j DROP
命令行添加iptables规则并保存
iptables -I INPUT -m set --match-set mysql_server src -p tcp -m multiport --dports 10050,3306 -j ACCEPT
iptables -I INPUT -m set --match-set rsync_server src -p tcp --dport 873 -j ACCEPT
service iptables save
/etc/init.d/iptables save
ipset del使用
ipset del删除规则时,必须重启iptables服务才会生效
ipset del jump_mysql 111.206.110.202
重启iptables才能生效
ipset add 添加规则时,不用重启iptables 就会生效
ipset 笔记的更多相关文章
- Openstack实验笔记
Openstack实验笔记 制作人:全心全意 Openstack:提供可靠的云部署方案及良好的扩展性 Openstack简单的说就是云操作系统,或者说是云管理平台,自身并不提供云服务,只是提供部署和管 ...
- Kubernetes学习笔记_尚硅谷
https://www.bilibili.com/video/BV1w4411y7Go?p=1 一.K8s介绍 k8s是一个编排容器的工具,其实也是管理应用的全生命周期的一个工具,从创建应用,应用的部 ...
- git-简单流程(学习笔记)
这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- SQL Server技术内幕笔记合集
SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- NET Core-学习笔记(三)
这里将要和大家分享的是学习总结第三篇:首先感慨一下这周跟随netcore官网学习是遇到的一些问题: a.官网的英文版教程使用的部分nuget包和我当时安装的最新包版本不一致,所以没法按照教材上给出的列 ...
- springMVC学习笔记--知识点总结1
以下是学习springmvc框架时的笔记整理: 结果跳转方式 1.设置ModelAndView,根据view的名称,和视图渲染器跳转到指定的页面. 比如jsp的视图渲染器是如下配置的: <!-- ...
- 读书笔记汇总 - SQL必知必会(第4版)
本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...
随机推荐
- Oracle数据库如何解决创建用户名开头必须要C##问题?
1.问题 我们在创建用户,概要文件等时,由于使用的是容器数据库,其文件名必须以C##开头. 我们在学习过程中暂时不需要对齐进行区分,所以如何修改这个设定呢? 2.解决 参考链接如何解决创建用户名开头必 ...
- JavaScript 对象和 JSON 的区别
参考原文:https://blog.csdn.net/jiaojiao772992/article/details/77871785/ 2.1 对象和 JSON 的区别 JSON 就是 JavaScr ...
- [转帖]数据库的快照隔离级别(Snapshot Isolation)
https://www.cnblogs.com/gered/p/10251744.html 总结:已提交读快照只影响语句级别的锁定行为,而快照隔离影响整个事务. 转自:https://www.cnb ...
- Python学习之十四_Python连接各种数据库的方法(DM,oscar,Oracle,SQLSERVER,MYSQL,PG,Kingbase
Python学习之十四_Python连接各种数据库的方法(DM,oscar,Oracle,SQLSERVER,MYSQL,PG,Kingbase) 前言 想着能够使用多种数据库进行一些操作. 所以本文 ...
- Oracledb_exporter 获取表大小信息的简单方法
Oracledb_exporter 获取表大小信息的简单方法 背景 用我儿子的现状作为背景: 我爱学习, 学习让我妈快乐. 下载exporter exporter 可以在github上面下载最新版本是 ...
- [转帖]TLB缓存是个神马鬼,如何查看TLB miss?
https://zhuanlan.zhihu.com/p/79607142 介绍TLB之前,我们先来回顾一个操作系统里的基本概念,虚拟内存. 虚拟内存 在用户的视角里,每个进程都有自己独立的地址空间, ...
- [转帖]基本系统调用性能lmbench测试方法和下载
简介 Lmbench是一套简易,可移植的,符合ANSI/C标准为UNIX/POSIX而制定的微型测评工具.一般来说,它衡量两个关键特征:反应时间和带宽. Lmbench旨在使系统开发者深入了解关键操作 ...
- SPECJVM2008 再学习
SPECJVM2008 再学习 摘要 昨天的太水了 感觉今天有必要再水一点.. 存在的问题 默认进行启动 sunflow 必定过不去. 一般的解决办法要求进行重新编译 但是我不知道怎么下载源码... ...
- 【JS 逆向百例】复杂的登录过程,最新WB逆向
声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 逆向目标 本次的逆向目标是 ...
- Go实现网络代理
使用 Go 语言开发网络代理服务可以通过以下步骤完成.这里,我们将使用 golang.org/x/net/proxy 包来创建一个简单的 SOCKS5 代理服务作为示例. 步骤 1. 安装 golan ...