Tener decenas de miles de Raspberry Pi conectadas a Internet eventualmente captará el interés de algunas personas que desearían hacer cosas desagradables a las pequeñas computadoras, especialmente cuando muchas personas usan su Pi para hacer servidores de red. Linux es un sistema operativo sólido listo para usar, pero aparte de solo cambiar la contraseña, ¿qué se debe hacer para "endurecer" la Raspberry Pi si tengo la intención de alojar servicios orientados a Internet en el dispositivo?
Solo para apoyar mi broma de "decenas de miles", Eben Upton ha dicho que "la Raspberry Pi ha vendido más de 200,000 de sus módulos de computadora básicos y actualmente está enviando 4,000 unidades por día" . Probablemente sea seguro asumir que decenas de miles de esos 200,000 se han conectado a Internet. Es menos seguro suponer que decenas de miles de esos Raspberry Pis conectados a Internet alojan un servicio web público, pero aún existe el potencial para el entusiasmo de los piratas informáticos.
Respuestas:
Asegurar una computadora no es un proceso simple, se escriben libros completos sobre el tema. El tamaño del Pi no reduce la amenaza de seguridad o la superficie de ataque presentada a un posible atacante. Como resultado, describiré los pasos involucrados y proporcionaré enlaces a instrucciones y tutoriales más detallados.
Como no ha mencionado qué distribución está utilizando, asumiré la distribución Raspbian recomendada.
Vi que la distribución recomendada de Raspbian incluye el servidor web Apache y lo habilita al inicio (alguien puede confirmar esto). ¿Realmente necesitas un servidor web funcionando? Si no, deshabilítelo. Si necesita ejecutar Apache, asegúrese de asegurarlo , y haga lo mismo para otro servicio (por ejemplo, FTP, NGINX, MySQL, etc.), una búsqueda en Google debería mostrar varios recursos.Algunas cosas adicionales que puede considerar:
También debe leer esta pregunta relacionada. ¿ Cómo puedo proteger contra intrusos y malware antes de conectarlo a Internet (especialmente en una dirección IP pública)? .
Estos son solo los pasos mínimos para proteger su Pi. Para obtener más información, puede leer el Manual de seguridad de Debian .
fuente
Después de mirar el RPi, parece un dispositivo bastante seguro fuera de la caja, siempre que haga un par de cosas.
Las necesidades predeterminadas de usuario / pase han cambiado. Por lo menos, cambie la contraseña. Para una mejor seguridad nuevamente, cambie el nombre de usuario también. (Agregue un nuevo usuario, luego desactive PI. Verifique que ROOT también esté desactivado desde el inicio de sesión SSH, aunque creo que de todos modos es predeterminado).
Escanear el RPi devuelve solo un puerto abierto, 22, que es la conexión SSH, e incluso eso tiene que activarse antes de que se muestre (aunque la mayoría de la gente lo usará en lugar de un monitor, teclado y mouse, espero, especialmente en un servidor {web})
Puede cambiar el número de puerto SSH, pero eso no servirá de mucho, ya que puede escanearse fácilmente. En su lugar, habilite la autenticación SSH-Key.
Ahora no tiene forma de que nadie ingrese a su máquina sin la clave SSH, el nombre de usuario y la contraseña correctos.
A continuación, configure su servidor web. Apache está prácticamente donde está. Eso sentará y monitoreará el puerto 80 por defecto, y responderá automáticamente a las conexiones de los navegadores, sirviendo sus páginas web.
Si tiene un firewall o enrutador, puede cambiar los puertos RPi y hacer que el enrutador dirija el tráfico de un puerto a otro. Por ejemplo, el tráfico del puerto 80 en el enrutador se redirige al puerto 75 en el RPi, y SSH en 22 se redirige al puerto 72. Esto agregaría otra capa de protección, pero es un poco más complejo.
Mantenga todo actualizado y parcheado, obviamente.
Esto no lo protegerá de ataques que exploten java, flash, servidores SQL, etc. que podría agregar más adelante, pero eso es todo para lo básico, realmente.
También puede agregar un firewall, que ralentizará a cualquiera que ingrese a su sistema para que no salga a un puerto diferente si instala un nuevo servicio. Su enrutador debería ocuparse de eso, pero si está conectado directamente, configúrelo y, durante el tiempo que tarde, podría estar ejecutándolo de todos modos; no agregará mucho en cuanto a recursos del sistema.
Otra cosa que puede agregar es fail2ban ( http://www.fail2ban.org/wiki/index.php/Main_Page ) que agrega una regla de firewall para bloquear múltiples intentos de inicio de sesión, evitando ataques de diccionario. Aunque estos no pueden funcionar en su sistema si ha seguido lo anterior, si por alguna razón necesita dejar solo la contraseña de autenticación SSH (inicio de sesión remoto desde muchas máquinas diferentes, por ejemplo), evitará un ataque de diccionario de trabajar. Después del número de intentos que especifique, bloqueará por un tiempo más intentos de esa dirección IP. (¡Solo tenga cuidado de que no vea ningún enrutador / dirección IP local y prohíba eso demasiado pronto o por demasiado tiempo!)
Editado para agregar: una vez que tenga todo bien configurado, use una herramienta como dd o Win32DiskImager para realizar una copia de seguridad completa de su tarjeta SD. De esa manera, si algo sale mal, puede restaurarlo en la misma tarjeta o escribirlo en una nueva tarjeta, y continuar independientemente. (¡Pero si hackeado, querrás averiguar qué agujero se encontró y cerrarlo primero, tal vez!)
fuente
linode tiene una excelente guía para asegurar un servidor Linux: http://library.linode.com/securing-your-server . las mismas reglas se pueden aplicar a la frambuesa pi
fuente
Además de fortalecer el sistema operativo, también puede considerar el uso de un servicio de monitoreo de seguridad basado en la nube para monitorear la actividad hacia / desde / en su dispositivo y recibir alertas si se detecta cualquier inconveniente. Hay algunas herramientas SIEM basadas en la nube disponibles en la actualidad, y algunas (como siemless) operan un modelo freemium para que los usuarios domésticos no tengan que pagar un centavo. Para utilizar dicho servicio, deberá familiarizarse con cosas como rsyslog / syslog, que es una parte estándar de todas las distribuciones del sistema operativo Linux.
fuente