日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Centos7 ipset命令介绍及使用

發(fā)布時(shí)間:2023/12/13 综合教程 31 生活家
生活随笔 收集整理的這篇文章主要介紹了 Centos7 ipset命令介绍及使用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

ipset介紹

  iptables是在linux內(nèi)核里配置防火墻規(guī)則的用戶空間工具,它實(shí)際上是netfilter框架的一部分。可能因?yàn)閕ptables是netfilter框架里最常見的部分,所以這個(gè)框架通常被稱為iptables,iptables是linux從2.4版本引入的防火墻解決方案。ipset是iptables的擴(kuò)展,它允許你創(chuàng)建匹配整個(gè)地址sets(地址集合) 的規(guī)則。而不像普通的iptables鏈?zhǔn)蔷€性的存儲(chǔ)和過濾,ip集合存儲(chǔ)在帶索引的數(shù)據(jù)結(jié)構(gòu)中,這種結(jié)構(gòu)即使集合比較大也可以進(jìn)行高效的查找。除了一些常用的情況,比如阻止一些危險(xiǎn)主機(jī)訪問本機(jī),從而減少系統(tǒng)資源占用或網(wǎng)絡(luò)擁塞,ipset也具備一些新防火墻設(shè)計(jì)方法,并簡化了配置。官網(wǎng):http://ipset.netfilter.org/

1.ipset安裝(centos7.x默認(rèn)已經(jīng)安裝ipset,無需再進(jìn)行安裝)

yum install ipset

2.創(chuàng)建一個(gè)ipset

ipset create xxx hash:ip (hash:ip指的是單個(gè)ip,xxx是ipset名稱)

ipset默認(rèn)可以存儲(chǔ)65536個(gè)元素,使用maxelem指定數(shù)量

ipset create blacklist hash:ip maxelem 1000000    #黑名單
ipset create whitelist hash:ip maxelem 1000000    #白名單

查看當(dāng)前服務(wù)器已創(chuàng)建的ipset

ipset list

3.加入一個(gè)名單ip

ipset add blacklist 10.20.30.12

4.去除名單ip

ipset del blacklist 10.20.30.12

5.創(chuàng)建防火墻規(guī)則

iptables -I INPUT -m set --match-set blacklist src -p tcp -j DROP
iptables -I INPUT -m set --match-set whitelist src -p tcp -j DROP
service iptables save

6.將ipset規(guī)則保存到文件

ipset save blacklist -f blacklist.txt
ipset save whitelist -f whitelist.txt

7.刪除ipset

ipset destroy blacklist
ipset destroy whitelist

8.導(dǎo)入ipset規(guī)則

ipset restore -f blacklist.txt
ipset restore -f whitelist.txt

ipset的一個(gè)優(yōu)勢是集合可以動(dòng)態(tài)的修改,即使ipset的iptables規(guī)則目前已經(jīng)啟動(dòng),新加的入ipset的ip也生效。

ipset使用:使用 ipset 封大量ip

  Linux使用iptables封IP,是常用的應(yīng)對網(wǎng)絡(luò)攻擊的方法,但要封禁成千上萬個(gè)IP,如果添加成千上萬條規(guī)則,對機(jī)器性能影響較大,使用ipset能解決這個(gè)問題。iptables 包含幾個(gè)表,每個(gè)表由鏈組成。默認(rèn)的是 filter 表,最常用的也是 filter 表,另一個(gè)比較常用的是nat表,封IP就是在 filter 表的 INPUT 鏈添加規(guī)則。在進(jìn)行規(guī)則匹配時(shí),是從規(guī)則列表中從頭到尾一條一條進(jìn)行匹配。這像是在鏈表中搜索指定節(jié)點(diǎn)費(fèi)力。ipset 提供了把這個(gè) O(n) 的操作變成 O(1) 的方法:就是把要處理的 IP 放進(jìn)一個(gè)集合,對這個(gè)集合設(shè)置一條 iptables 規(guī)則。像 iptable 一樣,IP sets 是 Linux 內(nèi)核中的東西,ipset 這個(gè)命令是對它進(jìn)行操作的一個(gè)工具。

簡單的流程
可以用這幾條命令概括使用 ipset 和 iptables 進(jìn)行 IP 封禁的流程

ipset create vader hash:ip
iptables -I INPUT -m set --match-set vader src -j DROP
ipset add vader 4.5.6.7
ipset add vader 1.2.3.4
ipset add vader ...
ipset list vader # 查看 vader 集合的內(nèi)容

下面分別對各條命令進(jìn)行描述。
1、創(chuàng)建一個(gè)集合

ipset create vader hash:ip

這條命令創(chuàng)建了名為 vader 的集合,以 hash 方式存儲(chǔ),存儲(chǔ)內(nèi)容是 IP 地址。

2、添加 iptables 規(guī)則

iptables -I INPUT -m set --match-set vader src -j DROP

如果源地址(src)屬于 vader 這個(gè)集合,就進(jìn)行 DROP 操作。這條命令中,vader 是作為黑名單的,如果要把某個(gè)集合作為白名單,添加一個(gè) ‘!’ 符號就可以。

iptables -I INPUT -m set ! --match-set yoda src -j DROP

到現(xiàn)在雖然創(chuàng)建了集合,添加了過濾規(guī)則,但是現(xiàn)在集合還是空的,需要往集合里加內(nèi)容。

3、找出“壞” IP
找出要封禁的 IP,這是封禁過程中重要的步驟,不過不是這里的重點(diǎn)。簡要說明一下兩種方法思路。

netstat -ntu | tail -n +3 | awk '{print $5}' | sort | uniq -c | sort -nr

直接通過 netstat 的信息,把與本地相關(guān)的各種狀態(tài)的 IP 都計(jì)數(shù),排序列出來。

或者從 nginx 或者其他 web server 的日志里找請求數(shù)太多的 IP

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr

后半部分,排序,去重,再按次數(shù)進(jìn)行逆向排序的操作,跟上面命令是一樣的。

找出“壞” IP,往之前創(chuàng)建的集合里添加就可以了。

ipset add vader 4.5.6.7

有多少“壞” IP,就添加多少 IP,因?yàn)獒槍@些封禁的 IP 只需要一條 iptables 規(guī)則,而這些 IP 是以 hash 方式存儲(chǔ),所以封禁大量的 IP 也不會(huì)影響性能,這也是 ipset 存在的最大目的。

ipset 更多的用法

1、存儲(chǔ)類型
前面例子中的 vader 這個(gè)集合是以 hash 方式存儲(chǔ) IP 地址,也就是以 IP 地址為 hash 的鍵。除了 IP 地址,還可以是網(wǎng)絡(luò)段,端口號(支持指定 TCP/UDP 協(xié)議),mac 地址,網(wǎng)絡(luò)接口名稱,或者上述各種類型的組合。

比如指定 hash:ip,port就是 IP 地址和端口號共同作為 hash 的鍵。查看 ipset 的幫助文檔可以看到它支持的所有類型。

下面以兩個(gè)例子說明。

HASH:NET
ipset create r2d2 hash:net
ipset add r2d2 1.2.3.0/24
ipset add r2d2 1.2.3.0/30 nomatch
ipset add r2d2 6.7.8.9
ipset test r2d2 1.2.3.2
hash:net 指定了可以往 r2d2 這個(gè)集合里添加 IP 段或 IP 地址。

第三條命令里的 nomatch 的作用簡單來說是把 1.2.3.0/30 從 1.2.3.0/24 這一范圍相對更大的段里“剝離”了出來,也就是說執(zhí)行完 ipset add r2d2 1.2.3.0/24 只后1.2.3.0/24 這一段 IP 是屬于 r2d2 集合的,執(zhí)行了 ipset add r2d2 1.2.3.0/30 nomatch 之后,1.2.3.0/24 里 1.2.3.0/30 這部分,就不屬于 r2d2 集合了。執(zhí)行 ipset test r2d2 1.2.3.2 就會(huì)得到結(jié)果 1.2.3.2 is NOT in set r2d2.

