linux ipset 命令,什么是ipset,以及如何简单使用ipset,

linux ipset 命令,什么是ipset,以及如何简单使用ipset,前一段时间一直在折磨着如何优化我写的防火墙,因为iptables的规则实在太多,无意中发现ipset,感觉像遇到了大救星,后来在网上google了两天发现这个方面的资料少的极其的可怜,我到现在都很想问一句,这到底是为什么,今天在这边贴点使用ipset的小结,希望能给大家提供点方便,同时也希望大家平时也发扬一点精神,好了,废话不多说了,呵呵!1.ipset介绍(本人英语不是很好,所以有可能翻译的不…

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

Jetbrains全系列IDE稳定放心使用

前一段时间一直在折磨着如何优化我写的防火墙,因为iptables的规则实在太多,无意中发现ipset,感觉像遇到了大救星,后来在网上google了两天发现这个方面的资料少的极其的可怜,我到现在都很想问一句,这到底是为什么,今天在这边贴点使用ipset的小结,希望能给大家提供点方便,同时也希望大家平时也发扬一点精神,好了,废话不多说了,呵呵!

1.ipset 介绍(本人英语不是很好,所以有可能翻译的不是很准确):

在iptables中,如果我们去匹配多个IP地址的话就会写入多条iptables的规则(这些IP都是无规律性的),当如果需要匹配几百甚至上千个IP地址的话,那么性能就会受到严重的影响,ipset在这个方面做了很大的改善,其最主要是的在结构和规则的查找上面做了很大的改善,当出现上面的情况的时候,ipset对性能就始终稳定在一个相对值上。根据提供的测试结果表明,当规则在300-1500之间的时候其对性能的影响基本是水平线。所以当你的防火墙规则过多的时候不妨试试看。

2. 安装

这个就没什么可以说的了,到http://ipset.netfilter.org/上面把程序下载下来,里面还有一个用户手册可以看看,别的就什么都没有了。

3. 下面介绍如何使用:

(1). 首先ipset里面好多的命令是和iptables一样的,比如-F ,-X, -A, -nL等等,这样大家直接就可以试一试了。

(2). 用户如果什么都没有添加的话,这个时候ipset -nL 就会发现都是空的,什么都没有

(3)  这个时候我们试着添加一条自定义链,注意ipset没有默认的链的,要使用的话就必须自己先创建一个自定义链,如:

ipset -N test_policy ipmap –network 192.168.100.1/255.255.255.0

test_policy代表的是自定义链;ipmap 代表的是自定义链的类型; –network 192.168.100.1/255.255.255.0代表的是option,代表一个网段,还有别的一些

option,在这边就不一一介绍了,手册里面都有。自定义链的创建都必须要满足上面的格式。

(4)  自定义链创建好了后就需要在上面添加一些IP了,如:

ipset -A  test_policy  192.168.100.1

ipset -A  test_policy  192.168.100.2

ipset -A  test_policy  192.168.100.3

ipset -A  test_policy  192.168.100.4

这个时候你ipset -nL就会看到:

localhost:/usr/bin# ipset -nL

Name: servers_1

Type: ipmap

References: 1

Default binding:

Header: from: 192.168.100.0 to: 192.168.100.255

Members:

192.168.100.1

192.168.100.2

192.168.100.3          192.168.100.4

Bindings:

(5) 好,到这个时候我们ipset的自定义链就搞好了,这个时候要把他加到我们的iptables链里面,比如说加到FORWARD链里面:

iptables -A FORWARD -m set –set test_policy src -j DROP

当然也可以象我这样做:

iptabs -N NEW_POLLICY

iptables -A FORWARD -m set –set test_policy src -j NEW_POLLICY

这里面需要说明的是src,也就是只是匹配的源地址,如果你需要匹配目的地址的话那么就写成dst

(6)我感觉到重点:

1. 大家使用macipmap类型的时候,如果只需要匹配MAC的时候一定要使用参数:–matchunset ,如:

ipset -N servers_mac_macipmap –network $LAN_IP/$LAN_NETMASK –matchunset

其实就是这句:

ipset -N servers_mac_macipmap –network ip/mask –matchunset

我发现手册在这个方面写的不是很清楚,所以在这边特意的提醒一下。

另外还有好多其他的settype我在这边就不一一的介绍了

2.  在编译的时候注意大小字节序,我遇到这个问题的,呵呵,搞了半天,如果你设定的IP,看到的不是你想要的,估计就是这个问题了,嘿嘿!

比如你ipset -A  test_policy  192.168.100.1, 当ipset -nL 去看设定结果的时候看到的却是:192.168.100.51。

至于怎么改,目前我程序不在手边,有机会我补上。

3. ipset功能在做ip/mac绑定功能和防ARP攻击,是一个好的选择,建议可以试一试的。

好象就这么多了

[本帖最后由 heizi_liu 于 2008-4-23 11:08 编辑]

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/184951.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • FileStream Close「建议收藏」

    FileStream Close「建议收藏」           FileStreamf=newFileStream(“hou.txt”,FileMode.Create,FileAccess.ReadWrite);           StreamWriterwf=newStreamWriter(f);           wf.Write(“Helloworld!”);           wf.Close();

  • webdriver.Firefox_web driver

    webdriver.Firefox_web driver1、下载geckodriver(是Firefox的官方webdriver)地址:https://github.com/mozilla/geckodriver/releases2、下载需要的driver后,解压,将geckodriver.exe放置在与python3.exe相同的路径下。demo调试一下:火狐浏览器可以正常执行脚本,pass!…

  • 2017中国程序员薪资生存现状调查报告结论_程序员的收入

    2017中国程序员薪资生存现状调查报告结论_程序员的收入程序员一直都是一个备受人们关注的群体。2014年,据IDC统计,全球约有1850万名程序员,中国占10%。随着近年全国互联网创业热潮的兴起,“互联网+”、“云计算”以及“智能硬件”等领域发展迅速,市场对程序员的需求更为旺盛。  由程序员客栈联合稀土掘金通过对北京、广东、浙江、上海等全国28个省、直辖市及特别行政区的10W+优秀程开发者进行了一次调查。调查报告里对程序员的年龄组成、性别比例、

    2022年10月11日
  • Navicat15 注册激活码【最新永久激活】「建议收藏」

    (Navicat15 注册激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • 微信小程序之某荟团JS逆向

    微信小程序之某荟团JS逆向声明:本文仅限交流学习使用,请勿使用在任何非法商业活动,禁止用于非法用途。否则后果自负。如有侵权,请告知删除,谢谢!文章目录 一、fiddler抓包分析请求参数 二、微信小程序反编译 三、逆向分析与测试结果 总结 也不能说简单吧,有手就行 前言提示:以下是本篇文章正文内容,下面案例可供参考,本文仅限交流学习使用,请勿使用在任何非法商业活动,禁止用于非法用途。否则后果自负。如有侵权,请告知删除,谢谢!详细请参考这位大佬-…

  • sqlserver 日期与字符串之间的转换[通俗易懂]

    sqlserver 日期与字符串之间的转换[通俗易懂]sqlserver日期与字符串之间的转换5、字符串转日期selectCONVERT(date,‘2019-04-3009:08:29.000’,111)–2019-04-301、日期时间转字符串SelectCONVERT(varchar(100),GETDATE(),0):0516200610:57AMSelectCONVERT(varchar(100),GETDATE(),1):05/16/06SelectCONVERT(varchar(100),G

发表回复

您的电子邮箱地址不会被公开。

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