Bash - FireWall UFW

Iniciado por MKD1R, Enero 15, 2020, 11:07:43 PM

Tema anterior - Siguiente tema

0 Miembros y 4 Visitantes están viendo este tema.

Enero 15, 2020, 11:07:43 PM Ultima modificación: Enero 17, 2020, 10:06:06 AM por Gabriela
Bueno aqui les dejo un bash que escribi porque andaba medio aburrido y queria programar algo.
Espero que les sirve. (aunque lo dudo).
Código: bash

#!/bin/bash

clear
lineasD="---------------------------------------------------------------------"
echo $lineasD
echo "               */*   UNCOMPLICATED FIREWALL ( UFW )   */*"
echo $lineasD
echo "Programa creado por : MKD1R ( lenguaje Bash-Bourne Again Shell )"
echo "VERSION DE FIREWALL:"
sudo ufw  version
echo $lineasD
echo " + Pulsa enter para habilitar en Firewal UFW... ( o escriba 'exit' para salir)"
read enable
if [ "$enable" = "exit" ];
then
exit
else
sudo ufw enable
fi
export salir="n"
while [ "$salir" = "n" ] || [ "$salir" = "N" ]; do
echo $lineasD
echo "               */*      MENU PRINCIPAL       */*"
echo $lineasD
echo " * Elige la operación que desee hacer con el firewall:"
echo "   1) Ver estado del firewall UFW."
echo "   2) Ver reglas de los puertos del firewall."
echo "   3) Añadir reglas en UFW."
echo "   4) Eliminar reglas del UFW."
echo "   5) Deshabilitar Firewall."
echo "   6) Salir."
echo $lineasD
read -p " + Que deseas? " op
echo $lineasD

case $op in
1)
echo " - ESTADO DEL FIREWAL UFW"
echo $lineasD
sudo ufw status
echo $lineasD
;;
2)
echo " - ESTADO DEL FIREWALL UFW Y SUS PUERTOS"
echo $lineasD
sudo ufw status verbose
echo $lineasD
;;
3)
echo " - AGREGAR REGLA EN UFW:"
echo $lineasD
echo " + Que deseas?"
echo "   1) Establecer reglas 'default deny'(cerrar todos los puertos)."
echo "   2) Añadir regla de permiso para entrada a puertos."
echo "   3) Añadir regla de denegacion de entrada a puertos."
echo "   4) Añadir regla de permiso de entrada para ip's y subredes."
echo "   5) Añadir regla de denegación para ip's y subredes."
echo "   6) Añadir regla de permiso de entrada para ip's y subredes con puertos"
echo "   7) Añadir regla de denegación de entrada para ip's y subredes con puertos"
echo "NOTA: Puedes poner el servicio o numero del puerto."
echo $lineasD
read -p " + Que deseas? : " add
echo $lineasD
if [ "$add" = "1" ];
then
echo " * Estableciendo regla 'default deny'..."
sudo ufw default deny
elif [ "$add" = "2" ];
then
read -p " + Ingresa el puerto o servicio del puerto : " allow
sudo ufw allow $allow
elif [ "$add" = "3" ];
then
read -p " + Ingresa el puerto o servicio del puerto : " deny
sudo ufw deny $deny
elif [ "$add" = "4" ];
then
echo " + Ingresa la ip y número de red en bits(opcional) : "
read -p " + " -a lips
if [ "${lips[1]}" != "" ];

Enero 15, 2020, 11:22:39 PM #1 Ultima modificación: Enero 17, 2020, 10:06:23 AM por Gabriela
@You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Muy bueno lo que desea hacer, útil para aprender los comandos escenciales de UFW, sin embargo tuve algunos inconvenientes:

Código: text
---------------------------------------------------------------------
               */*   UNCOMPLICATED FIREWALL ( UFW )   */*
---------------------------------------------------------------------
Programa creado por : MKD1R ( lenguaje Bash-Bourne Again Shell )
VERSION DE FIREWALL:
ufw 0.36
Copyright 2008-2015 Canonical Ltd.
---------------------------------------------------------------------
+ Pulsa enter para habilitar en Firewal UFW... ( o escriba 'exit' para salir)

Firewall is active and enabled on system startup
test.sh: línea 81: error sintáctico: no se esperaba el final del fichero


El primero fue el que le muestro anteriormente, pero también cabe recalcar que faltan opciones cómo la: 4, 5 y 6, mientras que para la opción "3" carece de las opciones 5, 6 y 7.

Espero lo arregle, enserio es de mucha utilidad.

[ACTUALIZO]

Código: bash
#!/bin/bash

