Maison >Opération et maintenance >exploitation et maintenance Linux >Étude de cas sur la façon de bloquer les adresses IP malveillantes par lots pour prévenir 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
La méthode la plus simple est d'installer 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 Exécuter ./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/module introuvable s/2.6.32-431.el6.x86_64/source
Après enquête, il a été constaté que ce lien logiciel /lib/modules/2.6.32-431.el6.x86_64/ build -->/usr/src/ kernels/2.6.32-431.el6.x86_64 n'existe pas
Solution : 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/build
Lors de l'exécution de . /autogen.sh, une erreur est signalée :
Impossible de trouver /usr/share/libtool/
Solution : installez simplement le package d'outils libtool-devel 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
Remarque : différents noyaux Linux utilisent différentes versions de packages de code source
Remarque : code source du noyau Linux (version >= 2.6.16 ou >= 2.4.36)
Compilez et installez :
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
Commandes 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 restart
Vous devriez maintenant voir à quel point la collecte d'adresses IP est puissante. La maintenance des listes noires d'adresses IP est une tâche fastidieuse et fastidieuse. En fait, il existe de nombreux services gratuits ou payants qui peuvent vous aider. vous faites cela. Voyons comment. Ajouter automatiquement une liste noire IP à l'ensemble IP
Obtenons d'abord une liste noire gratuite sur iblocklist.com
Ensuite, je vais utiliser un outil Python open source appelé. iblocklist2ipset pour la mettre sur liste noire. Convertissez la liste en un ensemble IP
Tout d'abord, vous devez installer pip
à l'aide de la commande suivante pour installer iblocklist2ipset.
$ pip install iblocklist2ipset
Dans certaines distributions telles que Fedora, vous devrez peut-être exécuter :
$ python-pip install iblocklist2ipset
Allez maintenant sur iblocklist.com et récupérez l'URL de n'importe quelle liste P2P (comme le " liste niveau1").
Téléchargez-le et décompressez-le, puis enregistrez-le sous forme de fichier txt, tel que 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
$ iblocklist2ipset generate --ipset pythontab "http://www.pythontab.com/ipset/pythontab.txt" > pythontab.txt
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 :
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 charger ce fichier avec la commande ipset suivante :
$ ipset restore -f pythontab.txt
Vous pouvez maintenant afficher les IP créées automatiquement Set :
$ ipset list pythontab
Cela vous évite les problèmes de gestion manuelle.
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'installation. 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!