Maison > Article > Opération et maintenance > Explication détaillée de la façon de bloquer par lots les adresses IP malveillantes pour empêcher les attaques sous Linux
Dans de nombreux cas, vous devrez peut-être bloquer les adresses IP sous Linux. Par exemple, en tant qu'utilisateur final, vous souhaiterez peut-être être protégé contre les logiciels espions ou le suivi IP. Si vous êtes un administrateur système, vous souhaiterez peut-être interdire aux adresses IP de spam d'accéder au serveur de messagerie de votre entreprise. Ou vous souhaitez interdire à certains pays d'accéder à votre service Web pour une raison quelconque. Cependant, dans de nombreux cas, votre liste de blocage d’adresses IP peut rapidement atteindre des dizaines de milliers d’adresses IP. Comment gérer cela ?
Solution : ipset + iblocklist2ipset
Site officiel : http://ipset.netfilter.org/install.html
La méthode la plus simple est l'installation de yum, mais la version de cette méthode est relativement basse et manque de certains paramètres de module utilisés, etc., elle n'est donc pas recommandée
yum install ipset -y
yum install libmnl libmnl-devel kernel-devel libtool-devel -y(Méthode d'installation de la nouvelle version : git pull git://git.netfilter.org/libmnl.git run ./autogen.sh)
(Remarque : si vous installez uniquement libmnl, l'erreur suivante apparaîtra :
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. )Lors de la compilation, il peut demander que /lib/modules/2.6.32-431.el6.x86_64/source Après enquête, il a été constaté que le lien logiciel /lib/modules/2.6.32-431.el6.x86_64/build -->/usr/src/kernels/2.6.32-431.el6 .x86_64 n'existe pasSolution : Rétablir la connexion logicielle
ln -sb /usr/src/kernels/2.6.32-573.3.1.el6.x86_64 /lib/modules/2.6.32-431.el6.x86_64/buildLors de l'exécution de ./autogen.sh, un message d'erreur est signalé : Impossible de trouver /usr/share/libtool/Solution : installez le package d'outils libtool-devel avec yum install libtool-devel2. Compilez et installez ipset (code source du noyau Linux (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_installRemarque : différents noyaux Linux utilisent différentes versions de packages de code sourceRemarque : code source du noyau Linux (version >= 2.6.16 ou >= 2.4.36)Compiler et installer :
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 installCommandes couramment utilisées :
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 restartDésactivation automatique de l'adresse IPVous devriez maintenant voir le pouvoir de maintenir des listes noires d'IP. C'est une tâche fastidieuse et longue. En fait, il existe de nombreux services gratuits ou payants qui peuvent vous aider à le faire. En prime, voyons comment ajouter automatiquement des listes noires d'IP à l'IP. set. >Obtenons d'abord une liste noire gratuite sur iblocklist.com Ensuite, je vais utiliser un outil Python open source appelé iblocklist2ipset pour convertir la liste noire en un ensemble d'adresses IP Tout d'abord, vous . Vous devez installer pip et utiliser la commande suivante pour installer iblocklist2ipset.
Dans certaines distributions telles que Fedora, vous devrez peut-être exécuter :
$ pip install iblocklist2ipset
Allez maintenant sur iblocklist.com et récupérez l'URL de n'importe quelle liste P2P (comme le " liste niveau1").
$ python-pip install iblocklist2ipsetTéléchargez-le et décompressez-le, puis enregistrez-le sous forme de fichier txt, par exemple appelé pythontab.txt. Parce que iblocklist2ipset ne prend en charge que l'URL pour obtenir la liste, placez pythontab.txt dans n'importe quel répertoire de votre site Web. Par exemple : répertoire ipset
Après avoir exécuté la commande ci-dessus, vous obtiendrez un fichier nommé pythontab.txt. Si vous affichez son contenu, vous verrez quelque chose comme ceci :
$ iblocklist2ipset generate --ipset pythontab "http://www.pythontab.com/ipset/pythontab.txt" > pythontab.txt
Vous pouvez charger ce fichier avec la commande ipset suivante :
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
Vous pouvez maintenant afficher les IP créées automatiquement Set :
$ ipset restore -f pythontab.txt
Cela vous évite les problèmes de gestion manuelle.
$ ipset list pythontab
Notez que la version installée avec yum sous centos n'est pas la dernière version. Elle peut ne pas prendre en charge le paramètre -f et importer le fichier de liste noire, il est donc recommandé d'utiliser le package de code source pour l'installer. la dernière version
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!