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

Explication détaillée de la façon de bloquer par lots les adresses IP malveillantes pour empêcher les attaques sous Linux

巴扎黑
巴扎黑original
2017-08-21 15:22:462854parcourir

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

Installation :

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

Compilez et installez :

1. Environnement de dépendance :

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 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, un message d'erreur est signalé :

Impossible de trouver /usr/share/libtool/

Solution : installez le package d'outils libtool-devel avec yum install libtool-devel

2. 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_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)

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 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
Désactivation automatique de l'adresse IP

Vous 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 iblocklist2ipset
Té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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn