
🔹 Introducción
En los sistemas Fedora Server 41, que utilizan firewalld con kernel 6.12.10-200.fc41.x86_64, es esencial conocer los puertos abiertos para asegurar servicios como Apache, SSH o MySQL.
Este artículo te enseña a verificar y abrir puertos en Fedora paso a paso, interpretar la salida del firewall y configurar MySQL para acceso remoto, sin comprometer la seguridad.
🧩 Verificar puertos abiertos en Fedora 41
Usa el siguiente comando:
sudo firewall-cmd --list-all
Ejemplo de salida:
FedoraServer (default, active)
interfaces: ens192
services: cockpit dhcpv6-client http https ssh
Esto indica que solo los puertos 22, 80, 443 y 9090 están abiertos.
Si ports: está vacío, no hay puertos adicionales definidos.
🧩 Comandos útiles para diagnóstico
Consulta las zonas y servicios activos:
sudo firewall-cmd --get-active-zones
sudo firewall-cmd --list-all-zones
sudo firewall-cmd --zone=FedoraServer --list-services
sudo firewall-cmd --zone=FedoraServer --list-ports
Además, confirma procesos en escucha con:
sudo ss -tulnp
o
sudo netstat -tulnp | grep LISTEN
⚙️ Abrir puertos en Fedora con firewalld
Para abrir el puerto 3306 (MySQL):
sudo firewall-cmd --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
O directamente por servicio:
sudo firewall-cmd --add-service=mysql --permanent
sudo firewall-cmd --reload
Para limitar el acceso a una sola IP:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="3306" accept'
sudo firewall-cmd --reload
🛠️ Configurar MySQL para acceso remoto
Edita la configuración:
sudo nano /etc/my.cnf.d/networking.cnf
Y añade:
[mysqld]
bind-address = 0.0.0.0
port = 3306
skip-networking = 0
Reinicia MySQL:
sudo systemctl restart mysqld
Crea un usuario remoto:
CREATE USER 'appuser'@'%' IDENTIFIED BY 'TuPasswordFuerte!';
GRANT ALL PRIVILEGES ON *.* TO 'appuser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Verifica conexión:
mysql -u appuser -p -h dominio.com
Si aparece Connection refused o timed out, revisa el firewall y DNS.
🔒 Seguridad y diagnóstico final
- Verifica firewall:
sudo firewall-cmd --list-all - Comprueba red:
ping dominio.com - Ajusta SELinux si bloquea conexión:
sudo setsebool -P mysql_connect_any=1
✅ Conclusión
Has configurado correctamente tu servidor Fedora 41 para permitir conexiones externas al puerto 3306 (MySQL), revisado el firewall con firewall-cmd, habilitado bind-address=0.0.0.0, y creado un usuario remoto con permisos seguros.
Estos pasos garantizan conectividad funcional y seguridad adecuada en entornos de producción o pruebas.
