Muchas veces después de instalar alguna aplicación o acceder a un servicio incorporado fuera del sistema usando otros dispositivos, necesitamos abrir un puerto de red. Es un punto final de comunicación definido por una capa de software para identificar y acceder a algún proceso en particular o un tipo de servicio de red. Por ejemplo, el servicio SSH (Secure Shell Protocol), el puerto predeterminado para él es 22, que podemos usar para acceder a cualquier computadora en particular para controlar de forma remota. De la misma manera, CPanel, NextCloud, Apache y otras herramientas y software vienen con su propio número de puerto. Sin embargo, si tiene un firewall instalado, la mayoría de los puertos estarían bloqueados de forma predeterminada y, para comunicarnos con ellos, primero tenemos que abrirlos.
Digamos que desea abrir un puerto 80 o 443 en AlmaLinux 8, ¿cómo hacerlo? Para ayudarte con esto aquí está el tutorial.
Aprender:
- Cómo instalar firewalld en Almalinux 8 o Rocky Linux, incluidos CentOS y RHEL 8
- Abrir y cerrar puertos como 80, 443, 3603, 22, etc. en Almalinux con Firewalld.
- Vuelva a cargar la configuración del cortafuegos.
- Cómo listar puertos o servicios abiertos
Comando para abrir puertos en AlmaLinux 8 o Rocky
Comprobar si Firewalld se está ejecutando o no
Lo único que tenemos que asegurarnos de que firewalld está en nuestro AlmaLinux y funciona correctamente antes de abrir y cerrar cualquier puerto en el sistema.
Comprobar estado:
sudo systemctl status firewalld
Si no se está ejecutando, use los siguientes comandos:
sudo systemctl start firewalld sudo systemctl enable firewalld
Bueno, aquellos que no tienen firewalld instalado y lo desean, pueden ejecutar:
sudo dnf update sudo dnf install firewalld
Lista de todos los puertos y servicios abiertos
Antes de abrir cualquier puerto en particular, confirmemos que no esté activo en firewalld y que no se le haya permitido acceder a través de conexiones públicas, para esa ejecución-
sudo firewall-cmd --list-all
Entonces, en la siguiente captura de pantalla, podemos ver claramente que el puerto 443 o 3602 no tiene permitido comunicarse externamente.
FirewallD también viene con algunos servicios preconfigurados, para ellos y sus puertos el firewall permite la comunicación pública por defecto. Y SSH, Plex, Cockpit, etc. son algunos de ellos. Puede consultar la lista de todos estos servicios utilizando el comando-
firewall-cmd --get-services
RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bb bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-mon cfengine cockpit condor-collector ctdb dhcp dhcpv6 dhcpv6-client distcc dns dns-over-tls docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-server finger freeipa-4 freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master git grafana gre high-availability http https imap imaps ipp ipp-client ipsec irc ircs iscsi-target isns jenkins kadmin kdeconnect kerberos kibana klogin kpasswd kprop kshell kube-apiserver ldap ldaps libvirt libvirt-tls lightning-network llmnr managesieve matrix mdns memcache minidlna mongodb mosh mountd mqtt mqtt-tls ms-wbt mssql murmur mysql nfs nfs3 nmea-0183 nrpe ntp nut openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole plex pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy prometheus proxy-dhcp ptp pulseaudio puppetmaster quassel radius rdp redis redis-sentinel rpc-bind rsh rsyncd rtsp salt-master samba samba-client samba-dc sane sip sips slp smtp smtp-submission smtps snmp snmptrap spideroak-lansync spotify-sync squid ssdp ssh steam-streaming svdrp svn syncthing syncthing-gui synergy syslog syslog-tls telnet tentacle tftp tftp-client tile38 tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-http wbem-https wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server
Lista de Zonas
Aunque para acceder a cualquier servicio solo tenemos que permitir el servicio en el público zona, sin embargo, solo como información, también puede consultar otras zonas disponibles, en caso de que desee utilizar alguna de ellas.
firewall-cmd --get-zones
Salida-
block dmz drop external home internal nm-shared public trusted work
Utilice el comando firewalld para abrir un puerto o servicio
Ahora, la zona por defecto para acceder al servicio desde la red exterior es pública , y con la ayuda del siguiente comando syntax , puede abrir cualquier puerto o servicio en su servidor AlmaLinux o Rocky.
Para abrir cualquier servicio que esté predefinido en firewalld
como HTTP o OpenVPN , debe reemplazar el nombre del servicio en la siguiente sintaxis de comando-
sudo firewall-cmd --zone=public --permanent --add-service=service-name
Digamos que quieres abrir http
o openvpn
, entonces se puede usar la misma sintaxis anterior como
sudo firewall-cmd --zone=public --permanent --add-service=openvpn
De la misma manera, los puertos de esos servicios no están predefinidos, entonces los usuarios pueden abrirlos manualmente usando este comando. Reemplazar tipo-número-de-puerto en la siguiente sintaxis con el puerto que desea abrir. También puede cambiar TCP a UDP según los requisitos.
sudo firewall-cmd --zone=public --permanent --add-port type-port-number/tcp
Ejemplo – Digamos que quieres abrir 3602
sudo firewall-cmd --zone=public --permanent --add-port 3602/tcp
Recargar cortafuegos
Aunque no es necesario volver a cargar el firewall, sin embargo, para asegurarse de que haya vaciado con éxito la configuración anterior y reconozca el servicio o puerto recién agregado para la zona pública, recargue su servicio.
sudo firewall-cmd --reload
Puede verificar si el puerto o servicio se activó con éxito o no al enumerarlos.
firewall-cmd --list-all
Pasos para bloquear o cerrar puertos/servicios en AlmaLinux o Rocky Linux 8
sudo firewall-cmd --list-all
Sintaxis para eliminar algún servicio-
firewall-cmd --zone=public --permanent --remove-service service-name
Por ejemplo – Si queremos bloquear el servicio ssh
firewall-cmd --zone=public --permanent --remove-service ssh
Sintaxis para bloquear algún número de puerto:
firewall-cmd --zone=public --permanent --remove-port type-number
Ejemplo – Bloqueemos el puerto 443
sudo firewall-cmd --zone=public --permanent --remove-port 443
Recargar cortafuegos:
sudo firewall-cmd --reload
Pensamientos finales:
De esta forma, no solo podemos comprobar los puertos y servicios abiertos, sino que también podemos permitirles y bloquearlos para que se comuniquen desde el exterior con nuestro Almalinux Linux, incluidos Rocky, CetnOS o RHEL 8.