iptables之ipset使用介绍[通俗易懂]

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

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集合:

[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

3.保存规则到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

4.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

5.命令行添加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

6.ipset del使用:

ipset del删除规则时,必须重启iptables服务才会生效

ipset del jump_mysql 111.206.110.202
重启iptables才能生效

ipset add 添加规则时,不用重启iptables 就会生效

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188076.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java8 reduce的用法_Java 8系列之Stream中万能的reduce用法说明

    java8 reduce的用法_Java 8系列之Stream中万能的reduce用法说明reduce操作可以实现从Stream中生成一个值,其生成的值不是随意的,而是根据指定的计算模型。比如,之前提到count、min和max方法,因为常用而被纳入标准库中。事实上,这些方法都是reduce操作。reduce方法有三个override的方法:Optionalreduce(BinaryOperatoraccumulator);Treduce(Tidentity,BinaryO…

    2025年6月18日
    2
  • linux中find命令基本使用方法_find命令用法及参数

    linux中find命令基本使用方法_find命令用法及参数Linux系统find命令用法Linux查找命令find是Linux系统中最重要和最常用的命令之一,用于查找与指定参数条件匹配的文件及目录列表。find查找命令可以在各种条件下使用,我们可以通过权限,用户,组,文件类型,修改日期,大小等多种条件来查找文件。这里我会以实例的形式向大家说明find命令的具体用法。find命令的格式很简单,一般分成三个部分:1)find命令;2)搜索路径(目录可以写多个);3)表达式。对于find命令,最需要学习的是表达式这一段。表达式决定了我们要找的文件是什么属性的文件

    2022年8月31日
    5
  • python django环境搭建_python的django框架

    python django环境搭建_python的django框架Django是一个由Python编写的一个开放源代码的Web应用框架。使用Django,只要很少的代码,Python的开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的Web服务。Python+Django是快速开发、设计、部署网站的最佳组合。Django版本与Python环境的对应表如下,建议对照表来选择Django和Python版本,以免造成不兼容等问题。 Django版本 Python版本 …

    2022年9月7日
    2
  • CountDownLatch踩过的坑[通俗易懂]

    CountDownLatch踩过的坑[通俗易懂]线上生产环境dubbo报线程池满了,经过一天排查锁定在开三个线程计算最后合并数据的步骤中。简单描述下该步骤线程开三个调用三个不同的方法使用countdownlatch计数器等待三个方法全部执行完成合并数据。但是由于其中一个方法调用第三方接口,接口返回异常导致转换数据报错。导致其中一个方法未正常完成。举例demo:publicstaticvoidmain(String[]a…

    2022年7月13日
    39
  • pycharm远程调试python_pycharm怎么运行一个项目文件

    pycharm远程调试python_pycharm怎么运行一个项目文件pycharm远程开发项目的实现步骤你是不是在学习python的时候在使用虚拟机系统进行开发,来回切换很是不方便,那么今天给大家推荐一个pycharm强大的功能。接下来我们利用这个django项目创建一个子app,测验一下是否真的能如此操作python@ubuntu:~/Desktop/Remote_Django$pythonmanage.pystartappusers很完美!,接下来告诉…

    2022年8月26日
    4
  • 向量内积的推导_向量数量积的坐标公式推导

    向量内积的推导_向量数量积的坐标公式推导基本式几何對稱性:。線性函數:設。固定時,而且同樣道理,固定時,转载于:https://www.cnblogs.com/kyostone/p/5743252.html…

    2022年9月16日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号