Problème avec firewalld

0

Je viens de découvrir ce problème et il est tard ici, donc je ne peux plus vraiment penser correctement maintenant. C'est quand même quelque chose d'assez simple, donc je ne vois pas vraiment ce qui me manque et je ne fais que devenir fou ici:

J'étais en train de configurer un serveur que j'utilise uniquement pour exécuter des conteneurs Docker. J'ai commencé avec un conteneur MariaDB, et tout a bien fonctionné ici.

Alors maintenant, je veux me connecter au serveur qui exécute MariaDB, et comme je suis derrière firewalld, j'ai commencé par le configurer en ajoutant une nouvelle zone à firewall-cmd, add service et source:

firewall-cmd --permanent --new-zone=test-from-home
firewall-cmd --reload
firewall-cmd --permanent --zone=test-from-home --add-service=mysql
firewall-cmd --permanent --zone=test-from-home --add-source=XX.XX.XX.XX/32
firewall-cmd --reload

Et je me suis parfaitement connecté en utilisant mysql -u root -p -h host All great!

firewall-cmd --get-active-zonesRetours en cours d'exécution :

[root@nd01 latest]# firewall-cmd --get-active-zones
test-from-home
  sources: XX.XX.XX.XX/32
public
  interfaces: eth0

Donc, juste parce que parfois je me souviens d'avoir fait ces tests pour m'assurer que tout fonctionne bien, je me suis connecté à une autre machine et je me suis connecté avec succès à partir de cette autre adresse IP.

firewall-cmd --zone=test-from-home --list-all
test-from-home (active)
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: XX.XX.XX.XX/32
  services: mysql
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
firewall-cmd --zone=public --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

Pourquoi est-ce que je peux me connecter depuis une machine aléatoire? Qu'est-ce que je rate? Merci

Ricardo Mendes
la source
À quoi avez-vous essayé de vous connecter?
Michael Hampton
Désolé mon pote, je n'ai pas bien compris votre question. Je me suis connecté à l'aide de la commande mysql sur ma machine et à l'aide de l'application navicat. De la télécommande, j'ai utilisé mysql cmd. Et j'ai également demandé à un ami de netcat d'héberger le port 3306. Tout réussit lorsque je m'attendais à ce que seules mes connexions (provenant de mon IP / 32) soient acheminées. Désolé multi edits je suis au téléphone
Ricardo Mendes

Réponses:

0

Ok donc aujourd'hui j'ai trouvé la réponse,

FirewallD ne joue pas bien avec Docker (ou vice-versa)

En attendant, je suis tombé sur le fait que FirewallD et Docker ne jouent pas le long. Selon la documentation de Docker, la solution consiste à désactiver IPTables: - Docker et iptables

Comme il est dit dès le début:

Sous Linux, Docker manipule des iptablesrègles pour assurer l'isolation du réseau. Il s'agit d'un détail d'implémentation et vous ne devez pas modifier les règles que Docker insère dans vos iptablesstratégies.

Ce qui ne serait pas mon premier recours contre la recommandation.

J'ai donc creusé un peu plus et j'ai trouvé une page qui me donnait la réponse. Toute personne concernée par ce problème peut en tirer quelques idées. C'est une bonne approche, en ajoutant une configuration à la chaîne DOCKER-USER.

Docker meets firewall - enfin une réponse

Ricardo Mendes
la source