Si desea ejecutar algún tipo de software de servidor en su Raspberry Pi (yo.mi., servidor web, servidor de bases de datos, servidor Minecraft) y hacerlos disponibles públicamente en Internet (alojamiento), luego es muy importante asegurar 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 una sola placa Raspberry Pi). Entre estos programas, UFW y Firewalld son los programas de firewall más comunes.
En este artículo, usaré el programa UFW Firewall para mostrarle cómo asegurar su Raspberry Pi. Entonces empecemos.
Cosas que necesitarás:
Para seguir este artículo, necesitará las siguientes cosas para configurar su Raspberry Pi en modo sin cabeza:
Si no desea configurar su Raspberry Pi 4 en modo sin cabeza, también necesitará:
Si necesita ayuda para flashear la imagen de Raspberry Pi OS en la tarjeta microSD, consulte mi artículo sobre cómo instalar y usar Raspberry Pi Imager.
Si es un principiante Raspberry Pi y necesita ayuda para instalar Raspberry Pi OS en su Raspberry Pi, consulte mi artículo sobre cómo instalar Raspberry Pi OS en Raspberry Pi 4.
Si necesita ayuda en la configuración sin cabeza de Raspberry Pi, consulte mi artículo sobre cómo instalar y configurar Raspberry Pi OS en Raspberry Pi 4 sin monitor externo.
Actualización de Raspberry Pi OS:
Mientras intentamos asegurar 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ía todas las últimas actualizaciones de seguridad y correcciones de errores.
Primero, actualice el caché del repositorio del paquete APT con el siguiente comando:
$ sudo apt actualización
Para actualizar todos los paquetes existentes de su sistema operativo Raspberry Pi, ejecute el siguiente comando:
$ sudo apt pleno-actual
Para confirmar la instalación de las actualizaciones, presione Y y luego presiona <Ingresar>.
El Administrador de paquetes APT descargará todos los paquetes requeridos desde Internet. Puede tomar un tiempo completar.
Una vez que se descargan los paquetes, el Administrador de paquetes APT los instalará uno por uno. Puede tomar un tiempo completar.
En este punto, todas las actualizaciones deben instalarse.
Para que los cambios entren en vigencia, reinicie su Raspberry Pi con el siguiente comando:
$ sudo reinicio
Instalación de UFW - Firewall sin complicaciones:
Una vez que sus botas Raspberry Pi, puede instalar el programa UFW Firewall con el siguiente comando:
$ sudo apt install ufw -y
Se debe instalar UFW.
Para que los cambios entren en vigencia, reinicie su Raspberry Pi con el siguiente comando:
$ sudo reinicio
Una vez que sus botas de frambuesa Pi, la UFW El servicio Systemd debe estar activo, como puede ver en la captura de pantalla a continuación.
$ sudo systemctl status ufw
Puede verificar si UFW está habilitado con el siguiente comando:
$ sudo UFW estado
Como puede ver, UFW no está habilitado de forma predeterminada.
Para habilitar UFW, ejecute el siguiente comando:
$ sudo UFW Enable
Como puede ver, UFW ahora está habilitado.
$ sudo UFW estado
Permitiendo el acceso a los puertos utilizando perfiles de aplicación:
UFW tiene algunos perfiles de aplicación predeterminados. Cada uno de los perfiles de aplicaciones tiene algunos puertos predefinidos a los que puede permitir/negar el acceso a.
Para enumerar todos los perfiles de aplicaciones disponibles, ejecute el siguiente comando:
$ sudo UFW Lista de aplicaciones
Todos los perfiles de aplicaciones instalados deben aparecer.
Si está conectado a su Raspberry PI a través de SSH o VNC (como yo), debe permitir el acceso al Abierro y VNC perfiles de aplicaciones. De lo contrario, la próxima vez que inicie su Raspberry Pi, no podrá acceder a él de forma remota, ya que el firewall bloqueará todos los puertos, incluidos los puertos SSH y VNC. Entonces, esto es muy importante.
Puedes ver qué puertos se definen en un perfil de aplicación (yo.mi., Abierro) con el siguiente comando:
$ sudo UFW Información de la aplicación OpenSsh
Como se puede ver, Puerto TCP 22 se define en el perfil de la aplicación Abierro.
De la misma manera, el Puerto TCP 5900 se define en el VNC perfil de la aplicación.
$ sudo UFW Info de la aplicación VNC
Para permitir el acceso a los puertos definidos en el VNC Perfil de la aplicación, ejecute el siguiente comando:
$ sudo UFW Permitir VNC
Como puedes ver, el VNC El perfil de la aplicación está permitido a través del firewall.
$ sudo UFW Estado numerado
De la misma manera, permita el acceso a los puertos definidos en el Abierro Perfil de la aplicación con el siguiente comando:
$ sudo UFW Permitir OpenSsh
Como puedes ver, el Abierro El perfil de la aplicación está permitido a través del firewall.
$ sudo UFW Estado numerado
Permitiendo el acceso a los puertos utilizando el número de puerto:
A veces, el puerto al que desea permitir/negar el acceso no se definirá en ningún perfil de aplicación disponible. Por lo tanto, deberá permitir/negar el acceso a estos puertos utilizando el número de puerto.
Por ejemplo, puede permitir el acceso al Puerto TCP 8080 Con el siguiente comando:
$ sudo UFW Permitir 8080/TCP
Como puedes ver, el Puerto TCP 8080 se le permite el acceso a través del firewall.
$ sudo UFW Estado numerado
De la misma manera, puede permitir el acceso al Puerto UDP 8888 Con el siguiente comando:
$ sudo UFW Permitir 8888/UDP
Como puedes ver, el Puerto UDP 8888 se le permite el acceso a través del firewall.
$ sudo UFW Estado numerado
Negando el acceso a los puertos:
El comportamiento predeterminado del programa UFW Firewall es negar todo lo que no está permitido. Por lo tanto, no necesita hacer nada para negar el acceso a ningún puerto.
En aras de la competencia, te mostraré cómo negar los puertos en UFW de todos modos.
Por ejemplo, para negar el acceso al Puerto TCP 9900, Ejecute el siguiente comando:
$ sudo UFW Deny 9900/TCP
Como puedes ver, el Puerto TCP 9900 se le niega el acceso a través del firewall.
$ sudo UFW Estado numerado
De la misma manera, puede negar los puertos definidos en un perfil de la aplicación (i.mi., WWW) como sigue:
$ sudo ufw negar www
Negación de direcciones IP específicas El acceso al servidor:
A veces, es posible que deba negar el acceso a una dirección IP específica o subred IP para proteger su servidor Raspberry PI de los ataques de DDoS (Denegación de servicio distribuida). Puedes hacer eso con UFW.
Para experimentar con las direcciones IP, usaré el servidor web de Apache.
Puede instalar el servidor web de Apache en su Raspberry Pi con el siguiente comando:
$ sudo apt install apache2
Para confirmar la instalación, presione Y y luego presiona <Ingresar>.
El Administrador de paquetes APT descargará todos los paquetes de Internet e instalará uno por uno. Puede tomar un tiempo completar.
En este punto, se debe instalar el servidor web de Apache.
Una vez que se instale el servidor web de Apache, cree una página de índice simple con el siguiente comando:
$ Echo "Bienvenido a Linuxhint
"| sudo tee/var/www/html/index.html
El apache2 El servicio Systemd debe estar ejecutado, como puede ver en la captura de pantalla a continuación.
$ sudo systemctl status apache2
Permitir el acceso al puerto de servidor web Apache (Puerto TCP 80) usando el perfil de la aplicación WWW como sigue:
$ sudo UFW Permitir www
Como puede ver, los puertos definidos en el perfil de la aplicación WWW se le permite el acceso a través del firewall.
Encuentre la dirección IP de su Raspberry Pi con el siguiente comando:
$ hostname -i
Como puede ver, la dirección IP de mi Raspberry Pi es 192.168.0.106. Será diferente para ti. Entonces, asegúrese de reemplazarlo con el tuyo de ahora en adelante.
Debe acceder al servidor web de 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 de Apache tiene la dirección IP 192.168.0.109.
Para negar 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 UFW importa mucho. Las reglas más restrictivas deben ir primero.
$ sudo UFW Estado numerado
Para negar la dirección IP 192.168.0.109 Acceso al servidor Raspberry Pi, ejecute el siguiente comando:
$ sudo ufw inserto 1 negar de 192.168.0.109 a cualquiera
La regla de UFW para negar la dirección IP 192.168.0.109 El acceso al servidor Raspberry Pi debe ser la regla más alta, como se muestra en la captura de pantalla a continuación.
$ sudo UFW Estado numerado
No podrá acceder al servidor web de Apache que se ejecuta en su Raspberry Pi desde la computadora con la dirección IP 192.168.0.109 Más, como puedes ver en la captura de pantalla a continuación.
Pero puede acceder al servidor web de Apache que se ejecuta en su Raspberry Pi desde otras computadoras.
Si desea negar el acceso a una subred IP, debe agregar la regla UFW requerida antes de la regla que haya agregado anteriormente, ya que es una regla más restrictiva.
$ sudo UFW Estado numerado
Por ejemplo, para negar el acceso a cada computadora en una subred IP 192.168.20.24/04, Ejecute el siguiente comando:
$ sudo ufw inserto 1 negar de 192.168.20.4/24 a cualquier
La regla UFW debe agregarse en la posición correcta, como se muestra en la captura de pantalla a continuación. Ahora, no hay computadora de la subred IP 192.168.20.0/20 debería poder acceder a su servidor Raspberry Pi.
$ sudo UFW Estado numerado
Eliminar las reglas de UFW:
A veces, es posible que deba eliminar algunas reglas de UFW. Es muy fácil hacerlo.
Puede enumerar todas las reglas de UFW disponibles con el siguiente comando:
$ sudo UFW Estado numerado
Todas las reglas de UFW disponibles deben aparecer. Supongamos 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:
$ sudo ufw eliminar 10
Para confirmar la operación de eliminar, presione Y y luego presiona <Ingresar>.
La regla número 10 de UFW debe eliminarse.
Como puede ver, se elimina la regla UFW y se reordenan las reglas (la regla UFW que estaba en la posición 11 ahora está en la posición 10).
$ sudo UFW Estado numerado
Conclusión:
En este artículo, le he mostrado cómo instalar el programa UFW Firewall en su Raspberry Pi (ejecutando el sistema operativo Raspberry Pi). También le he mostrado cómo permitir/negar puertos utilizando el programa UFW Firewall. Le he mostrado cómo negar una dirección IP específica o una subred IP para acceder a la Raspberry Pi utilizando el programa UFW Firewall también.