GNU/Linux >> Tutoriales Linux >  >> Panels >> Panels

Iptables bloquear IP

Hoy le mostraremos cómo bloquear la dirección IP usando iptables. En el siguiente artículo, agregaremos una lista negra a la secuencia de comandos del firewall que le permitirá bloquear cualquier dirección IP abusiva o rangos de IP en su Debian. o Ubuntu servidor virtual basado. Iptables es un programa de aplicación de espacio de usuario que permite que un administrador del sistema configure las tablas proporcionadas por el firewall del kernel de Linux (implementado como diferentes módulos de Netfilter ) y las cadenas y reglas que almacena. Bloquear una dirección IP usando iptables es una tarea bastante fácil y no debería tomar más de 5 minutos.

Antes de continuar, asegúrese de leer el tutorial sobre cómo asegurar/diseñar el firewall en su vps de Linux. Esto incluye:

  • Vaciar las antiguas reglas del cortafuegos
  • Determinación de puertos de servicio
  • Configuración de políticas predeterminadas
  • Configuración de las reglas de su cortafuegos
  • Guardando sus reglas de firewall

Bloquear IP usando iptables

Para bloquear alguna dirección IP abusiva o rango de IP, puede usar las siguientes iptables reglas:

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

Creando la Lista Negra en iptables

Para una mejor legibilidad y mantenimiento, es una buena idea tener todas las direcciones IP abusivas en un archivo en particular, por ejemplo /etc/blacklist.ips . De esta manera, puede agregar las direcciones IP o subredes en este archivo (una IP o subred por línea ) y use las fwall-rules script a continuación para bloquear todo lo que aparece en este archivo.

Entonces, crea o edita /usr/local/bin/fwall-rules y hazlo de la siguiente manera:

#!/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

asegúrese de que el script sea ejecutable agregándole un bit 'x':

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

Aplicando las Reglas

Para aplicar las reglas del cortafuegos y bloquear a los abusadores, solo necesita ejecutar las fwall-rules guión y eso es todo.

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

Por supuesto, no tiene que bloquear las direcciones IP usando iptables, si usa uno de nuestros servicios de alojamiento VPS de Linux, en cuyo caso simplemente puede pedirle a nuestros administradores expertos de Linux que bloqueen cualquier dirección IP por usted. Están disponibles las 24 horas del día, los 7 días de la semana y atenderán su solicitud de inmediato.

PD. Si le gustó esta publicación sobre cómo bloquear direcciones IP usando iptables, compártala con sus amigos en las redes sociales usando los botones a la izquierda o simplemente deje una respuesta a continuación. Gracias.


Panels
  1. Un simple script de firewall de iptables para bloquear todos los puertos excepto el puerto 80 y dar el puerto 22 a ciertas ip

  2. Host virtual Nginx:bloque de servidor Nginx

  3. Bloquear rango de IP de países con GeoIP e iptables

  4. Introducción a las iptables

  5. Como abrir el puerto 2195 en iptables CentOS 6 para activar el APNS

Cómo bloquear/permitir ping usando iptables en Ubuntu

¿Método de entrada vietnamita?

¿Cómo bloquear correos electrónicos por país o dominio en cPanel?

Fail2Ban Howto:Bloquear la dirección IP usando Fail2ban e IPTables

CentOS / RHEL:Cómo bloquear puertos entrantes y salientes usando iptables

Servicio del sistema operativo Linux 'iptables'