web-dev-qa-db-fra.com

J'ai ajouté un port à la zone publique de Firewalld mais je ne peux toujours pas accéder au port

J'utilise des iptables depuis longtemps, mais je n'ai jamais utilisé pare-fe Jusqu'à récemment. J'ai activé Port 3000 TCP via FirewallD avec la commande suivante:

# firewall-cmd --zone=public --add-port=3000/tcp --permanent

Cependant, je ne peux pas accéder au serveur sur Port 3000. À partir d'une zone externe:

telnet 178.62.16.244 3000
Trying 178.62.16.244...
telnet: connect to address 178.62.16.244: Connection refused

Il n'y a pas de problèmes de routage: j'ai une règle distincte pour un port vers l'avant du port 80 au port 8000 qui fonctionne bien à l'extérieur. Mon application écoute définitivement sur le port:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name
tcp        0      0 0.0.0.0:3000            0.0.0.0:*               LISTEN      99         36797      18662/node

firewall-cmd ne semble pas montrer le port non plus - voir comment ports est vide . Vous pouvez voir la règle avant que j'ai mentionnée plus tôt.

# firewall-cmd --list-all
public (default, active)
  interfaces: eth0
  sources:
  services: dhcpv6-client ssh
  ports:
  masquerade: no
  forward-ports: port=80:proto=tcp:toport=8000:toaddr=
  icmp-blocks:
  rich rules:

Cependant, je peux voir la règle dans le fichier de configuration XML:

# cat /etc/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="dhcpv6-client"/>
  <service name="ssh"/>
  <port protocol="tcp" port="3000"/>
  <forward-port to-port="8000" protocol="tcp" port="80"/>
</zone>

Que dois-je faire d'autre pour permettre l'accès à mon application sur le port 3000?

Aussi: ajout d'un accès via un port la bonne chose à faire? Ou devrais-je créer un Firewalld 'Service' pour mon application à la place?

3
mikemaccana

En utilisant le --permanent Flag écrit vos modifications dans la configuration persistante, mais pas la configuration en cours d'exécution. Exécutez à nouveau la même commande sans le --permanent Drapeau de l'avoir à prendre effet immédiatement.

commençant par RHEL 7.1 et versions actuelles de Fedora, vous pouvez également copier la configuration en cours sur la configuration permanente avec:

firewall-cmd --runtime-to-permanent
9
Michael Hampton