clear
lineasD="---------------------------------------------------------------------"
echo $lineasD
echo "               */*   UNCOMPLICATED FIREWALL ( UFW )   */*"
echo $lineasD
echo "Programa creado por : MKD1R ( lenguaje Bash-Bourne Again Shell )"
echo "VERSION DE FIREWALL:"
sudo ufw  version
echo $lineasD
echo " + Pulsa enter para habilitar en Firewal UFW... ( o escriba 'exit' para salir)"
read enable
if [ "$enable" = "exit" ];
then
        exit
else
        sudo ufw enable
fi
export salir="n"
while [ "$salir" = "n" ] || [ "$salir" = "N" ]; do
        echo $lineasD
        echo "               */*      MENU PRINCIPAL       */*"
        echo $lineasD
        echo " * Elige la operación que desee hacer con el firewall:"
        echo "   1) Ver estado del firewall UFW."
        echo "   2) Ver reglas de los puertos del firewall."
        echo "   3) Añadir reglas en UFW."
        echo "   4) Eliminar reglas del UFW."
        echo "   5) Deshabilitar Firewall."
        echo "   6) Salir."
        echo $lineasD
        read -p " + Que deseas? " op
        echo $lineasD

        case $op in
                1)
                        echo " - ESTADO DEL FIREWAL UFW"
                        echo $lineasD
                        sudo ufw status
                        echo $lineasD
                ;;
                2)
                        echo " - ESTADO DEL FIREWALL UFW Y SUS PUERTOS"
                        echo $lineasD
                        sudo ufw status verbose
                        echo $lineasD
                ;;
                3)
                        echo " - AGREGAR REGLA EN UFW:"
                        echo $lineasD
                        echo " + Que deseas?"
                        echo "   1) Establecer reglas 'default deny'(cerrar todos los puertos)."
                        echo "   2) Añadir regla de permiso para entrada a puertos."
                        echo "   3) Añadir regla de denegacion de entrada a puertos."
                        echo "   4) Añadir regla de permiso de entrada para ip's y subredes."
                        echo "   5) Añadir regla de denegación para ip's y subredes."
                        echo "   6) Añadir regla de permiso de entrada para ip's y subredes con puertos"
                        echo "   7) Añadir regla de denegación de entrada para ip's y subredes con puertos"
                        echo "NOTA: Puedes poner el servicio o numero del puerto."
                        echo $lineasD
                        read -p " + Que deseas? : " add
                        echo $lineasD
                        if [ "$add" = "1" ];
                        then
                                echo " * Estableciendo regla 'default deny'..."
                                sudo ufw default deny
                        elif [ "$add" = "2" ];
                        then
                                read -p " + Ingresa el puerto o servicio del puerto : " allow
                                sudo ufw allow $allow
                        elif [ "$add" = "3" ];
                        then
                                read -p " + Ingresa el puerto o servicio del puerto : " deny
                                sudo ufw deny $deny

fi

esac

done


Algo así, por supuesto con las opciones faltantes que le mencioné anteriormente.

~ DtxdF
PGP :: <D82F366940155CB043147178C4E075FC4403BDDC>

~ DtxdF

Enero 16, 2020, 07:56:33 PM #2 Ultima modificación: Enero 17, 2020, 10:06:40 AM por Gabriela
DtxdF
Perdon, no revise bien el codigo lo subi incompleto.
Código: bash
 
#!/bin/bash

clear
lineasD="---------------------------------------------------------------------"
echo $lineasD
echo "               */*   UNCOMPLICATED FIREWALL ( UFW )   */*"
echo $lineasD
echo "Programa creado por : MKD1R ( lenguaje Bash-Bourne Again Shell )"
echo "VERSION DE FIREWALL:"
sudo ufw  version
echo $lineasD
echo " + Pulsa enter para habilitar en Firewal UFW... ( o escriba 'exit' para salir)"
read enable
if [ "$enable" = "exit" ];
then
exit
else
sudo ufw enable
fi
export salir="n"
while [ "$salir" = "n" ] || [ "$salir" = "N" ]; do
echo $lineasD
echo "               */*      MENU PRINCIPAL       */*"
echo $lineasD
echo " * Elige la operación que desee hacer con el firewall:"
echo "   1) Ver estado del firewall UFW."
echo "   2) Ver reglas de los puertos del firewall."
echo "   3) Añadir reglas en UFW."
echo "   4) Eliminar reglas del UFW."
echo "   5) Deshabilitar Firewall."
echo "   6) Salir."
echo $lineasD
read -p " + Que deseas? " op
echo $lineasD

