* Imagenes de instalación de las versiones estables para Mageia y OpenMandriva.

OpenMandriva: Mageia (Mageia 9) 20/Agosto/2023 - Anuncio, Descargas.

Blogdrake recomienda descargar las imágenes de instalación (iso) vía torrent para evitar corrupción de datos, aprovechar mejor su ancho de banda y mejorar la difusión de las distribuciones.

Scriptables - Script para iptables

Hola a todos..
Ahora les paso un script medio interactivo para cargar un par de reglas a iptables o bloquear el trafico. SI otro script mas !!
Es la primer version y planeo hacerlo mas interactivo e incluso portarlo a algun lenguaje como python, asique cualquier sugerencia es bienvenida.

Ahi va:

#!/bin/sh

#################################
##    Script para manipular    ##
##    el conjunto de reglas    ##
##        de IPtables          ##
#################################

case $1 in
        start )
                echo -n "Aplicando las Reglas de IPtables..."

                # Defino algunas Macros
                eth_if="eth0"                           #Placa Ethernet
                wl_if="wlan0"                           #Placa Wi-Fi

                ssh="2308"                              #Puerto de escucha SSH
                torrent="6881"                          #Puerto de descargas del torrent
                tracker="4444"                          #Puerto UDP del sistema de localizadores de Ktorrent

                ip_wl="10.10.10.3"                      #IP placa Ethernet
                ip_eth="10.10.10.4"                     #IP placa Wi-Fi
                localhost="127.0.0.1"                   #Localhost

                # FLUSH de reglas
                iptables -F                             #Borra las reglas de las cadenas INPUT OUTPUT FORWARD 'OTRAS'
                iptables -X                             #Borra cualquier cadena adcional
                iptables -Z                             #Pone a cero los contadores de paquetes
                iptables -t nat -F                      #Borra las reglas de NAT

                # Politicas por defecto
                iptables -P INPUT DROP                  #Por defecto bloquea los paquetes entrantes
                iptables -P OUTPUT DROP                 #Por defecto bloquea todos los paquetes salientes
                iptables -P FORWARD DROP                #Por defecto bloquea los paquetes hacia otras redes,
                                                        # esto es para cuando se tienen 2 o mas interfaces de red

                # Se loguea todo lo que entre al firewall
                iptables -A INPUT -i $wl_if -j LOG --log-level debug --log-prefix "FW_WLAN: "
                iptables -A INPUT -i $eth_if -j LOG --log-level debug --log-prefix "FW_ETH: "

                # Se permite todo el trafico para el localhost
                iptables -A INPUT -i $localhost -j ACCEPT
                iptables -A OUTPUT -o $localhost -j ACCEPT

                # Permito el trafico de la red MSN
                iptables -A OUTPUT -o $wl_if -s $ip_wl -p tcp --dport 1863 -j ACCEPT            #MSN
                iptables -A OUTPUT -o $eth_if -s $ip_eth -p tcp --dport 1863 -j ACCEPT          #MSN

                # Permito el trafico Web
                iptables -A OUTPUT -o $wl_if -s $ip_wl -p udp --dport 53 -j ACCEPT              #DNS
                iptables -A OUTPUT -o $wl_if -s $ip_wl -p tcp --dport 53 -j ACCEPT              #DNS
                iptables -A OUTPUT -o $wl_if -s $ip_wl -p tcp --dport 80 -j ACCEPT              #HTTP
                iptables -A OUTPUT -o $wl_if -s $ip_wl -p tcp --dport 443 -j ACCEPT             #HTTPS

                iptables -A OUTPUT -o $eth_if -s $ip_eth -p udp --dport 53 -j ACCEPT            #DNS
                iptables -A OUTPUT -o $eth_if -s $ip_eth -p tcp --dport 53 -j ACCEPT            #DNS
                iptables -A OUTPUT -o $eth_if -s $ip_eth -p tcp --dport 80 -j ACCEPT            #HTTP
                iptables -A OUTPUT -o $eth_if -s $ip_eth -p tcp --dport 443 -j ACCEPT           #HTTPS

                # Permito la conexion por SSH
                iptables -A INPUT -i $wl_if -d $ip_wl -p tcp --dport $ssh -j ACCEPT
                iptables -A INPUT -i $eth_if -d $ip_eth -p tcp --dport $ssh -j ACCEPT

                # Permito conexiones para el Torrent
                iptables -A OUTPUT -o $wl_if -s $ip_wl -p tcp --dport $torrent -j ACCEPT
                iptables -A OUTPUT -o $eth_if -s $ip_eth -p tcp --dport $torrent -j ACCEPT
                # Y para el sistema de localizadores (trackers) de Ktorrent
                iptables -A OUTPUT -o $wl_if -s $ip_wl -p udp --dport $tracker -j ACCEPT
                iptables -A OUTPUT -o $eth_if -s $ip_eth -p udp --dport $tracker -j ACCEPT

                # Permito el PING
                iptables -A INPUT -i $wl_if -d $ip_wl -p icmp --icmp-type echo-request -j ACCEPT
                iptables -A OUTPUT -o $wl_if -s $ip_wl -p icmp --icmp-type echo-reply -j ACCEPT
                iptables -A INPUT -i $eth_if -d $ip_eth -p icmp --icmp-type echo-request -j ACCEPT
                iptables -A OUTPUT -o $eth_if -s $ip_eth -p icmp --icmp-type echo-reply -j ACCEPT

                # Permito pasar paquetes de conexiones previamente establecidas por mi.
                # En el caso de que inicie una conexion y los paquetes de retorno ingresen
                # por algun puerto que no este explicitamente abierto esta regla me los
                # dejara pasar basandose en que pertenecen a una conexion previamente
                # establecida o tienen alguna relacion con esta.
                iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

                # Similar a la regla anterior pero funciona al reves, es decir que
                # si la conexion fue establecida de forma externa se le permitiran
                # salir a los paquetes de respuesta provenientes de mi maquina
                # basandose a que pertenecen a dicha coneccion.
                iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

                # Por si la politica por defecto falla, bloqueo todo lo demas y envio una respuesta al origen
                iptables -A INPUT -p tcp -j REJECT
                iptables -A INPUT -p udp -j REJECT
                iptables -A INPUT -p icmp -j DROP

                echo "Listo."
                ;;
        stop )
                echo -n "Desactivando Reglas..."

                # Pongo las politicas por defecto en 'ACCEPT'
                iptables -P INPUT ACCEPT
                iptables -P OUTPUT ACCEPT
                iptables -P FORWARD ACCEPT

                # Quito todas las reglas declaradas
                iptables -F                             #Borra las reglas de las cadenas INPUT OUTPUT FORWARD 'OTRAS'
                iptables -X                             #Borra cualquier cadena adcional
                iptables -Z                             #Pone a cero los contadores de paquetes
                iptables -t nat -F                      #Borra las reglas de NAT

                echo "Listo."
                ;;
        block )
                echo -n "Bloqueando todo el trafico..."

                # Bloqueo todo el trafico
                iptables -F                             #Borra las reglas de las cadenas INPUT OUTPUT FORWARD 'OTRAS'
                iptables -X                             #Borra cualquier cadena adcional
                iptables -Z                             #Pone a cero los contadores de paquetes
                iptables -t nat -F                      #Borra las reglas de NAT

                iptables -P INPUT DROP                  #Por defecto bloquea los paquetes entrantes
                iptables -P OUTPUT DROP                 #Por defecto bloquea todos los paquetes salientes
                iptables -P FORWARD DROP                #Por defecto bloquea los paquetes hacia otras redes,
                                                        # esto es para cuando se tienen 2 o mas interfaces de red

                # Se permite todo el trafico para el localhost
                iptables -A INPUT -i $localhost -j ACCEPT
                iptables -A OUTPUT -o $localhost -j ACCEPT
                echo "Listo."
                ;;
        help )
                # Ayuda e Instrucciones de uso

                printf "\nFWall\n"
                printf "=====\n\n"
                printf "FWall es un script para bash para facilitar la carga del conjunto de reglas de IPtables.\n"
                printf "El mismo puede ser ejecutado desde una ruta absoluta: 'sh /ruta_absoluta/fwall' o sino\n"
                printf "colocando el script en alguna ruta dentro de la variable \$PATH (/usr/local/bin por ejemplo).\n"
                printf "Recuerde ejecutarlo siempre como usuario 'root'.\n\n"
                printf "Sintaxis:\n"
                printf "$0 { start | stop | block |ver }\n\n"
                printf "start - Carga todas las reglas predefinidas en el script, ademas de establecer las politicas por defecto.\n"
                printf "        Las reglas predefinidas permiten navegar completamente por la web, usar la red MSN y el gestor de\n"
                printf "        torrents KTorrent (puerto tcp:6881 y udp:4444 para los trackers).\n\n"
                printf "stop - Elimina todas las reglas y cambia las politicas por defecto para permitir todo el trafico de red.\n\n"
                printf "block - Bloquea absolutamente todo el trafico de red.\n\n"
                printf "help - Muestra esta ayuda.\n\n"
                printf "ver - Muestra la version del programa.\n\n"
                printf "FIN.\n"
                ;;
        ver )
                # Version del Script

                printf "\nVersion 0.1 - Desarrollada por LoKi.\n"
                printf "29-Sep-2010 - mailto: jf.donadio@gmail.com\n"
                ;;
        * )
                echo "No se ha pasado ningun parametro."
                echo "Uso: $0 { start | stop | block | help |ver }"
                ;;
esac

PD: se ve mejor y se entiende mejor con los colores del editor VIM jeje..

saludos a todos !!