ipset批量配置iptables
简介:
ipset是iptables的扩展,允许你创建匹配整个地址sets(地址集合)的规则。而不像普通的iptables链是线性的存储和过滤,ip集合存储在带索引的数据结构中,这种集合比较大也可以进行高效的查找。在许多的linux发布中ipset是一个简单的安装包,可以通过linux发行版提供的yum进行安装。
格式:ipset-6.11版本
显示已有列表: ipset list
创建列表 : ipset create 表名 hash:net或者hash:ip hashsize 表大小 maxelem 最大条目数
其中hashsize 为表大小默认为1024 maxelem为表项数默认为65535
删除已有表 : ipset destroy 表名
删表中项 : ipset del 表名 项
向表添加网段: ipset add 表名 IP/掩码位
测试是否在表中 iptest test 表名 项
表要关联到防火墙,例如做nat匹配
iptables -t nat -A POSTROUTING -m set --set 表名 src -m set --set 目的表名 dst -j SNAT --to NAT后地址
这条就是同时匹配源地址和目的地址的NAT转换(记得要开启sysctl的ip转发)
举例:
下面的ipset/iptables命令:
ipset create myset hash:ip
ipset add myset 1.1.1.1
ipset add myset 2.2.2.2
iptables -A INPUT -m set --set myset src -j DROP
上面的命令创建了两个地址(1.1.1.1 and 2.2.2.2)的集合(myset表类型是haship,还可以是hashnet) 然后iptables命令通过-m set --set myset src这个选项使用这个集合,这个匹配规则的意思是“匹配源地址包含在集合myset中的数据包”。src表示源地址,dst表示目标地址。如果同时使用src和dst表示既要匹配源地址又要匹配目的地址。
ipset还有另一个应用。假设有一个本地LAN (10.0.0.0/24)需要连接到internet,除此之外还有三个本地网络(10.30.30.0/24, 10.40.40.0/24, 192.168.4.0/23 和 172.22.0.0/22),执行下面的命令: ipset create routed_nets hash:net
ipset add routed_nets 10.30.30.0/24
ipset add routed_nets 10.40.40.0/24
ipset add routed_nets 192.168.4.0/23
ipset add routed_nets 172.22.0.0/22
iptables -t nat -A POSTROUTING \
-s 10.0.0.0/24 \
-m set ! --set routed_nets dst \
-j MASQUERADE
如你所见,ipset 简单的实现了精确匹配。该规则伪装所有来自(10.0.0.0/24)的数据包,而不处理其他在routed_nets集合中的网络的包。由于该配置完全基于网络地址,所以你完全不用担心其他特殊的网络连接(比如VPN),也不用担心物理接口和网络拓扑。
参考文章:http://sw5720.blog.51cto.com/8812314/1623378
ipset批量配置iptables的更多相关文章
- iptables:ipset批量管理ip
1.安装 安装: yum -y install ipset \apt-get -y install ipset 2.创建一个ipset ipset create whitelist hash:net ...
- centos 7 配置iptables
环境:阿里云ECS.centos 7 一.防火墙配置 不知道为什么,云主机没有开启firewall 或iptables,记录一下配置iptables防火墙的步骤 1.检测并关闭firewall sys ...
- 烂泥:KVM使用NAT联网并为VM配置iptables端口转发
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 在前面的文章中,我们介绍KVM的虚拟机(以下简称VM)都是通过桥接方式进行联网的. 本篇文章我们来介绍KVM的VM通过NAT方式进行联网,并且通过配置I ...
- 批量配置SSH互信脚本
在大规模自动化部署时我们常常需要配置好服务器的SSH互信,以便自动化脚本可以免密登录远程服务器,常规的手动配置SSH互信步骤如下: 使用ssh-keygen生成本地ssh key(mha01),生成的 ...
- CentOS配置iptables规则并使其永久生效
1. 目的 最近为了使用nginx,配置远程连接的使用需要使用iptable是设置允许外部访问80端口,但是设置完成后重启总是失效.因此百度了一下如何设置永久生效,并记录. 2. 设置 2.1 添加 ...
- 2-10~2-11 配置iptables防火墙增强服务 selinux简单讲解
学习一个服务的过程: 1.此服务器的概述:名字,功能,特点,端口号 2.安装 3.配置文件的位置 4.服务启动关闭脚本,查看端口 5.此服务的使用方法 6.修改配置文件,实战举例 7.排错(从下到上, ...
- CentOS下配置iptables防火墙 linux NAT(iptables)配置
CentOS下配置防火墙 配置nat转发服务CentOS下配置iptables防火墙 linux NAT(iptables)配置 CentOS下配置iptables 1,vim /etc/syscon ...
- 使用Ansible安装部署nginx+php+mysql之配置iptables防火墙(0)
前提: 1.已配置好hosts文件且免密码登录 2.需要的yaml文件已上传到主控端 一.使用Ansible配置iptables 1.iptables.yaml文件 --- - hosts: clon ...
- linux配置iptables
iptables主要用来配置防火墙.其是一个需要特别谨慎设置的东西,服务器不在身边,不要贸然设置,有可能导致无法SSH,那就麻烦了. 1.首先介绍一下指令和相关配置文件 启动指令:service ip ...
随机推荐
- 手机WebApp是什么?
手机WebApp是基于HTML5+css3开发的,一次开发,可以兼容许多的平台(android/iphone),调用本地功能(比如照相),可以用phonegap去实现,所以,是一个趋势.相比每个平台定 ...
- Android 问题
1.Cannot refer to a non-final variable 解决方法 内部类如果要引用外部类的变量,则该变量必须为final,这是规定 2.error: No resource id ...
- 用photoshop将图片四角变成圆角
1.用PS打开一张图片,用矩形选框工具,选出你要保留的的那一部分,"选择→修改→平滑".在弹出的选框里添入数值,值越大角就越圆. 2.然后选择"选择→反选"再按 ...
- CCF系列之数字排序(201503-2)
问题描述试题编号: 201503-2试题名称: 数字排序时间限制: 1.0s内存限制: 256.0MB问题描述: 问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出. 输 ...
- Docker 创建ubuntu ,ssh,vnc 可连接
**************************************************************************************************** ...
- 理解Python中的装饰器//这篇文章将python的装饰器来龙去脉说的很清楚,故转过来存档
转自:http://www.cnblogs.com/rollenholt/archive/2012/05/02/2479833.html 这篇文章将python的装饰器来龙去脉说的很清楚,故转过来存档 ...
- JAR包数字签名与验证
经签名的Jar包内包含了以下内容: 原Jar包内的class文件和资源文件 签名文件 META-INF/*.SF:这是一个文本文件,包含原Jar包内的class文件和资源文件的Hash 签名block ...
- python初识-day3
1.字符串常用操作(较多,用代码加注释表示) name = '\tMy name is congcong' print(name.capitalize())#输出结果为 My name is cong ...
- MS SQL 监控磁盘空间告警
这几天突然有个想法:希望能够自动监控.收集数据库服务器的磁盘容量信息,当达到一个阀值后,自动发送告警邮件给DBA,将数据库磁盘详细信息告知DBA,提醒DBA做好存储规划计划,初步的想法是通过作业调用存 ...
- servlet 监听器分类
http://blog.csdn.net/cxg200888/article/details/77894842