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

Étude de cas sur la façon de bloquer les adresses IP malveillantes par lots pour prévenir les attaques sous Linux

黄舟
黄舟original
2017-06-07 10:28:432313parcourir

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

install:

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

Compiler et installer ; :

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 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

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)

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

Désactivation automatique de l'adresse IP

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!

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