HASH:IP,PORT
ipset create c-3po hash:ip,port
ipset add c-3po 3.4.5.6,80
ipset add c-3po 5.6.7.8,udp:53
ipset add c-3po 1.2.3.4,80-86

第二條命令添加的是 IP 地址為 3.4.5.6,端口號是 80 的項(xiàng)。沒有注明協(xié)議,默認(rèn)就是 TCP,下面一條命令則是指明了是 UDP 的 53 端口。最后一條命令指明了一個(gè) IP 地址和一個(gè)端口號范圍,這也是合法的命令。

自動(dòng)過期,解封
ipset 支持 timeout 參數(shù),這就意味著,如果一個(gè)集合是作為黑名單使用,通過 timeout 參數(shù),就可以到期自動(dòng)從黑名單里刪除內(nèi)容。

ipset create obiwan hash:ip timeout 300
ipset add obiwan 1.2.3.4
ipset add obiwan 6.6.6.6 timeout 60

上面第一條命令創(chuàng)建了名為 obiwan 的集合,后面多加了 timeout 參數(shù),值為 300,往集合里添加條目的默認(rèn) timeout 時(shí)間就是 300。第三條命令在向集合添加 IP 時(shí)指定了一個(gè)不同于默認(rèn)值的 timeout 值 60,那么這一條就會(huì)在 60 秒后自動(dòng)刪除。

隔幾秒執(zhí)行一次 ipset list obiwan 可以看到這個(gè)集合里條目的 timeout 一直在隨著時(shí)間變化,標(biāo)志著它們在多少秒之后會(huì)被刪除。

如果要重新為某個(gè)條目指定 timeout 參數(shù),要使用 -exit 這一選項(xiàng)。

ipset -exist add obiwan 1.2.3.4 timeout 100

這樣 1.2.3.4 這一條數(shù)據(jù)的 timeout 值就變成了 100,如果這里設(shè)置 300,那么它的 timeout,也就是存活時(shí)間又重新變成 300。

如果在創(chuàng)建集合是沒有指定 timeout,那么之后添加條目也就不支持 timeout 參數(shù),執(zhí)行 add 會(huì)收到報(bào)錯(cuò)。想要默認(rèn)條目不會(huì)過期(自動(dòng)刪除),又需要添加某些條目時(shí)加上 timeout 參數(shù),可以在創(chuàng)建集合時(shí)指定 timeout 為 0。

ipset create luke hash:ip
ipset add luke 5.5.5.5 timeout 100

得到報(bào)錯(cuò)信息 kernel error received: Unknown error -1

hashsize, maxelem 這兩個(gè)參數(shù)分別指定了創(chuàng)建集合時(shí)初始的 hash 大小,和最大存儲(chǔ)的條目數(shù)量。

ipset create yoda hash:ip,port hashsize 4096 maxelem 1000000
ipset add yoda 3.4.5.6,3306

這樣創(chuàng)建了名為 yoda 的集合,初始 hash 大小是 4096,如果滿了,這個(gè) hash 會(huì)自動(dòng)擴(kuò)容為之前的兩倍。最大能存儲(chǔ)的數(shù)量是 100000 個(gè)。

如果沒有指定,hashsize 的默認(rèn)值是 1024,maxelem 的默認(rèn)值是 65536。

2、另外幾條常用命令

ipset del yoda x.x.x.x # 從 yoda 集合中刪除內(nèi)容
ipset list yoda # 查看 yoda 集合內(nèi)容
ipset list # 查看所有集合的內(nèi)容
ipset flush yoda # 清空 yoda 集合
ipset flush # 清空所有集合
ipset destroy yoda # 銷毀 yoda 集合
ipset destroy # 銷毀所有集合
ipset save yoda # 輸出 yoda 集合內(nèi)容到標(biāo)準(zhǔn)輸出
ipset save # 輸出所有集合內(nèi)容到標(biāo)準(zhǔn)輸出
ipset restore # 根據(jù)輸入內(nèi)容恢復(fù)集合內(nèi)容
還有……

