GNU/Linux >> Tutoriels Linux >  >> Panels >> Panels

IP du bloc Iptables

Aujourd'hui, nous allons vous montrer comment bloquer une adresse IP à l'aide d'iptables. Dans l'article suivant, nous ajoutons une liste noire au script de pare-feu qui vous permettra de bloquer toutes les adresses IP ou plages d'adresses IP abusives dans votre Debian ou Ubuntu serveur virtuel basé. Iptables est un programme d'application d'espace utilisateur qui permet à un administrateur système de configurer les tables fournies par le pare-feu du noyau Linux (implémentées comme différents modules Netfilter ) et les chaînes et règles qu'il stocke. Bloquer une adresse IP à l'aide d'iptables est une tâche assez simple et cela ne devrait pas prendre plus de 5 minutes.

Avant d'aller plus loin, assurez-vous d'avoir lu le tutoriel sur la façon de sécuriser/concevoir le pare-feu dans votre vps Linux. Cela inclut :

  • Vider les anciennes règles de pare-feu
  • Déterminer les ports de service
  • Configuration des règles par défaut
  • Configuration de vos règles de pare-feu
  • Enregistrement de vos règles de pare-feu

Bloquer l'IP à l'aide d'iptables

Pour bloquer certaines adresses IP ou plages d'adresses IP abusives, vous pouvez utiliser les iptables suivants règles :

## iptables -I INPUT -s 1.2.3.4 -j DROP
## iptables -I INPUT -s 1.2.0.0/16 -j DROP

Création de la liste noire dans iptables

Pour une meilleure lisibilité et maintenance, c'est une bonne idée d'avoir toutes les adresses IP abusives dans un fichier particulier, par exemple /etc/blacklist.ips . De cette façon, vous pouvez ajouter les adresses IP ou les sous-réseaux dans ce fichier (une IP ou un sous-réseau par ligne ) et utilisez les fwall-rules script ci-dessous pour bloquer tout ce qui est répertorié dans ce fichier.

Alors, créez ou modifiez /usr/local/bin/fwall-rules et faites-le comme suit :

#!/bin/bash
#
# iptables firewall script
# https://www.rosehosting.com
#

IPTABLES=/sbin/iptables
BLACKLIST=/etc/blacklist.ips

echo " * flushing old rules"
${IPTABLES} --flush
${IPTABLES} --delete-chain
${IPTABLES} --table nat --flush
${IPTABLES} --table nat --delete-chain

echo " * setting default policies"
${IPTABLES} -P INPUT DROP
${IPTABLES} -P FORWARD DROP
${IPTABLES} -P OUTPUT ACCEPT

echo " * allowing loopback devices"
${IPTABLES} -A INPUT -i lo -j ACCEPT
${IPTABLES} -A OUTPUT -o lo -j ACCEPT

${IPTABLES} -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
${IPTABLES} -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

## BLOCK ABUSING IPs HERE ##
#echo " * BLACKLIST"
#${IPTABLES} -A INPUT -s _ABUSIVE_IP_ -j DROP
#${IPTABLES} -A INPUT -s _ABUSIVE_IP2_ -j DROP

echo " * allowing ssh on port 5622"
${IPTABLES} -A INPUT -p tcp --dport 5622  -m state --state NEW -j ACCEPT

echo " * allowing ftp on port 21"
${IPTABLES} -A INPUT -p tcp --dport 21  -m state --state NEW -j ACCEPT

echo " * allowing dns on port 53 udp"
${IPTABLES} -A INPUT -p udp -m udp --dport 53 -j ACCEPT

echo " * allowing dns on port 53 tcp"
${IPTABLES} -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT

echo " * allowing http on port 80"
${IPTABLES} -A INPUT -p tcp --dport 80  -m state --state NEW -j ACCEPT

echo " * allowing https on port 443"
${IPTABLES} -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT

echo " * allowing smtp on port 25"
${IPTABLES} -A INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT

echo " * allowing submission on port 587"
${IPTABLES} -A INPUT -p tcp -m state --state NEW -m tcp --dport 587 -j ACCEPT

echo " * allowing imaps on port 993"
${IPTABLES} -A INPUT -p tcp -m state --state NEW -m tcp --dport 993 -j ACCEPT

