Bash - FireWall UFW

  • 3 Respuestas
  • 897 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado MKD1R

  • *
  • Underc0der
  • Mensajes: 8
  • Actividad:
    0%
  • Country: 00
  • Reputación 0
    • Ver Perfil
    • Email

Bash - FireWall UFW

  • en: Enero 15, 2020, 11:07:43 pm
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) [Seleccionar]
#!/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]}" != "" ];
« Última modificación: Enero 17, 2020, 10:06:06 am por Gabriela »

Conectado DtxdF

  • *
  • Moderador Global
  • Mensajes: 948
  • Actividad:
    96.67%
  • Country: 00
  • Reputación 20
  • Eres un auto y tienes dos opciones: Parar o Seguir
    • Ver Perfil
    • Mi repositorio de Github donde encontraras herramientas para tu trabajo.
    • Email

Re:Bash - FireWall UFW

  • en: Enero 15, 2020, 11:22:39 pm
@MKD1R

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

Código: (text) [Seleccionar]
---------------------------------------------------------------------
               */*   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) [Seleccionar]
#!/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
« Última modificación: Enero 17, 2020, 10:06:23 am por Gabriela »
Los seres humanos son robots, cuyo combustible es el afanado dinero.

Desconectado MKD1R

  • *
  • Underc0der
  • Mensajes: 8
  • Actividad:
    0%
  • Country: 00
  • Reputación 0
    • Ver Perfil
    • Email

Re:Bash - FireWall UFW

  • en: Enero 16, 2020, 07:56:33 pm
DtxdF
Perdon, no revise bien el codigo lo subi incompleto.
Código: (bash) [Seleccionar]

#!/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.
« Última modificación: Enero 17, 2020, 10:06:40 am por Gabriela »

Conectado DtxdF

  • *
  • Moderador Global
  • Mensajes: 948
  • Actividad:
    96.67%
  • Country: 00
  • Reputación 20
  • Eres un auto y tienes dos opciones: Parar o Seguir
    • Ver Perfil
    • Mi repositorio de Github donde encontraras herramientas para tu trabajo.
    • Email

Re:Bash - FireWall UFW

  • en: Enero 16, 2020, 09:04:32 pm
@MKD1R

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
« Última modificación: Enero 17, 2020, 10:06:54 am por Gabriela »
Los seres humanos son robots, cuyo combustible es el afanado dinero.