Heim > Artikel > Betrieb und Instandhaltung > Ausführliche Erklärung, wie man bösartige IP-Adressen stapelweise blockiert, 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
Offizielle Website: http://ipset.netfilter.org/install.html
Die einfachste Methode ist die Yum-Installation, 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 run ./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/modules/2.6.32-431.el6.x86_64/source
Nach der Untersuchung wurde festgestellt, dass der 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 erneut 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 von ./autogen.sh wird eine Fehlermeldung gemeldet:
Kann nicht gefunden werden /usr/share/libtool/
Lösung: Installieren Sie das libtool-devel-Toolpaket mit yum install 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 Quellcodepaketen
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 Die Macht der Pflege von IP-Blacklists ist eine mühsame und zeitaufwendige Aufgabe. Es gibt tatsächlich viele kostenlose oder kostenpflichtige Dienste, die Ihnen dabei helfen können. Als zusätzlichen Bonus schauen wir uns an, wie Sie IP-Blacklists automatisch hinzufügen >Besorgen Sie sich zunächst eine kostenlose Blacklist von iblocklist.com
Als nächstes verwende ich ein Open-Source-Python-Tool namens iblocklist2ipset, um die Blacklist in einen IP-Satz umzuwandeln
Zuerst Sie . Sie müssen pip
installieren und den folgenden Befehl verwenden, 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, das Quellpaket zur Installation zu verwenden neueste Version
Das obige ist der detaillierte Inhalt vonAusführliche Erklärung, wie man bösartige IP-Adressen stapelweise blockiert, um Angriffe unter Linux zu verhindern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!