web-dev-qa-db-fra.com

Ouvrir le port du pare-feu sur CentOS 7

J'utilise CentOS 7 et je dois m'assurer que les ports 2888 et 3888 sont ouverts.

J'ai lu cet article mais cela n'a pas fonctionné car sur CentOS 7 OS, il n'y a pas de commande iptables save.

Quelqu'un m'a dit que l'URL ci-dessus n'est pas valide pour CentOS 7. Je devrais suivre this . Mais cet article ne me dit pas exactement quelle commande je dois exécuter.

J'ai aussi trouvé 

firewall-cmd --zone=public --add-port=2888/tcp 

mais cela ne survit pas redémarre.

Alors, comment puis-je ouvrir les ports et le faire survivre aux redémarrages?

295
Knows Not Much

Utilisez cette commande pour rechercher votre ou vos zones actives:

firewall-cmd --get-active-zones

Il dira public, dmz ou autre chose. Vous ne devriez appliquer que dans les zones requises. 

Dans le cas du public, essayez:

firewall-cmd --zone=public --add-port=2888/tcp --permanent

Pensez ensuite à recharger le pare-feu pour que les modifications prennent effet.

firewall-cmd --reload

Sinon, remplacez public par votre zone, par exemple si votre zone est dmz:

firewall-cmd --zone=dmz --add-port=2888/tcp --permanent
562
ganeshragav

La réponse de ganeshragav est correcte, mais il est également utile de savoir que vous pouvez utiliser:

firewall-cmd --permanent --zone=public --add-port=2888/tcp 

mais si est un service connu, vous pouvez utiliser:

firewall-cmd --permanent --zone=public --add-service=http 

puis rechargez le pare-feu

firewall-cmd --reload

