Comment supprimer l'accès à un port en utilisant un pare-feu sur Centos7?

13

Si un port s'était ouvert à un usage public en utilisant firewall-cmd, je voulais limiter ce port à une adresse IP spécifique pour laquelle j'ai trouvé la réponse sur ce SITE .

J'ai utilisé ce qui suit pour l'ouvrir:

$ firewall-cmd --permanent --zone=public --add-port=10050/tcp
$ firewall-cmd --reload

Maintenant, en utilisant les informations des informations que j'ai trouvées, je voulais restreindre l'accès à ce port à une adresse IP spécifique. Dois-je d'abord supprimer ce port de l'accès public?

Ou puis-je simplement ajouter la nouvelle règle comme suit et cela réglera le problème pour moi?

$ firewall-cmd --new-zone=special
$ firewall-cmd --permanent --zone=special --add-rich-rule='
  rule family="ipv4"
  source address=”123.1.1.1"
  port protocol="tcp" port="10050" accept'

J'ai essayé ce qui suit:

$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --reload

Mais quand je lance ce qui suit:

$ firewall-cmd --list-ports 

10050/tcp est toujours affiché.

Veuillez comprendre que je ne connais pas trop les configurations côté serveur.

Soultion: N'oubliez pas le --runtime-to-permanent

$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --runtime-to-permanent
$ firewall-cmd --reload 
mcv
la source
Ah j'ai oublié le --permanent
mcv
1
Vous devez poster ceci comme réponse (et l'accepter). Il est parfaitement acceptable d'accepter vos propres réponses, de cette façon la question est marquée comme résolue.
Gerald Schneider
1
Il vaut mieux ne pas l' utiliser --permanent, au cas où vous commettriez une erreur avec une règle de pare-feu. Si vous avez utilisé --permanentet enfermé, vous aurez du mal à rentrer, car vous n'avez aucun moyen de récupérer. Au lieu de cela, n'utilisez pas --permanent, et lorsque vous êtes satisfait des règles, utilisez firewall-cmd --runtime-to-permanentpour valider les règles. Si vous êtes verrouillé, le rechargement du pare-feu ou le redémarrage reprendra.
Michael Hampton
Cela peut-il donc firewall-cmd --runtime-to-permanentêtre appliqué après le firewall-cmd --reloadou le remplace-t-il entièrement? Je vais certainement essayer ça.
mcv

Réponses:

28

Solution: N'oubliez pas le --runtime-to-permanent

$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --runtime-to-permanent 
$ firewall-cmd --reload 
mcv
la source
1
Je devais encore suivre systemctl restart firewalld.
JaKu
Cela n'a pas fonctionné pour moi. systemctlest la version 219et firewall-cmdest la version 0.5.3sur CentOS 7.5 64 bits.
Pred
5
# firewall-cmd --zone=public --remove-port=12345/tcp --permanent
# firewall-cmd --reload

Remplacez 12345 par le port que vous souhaitez supprimer.

Zing Lee
la source
1
J'ai lu quelque part que dans le doc Fedora, il suggère de mettre --permanentcomme première option. Mais oui, --permanentc'est la clé.
WesternGun
Je le garde généralement comme dernière option pour m'assurer que si la règle est incorrecte pour une raison quelconque, je peux simplement redémarrer sans rendre la règle permanente. S'il fait ce que je veux, je peux faire une flèche --permanentvers le haut et ajouter à la fin.
Justin E
0

Suivez ces étapes, tout ira bien:

  1. $ firewall-cmd --zone = public --remove-port = 10050 / tcp
  2. $ firewall-cmd --runtime-to-permanent
  3. $ firewall-cmd --reload
  4. $ systemctl restart firewalld
  5. $ firewall-cmd --zone = public --list-ports
Dan Howel
la source
Je ne pense pas que vous ayez besoin de redémarrer firewalld, a firewalldété conçu pour éviter de redémarrer tous les services à chaque fois que vous modifiez une configuration.
vdegenne