[eside-ghost] Protegiendo el acceso mediante ssh con iptables

Saúl Ibarra saghul en gmail.com
Mar Jun 5 01:33:27 CEST 2007


Hoola!

Me he puesto a enredar con iptables, para lo que he habilitado una DMZ
a una maquina de mi red. El firewall tiene por defecto una politica de
DROP, y todas las reglas funcionan bien, pero recuerdo que lei que se
ouede proteger el acceso por SSH 'contando' las conexiones en un
tiempo determinado y haciendo DROP si las supera.

El script me ha quedado asi:

#!/bin/sh

IPT="/sbin/iptables"

echo "Aplicando reglas IPTables..."

## FLUSH de reglas
$IPT -F
$IPT -X

## Establecemos politica por defecto: DROP
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

## Como la polᅵtica por defecto es DROP, tenemos que ABRIR los
puertos que queramos.

# Operar en localhost sin limitaciones
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

## Servidor Web en el puerto TCP 80
$IPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$IPT -A OUTPUT -p tcp -m tcp --sport 80 -m state --state
RELATED,ESTABLISHED -j ACCEPT

$IPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
$IPT -A OUTPUT -p tcp -m tcp --sport 22 -m state --state
RELATED,ESTABLISHED -j ACCEPT


Hasta aqui todo funciona bien, pero si anyado esto:

$IPT -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
$IPT -A INPUT -p tcp --dport 22 -m state --state NEW -m recent
--update --seconds 60 --hitcount 4 -j DROP

Ya no puedo acceder por ssh. entonces pense que me faltaba una regla
output y anyadi esto:

$IPT -A OUTPUT -p tcp -m tcp --sport 22 -m state --state
RELATED,ESTABLISHED -j ACCEPT


Pero nada... Necesito una ayudita plizz.

PD: No puedo poner la enye porque estoy en un teclado americano xD.


-- 
Saúl -- "Some people say why, other just say, why not."
----------------------------------------------------------------
http://www.saghul.net/


Más información sobre la lista de distribución eside-ghost