Canviar els ports que utilitza el contenidor nginx amb Podman

Per defecte, l’aplicació Cyberwatch s’exposa als ports 8080 (HTTP) i 8443 (HTTPS). Hi ha diversos mètodes per modificar aquest comportament i fer que l’aplicació sigui accessible als ports estàndard 80 i 443:

Redirecció dels ports amb el tallafoc (recomanada)

Aquest mètode permet conservar la configuració de l’aplicació tal com està (escolta als ports 8080 i 8443) i, alhora, fer-la accessible als ports 80 i 443 des de l’exterior.

Amb firewalld:

# Rediriger le port 80 vers 8080
sudo firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080

# Rediriger le port 443 vers 8443
sudo firewall-cmd --add-forward-port=port=443:proto=tcp:toport=8443

Ara l’aplicació hauria de ser accessible. Perquè aquest canvi es mantingui després d’un reinici:

sudo firewall-cmd --runtime-to-permanent

Amb iptables:

# Rediriger le port 80 vers 8080
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

# Rediriger le port 443 vers 8443
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8443

Ara l’aplicació hauria de ser accessible. Perquè aquest canvi es mantingui després d’un reinici:

sudo iptables-save | sudo tee /etc/iptables/rules.v4

Exposar el contenidor nginx als ports 80 i 443

Atenció! Aquest mètode no es recomana, perquè permet a qualsevol usuari obrir serveis en ports importants. Utilitzeu-lo amb precaució.

  1. Autoritzeu un usuari sense privilegis a utilitzar els ports < 1024
sudo sysctl -w net.ipv4.ip_unprivileged_port_start=80

Perquè el canvi es mantingui després d’un reinici:

echo "net.ipv4.ip_unprivileged_port_start=80" | sudo tee /etc/sysctl.d/99-unprivileged-ports.conf
sudo sysctl --system
  1. Editeu el fitxer /etc/cyberwatch/config.env

Canvieu els valors de les variables NGINX_HTTP_PORT i NGINX_HTTPS_PORT per:

NGINX_HTTP_PORT=80
NGINX_HTTPS_PORT=443
  1. Reinicieu Cyberwatch
# Avec un utilisateur root
sudo cyberwatch restart

# Avec l'utilisateur cyberwatch
cyberwatch restart