case $op in
1)
echo " - ESTADO DEL FIREWAL UFW"
echo $lineasD
sudo ufw status
echo $lineasD
;;
2)
echo " - ESTADO DEL FIREWALL UFW Y SUS PUERTOS"
echo $lineasD
sudo ufw status verbose
echo $lineasD
;;
3)
echo " - AGREGAR REGLA EN UFW:"
echo $lineasD
echo " + Que deseas?"
echo "   1) Establecer reglas 'default deny'(cerrar todos los puertos)."
echo "   2) Añadir regla de permiso para entrada a puertos."
echo "   3) Añadir regla de denegacion de entrada a puertos."
echo "   4) Añadir regla de permiso de entrada para ip's y subredes."
echo "   5) Añadir regla de denegación para ip's y subredes."
echo "   6) Añadir regla de permiso de entrada para ip's y subredes con puertos"
echo "   7) Añadir regla de denegación de entrada para ip's y subredes con puertos"
echo "NOTA: Puedes poner el servicio o numero del puerto."
echo $lineasD
read -p " + Que deseas? : " add
echo $lineasD
if [ "$add" = "1" ];
then
echo " * Estableciendo regla 'default deny'..."
sudo ufw default deny
elif [ "$add" = "2" ];
then
read -p " + Ingresa el puerto o servicio del puerto : " allow
sudo ufw allow $allow
elif [ "$add" = "3" ];
then
read -p " + Ingresa el puerto o servicio del puerto : " deny
sudo ufw deny $deny
elif [ "$add" = "4" ];
then
echo " + Ingresa la ip y número de red en bits(opcional) : "
read -p " + " -a lips
if [ "${lips[1]}" != "" ];
then
sudo ufw allow from ${lips[0]}/${lips[1]}
else
sudo ufw allow from ${lips[0]}
fi
elif [ "$add" = "5" ];
then
echo " + Ingresa la ip y número de red en bits(opcional) : "
read -p " + " -a lips
if [ "${lips[1]}" != "" ];
then
sudo ufw deny from ${lips[0]}/${lips[1]}
else
sudo ufw deny from ${lips[0]}
fi
elif [ "$add" = "6" ];
then
echo  " + Ingresa la Ip, número de red en bits(opcional) y el puerto : "
read -p " + " -a lpuerto
if [ "${lpuerto[2]}" != "" ];
then
sudo ufw allow from ${lpuerto[0]}/${lpuerto[1]} to any port ${lpuerto[2]}
else
sudo ufw allow from ${lpuerto[0]} to any port ${lpuerto[1]}
fi
elif [ "$add" = "7" ];
then
echo " + Ingresa la Ip, número de red en bits(opcional) y el puerto :"
read -p " + " -a lpuerto
if [ "${lpuerto[2]}" != "" ];
                                then
                                        sudo ufw deny from ${lpuerto[0]}/${lpuerto[1]} to any port ${lpuerto[2]}
                                else
                                        sudo ufw deny from ${lpuerto[0]} to any port ${lpuerto[1]}
                                fi
else
echo "  ERROR, opcion no VALIDA."
fi
echo $lineasD
;;
4)
echo " - ELIMINAR REGLAS DEL UFW"
echo " + Lista de las reglas del Firewall:"
sudo ufw status numbered
echo "NOTA : Si deseas eliminar más de una regla, escribe sus numeros de orden(en orden descendente) dejando un espacio por cada una."
read -p " + " reglas
for rule in $reglas;
do
sudo ufw delete $rule
done
echo $lineasD
;;
5)
echo "DESHABILITAR FIREWALL:"
read -p " + Estas seguro(a) de esta acción? ( Y - N ): " disable
if [ "$disable" = "Y" ] || [ "$disable" = "y" ];
then
sudo ufw disable
elif [ "$disable" = "N" ] || [ "$disable" = "n" ];
then
echo "  Buena elección!!"
else
echo "  ERROR, esta opcion no es VALIDA."
fi
echo $lineasD
;;
6)
echo " - Saliendo del script bash..."
read -p  " + Estas seguro(a) de esta opción? ( Y - N ): " exti
if [ "$exti" = "Y" ] || [ "$exti" = "y" ];
then
echo "  Adios..."
exit
elif [ "$exti" = "N" ] || [ "$exti" = "n" ];
then
echo "  Nuncas hagas algo a ultima hora."
else
echo "  ERROR, esta opcion no es VALIDA."
fi
echo $lineasD
;;
*)
echo "  ERROR, esta opción no es VALIDA."
echo $lineasD
;;
esac
echo " + Teclea 'ENTER' para CONTINUAR en el script..."
read
clear
done

En serio, de corazon espero me disculpen. Estaba muy distraido.
De parte de su gran amigo : MKD1R
PD : Ejecuten el script con el comando sudo para evitar molestias.

Enero 16, 2020, 09:04:32 PM #3 Ultima modificación: Enero 17, 2020, 10:06:54 AM por Gabriela
@You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

No hay problema, en la vida siempre habrá distracciones, pero igualmente le agradezco su esfuerzo y cómo último mensaje, guardaré el script para ejecutarlo más tarde  ;)

~ DtxdF
PGP :: <D82F366940155CB043147178C4E075FC4403BDDC>

~ DtxdF