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.
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
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.
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.
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
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.
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.
Ben en fait si
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
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
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.
Donc la doc est incomplète/imprécise et il n y a pas de configuration autre que je n’aurai pas comprise.
Sinon, pour l’instant tout fonctionne bien en particulier derrière une box il faut donc bien sûr rediriger le port 10050, au besoin passer par un proxy ou via un vpn.
Non pour moi la documentation de l’agent est claire sur ce point, en actif la sortie ne doit pas être bloquer (mais ça parait évident je suppose), en passif l’entrée ne doit pas être bloqué sur le port 10050.
Après idem pour le serveur si tu déclare des ports comme le 10051 et que tu bloque l’entrée ou la sortie ça va marcher nécessairement moins bien.
C’est pas magique, le comportement d’un agent en mode actif s’appuie sur le fait qu’un flux sortant qui établit une connexion soit implicite pour la réponse.
Mais cela n’implique pas que comme par magie un port bloqué soit ouvert.
Si tu as plusieurs machines derrière une box tu peux envisager d’installer un proxy et monitorer l’ensemble des machines via ce proxy qui va renvoyer en une fois les datas au serveur.
Mais attention le mieux est bien souvent l’ennemi du bien. KISS (keep it simple stupid)
Pas le même avis :
- des/tes exemples ne prouvent rien
- le contre exemple que j’ai fourni est suffisant sauf à montrer qu’il est faut où qu’il existe une config qui permet de le contourner.
Effectivement c’est ce que j’ai écrit, cf au besoin dans mon texte.
En phase ce ce point en notant que « bien souvent » est superflu