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 ...
随机推荐
- Core Graphics框架是Quartz的核心,也是内容描画的基本接口。
Core Graphics框架是Quartz的核心,也是内容描画的基本接口.
- mysql数据库管理工具navicat for mysql怎么用
mysql数据库管理工具navicat for mysql,对于不怎么喜欢图形界面或者不太方便使用SQL的时候.我们可以通过用这个图形界面数据库管理工具来管理mysql,本经验咗嚛就简单介绍一下怎么用 ...
- 使用BIOS进行键盘输入和磁盘读写
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- 6_css选择器
如何应用css样式? 找标签 写样式 如何找出标签? class选择器 .类名(注意前面点){ 样式 } .a{ color: green; } <p class="a"&g ...
- Servlet--转发和重定向
Servlet的跳转有2种,一种是转发,一种是重定向. 重定向: <strong><span style="font-size:14px;"></sp ...
- MySQL模糊查询中通配符的转义
sql中经常用like进行模糊查询,而模糊查询就要用到百分号“%”,下划线“_”这些通配符,其中“%”匹配任意多个字符,“_”匹配单个字符.如果我们想要模糊查询带有通配符的字符串,如“60%”,“us ...
- 转 intValue()的用法
intValue()是java.lang.Number类的方法,Number是一个抽象类.Java中所有的数值类都继承它. 不单是Integer有intValue方法,Double,Long等都有此方 ...
- webpack 介绍 & 安装 & 常用命令
webpack 介绍 & 安装 & 常用命令 webpack系列目录 webpack 系列 一:模块系统的演进 webpack 系列 二:webpack 介绍&安装 webpa ...
- 解决ubuntu系统root用户下Chrome无法启动问题
由于ubuntu16.04系统自带的是Firefox浏览器,需要安装Chrome浏览器,但是在root用户下安装后发现,Chrome无法正常启动.安装及问题解决具体如下: 1. ubuntu上Chro ...
- 跨域资源共享 CORS 详解(转)
add by zhj: 公司在一个web产品上,做前后端分离,前后端提供独立的服务,使用不同的域名,通过http进行交互,在 前端,会涉及到跨域访问的问题,前端使用了CORS,后端同时需要做相应修改, ...