在Linux下如何批量屏蔽惡意IP地址防攻擊的案例分析

很多情況下,你可能需要在linux下屏蔽ip地址。比如,作為一個終端用戶,你可能想要免受間諜軟件或者ip追蹤的困擾。如果你是一名系統(tǒng)管理員,你可能想要禁止垃圾ip地址訪問你們的公司郵件服務器。或者你因一些原因想要禁止某些國家訪問你的web服務。在許多情況下,然而,你的ip地址屏蔽列表可能會很快地增長到幾萬的ip。該如何處理這個?

解決方案: iplinux + iblocklinux2ipset

linux

最簡單的方法就是yum安裝,但是該方法版本比較低,缺少一些使用的模塊參數(shù)等,所以不大推薦;

yum?install?ipset?-y

編譯安裝:

1.依賴環(huán)境:

yum?install?libmnl?libmnl-devel?kernel-devel?libtool-devel?-y

(新版本的安裝方法:linux pull git://git.netfilter.org/libmnl.git ?運行./autogen.sh)

(備注:如果只安裝libmnl時,會出現(xiàn)下面的報錯:

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/linuxs/2.6.32-431.el6.x86_64/source

經(jīng)過排查發(fā)現(xiàn)這個軟連接/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??創(chuàng)建一個IP集pythontab,指定類型為hash:ip,設置ip集最多存儲IP數(shù)為1000000  ipset?add?pythontab?X.X.X.X??增加一個ip地址到IP集pythontab中去  ipset?add?pythontab?X.X.X.X/24??增加一個網(wǎng)段到IP集pythontab中去  ipset?dell?pythontab?X.X.X.X???刪除IP集中指定的IP地址  ipset?list?查看當前所有l(wèi)ist  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地址禁用

現(xiàn)在你應該看到了IP集合的強大了。維護IP黑名單是一件繁瑣和費時的工作。實際上,有很多免費或者收費的服務可以來幫你完成這個。一個額外的好處是,讓我們看看如何自動將IP黑名單加到IP集中。

首先讓我們從iblocklist.com得到免費的黑名單

接下來我要使用一個名為iblocklist2ipset的開源Python工具來將黑名單轉化成IP集。

首先,你需要安裝了pip

使用的下面命令安裝iblocklist2ipset。

$?pip?install?iblocklist2ipset

在一些發(fā)行版如Fedora,你可能需要運行:

$?python-pip?install?iblocklist2ipset

現(xiàn)在到iblocklist.com,抓取任何一個P2P列表的URL(比如”level1″列表)。

下載解壓,然后保存為txt文件,比如叫做pythontab.txt, 因為iblocklist2ipset僅支持url獲取list,所以把pythontab.txt放到你網(wǎng)站的任意目錄。比如: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

現(xiàn)在可以查看自動創(chuàng)建的IP集:

$?ipset?list?pythontab

這樣就省去了手動管理的麻煩。

注意,在centos下使用yum安裝的不是最新版,可能會不支持-f參數(shù),導入黑名單文件,所以建議用源碼包安裝最新版本

? 版權聲明
THE END
喜歡就支持一下吧
點贊8 分享