Inicio
» Cómo
»
Abra únicamente el tráfico web que su servidor SLES 15 necesita.
Abra únicamente el tráfico web que su servidor SLES 15 necesita.
Escenario de ejemplo: Imaginemos a un administrador preparando un servidor SLES 15 ficticio llamado web01 para alojar un pequeño sitio web público. El objetivo es permitir el tráfico HTTP entrante en el puerto TCP 80, manteniendo disponible la ruta de administración SSH existente. Este es un ejemplo ilustrativo, no un informe de una prueba ni una afirmación de que todas las instalaciones de SLES 15 tengan los mismos nombres de interfaz o servicios.
En SLES 15, firewalld firewalldes el marco de firewall predeterminado y firewall-cmdlo controla. Primero, identifique la zona activa y verifique el acceso remoto; luego, agregue el servicio mínimo requerido a esa zona en la configuración permanente y reinicie. La Guía de seguridad y endurecimiento de SLES 15 SP7 de SUSE documenta este modelo basado en zonas y la distinción entre reglas de tiempo de ejecución y permanentes. Estos pasos asumen que firewalld está instalado y en funcionamiento; los sistemas actualizados más antiguos pueden requerir una verificación de migración independiente.
1. Verifique el servicio y la zona activa antes de cambiar las reglas.
Conéctese a través de la consola del servidor o una sesión de administración que pueda recuperar si se interrumpe el acceso a la red. Si está conectado mediante SSH, mantenga esa sesión abierta mientras realiza cambios en el firewall. Confirme que firewalld se está ejecutando y verifique qué zona es la propietaria de la interfaz.
El primer comando debería informar running. El comando active-zones enumera las zonas que tienen interfaces o direcciones de origen asignadas; puede mostrar más de una. En el ejemplo ficticio web01, supongamos que informa publicy la interfaz ens192. Use la zona asociada a la interfaz de red entrante en los comandos posteriores. No asuma que la interfaz se llama eth0, y no asuma publicque está activa solo porque sea un valor predeterminado común.
Vista ilustrativa de la terminal para la comprobación inicial: firewalld informa que está en ejecución y ens192 aparece en la zona pública.
Si el servicio no está en ejecución, inspeccione su estado antes de iniciarlo: sudo systemctl status firewalld. En las instalaciones estándar de SLES 15, firewalld está instalado y habilitado de forma predeterminada, pero los perfiles de imagen, las actualizaciones o la política local pueden variar. Si está instalado pero detenido, inícielo y habilítelo solo después de confirmar que su política actual preservará el acceso necesario: sudo systemctl enable --now firewalld. En un host administrado remotamente, confirme el acceso a la consola y su permiso SSH antes de activar un firewall cuyas reglas actuales se desconocen.
2. Confirme la definición del servicio y conserve SSH.
Un servicio firewalld es un conjunto con nombre de puertos y protocolos. Compruebe la definición local antes de abrirlo:
En SLES, el httpservicio predefinido corresponde al puerto TCP 80. La lista de zonas permite inspeccionar los servicios y puertos permitidos. Reemplace publiccon la zona activa que encontró. Si administra el servidor mediante SSH, asegúrese de que sshesté permitido en esa zona antes de continuar. El comportamiento de la instalación de SLES y la política existente pueden variar, así que verifique en lugar de basarse en suposiciones. Si el demonio SSH instalado escucha en un puerto no estándar, una sshentrada de servicio genérica podría no coincidir; confirme primero el puerto de escucha real del demonio y la política de firewall existente.
Inspección ilustrativa del servicio: la definición del servicio HTTP enumera el puerto TCP 80.
3. Agregue HTTP de forma permanente y luego cargue las reglas guardadas.
Firewalld mantiene configuraciones permanentes y de tiempo de ejecución separadas. Un comando normal solo cambia las reglas de tiempo de ejecución activas; --permanentescribe la configuración guardada, pero no activa ese cambio de inmediato. Para web01, agregue el servicio HTTP a la zona que posee su interfaz pública:
Utilice --zoneexplícitamente para que la regla no se aplique en una zona predeterminada no deseada. Una recarga aplica las reglas permanentes al tiempo de ejecución. Los cambios no guardados que solo se aplican al tiempo de ejecución se descartan durante la recarga, así que revise y guarde las reglas temporales que necesite intencionadamente antes de ejecutarlo. Para probar un servicio antes de hacerlo persistente, puede ejecutarlo primero sudo firewall-cmd --zone=public --add-service=httpsin --permanent; si funciona, agregue la regla permanente y recargue. Una prueba que solo se aplica al tiempo de ejecución se pierde después de una recarga o un reinicio del firewall.
Secuencia de comandos ilustrativa: guarde el permiso HTTP en público y, a continuación, recargue firewalld para aplicarlo.
Si necesita un único puerto en lugar de un servicio predefinido, especifique tanto el puerto como el protocolo, por ejemplo --add-port=8080/tcp. Haga esto únicamente cuando la aplicación esté escuchando en ese puerto. Permitir el tráfico mediante un firewall no inicia un servidor web, no crea una regla de grupo de seguridad en la nube ni configura un enrutador ascendente; todas las capas de red deben permitir el tráfico.
4. Verifica el acceso y elimina las reglas que ya no necesites.
Compruebe las configuraciones en ejecución y guardadas:
La salida debe incluirse httpen ambas listas de servicios, y la comprobación de configuración debe completarse sin errores. Además, verifique que la aplicación esté escuchando localmente, por ejemplo, con sudo ss -lntp, y pruebe el sitio desde un cliente en la red prevista. Una lista de firewall confirma una regla, no la accesibilidad de extremo a extremo: DNS, un firewall en la nube, el enrutamiento y el propio servidor web aún pueden bloquear o rechazar la solicitud.
Ejemplo de verificación: HTTP aparece entre los servicios de la zona pública, mientras que SSH permanece en la lista.
Si HTTP ya no es necesario, elimine la regla guardada y vuelva a cargar: sudo firewall-cmd --permanent --zone=public --remove-service=http, seguido de sudo firewall-cmd --reload. Vuelva a comprobar las listas de tiempo de ejecución y permanentes posteriormente. Evite vaciar todas las reglas o cambiar a una zona de confianza para resolver un único problema de acceso; esos cambios más amplios pueden exponer servicios no relacionados.