Estoy usando Debian 9.1 con KDE y me pregunto por qué viene sin un firewall instalado y habilitado de forma predeterminada. gufw ni siquiera está en los paquetes de DVD1.
¿Se espera que las personas se conecten a Internet antes de obtener un firewall? ¿Por qué? Incluso si todos los puertos están cerrados por defecto, varios programas instalados, actualizados o descargados podrían abrirlos (¿o no?) Y deseo que ni un solo bit salga de mi máquina sin mi permiso.
Editar: así que acabo de enterarme de iptables pero supongo que la pregunta sigue siendo tan iptables como el firewall parece ser bastante desconocido para la mayoría, sus reglas predeterminadas, su accesibilidad y facilidad de uso y el hecho de que, por defecto, se restablecen las reglas de iptable Al reiniciar .
iptables
preinstalado! Creo que la gente tratando de tomar el principio de extremo a extremo a extremo la capa 7 ...sudo
su contraseña como ensudo apt-get install package ...
Respuestas:
Primero, Debian tiende a asumir que sabes lo que estás haciendo, y trata de evitar tomar decisiones por ti.
La instalación predeterminada de Debian es bastante pequeña y segura: no inicia ningún servicio. E incluso los extras opcionales estándar (por ejemplo, servidor web, ssh) que se agregan a una instalación suelen ser bastante conservadores y seguros.
Por lo tanto, no se necesita un firewall en este caso. Debian (o sus desarrolladores) asumen que si inicia servicios adicionales, sabrá cómo protegerlos y puede agregar un firewall si es necesario.
Más importante aún, quizás, Debian evita tomar la decisión por usted con respecto a qué software de firewall usar. Hay varias opciones disponibles, ¿cuál debería usar? E incluso con respecto a una configuración básica de firewall, ¿qué configuración se debe elegir? Dicho esto,
iptables
es de prioridad importante, por lo que se instala por defecto. Pero, por supuesto, Debian no sabe cómo quiere que se configure, por lo que no lo configura por usted. Y es posible que prefiera usariptables
el sucesor denftables
todos modos.Tenga en cuenta también que la funcionalidad de firewall ya está integrada en el kernel de Linux en cierta medida; por ejemplo
nftables
ynetfilter
. Debian y otras distribuciones de Linux proporcionan herramientas de espacio de usuario comoiptables
para administrar esa funcionalidad. Pero lo que hagas con ellos depende de ti.Tenga en cuenta que estas entidades no tienen nombres consistentes. Para citar la página de Wikipedia
nftables
:fuente
iptables
es un valor predeterminado para Debian. Pero una cosa que Debian no hace por sí sola es la configuración no obvia del sistema para el usuario.En primer lugar, quiero repetir lo que ya se ha dicho: Debian abastece a un grupo de usuarios bastante diferente a muchas otras distribuciones convencionales, particularmente Ubuntu. Debian está dirigido a personas que saben cómo funciona el sistema y que no tienen miedo de jugar de vez en cuando a cambio de un alto grado de control sobre el sistema. Ubuntu, por ejemplo, atiende a un público objetivo muy diferente: personas que solo quieren que las cosas funcionen y (realmente) no les importa lo que sucede debajo del capó, y ciertamente no quieren tener que modificar la configuración del sistema para hacer las cosas trabajo. Esto afecta una serie de aspectos del sistema resultante. Y hasta cierto punto, esa es una belleza de Linux; Se puede usar el mismo sistema base para crear entornos que satisfagan diferentes necesidades. Recuerde que Ubuntu es un derivado de Debian,
El primer disco contiene el software más popular, según lo determinado por la recopilación de estadísticas anónimas de los sistemas instalados. El hecho de que gufw no esté en el primer disco simplemente indica que este no es un paquete muy popular (en términos de base instalada) en Debian. También es fácil de instalar una vez que tiene el sistema base con la red en funcionamiento, si lo prefiere sobre las alternativas.
Bueno, para empezar, creo que Debian permite la instalación en una red. (No solo descarga paquetes de la red durante una instalación normal, sino que literalmente comienza la instalación desde un host diferente al que se está instalando ). Un firewall configurado de forma predeterminada con un conjunto de reglas restrictivas correría el riesgo de interferir con eso. Lo mismo ocurre con las instalaciones que necesitan acceso de red saliente durante el proceso de instalación para fines que no sean simplemente descargar las versiones más recientes de los paquetes que se están instalando.
Por otro lado, está lo que mencioné anteriormente; Como regla general, Debian espera que usted sepa lo que está haciendo. Si desea un firewall, se espera que pueda configurarlo usted mismo, y se espera que sepa mejor que los mantenedores de Debian cuáles son sus necesidades particulares. Debian es un poco como OpenBSD en ese sentido, pero no tan extremo. (Cuando se les da la opción de hacer que el sistema base sea un poco más seguro y hacerlo un poco más utilizable, los mantenedores de OpenBSD prácticamente siempre buscan la seguridad. Eso se muestra en las estadísticas de vulnerabilidad de seguridad del sistema base, pero tiene enormes implicaciones en la usabilidad).
Y, por supuesto, el tecnicismo: el soporte de firewall está incluido en el sistema base. Es solo que está configurado en una regla totalmente permisiva establecida por defecto por el núcleo, y una instalación base de Debian no hace nada para cambiar eso. Puede ejecutar un par de comandos para restringir el flujo de tráfico.
Primero, los firewalls se usan típicamente para restringir el tráfico entrante . Si desea restringir salientestráfico, eso es un caldero de peces bastante diferente; ciertamente factible, pero necesita mucha más adaptación a su situación específica. Un firewall de tráfico saliente de bloqueo predeterminado que deja abiertos los puertos de uso común (donde los puertos de uso común pueden ser ftp / 20 + 21, ssh / 22, smtp / 25, http / 80, https / 443, pop3 / 110, imap / 143 y un conjunto de otros), además de permitir el tráfico relacionado con las sesiones establecidas, no sería mucho más seguro que un firewall predeterminado. Es mejor asegurarse de que el conjunto de paquetes instalados por el sistema base esté restringido a un conjunto de paquetes seguros, bien entendidos y configurados como entregados, y permitir que el administrador configure las reglas de firewall adecuadas si necesitan más protección que eso.
En segundo lugar, un puerto cerrado (uno que responde a un TCP SYN con un TCP RST / ACK, generalmente se informa como "conexión rechazada": este es el estado predeterminado de un puerto TCP en un sistema en vivo que admite TCP / IP en ausencia de cualquier configuración en contrario, o el software que lo escucha) no es una vulnerabilidad significativa, incluso en un sistema no conectado a través de un firewall separado. La única vulnerabilidad significativa en una configuración completamente cerrada sería si hay una vulnerabilidad dentro de la implementación de la pila TCP / IP del núcleo. Pero los paquetes ya están pasando por el código netfilter (iptables) en el kernel, y un error también podría estar allí. La lógica para responder con lo que resulta en una "conexión rechazada" en el otro extremo es lo suficientemente simple como para que me resulte difícil creer que sería una fuente importante de errores, y mucho menos errores relacionados con la seguridad;
En tercer lugar, los paquetes generalmente se instalan como root, desde donde usted (el paquete) puede cambiar las reglas de iptables sin su conocimiento de todos modos. Por lo tanto, no es que gane algo como exigir al administrador humano que permita manualmente el tráfico a través del firewall del host. Si desea ese tipo de aislamiento, debe tener un firewall separado del host que está protegiendo en primer lugar.
De hecho, diría que lo contrario es cierto; iptables como firewall es bien conocido . También está disponible en prácticamente todos los sistemas Linux con los que es probable que te encuentres. (Reemplazó ipchains durante el desarrollo que condujo a la versión 2.4 del kernel de Linux, alrededor del año 2000 más o menos. Si recuerdo las cosas correctamente, el mayor cambio visible para el usuario entre los dos para el caso de uso común de firewall fue que la regla incorporada las cadenas ahora se nombraron en mayúsculas, como
INPUT
, en lugar de minúsculas, comoinput
.)En todo caso, iptables puede hacer otras cosas que no sean cortafuegos que no se usan ni se entienden ampliamente. Por ejemplo, se puede usar para reescribir paquetes IP antes de que pasen a través del firewall.
fuente
Si tuviera que adivinar, sin estar realmente a la cabeza de una generación de desarrolladores y mantenedores de Debian, mi suposición sería esta:
Debian está diseñado principalmente como un sistema operativo de servidor, las ramas sid y testing tienen como objetivo principal la creación de la próxima rama estable y, en el momento de la congelación, se congelan, y el nuevo establo se saca de la prueba, ya que sucedió con Stretch.
Dado esto, supongo que tendría que confirmar esto con un amigo del administrador de sistemas, que los firewalls de los centros de datos son dispositivos externos, una seguridad mucho mayor (al menos uno espera que sea así), a los servidores y manejar el principal tareas de cortafuegos. Incluso en una LAN pequeña con un enrutador, este es el caso, el enrutador es el firewall, no uso ninguna regla de firewall local en ninguno de mis sistemas, ¿por qué debería hacerlo?
Creo que tal vez las personas confunden sus instalaciones locales de Debian de escritorio o un único servidor de archivos en una oficina u hogar con el trabajo real conectado a Debian, que creo se centra principalmente en el uso de producción.
No estoy seguro acerca de esto, pero después de más de una década de uso de Debian, ese es mi sentimiento, como desarrollador y defensor de Debian de muchas maneras.
Puedo verificar esto, ya que en realidad es una buena pregunta, pero supongo que las redes reales están cortafuegos en los puntos de entrada a la red, no por máquina, o al menos, esa es la idea básica que tal vez conduciría Debian Además, por supuesto, si ese no fuera el caso, el administrador del sistema estaría configurando las reglas del firewall por máquina, usando algo como Chef, sin depender de ninguna instalación predeterminada, que no sería algo que tendería para confiar, por ejemplo, las configuraciones predeterminadas de Debian ssh no son las que yo usaría personalmente como predeterminadas, por ejemplo, permiten el inicio de sesión raíz de manera predeterminada, y depende del administrador del sistema corregir eso si encuentran que es una mala práctica .
Es decir, hay un supuesto de competencia que creo que es Debian que puede estar ausente en algunas otras distribuciones. Como en, cambiaría lo que desea cambiar, creará imágenes, las administrará con el software de administración del sitio, etc. Esas son solo algunas posibilidades. Por ejemplo, nunca usaría el DVD para crear un nuevo servidor, al menos nunca en producción, probablemente usaría algo como la mínima instalación neta, eso es lo que siempre uso, por ejemplo (solía usar una imagen aún más pequeña , pero lo descontinuaron). Si echa un vistazo a lo que se incluye en esa instalación base, tiene una idea decente de lo que Debian considera crucial y lo que no. ssh está ahí, por ejemplo. Xorg no lo es, Samba no lo es.
También se podría preguntar por qué volvieron a GNOME como escritorio predeterminado, pero estas son solo decisiones que toman, y que sus usuarios básicamente ignoran, ya que puede hacer que los sistemas de la manera que desee (es decir, obtener escritorios Xfce, no lo haga) No instale Xdebian (como en Xubuntu), solo instalo Debian Core, Xorg y Xfce, y listo. De manera similar, si quisiera cortafuegos, lo configuraría, aprendería los entresijos, etc., pero personalmente no esperaría que Debian se enviara con eso habilitado, en realidad sería un poco molesto para mí si fuera . Quizás mis puntos de vista sobre esto reflejan una especie de consenso que también puede encontrar internamente en Debian.
Además, por supuesto, no existe realmente Debian, hay varias imágenes de instalación, instalación completa, instalación completa, todo esto varía desde barebones, solo cli, hasta un escritorio de usuario razonablemente completo. Los usuarios de producción probablemente crearían imágenes, por ejemplo, que se configurarían de la manera que el usuario desea. Sé que si estuviera configurando un servidor Debian, comenzaría con los conceptos básicos y lo construiría hasta que hiciera lo que quería.
Luego tienes el mundo de los servidores web, que es una bola de cera completamente diferente, tienen preguntas de seguridad muy diferentes y, como dijo un viejo amigo mío bien conectado con el hacker underground, alguien que ejecuta un servidor web sin saber cómo asegurar También se le puede llamar alguien cuyo servidor es propiedad de crackers.
fuente
La idea general es que no debería necesitar un firewall en la mayoría de los sistemas, excepto en configuraciones complejas.
SSH se está ejecutando, cuando instaló un servidor. Nada más debería estar escuchando y probablemente desee poder conectarse a ssh.
Cuando instala un servidor web, esperaría que el servidor web esté disponible, ¿no? Y para la sintonización básica, puede vincular el servidor web, solo a la interfaz LAN privada, por ejemplo 192.168.172.42 (su IP LAN local), en lugar de 0.0.0.0 (todos los ips). Aún no necesita un firewall.
Por supuesto, todo puede abrir un puerto> 1024, pero cuando tiene software no confiable (o usuarios no confiables), debe hacer más que solo instalar un firewall. En el momento en que necesita desconfiar de algo o de alguien, necesita un concepto de seguridad, no solo un software. Por lo tanto, es bueno cuando necesita pensar activamente en su solución de firewall.
Ahora, por supuesto, hay escenarios más complejos. Pero cuando realmente tiene uno de estos, realmente necesita ajustar el firewall usted mismo y no dejar que un sistema semiautomático como ufw lo haga. O incluso puede usar ufw, pero luego lo decidió y no el valor predeterminado del sistema operativo.
fuente
traceroute
a en su sistema.reject
odrop
él mismo. No existe el concepto de "puerto abierto sin escuchar". Tal vez te refieres a dejar caer (aceptar sin enviarlo a un programa).si
Lo siento, no lo son.
rpcbind
parece estar instalado, habilitado y escuchando en la red de forma predeterminada.EDITAR: Creo que esto se ha solucionado en el último instalador, es decir, para Debian 9 (Stretch) . Pero con versiones anteriores de Debian, no me sentiría muy seguro al instalarlas (y luego actualizarlas) en una red wifi pública.
Sospecho que la gente asume que
Si bien esto último es una práctica común, por ejemplo, enrutadores de consumidores, no creo que esté garantizado. Como era de esperar, la suposición anterior no está documentada; ni es sensato.
En mi opinión, el problema con rpcbind es un ejemplo de un punto más general. La gente puede tratar de promocionar Debian, y tiene muchas características interesantes. Pero Debian va a la zaga de Ubuntu en lo pulido y amigable que es, o incluso en lo confiable que es para aquellos que quieren aprender esos detalles.
Sin duda, es libre de instalar un firewall antes de comenzar a descargar y ejecutar software aleatorio que no está seguro de lo que hace :-p.
Estoy de acuerdo en parte, es alarmante instalar Linux y no encontrar ninguna interfaz configurada para lo que es una capa de seguridad muy conocida. Personalmente, me pareció útil entender cómo se configura el firewall predeterminado de Windows. Quiere que pueda "confiar" en una red doméstica, y en versiones más recientes, la instalación rápida incluso omitirá preguntar si confía en la red actual. El objetivo principal parece ser distinguir entre redes domésticas, conexiones desprotegidas como un módem conectado directamente y redes wifi públicas. Tenga en cuenta que UFW no admite esto de todos modos.
Fedora Linux solo trató de proporcionar algo como esto, en
firewalld
. (Los paquetes también parecen estar disponibles en Debian ...). La GUI no es tan "amigable", digamos, como GUFW.fuente
La filosofía tradicional de Unix ha sido siempre KISS y ejecutar / exponer el mínimo de servicios.
Varios servicios también deben instalarse explícitamente, e incluso algunos están vinculados a localhost, y debe habilitarlos para que sean visibles en su red local / en Internet (MySQL, MongoDB, snmpd, ntpd, xorg ...). Este es un enfoque más sensato que habilitar un firewall por defecto.
Solo necesita la complejidad que trae un firewall desde cierto punto, y esa necesidad puede verse disminuida por estar detrás de un enrutador corporativo o un dispositivo de origen doméstico, por lo que parece razonable dejar al usuario esa decisión. Un firewall, como tantos otros softwares de seguridad, también puede proporcionar una falsa sensación de seguridad si no se gestiona adecuadamente.
La orientación de Debian siempre ha sido la gente más orientada técnicamente que sabe lo que es iptables; También hay varios envoltorios bien conocidos, interfaces de texto o de modo gráfico que se pueden instalar fácilmente.
Además de eso, si viene con demasiado o muy poco software instalado, es una cuestión de opinión. Para un veterano de mucho tiempo, viene con demasiado software y servicios instalados por defecto, especialmente en modo servidor.
fuente