Mostrando entradas con la etiqueta Iptables. Mostrar todas las entradas
Mostrando entradas con la etiqueta Iptables. Mostrar todas las entradas

iptables-rules-generator.sh

d
Nombre: iptables-rule-generator.sh
Autor: Ricardo del Castillo @WizardIP
Descripcion: Generador básico de reglas de IPTables por puerto, interface, dirección IP o segmento para colocar en el archivo generado por el comando iptables-save.
#!/bin/bash 

#@WizardIP

if [ $# -lt 1 ] 
then 
        echo "Usage : $0 [ OPTION  ]" 
        echo "Options are:" 
        echo "by Port" 
        echo "by Interface" 
        echo "by Address (Full Access)" 
        echo "by Segment" 
        exit 1 
fi 

NUM='^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$' 
NUM2='^-?[0-9]+$' 
case "$1" in 

P) 
echo "Give me the IP" 
        read IP 
        if ! [[ $IP =~ $NUM ]]; then 
                echo "Please use numeric values" 
                exit 1 
        fi 
echo "Give me the Port" 
        read PORT 
        if ! [[ $PORT =~ $NUM2 ]]; then 
                echo "Please use numeric values" 
                exit 1 
        fi 
echo "Generating Rules...Please append it in the config file /etc/iptables.rules.date" 
sleep 3 
echo "-A INPUT -s $IP/32 -p tcp -m tcp --dport $PORT -j ACCEPT" 
echo "-A OUTPUT -d $IP/32 -p tcp -m tcp --sport $PORT -j ACCEPT" 
;; 

I) 
echo "Give me the Interface" 
        read INTER 
echo "Give me the IP" 
        read IP 
        if ! [[ $IP =~ $NUM ]]; then 
                echo "Please use numeric values" 
                exit 1 
        fi 
echo "Generating rules...Please append it in the config file /etc/iptables.rules.date" 
sleep 3 
echo "-A INPUT -i $INTER -p tcp -s $IP/32 -j ACCEPT" 
echo "-A OUTPUT -o $INTER -p tcp -d $IP/32 -j ACCEPT" 
;; 

A) 
echo "Give me the IP" 
        read IP 
        if ! [[ $IP =~ $NUM ]]; then 
                echo "Please use numeric values" 
                exit 1 
        fi 
echo "Generating rules...Please append it in the config file /etc/iptables.rules.date" 
sleep 3 
echo "-A INPUT -s $IP -j ACCEPT" 
echo "-A OUTPUT -d $IP -j ACCEPT" 
;; 

S) 
echo "Give me the IP" 
        read IP 
        if ! [[ $IP =~ $NUM ]]; then 
                echo "Please use numeric values" 
                exit 1 
        fi 
echo "Give me the Interface" 
        read INTER 
echo "Generating rules...Please append it in the config file /etc/iptables.rules.date" 
sleep 3 
echo "-A INPUT -i $INTER -s $IP/24 -j ACCEPT" 
echo "-A OUTPUT -o $INTER -d $IP/24 -j ACCEPT" 
;; 

*) 
echo "Invalid option" 
echo "Usage : $0 [ OPTION  ]" 
        echo "Options are:" 
        echo "by Port" 
        echo "by Interface" 
        echo "by Address" 
        echo "by Segment" 
        exit 1 
;; 
esac 
Leer más...

Iptables Script

d
Visto en The Lone Pole
#!/bin/bash
if [ -z $1 ]; then
        echo "Usage: $0  [reason]";
        exit;
fi

IP=$1
REASON="denied ip"

