Zabbix agent actif ne fonctionne pas derrière une box sans redirection de port?

Je continue mes essais Zabbix.

J’arrive à connecter un vps mais pas une machine physique distante derrière une box internet. Comme j’utilise le mode actif j’ai compris que je n’avais pas à transférer de port (10050) sur la box.

Est-ce que j’ai mal compris? Sinon un lecteur a-t-il une idée de la cause?

Merci d’avance.

actif ou pas derrière une box tu vas devoir faire en sorte que les ports 10050 et/ou 10051 soit redirigé correctement dans un sens comme dans l’autre.

1 J'aime

En standard, le serveur Zabbix écoute sur le port 10051 et l’agent Zabbix écoute sur le port 10050 (sauf modification de conf).

1 J'aime

Ok j’avais mal compris ce point, cela fonctionne effectivement en redirigeant le port 10050 sur la box de l’agent.
Merci et bonne journée.

1 J'aime

Hello @Clochette & @Zargos

J’ai compris votre réponse mais je (re)tombe sur cette doc que je ne comprends pas et qui semblerait dire qu’il n’y a pas besoin de transfert de port.

If an agent is behind the firewall you might consider using only Active checks because in this case you wouldn’t need to modify the firewall to allow initial incoming connections.

extrait de :
https://www.zabbix.com/documentation/current/en/manual/appendix/items/activepassive

Firewall et routeur … ce sont deux choses différentes.

Un machine avec un agent derrière une box possède une ip privé non routé , donc à moins que tu possède un vpn site à site je ne vois pas comment le port 10050 de ta machine peux être accessible depuis l’extérieur sans un PAT.

Oui

Oui

Mais un firewall qui bloquerai tous les ports, dont le 10050, ne permettrait pas non plus l’accès?
Et dans ce cas je ne comprends toujours pas la phrase extraite de la doc.

En règle générale les firewall filtre l’entrée pas la sortie, mais encore une fois surt ta box ce n’est pas le filtrage qui pose problème mais le NAT/PAT :wink:

Oui.
On parle bien du port 10050 qui est en entrée sur l’agent Zabbix.

Pas que.

En transférant le port 10050 sur la box cela fonctionne effectivement.
Mais en bloquant ce port en entrée par iptables cela ne fonctionne plus.

Cela ne me pose pas de problème technique particulier mais où la doc est erronée :

If an agent is behind the firewall you might consider using only Active checks because in this case you wouldn’t need to modify the firewall to allow initial incoming connections.

ou il y a une autre config ?

ou je ne comprends toujours pas qqc.

Si ton agent est derrière une box avec un NAT/PAT fonctionnel et que rien n’est filtrer en sortie alors un agent en actif n’est pas bloqué car il envoie les data vers le serveur.
Par contre en passif c’est le serveur qui viens interroger l’agent, idem avec de simple check comme pour vérifier le ping ou un certificat SSL, cela nécessitera donc que le filtrage soit ouvert en entrée ET que le NAT/PAT soit fonctionnel.

Maintenant si un filtrage est effectuée aussi en sortie le port 10050 n’étant pas un port classique tel que http et https il est fort probable qu’il faille ouvrir les communications.

Capture d'écran 2024-11-30 131445

Mais jusqu’alors hors le mode parano (haut niveau de filtrage) activé sur une livebox je n’ai pas de règle de filtrage en sortie à ouvrir … (à voir néanmoins avec les autres opérateur mais je pense que ce doit être la même).

PS : Si tu en ai à vouloir hébergé à la maison des services je ne saurai trop te recommander de bien vérifié la configuration que tu utilises.

@Clochette

On ne se comprend pas ou je ne te comprends pas , avec mon test, rejet du port 10050 en entrée de l’agent, la question est valable pour tous les agents, pas uniquement derrière une box.

J’ai posé la question sur le forum Zabbix, https://www.zabbix.com/forum/zabbix-help/495111-zabbix-agent-active-does-not-work-without-port-10050-opened

la réponse actuelle est à moitié claire (aussi) mais, la référence documentaire semble bien préciser ,bien cette fois, que le port 10050 doit être accessible sur l’agent.

la même :sweat_smile:

Quel question exactement car depuis le temps tu m’a perdu … si il y a un firewall qui bloque la sortie d’un agent oui il faut ouvrir le port (ça me parait logique …) maintenant lorsqu’une machine sans restriction de sortie de port active (sous entendu pas de firewall sur la machine avec une restriction sur les flux en sortie) si la machine est bien accessible depuis l’extérieur de ton réseau (sous entendu derrière une box …) ALORS seul un NAT/PAT est nécessaire.

le port 10050 doit être accessible pour les couple item/trigger en mode passif … c’est justement l’avantage d’un check actif de s’initier par l’agent lui même et donc de faciliter le passage au travers d’un firewall qui NE filtre PAS la sortie.

Au pire fais un schéma la prochaine fois.

1 J'aime

Effectivement, @Clochette , la question s’est précisée au fil de ce post, de mes « découverte ». et donc :

Simplement sur le réseau local, cad sans box, lorsque l’on bloque en entrée le port 10050 ( iptables -A INPUT -p tcp --dport 10050 -j REJECT ) d’un agent en mode actif, est-ce que cela doit fonctionner? Chez moi cela ne fonctionne pas.

Une seule question donc, qui n’est pas un problème technique en soi mais de clarté de la doc et de savoir si j’ai qqc de mal configuré chez moi.

De la doc, le fonctionnement d’un active check :

1.   Agent opens a TCP connection
2.     Agent asks for the list of checks
3.     Server responds with a list of items and remote commands to execute
4.     Agent parses the response
5.     TCP connection is closed
6.     Agent starts periodical collection of data and executes remote commands (supported since Zabbix agent 7.0)

Ça implique que:

  • l’agent à l’autorisation de sortir de son sous-réseau (parefeu de la passerelle)
  • l’agent a le droit de se connecter sur le serveur (parefeu du serveur)

Les modes vont dépendre des Templates que tu vas utiliser. Si tu utilise un template passive alors le port 10050 doit etre ouvert.
il est possible d’avoir des template passive et active sur une même machine. Du coup les deux sens doivent être ouverts.

Ok @Zargos avec tout ce que tu écris, mais cela ne répond pas à la question …

Ben en fait si :slight_smile:

Ton agent est sur un VPS: les règles d’accès de ton VPS vers internet doivent etre ouvert pour que ton agent se connecte à ton serveur.

  • Ton serveur est derrière ta box, donc ta box doit ouvrir le port 10051 (celui du serveur) avec une redirection de port vers ton serveur. et bien sur ton serveur doit accepter les connexions en question

Et non :slight_smile:

Donc tes ports doivent être ouverts sur les eux machines, l’un pour sortir,
l’autre pour entrer de la même façon. En vérifiant bien que les ports par défaut sont ceux que tu utilises.

Et donc je retombe sur ma question initiale :slight_smile:

oui parce qu’il présuppose qu’il n’y a qu’un seul parefeu celui sortant pour l’agent, mais il ne prend effectivement pas en compte le fait que le serveur peut avoir lui-même son propre parefeu.
De plus la doc considère qu’une machine avec un agent a un accès par défaut à internet, sauf que dans la réalité c’est rarement le cas, sauf les auto-hébergement de particulier et les entreprises qui ont une sécurité de petit niveau.