在Linux下如何批量屏蔽惡意IP位址防攻擊的案例分析
很多情況下,你可能需要在Linux下封鎖IP位址。例如,身為一個終端用戶,你可能想要免受間諜軟體或IP追蹤的困擾。如果你是系統管理員,你可能想要禁止垃圾IP位址存取你們的公司郵件伺服器。或者你因為一些原因想要禁止某些國家存取你的web服務。在許多情況下,然而,你的IP位址屏蔽清單可能很快就會成長到幾萬的IP。該如何處理這個?
解決方案: ipset + iblocklist2ipset
安裝:
最簡單的方法就是yum安裝,但是該方法版本比較低,缺少一些使用的模組參數等,所以不大推薦;
yum install ipset -y
編譯安裝:
1.依賴環境:
yum install libmnl libmnl-devel kernel-devel libtool-devel -y
(新版本的安裝方法:git pull git://git.netfilter.org/libmnl.git 運行./autogen.sh)
(備註:如果只安裝libmnl時,會出現下面的報錯:
checking for libmnl... configure: error: Package requirements (libmnl >= 1) were not met: No package 'libmnl' found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables libmnl_CFLAGS and libmnl_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. )
在編譯的時候可能提示找不到/lib/modules/2.6.32- 431.el6.x86_64/source
經過檢查發現這個軟連線/lib/modules/2.6.32-431.el6.x86_64/build -->/usr/src/kernels/2.6.32- 431.el6.x86_64 不存在
解決方案:重新建立軟連線
ln -sb /usr/src/kernels/2.6.32-573.3.1.el6.x86_64 /lib/modules/2.6.32-431.el6.x86_64/build
在運行./autogen.sh時報錯誤:
找不到/usr/share /libtool/
解決方法:安裝libtool-devel工具包即可yum install libtool-devel
2.編譯安裝ipset (linux kernel source code (version >= 2.6.32) )
wget -P /usr/local/src http://ipset.netfilter.org/ipset-6.26.tar.bz2 cd /usr/local/src && tar xjf ipset-6.26.tar.bz2 && cd ipset-6.26 ./autogen.sh ./configure make make modules make install make modules_install
注意:不同linux核心使用不同版本的原始碼套件
附註:linux kernel source code (version >= 2.6.16 or >= 2.4.36)
編譯安裝:
wget -P /usr/local/src http://ipset.netfilter.org/ipset-4.5.tar.bz2 cd /usr/local/src && tar xf ipset-4.5.tar.bz2 && cd ipset-4.5 make KERNEL_DIR=http://img.xue163.com/lib/modules/$(shell uname -r)/build #$(shell uname -r)使用shell命令获取 make KERNEL_DIR=http://img.xue163.com/lib/modules/$(shell uname -r)/build install
常用使用指令:
ipset list 查看ip集列表信息 ipset create pythontab hash:ip maxelem 1000000 创建一个IP集pythontab,指定类型为hash:ip,设置ip集最多存储IP数为1000000 ipset add pythontab X.X.X.X 增加一个ip地址到IP集pythontab中去 ipset add pythontab X.X.X.X/24 增加一个网段到IP集pythontab中去 ipset dell pythontab X.X.X.X 删除IP集中指定的IP地址 ipset list 查看当前所有list ipset save pythontab -f pythontab.txt 将IP集pythontab中的信息保存到当前文件目录下面的文件pythontab.txt中 ipset destroy pythontab 删除指定的IP集pythontab ipset restore -f pythontab.txt 将保存的pythontab.txt文件中的IP集信息重新导入到ipset中 其他命令参考 ipset --help iptable命令参考: iptables -I INPUT -m set --match-set pythontab src -p tcp --destination-port 80 -j DROP #拒绝ipset IP集pythontab中的地址访问服务器的80端口 service iptables save service iptables restart
自動IP位址停用
現在你應該看到了IP集合的強大了。一件繁瑣和費時的工作。 ##首先讓我們從iblocklist.com得到免費的黑名單
接下來我要使用一個名為iblocklist2ipset的開源Python工具來將黑名單轉換成IP集。
首先,你需要安裝了pip
使用的下方指令安裝iblocklist2ipset。
$ pip install iblocklist2ipset
在某些發行版如Fedora,你可能需要執行:
$ python-pip install iblocklist2ipset
現在到iblocklist.com,抓取任何一個P2P清單的URL(例如"level1"清單)。
下載解壓縮,然後儲存為txt文件,例如叫做pythontab.txt, 因為iblocklist2ipset只支援url取得list,所以把pythontab.txt放到你網站的任意目錄。例如:ipset目錄
$ iblocklist2ipset generate --ipset pythontab "http://www.pythontab.com/ipset/pythontab.txt" > pythontab.txt
上面的指令運行之後,你會得到一個名為pythontab.txt的檔案。如果你查看它的內容,你會看到像這些:
create pythontab hash:net family inet hashsize 131072 maxelem 237302 add pythontab 1.2.4.0/24 add pythontab 1.2.8.0/24 add pythontab 1.9.75.8/32 add pythontab 1.9.96.105/32 add pythontab 1.9.102.251/32 add pythontab 1.9.189.65/32
你可以用下面的ipset指令來載入這個檔案:
$ ipset restore -f pythontab.txt
現在可以查看自動建立的IP集:
$ ipset list pythontab
這樣就省去了手動管理的麻煩。
注意,在centos下使用yum安裝的不是最新版,可能會不支援-f參數,導入黑名單文件,所以建議用源碼包安裝最新版本以上是在Linux下如何批量屏蔽惡意IP位址防攻擊的案例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

VS Code 系統要求:操作系統:Windows 10 及以上、macOS 10.12 及以上、Linux 發行版處理器:最低 1.6 GHz,推薦 2.0 GHz 及以上內存:最低 512 MB,推薦 4 GB 及以上存儲空間:最低 250 MB,推薦 1 GB 及以上其他要求:穩定網絡連接,Xorg/Wayland(Linux)

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

vscode 內置終端是一個開發工具,允許在編輯器內運行命令和腳本,以簡化開發流程。如何使用 vscode 終端:通過快捷鍵 (Ctrl/Cmd ) 打開終端。輸入命令或運行腳本。使用熱鍵 (如 Ctrl L 清除終端)。更改工作目錄 (如 cd 命令)。高級功能包括調試模式、代碼片段自動補全和交互式命令歷史。

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

VS Code 終端命令無法使用的原因及解決辦法:未安裝必要的工具(Windows:WSL;macOS:Xcode 命令行工具)路徑配置錯誤(添加可執行文件到 PATH 環境變量中)權限問題(以管理員身份運行 VS Code)防火牆或代理限制(檢查設置,解除限制)終端設置不正確(啟用使用外部終端)VS Code 安裝損壞(重新安裝或更新)終端配置不兼容(嘗試不同的終端類型或命令)特定環境變量缺失(設置必要的環境變量)