echo " * allowing pop3s on port 995"
${IPTABLES} -A INPUT -p tcp -m state --state NEW -m tcp --dport 995 -j ACCEPT

echo " * allowing imap on port 143"
${IPTABLES} -A INPUT -p tcp -m state --state NEW -m tcp --dport 143 -j ACCEPT

echo " * allowing pop3 on port 110"
${IPTABLES} -A INPUT -p tcp -m state --state NEW -m tcp --dport 110 -j ACCEPT

echo " * allowing ping responses"
${IPTABLES} -A INPUT -p ICMP --icmp-type 8 -j ACCEPT

# DROP everything else and Log it
${IPTABLES} -A INPUT -j LOG
${IPTABLES} -A INPUT -j DROP

#
# Block abusing IPs 
# from ${BLACKLIST}
#
if [[ -f "${BLACKLIST}" ]] && [[ -s "${BLACKLIST}" ]]; then
    echo " * BLOCKING ABUSIVE IPs"
    while read IP; do
        ${IPTABLES} -I INPUT -s "${IP}" -j DROP
    done < <(cat "${BLACKLIST}")
fi

#
# Save settings
#
echo " * SAVING RULES"

if [[ -d /etc/network/if-pre-up.d ]]; then
    if [[ ! -f /etc/network/if-pre-up.d/iptables ]]; then
        echo -e "#!/bin/bash" > /etc/network/if-pre-up.d/iptables
        echo -e "test -e /etc/iptables.rules && iptables-restore -c /etc/iptables.rules" >> /etc/network/if-pre-up.d/iptables
        chmod +x /etc/network/if-pre-up.d/iptables
    fi
fi

iptables-save > /etc/fwall.rules
iptables-restore -c /etc/fwall.rules

assurez-vous que le script est exécutable en y ajoutant un bit 'x' :

## chmod +x /usr/local/bin/fwall-rules

Appliquer les règles

Pour appliquer les règles du pare-feu et bloquer les abuseurs, il vous suffit d'exécuter les fwall-rules script et c'est tout.

## fwall-rules
 * flushing old rules
 * setting default policies
 * allowing loopback devices
 * allowing ssh on port 5622
 * allowing ftp on port 21
 * allowing dns on port 53 udp
 * allowing dns on port 53 tcp
 * allowing http on port 80
 * allowing https on port 443
 * allowing smtp on port 25
 * allowing submission on port 587
 * allowing imaps on port 993
 * allowing pop3s on port 995
 * allowing imap on port 143
 * allowing pop3 on port 110
 * allowing ping responses
 * BLOCKING ABUSIVE IPs
 * SAVING RULES

Bien sûr, vous n'êtes pas obligé de bloquer les adresses IP à l'aide d'iptables, si vous utilisez l'un de nos services d'hébergement VPS Linux, auquel cas vous pouvez simplement demander à nos administrateurs linux experts de bloquer n'importe quelle adresse IP pour vous. Ils sont disponibles 24h/24 et 7j/7 et prendront immédiatement en charge votre demande.

PS. Si vous avez aimé cet article sur la façon de bloquer les adresses IP à l'aide d'iptables, partagez-le avec vos amis sur les réseaux sociaux en utilisant les boutons à gauche ou laissez simplement une réponse ci-dessous. Merci.


Panels
  1. Hôte virtuel Nginx – Bloc serveur Nginx

  2. Bloquer la plage IP des pays avec GeoIP et iptables

  3. Fail2Ban Howto :Bloquer l'adresse IP à l'aide de Fail2ban et IPTables

  4. CentOS / RHEL :Comment bloquer les ports entrants et sortants à l'aide d'iptables

  5. Service d'exploitation Linux "iptables"

Comment bloquer/autoriser le ping en utilisant iptables dans Ubuntu

Méthode de saisie vietnamienne ?

Comment bloquer les e-mails par pays ou domaine dans cPanel ?

Présentation d'iptables

Comment ouvrir le port 2195 dans iptables CentOS 6 pour activer l'APNS

En utilisant Linux IPTables, comment bloquer les torrents ou tout protocole P2P ?