if [ $# -gt 1 ]; then
        shift;
        REASON=$@
fi

iptables -A INPUT -s ${IP}/32 -j LOG --log-prefix "${REASON} "
iptables -A INPUT -s ${IP}/32 -j DROP

Leer más...

Script Compartir Internet móvil

d
Autor: Uremix
Descripción: Script que nos permite compartir internet.
Basado en : BrianDB


Crea un archivo iptables.conf:

#!/bin/bash
 
# Dispositivo de red de internet
EXIF="ppp0"
 
# Dispositivo de red local
INIF="eth0"
 
iptables --flush
iptables -A INPUT -i $INIF -j ACCEPT
iptables -t nat -A POSTROUTING -o $EXIF -j MASQUERADE
 
# Aceptar paquetes para reenviar procedentes de internet de conexiones ya establecidas
 
iptables -A FORWARD -i $INIF -o $EXIF -j ACCEPT
iptables -A FORWARD -i $EXIF -o $INIF -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i $INIF -j ACCEPT
iptables -P OUTPUT ACCEPT
 
echo 1 > /proc/sys/net/ipv4/ip_forward

Dar permisos al archivo.

$ chmod -v 755 iptables.conf

Darle permisos de ejecucion:

$ chmod -v 755 iptables.conf

Ejecutamos el script como root:

$ sudo ./iptables.conf

Verificamos que se han definido las reglas:


$ iptables -L -n -v

Revisar que el gateway principal sea la salida del ppp0


$ route -n

Si deseamos que las reglas se apliquen al iniciar el equipo:

$ iptables-save

Verificaciones:

 En la maquina que es el gateway verificar si tiene salida a Internet

$ dig  //Esto nos dira si podemos resolver nombres.
$ ping google.com

Realizar una traza de ruta desde una maquina de nuestra LAN(eth0). Si llega a nuestro gateway y no pasa volver a ejecutar el escript del Iptables.

$ traceroute 8.8.8.8

Nota: en caso de no conectar verificar que las maquinas clientes estén en la misma red que eth0.


Leer más...

Remover firewall

d
Autor: LINUXTITLI
Visto en: cyberciti.biz
Descripción: Script que permite remover las reglas del firewall completamente.
#!/bin/bash
echo "Stopping firewall and allowing everyone..."
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
Damos permisos de ejecución 
chmod +x flush.bash
Tiramos el firewall
./flush.bash
Leer más...

Firewall Básico

d
Autor y correo: sergio.gonzalez.duran[at]gmail.com
Descripción: firewall para un solo equipo conectado a traves de modem o adsl
Visto en Linux Total
#!/bin/bash

# ---------------------------------------------------------------------------------
# www.linuxtotal.com.mx
# firewall para un solo equipo conectado a traves de modem o adsl
# por: sergio.gonzalez.duran@gmail.com

# (1) se eliminan reglas previas que hubiera y cadenas definidas por el usuario
/sbin/iptables -F
/sbin/iptables -X

# (2) se establecen politicas "duras" por defecto, es decir solo lo que se autorice
# explicitamente podra ingresar o salir del equipo
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP

# (3)a la interface lo (localhost) se le permite todo
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT

# (4) evitamos ataques syn-flood limitando el acceso de paquetes nuevos
# desde internet a solo 4 por segundo y los demas se descartan
/sbin/iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 4 -j DROP

# (5) se evitan paquetes tcp que sean nuevos y que no tengan el flag SYN
# es decir, hay ataques o escaneos que llegan como conexiones nuevas
# pero sin ser paquetes syn, definitivamente no nos interesan
/sbin/iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

# (6) todo lo que sea icmp (ping) y que intente entrar, se descarta
# con esto bloqueamos cualquier tipo de paquetes con protocolo icmp
# evitando ataques como el del ping de la muerte, aunque esta regla
# podria provocar problemas de comunicacion con algunos ISP.
iptables -A INPUT -p icmp -j DROP

# (7) por ultimo las dos siguientes reglas permiten salir del equipo 
# (output) conexiones nuevas que nosotros solicitamos, conexiones establecidas
# y conexiones relacionadas, y deja entrar (input) solo conexiones establecidas
# y relacionadas.
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# ---------------------------------------------------------------------------------
Damos permisos de ejecución 
chmod +x firewall.bash
Levantamos el firewall
./firewall.bash
Confirmamos que que el firewall esté arriba
iptables --list
Guardamos las reglas para que estén presentes cada que inicie el sistema.
iptables-save > /etc/firewall.conf
echo "#!/bin/sh" > /etc/network/if-up.d/iptables
echo "iptables-restore < /etc/firewall.conf" >> /etc/network/if-up.d/iptables
chmod +x /etc/network/if-up.d/iptables
Leer más...