如果創(chuàng)建集合是指定的存儲(chǔ)內(nèi)容包含 ip, 例如 hash:ip 或 hash:ip,port ,在添加條目時(shí),可以填 IP 段,但是仍然是以單獨(dú)一個(gè)個(gè) IP 的方式來存。
上面所有的例子都是用 hash 的方式進(jìn)行存儲(chǔ),實(shí)際上 ipset 還可以以 bitmap 或者 link 方式存儲(chǔ),用這兩種方式創(chuàng)建的集合大小,是固定的。

參考:https://www.cnblogs.com/xiaofeng666/p/10952627.html

總結(jié)

以上是生活随笔為你收集整理的Centos7 ipset命令介绍及使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美国产第一页 | 理论av | 久久国产经典视频 | 国产夫妻av| 女同亚洲精品一区二区三 | 日本一区中文字幕 | 欧美日韩一区二区三区69堂 | 污网在线看 | 激情国产精品 | 在线免费一区二区 | 开心六月婷婷 | 99er在线 | 日韩网 | 91久精品| 国产av电影一区二区三区 | jjzzjjzz欧美69巨大 | 日出白浆视频 | 欧美极品三级 | 铠甲勇士猎铠 | 成人涩涩网站 | 色又色 | 美日韩精品 | 午夜爽视频| www.av免费 | 国产又爽又黄免费软件 | 日本韩国在线 | 少妇被躁爽到高潮无码文 | 精品动漫一区二区三区 | 91久久久久久久久久久 | 97视频在线观看免费高清完整版在线观看 | 欧美日韩不卡在线 | 国产精品电影 | 国产精品无码一区二区三区免费 | 麻豆国产一区二区 | 致命魔术电影高清在线观看 | 18pao国产成视频永久免费 | 亚洲乱码国产乱码精品 | 国产高清亚洲 | www.jizzcom | 黄色aaaa | 国产精品一区二区三区免费在线观看 | 制服一区二区 | 久久久久无码国产精品不卡 | 欧美美女性生活视频 | 欧美女同在线 | 一级视频在线观看 | 极品销魂美女少妇尤物 | 中文字幕乱码中文乱码777 | 女同vk| 天天草比 | 日韩av免费网站 | 欧美片网站yy | 熟女少妇内射日韩亚洲 | 特种兵之深入敌后高清全集免费观看 | aaa天堂| 色久天堂 | 人人干夜夜操 | 91成人破解版 | 日本三区视频 | 青青操免费在线视频 | 公交顶臀绿裙妇女配视频 | 国产欧美久久久久 | 91久久久久国产一区二区 | 国产精品久久久99 | 精品不卡在线 | 在线观看免费av网站 | 人成在线观看 | 五月婷婷导航 | 国产成人无码精品久久久性色 | 熟女少妇一区二区三区 | 免费av大片 | 国产综合视频一区 | 日批网站在线观看 | 人妻精品一区一区三区蜜桃91 | 日韩毛片在线播放 | 激情拍拍拍 | 日韩欧美亚洲 | 丝袜ol美脚秘书在线播放 | 亚洲成人伦理 | 91丨porny丨露出 | 国产三区在线视频 | 精品综合网 | 亚洲论理| 亚洲午夜久久久久久久久 | 大地资源中文在线观看免费版 | 四虎色播 | 久久久九九 | 中文字幕久久熟女蜜桃 | 日韩精品一 | 美女乱淫 | 91在线导航 | 亚洲一线二线在线观看 | 人人搞人人插 | 亚洲精品亚洲 | 天堂一级片| www.天天综合| 日日淫 | 粉嫩av一区二区三区四区五区 | 四虎8848|