[Réponse modifiée pour refléter le commentaire de Martin Peter, la réponse d'origine avait --permanent en fin de ligne de commande]

102
Sotsir

CentOS (RHEL) 7 a modifié le pare-feu pour lui permettre d'utiliser firewall-cmd, qui comporte une notion de zones qui ressemble à une version Windows des réseaux public, domestique et privé. Vous devriez regarder ici pour savoir lequel vous pensez utiliser. EL7 utilise public par défaut, c’est ce que mes exemples ci-dessous utilisent.

Vous pouvez vérifier la zone que vous utilisez avec firewall-cmd --list-all et la changer avec firewall-cmd --set-default-zone=<zone>.

Vous saurez alors quelle zone autoriser un service (ou port) sur:

firewall-cmd --permanent --zone=<zone> --add-service=http

firewall-cmd --permanent --zone=<zone> --add-port=80/tcp

Vous pouvez vérifier si le port a bien été ouvert en lançant: 

firewall-cmd --zone=<zone> --query-port=80/tcp

firewall-cmd --zone=<zone> --query-service=http

Selon la documentation ,

Lorsque vous modifiez les paramètres du pare-feu en mode permanent, votre fichier la sélection ne prend effet que lorsque vous rechargez le pare-feu ou le fichier le système redémarre.

Vous pouvez recharger les paramètres du pare-feu avec: firewall-cmd --reload.

48
Rick Smith

Fedora, l'a fait via iptables

Sudo iptables -I INPUT -p tcp --dport 3030 -j ACCEPT
Sudo service iptables save

Semble travailler

24
joviano dias

Pour afficher les ports ouverts, utilisez la commande suivante.

firewall-cmd --list-ports

Nous utilisons ce qui suit pour voir les services dont les ports sont ouverts.

firewall-cmd --list-services

Nous utilisons ce qui suit pour voir les services dont les ports sont ouverts et voir les ports ouverts 

firewall-cmd --list-all

Pour ajouter un service au pare-feu, nous utilisons la commande suivante. Dans ce cas, le service utilisera n’importe quel port pour s’ouvrir dans le pare-feu.

firewall-cmd --add-services=ntp 

Pour que ce service soit ouvert en permanence, nous utilisons la commande suivante.

firewall-cmd —add-service=ntp --permanent 

Pour ajouter un port, utilisez la commande suivante

firewall-cmd --add-port=132/tcp  --permanent

Pour exécuter le pare-feu, vous devez recharger à l'aide de la commande suivante.

firewall-cmd --reload

Ya Ali 

19
Hasan Barary

Bien que ganeshragav et Sotsir fournissent des approches correctes et directement applicables, il est utile de noter que vous pouvez ajouter vos propres services à /etc/firewalld/services. Inspirez-vous de /usr/lib/firewalld/services/, où se trouvent les services prédéfinis de firewalld.

L'avantage de cette approche est que vous saurez plus tard pourquoi ces ports sont ouverts, comme vous l'avez décrit dans le fichier de service. En outre, vous pouvez maintenant l'appliquer à n'importe quelle zone sans risque de fautes de frappe. En outre, les modifications apportées au service ne devront pas être appliquées à toutes les zones séparément, mais uniquement au fichier de service.

Par exemple, vous pouvez créer /etc/firewalld/services/foobar.xml:

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>FooBar</short>
  <description>
    This option allows you to create FooBar connections between
    your computer and mobile device. You need to have FooBar
    installed on both sides for this option to be useful.
  </description>
  <port protocol="tcp" port="2888"/>
  <port protocol="tcp" port="3888"/>
</service>

(Pour plus d'informations sur la syntaxe, faites man firewalld.service.)

Une fois ce fichier créé, vous pouvez firewall-cmd --reload le rendre disponible, puis l’ajouter définitivement à une zone avec

firewall-cmd --permanent --zone=<zone> --add-service=foobar

suivi de firewall-cmd --reload pour l'activer immédiatement.

12
equaeghe

Les principales réponses ici fonctionnent, mais j'ai trouvé quelque chose de plus élégant dans la réponse de Michael Hampton à une question connexe. La "nouvelle" option (firewalld-0.3.9-11 +) --runtime-to-permanent à firewall-cmd vous permet de créer des règles d'exécution et de les tester avant de les rendre permanentes:

$ firewall-cmd --zone=<zone> --add-port=2888/tcp
<Test it out>
$ firewall-cmd --runtime-to-permanent

Ou pour annuler les modifications d’exécution seulement:

$ firewall-cmd --reload

Voir aussi le commentaire d'Antony Nguyen . Apparemment, firewall-cmd --reload peut ne pas fonctionner correctement dans certains cas où des règles ont été supprimées. Dans ce cas, il suggère de redémarrer le service firewalld:

$ systemctl restart firewalld
3
Neal Gokli

Pour afficher les ports ouverts, utilisez la commande suivante.

firewall-cmd --list-ports Nous utilisons ce qui suit pour voir les services dont les ports sont ouverts.

firewall-cmd --list-services Nous utilisons ce qui suit pour voir les services dont les ports sont ouverts et voir les ports ouverts

firewall-cmd --list-allPour ajouter un service au pare-feu, nous utilisons la commande suivante, auquel cas le service utilisera n’importe quel port pour s’ouvrir dans le pare-feu.

firewall-cmd --add-services = ntp Pour que ce service soit ouvert en permanence, nous utilisons la commande suivante.

firewall-cmd -add-service = ntp --permanent Pour ajouter un port, utilisez la commande suivante

firewall-cmd --add-port = 132/tcp --permanent

2
Hasan Barary

Si vous avez plusieurs ports à autoriser dans Centos 7 FIrewalld, vous pouvez utiliser la commande suivante.

#firewall-cmd --add-port={port number/tcp,port number/tcp} --permanent

#firewall-cmd --reload


And check the Port opened or not after reloading the firewall.


#firewall-cmd --list-port


For other configuration [Linuxwindo.com][1]
0
Vinay Patil

Firewalld est un peu non intuitif pour le vétéran iptables. Pour ceux qui préfèrent un pare-feu géré par iptables avec une syntaxe semblable à celle d'iptables dans un arbre facilement configurable, essayez de remplacer firewalld par fwtree: https://www.linuxglobal.com/fwtree-flexible-linux-tree-based-firewall/ , puis procédez comme suit:

 echo '-p tcp --dport 80 -m conntrack --cstate NEW -j ACCEPT' > /etc/fwtree.d/filter/INPUT/80-allow.rule
 systemctl reload fwtree 
0
Eric Wheeler

Si vous connaissez le service iptables, comme dans Centos 6 ou version antérieure, vous pouvez toujours utiliser le service iptables par installation manuelle:

étape 1 => installer le dépôt epel

miam installer epel-release

étape 2 => installer le service iptables

miam installer iptables-services

étape 3 => arrêter le service firewalld

systemctl stop firewalld

étape 4 => désactiver le service firewalld au démarrage

systemctl désactiver pare-feu

étape 5 => démarrer le service iptables

systemctl start iptables

étape 6 => activer iptables au démarrage

systemctl activer iptables

enfin, vous pouvez maintenant éditer votre configuration iptables dans/etc/sysconfig/iptables.

Donc -> éditer la règle -> recharger/redémarrer.

faire comme les vieux centos avec la même fonction que firewalld.

0
dek.tiram