Si desea ejecutar algún tipo de software de servidor en su Raspberry Pi (i.mi., servidor web, servidor de base de datos, servidor de Minecraft) y ponerlos a disposición del público en Internet (alojamiento), luego es muy importante proteger su servidor Raspberry Pi con un programa de firewall.
Hay muchos programas de firewall gratuitos y de código abierto disponibles en el sistema operativo Raspberry Pi (el sistema operativo oficial de las computadoras de placa única Raspberry Pi). Entre estos programas, UFW y Firewalld son los programas de firewall más comunes.
En este artículo, usaré el programa de firewall UFW para mostrarle cómo proteger su Raspberry Pi. Entonces empecemos.
Cosas que necesitará:
Para seguir este artículo, necesitará lo siguiente para configurar su Raspberry Pi en modo sin cabeza:
- Una computadora de placa única Raspberry Pi 3 o Raspberry Pi 4.
- Un adaptador de corriente micro-USB (Raspberry Pi 3) o USB Type-C (Raspberry Pi 4).
- Una tarjeta microSD de 16 GB o 32 GB con sistema operativo Raspberry Pi flasheó.
- Conectividad de red en Raspberry Pi.
- Una computadora portátil o de escritorio para acceso de escritorio remoto VNC o acceso SSH a la Raspberry Pi.
Si no desea configurar su Raspberry Pi 4 en modo sin cabeza, también necesitará:
- Un monitor
- Un cable HDMI o micro-HDMI
- Un teclado
- Un ratón.
Si necesita ayuda para actualizar la imagen del sistema operativo Raspberry Pi en la tarjeta microSD, consulte mi artículo Cómo instalar y usar Raspberry Pi Imager.
Si es un principiante en Raspberry Pi y necesita ayuda para instalar el sistema operativo Raspberry Pi en su Raspberry Pi, consulte mi artículo Cómo instalar el sistema operativo Raspberry Pi en Raspberry Pi 4.
Si necesita ayuda con la configuración sin cabeza de Raspberry Pi, consulte mi artículo Cómo instalar y configurar el sistema operativo Raspberry Pi en Raspberry Pi 4 sin monitor externo.
Actualización del sistema operativo Raspberry Pi:
Mientras intentamos proteger nuestra Raspberry Pi, es una buena idea actualizar todos los paquetes existentes del sistema operativo Raspberry Pi. Esto hará que su sistema operativo Raspberry Pi sea más seguro porque instalará las últimas actualizaciones de seguridad y correcciones de errores.
Primero, actualice la caché del repositorio de paquetes APT con el siguiente comando:
actualización de $ sudo apt
Para actualizar todos los paquetes existentes de su sistema operativo Raspberry Pi, ejecute el siguiente comando:
Para confirmar la instalación de las actualizaciones, presione Y y luego presione <Ingresar>.
El administrador de paquetes de APT descargará todos los paquetes necesarios de Internet. Puede que tarde un poco en completarse.
Una vez que se descargan los paquetes, el administrador de paquetes de APT los instalará uno por uno. Puede que tarde un poco en completarse.
En este punto, todas las actualizaciones deben estar instaladas.
Para que los cambios surtan efecto, reinicie su Raspberry Pi con el siguiente comando:
$ sudo reiniciar
Instalación de UFW - Cortafuegos sin complicaciones:
Una vez que su Raspberry Pi se inicia, puede instalar el programa de firewall UFW con el siguiente comando:
$ sudo apt install ufw -y
Debe instalarse UFW.
Para que los cambios surtan efecto, reinicie su Raspberry Pi con el siguiente comando:
Una vez que su Raspberry Pi arranca, el ufw El servicio systemd debería estar activo, como puede ver en la captura de pantalla a continuación.
Puede verificar si UFW está habilitado con el siguiente comando:
Como puede ver, UFW no está habilitado de forma predeterminada.
Para habilitar UFW, ejecute el siguiente comando:
Como puede ver, UFW ahora está habilitado.
Permitir el acceso a los puertos mediante perfiles de aplicaciones:
UFW tiene algunos perfiles de aplicación predeterminados. Cada uno de los perfiles de la aplicación tiene algunos puertos predefinidos a los que puede permitir / denegar el acceso.
Para enumerar todos los perfiles de aplicaciones disponibles, ejecute el siguiente comando:
$ sudo ufw lista de aplicaciones
Todos los perfiles de aplicaciones instaladas deben aparecer en la lista.
Si está conectado a su Raspberry Pi a través de SSH o VNC (como yo), debe permitir el acceso al OpenSSH y VNC perfiles de aplicaciones. De lo contrario, la próxima vez que inicie su Raspberry Pi, no podrá acceder a ella de forma remota ya que el firewall bloqueará todos los puertos, incluidos los puertos SSH y VNC. Entonces, esto es muy importante.
Puede ver qué puertos están definidos en un perfil de aplicación (i.mi., OpenSSH) con el siguiente comando:
Como se puede ver, Puerto TCP 22 está definido en el perfil de la aplicación OpenSSH.
De la misma manera, el Puerto TCP 5900 se define en el VNC perfil de la aplicación.
Para permitir el acceso a los puertos definidos en el VNC perfil de la aplicación, ejecute el siguiente comando:
Como puede ver, el VNC el perfil de la aplicación está permitido a través del firewall.
De la misma forma, permitir el acceso a los puertos definidos en el OpenSSH perfil de la aplicación con el siguiente comando:
Como puede ver, el OpenSSH el perfil de la aplicación está permitido a través del firewall.
Permitir el acceso a los puertos mediante el número de puerto:
A veces, el puerto al que desea permitir / denegar el acceso no se definirá en ningún perfil de aplicación disponible. Por lo tanto, deberá permitir / denegar el acceso a estos puertos utilizando el número de puerto.
Por ejemplo, puede permitir el acceso a la Puerto TCP 8080 con el siguiente comando:
$ sudo ufw permiten 8080 / tcp
Como puede ver, el Puerto TCP 8080 se permite el acceso a través del firewall.
Del mismo modo, puede permitir el acceso a la Puerto UDP 8888 con el siguiente comando:
Como puede ver, el Puerto UDP 8888 se permite el acceso a través del firewall.
Negar el acceso a los puertos:
El comportamiento predeterminado del programa de firewall de UFW es negar todo lo que no está permitido. Por lo tanto, no necesita hacer nada para denegar el acceso a ningún puerto.
En aras de la competencia, te mostraré cómo denegar puertos en UFW de todos modos.
Por ejemplo, para denegar el acceso a la Puerto TCP 9900, ejecute el siguiente comando:
$ sudo ufw deny 9900 / tcp
Como puede ver, el Puerto TCP 9900 se le niega el acceso a través del firewall.
De la misma manera, puede denegar los puertos definidos en un perfil de aplicación (i.mi., WWW) como sigue:
Negar el acceso de direcciones IP específicas al servidor:
En ocasiones, es posible que deba denegar el acceso a una dirección IP o subred IP específicas para proteger su servidor Raspberry Pi de ataques DDoS (Denegación de servicio distribuida). Puedes hacer eso con UFW.
Para experimentar con la denegación de direcciones IP, usaré el servidor web Apache.
Puede instalar el servidor web Apache en su Raspberry Pi con el siguiente comando:
$ sudo apt instalar apache2
Para confirmar la instalación, presione Y y luego presione <Ingresar>.
El administrador de paquetes APT descargará todos los paquetes de Internet y los instalará uno por uno. Puede que tarde un poco en completarse.
En este punto, el servidor web Apache debe estar instalado.
Una vez que el servidor web Apache esté instalado, cree una página de índice simple con el siguiente comando:
Bienvenido a LinuxHint
"| sudo tee / var / www / html / index.html
La apache2 El servicio systemd debería estar ejecutándose, como puede ver en la captura de pantalla a continuación.
Permita el acceso al puerto del servidor web Apache (Puerto TCP 80) usando el perfil de la aplicación WWW como sigue:
Como puede ver, los puertos definidos en el perfil de la aplicación WWW se permite el acceso a través del firewall.
Encuentra la dirección IP de tu Raspberry Pi con el siguiente comando:
Como puede ver, la dirección IP de mi Raspberry Pi es 192.168.0.106. Será diferente para ti. Por lo tanto, asegúrese de reemplazarlo por el suyo a partir de ahora.
Debe acceder al servidor web Apache desde otros dispositivos, como puede ver en la captura de pantalla a continuación.
La computadora que estoy usando para acceder al servidor web Apache tiene la dirección IP 192.168.0.109.
Para denegar la dirección IP 192.168.0.109 acceso a su servidor Raspberry Pi, debe agregar la regla de firewall en la parte superior (posición 1). El orden de las reglas de la UFW es muy importante. Las reglas más restrictivas deben ir primero.
Para denegar la dirección IP 192.168.0.109 acceso al servidor Raspberry Pi, ejecute el siguiente comando:
La regla UFW para denegar la dirección IP 192.168.0.109 el acceso al servidor Raspberry Pi debe ser la regla principal, como se muestra en la captura de pantalla a continuación.
No podrá acceder al servidor web Apache que se ejecuta en su Raspberry Pi desde la computadora con la dirección IP 192.168.0.109 ya, como puede ver en la captura de pantalla a continuación.
Pero, puede acceder al servidor web Apache que se ejecuta en su Raspberry Pi desde otras computadoras.
Si desea denegar el acceso a una subred de IP, debe agregar la regla UFW requerida antes de la regla que agregó anteriormente, ya que es una regla más restrictiva.
Por ejemplo, para denegar el acceso a todas las computadoras en una subred IP 192.168.20.0/24, ejecute el siguiente comando:
La regla UFW debe agregarse en la posición correcta, como se muestra en la captura de pantalla a continuación. Ahora, ninguna computadora de la subred IP 192.168.20.0/24 debería poder acceder a su servidor Raspberry Pi.
Eliminación de reglas de UFW:
A veces, es posible que deba eliminar algunas reglas de UFW. Es muy facil hacerlo.
Puede enumerar todas las reglas de UFW disponibles con el siguiente comando:
$ sudo ufw estado numerado
Se deben enumerar todas las reglas de UFW disponibles. Digamos que desea eliminar la regla número 10 de UFW (regla en la décima posición).
Para eliminar la regla número 10 de UFW, ejecute el siguiente comando:
Para confirmar la operación de remoción, presione Y y luego presione <Ingresar>.
La regla número 10 de la UFW debería eliminarse.
Como puede ver, la regla UFW se elimina y las reglas se reordenan (la regla UFW que estaba en la posición 11 ahora está en la posición 10).
Conclusión:
En este artículo, le he mostrado cómo instalar el programa de firewall UFW en su Raspberry Pi (ejecutando el sistema operativo Raspberry Pi). También le he mostrado cómo permitir / denegar puertos usando el programa de firewall UFW. Le he mostrado cómo denegar que una dirección IP específica o una subred IP acceda a la Raspberry Pi utilizando el programa de firewall UFW también.