Bloqueando IPs por paises? Si, con iptables

Llevo bastante tiempo recibiendo peticiones al puerto 22 y en su tiempo decidí utilizar fail2ban. Sigo utilizandolo pero veo que la lista de IPs baneadas es inmensa.

Estoy buscando otra solución posible al tema y busque información sobre como bloquear IPs por países enteros. Y encontré esto: http://www.cyberciti.biz/faq/block-entier-country-using-iptables/

No obstante, seguí indagando y tras varias pruebas y errores, hice uno para mí.

Es este:

#!/bin/bash
counter=1
#### Bloquea todo el trafico de afganistan (af) y China (cn). Usa los codigos ISO ####
ISO="ru"

### Set PATH ###
IPT=/sbin/iptables
WGET=/usr/bin/wget
EGREP=/bin/egrep

### NO EDITAR ###
SPAMLIST="countrydrop"
ZONEROOT="/root/iptables"
DLROOT="http://www.ipdeny.com/ipblocks/data/countries"

	$IPT -F $SPAMLIST

# Crea directorio
[ ! -d $ZONEROOT ] && /bin/mkdir -p $ZONEROOT

# Borra reglas antiguas
#cleanOldRules

# Crea una nueva lista de iptables
$IPT -N $SPAMLIST

for c  in $ISO
do
	# fichero local
	tDB=$ZONEROOT/$c.zone

	# Utilizamos una nueva zona
	$WGET -O $tDB $DLROOT/$c.zone

	# Log especifico para cada Pais
	SPAMDROPMSG="$c Country Drop"

	# get 
	BADIPS=$(egrep -v "^#|^$" $tDB)
	for ipblock in $BADIPS
	do
	  $IPT -A $SPAMLIST -s $ipblock -j LOG --log-prefix "$SPAMDROPMSG"
	  $IPT -A $SPAMLIST -s $ipblock -j DROP
		counter=`expr $counter + 1`
		echo -ne "Adding" $counter\\r
	done
done
echo "ADDED " $counter " IP Address Blocks"

# El resto, a DROP 
$IPT -I INPUT -j $SPAMLIST
$IPT -I OUTPUT -j $SPAMLIST
$IPT -I FORWARD -j $SPAMLIST

# Llamada a vuestro script iptables
# /path/to/other/iptables.sh

exit 0

Como podéis ver, al final añado una línea que permite incluir un script que se ejecute después del mio. Por si ejecutabais de antes otro script.

:wq

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s