Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >Fallstudie zum stapelweisen Blockieren bösartiger IP-Adressen, um Angriffe unter Linux zu verhindern
In vielen Fällen müssen Sie möglicherweise IP-Adressen unter Linux blockieren. Beispielsweise möchten Sie als Endbenutzer möglicherweise vor Spyware oder IP-Tracking geschützt werden. Wenn Sie ein Systemadministrator sind, möchten Sie möglicherweise Spam-IP-Adressen den Zugriff auf Ihren Unternehmens-Mailserver verbieten. Oder Sie möchten bestimmten Ländern aus irgendeinem Grund den Zugriff auf Ihren Webdienst verbieten. In vielen Fällen kann Ihre IP-Adress-Sperrliste jedoch schnell auf Zehntausende IPs anwachsen. Wie gehe ich damit um?
Lösung: ipset + iblocklist2ipset
Die einfachste Methode ist die Installation von yum, aber die Version dieser Methode ist relativ niedrig und es fehlen einige verwendete Modulparameter usw., daher wird sie nicht empfohlen.
yum install ipset -y
yum install libmnl libmnl-devel kernel-devel libtool-devel -y
(Installationsmethode der neuen Version: git pull git://git.netfilter.org/libmnl.git Ausführen ./autogen.sh )
(Hinweis: Wenn Sie nur libmnl installieren, wird der folgende Fehler angezeigt:
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. )
Beim Kompilieren kann es sein, dass /lib/Modul angezeigt wird kann s/2.6.32-431.el6.x86_64/source nicht gefunden werden
Nach einer Untersuchung wurde festgestellt, dass dieser Softlink /lib/modules/2.6.32-431.el6.x86_64/ build -->/usr/src/ kernels/2.6.32-431.el6.x86_64 existiert nicht
Lösung: Stellen Sie die Soft-Verbindung wieder her
ln -sb /usr/src/kernels/2.6.32-573.3.1.el6.x86_64 /lib/modules/2.6.32-431.el6.x86_64/build
Beim Ausführen. /autogen.sh, ein Fehler wird gemeldet:
Kann /usr/share/libtool/ nicht finden
Lösung: Installieren Sie das libtool-devel-Toolpaket, installieren Sie einfach libtool-devel
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
Hinweis: Verschiedene Linux-Kernel verwenden unterschiedliche Versionen von Quellcode-Paketen
Hinweis: Linux-Kernel-Quellcode (Version >= 2.6.16 oder >= 2.4.36)
Kompilieren und installieren:
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
Häufig verwendete Befehle:
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
Jetzt sollten Sie sehen, wie leistungsfähig die IP-Erfassung ist. Tatsächlich gibt es viele kostenlose oder kostenpflichtige Dienste, die helfen können Sie tun dies. Mal sehen, wie Sie eine IP-Blacklist automatisch zum IP-Set hinzufügen können.
Lassen Sie uns zunächst eine kostenlose Blacklist von iblocklist.com erstellen iblocklist2ipset, um es auf die schwarze Liste zu setzen. Konvertieren Sie die Liste in einen IP-Satz.
Zuerst müssen Sie pip
mit dem folgenden Befehl installieren, um iblocklist2ipset zu installieren.
In einigen Distributionen wie Fedora müssen Sie möglicherweise Folgendes ausführen:$ pip install iblocklist2ipsetGehen Sie nun zu iblocklist.com und holen Sie sich die URL einer beliebigen P2P-Liste (z. B. „ Liste „level1“ ).
$ python-pip install iblocklist2ipset
Laden Sie es herunter, entpacken Sie es und speichern Sie es dann als TXT-Datei, beispielsweise mit dem Namen pythontab.txt. Da iblocklist2ipset nur URLs zum Abrufen der Liste unterstützt, legen Sie pythontab.txt in einem beliebigen Verzeichnis Ihrer Website ab. Beispiel: ipset-Verzeichnis
Nachdem Sie den obigen Befehl ausgeführt haben, erhalten Sie eine Datei mit dem Namen pythontab.txt. Wenn Sie sich den Inhalt ansehen, sehen Sie etwa Folgendes:$ iblocklist2ipset generate --ipset pythontab "http://www.pythontab.com/ipset/pythontab.txt" > pythontab.txtSie können diese Datei mit dem folgenden ipset-Befehl laden:
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/32Sie können jetzt die automatisch erstellten IPs anzeigen Festlegen:
$ ipset restore -f pythontab.txtDies erspart Ihnen die Mühe der manuellen Verwaltung.
$ ipset list pythontabBeachten Sie, dass die mit yum unter Centos installierte Version möglicherweise nicht die neueste Version unterstützt und die Blacklist-Datei nicht importiert. Daher wird empfohlen, für die Installation das Quellcodepaket zu verwenden die neueste Version
Das obige ist der detaillierte Inhalt vonFallstudie zum stapelweisen Blockieren bösartiger IP-Adressen, um Angriffe unter Linux zu verhindern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!