[RISOLTO] Far ascoltare un servizio su porta privilegiata

Discussioni relative a Debian e Linux
Rispondi
sirio81
Hero Member
Hero Member
Messaggi: 1083
Iscritto il: 13/02/2006, 5:04
Contatta:

[RISOLTO] Far ascoltare un servizio su porta privilegiata

Messaggio da sirio81 »

Ciao a tutti, vorrei far girare il demone icinga2 su porta 443 (da con confondere con icingaweb2).

A tale scopo ho aggiunto/modificato il parametro

Codice: Seleziona tutto

nano /etc/icinga2/features-available/api.conf
  bind_port = 443
Ricaricando la configurazione ottengo l'errore

Codice: Seleziona tutto

critical/ApiListener: Cannot bind TCP socket for host '' on port '443'.
poichè il demone gira con l'tente non privilegiato "nagios".
Non ho altri processi che stanno tenendo occupata la porta (ss -ntpl | grep 443).

Se possibile, vorrei ottenere il risultato tramite systemd.
Ho trovato questo post che sembra fare proprio questo, ma il mio tentativo è fallito.

Non sono un esperto si systemd e per questo chiedo il vostro aiuto.
Ultima modifica di sirio81 il 20/04/2019, 8:03, modificato 1 volta in totale.
sirio81
Hero Member
Hero Member
Messaggi: 1083
Iscritto il: 13/02/2006, 5:04
Contatta:

Re: Far ascoltare un servizio su porta privilegiata

Messaggio da sirio81 »

Per la precisione, ho seguito il commento alla fine dell'articolo:

Codice: Seleziona tutto

cat /etc/systemd/system/icinga2.socket
[Unit]
Description=icinga2 socket

[Socket]
ListenStream=443
NoDelay=true

[Install]
RequiredBy=icinga2.service
E questi sono i risultati:

Codice: Seleziona tutto

systemctl daemon-reload
systemctl restart icinga2



systemctl status icinga2
● icinga2.service - Icinga host/service/network monitoring system
   Loaded: loaded (/lib/systemd/system/icinga2.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/icinga2.service.d
           └─limits.conf
   Active: failed (Result: exit-code) since Thu 2019-04-11 15:17:25 CEST; 5min ago
  Process: 14930 ExecStart=/usr/sbin/icinga2 daemon --close-stdio -e ${ICINGA2_ERROR_LOG} (code=exited, status=1/FAILURE)
  Process: 14912 ExecStartPre=/usr/lib/icinga2/prepare-dirs /etc/default/icinga2 (code=exited, status=0/SUCCESS)
 Main PID: 14930 (code=exited, status=1/FAILURE)



tail -f /var/log/icinga2.log

[2019-04-11 15:17:25 +0200] critical/TcpSocket: Invalid socket: Permission denied
Context:
        (0) Activating object 'api' of type 'ApiListener'

[2019-04-11 15:17:25 +0200] critical/ApiListener: Cannot bind TCP socket for host '' on port '443'.
Context:
        (0) Activating object 'api' of type 'ApiListener'

[2019-04-11 15:17:25 +0200] critical/ApiListener: Cannot add listener on host '' for port '443'.
Context:
        (0) Activating object 'api' of type 'ApiListener'



journalctl -xf
-- Logs begin at Tue 2019-03-26 09:30:26 CET. --
Apr 11 15:17:25 andrew.pbds.eu icinga2[14930]: [2019-04-11 15:17:25 +0200] critical/ApiListener: Cannot add listener on host '' for port '443'.
Apr 11 15:17:25 andrew.pbds.eu icinga2[14930]: Context:
Apr 11 15:17:25 andrew.pbds.eu icinga2[14930]:         (0) Activating object 'api' of type 'ApiListener'
Apr 11 15:17:25 andrew.pbds.eu systemd[1]: icinga2.service: Main process exited, code=exited, status=1/FAILURE
Apr 11 15:17:25 andrew.pbds.eu systemd[1]: icinga2.service: Failed with result 'exit-code'.
Apr 11 15:17:25 andrew.pbds.eu systemd[1]: Failed to start Icinga host/service/network monitoring system.
-- Subject: Unit icinga2.service has failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Unit icinga2.service has failed.
Aki
Global Moderator
Global Moderator
Messaggi: 9967
Iscritto il: 27/12/2007, 16:59

Re: Far ascoltare un servizio su porta privilegiata

Messaggio da Aki »

Potrebbe non essere legato a systemd, ma ad un errore del programma stesso: che versione di icinga2 stai usando ? Hai installato dal pacchetto Debian ? Hai visto questo [1] bug report ?

[1] https://github.com/Icinga/icinga2/issues/5479
⢀⣴⠾⠻⢶⣦⠀
⣾⠁⢠⠒⠀⣿⡁ Debian - The universal operating system
⢿⡄⠘⠷⠚⠋⠀ https://www.debian.org
⠈⠳⣄⠀
sirio81
Hero Member
Hero Member
Messaggi: 1083
Iscritto il: 13/02/2006, 5:04
Contatta:

Re: Far ascoltare un servizio su porta privilegiata

Messaggio da sirio81 »

Versone: r2.10.4-1
Installata dai repo presi dal sito ufficiale.
Leggendo questo post: https://serverfault.com/questions/91680 ... th-systemd
oltre ad aver trovato un'altro meroto per permettere al demone di ascoltare su una porta privilegiata, mi sono reso conto che il demone stesso deve essere stato scritto per integrarsi con tale opzione di systemd: AmbientCapabilities=CAP_NET_BIND_SERVICE"

Ad ogni modo, trovo molto comodo il workaround di usare iptables per redirigere la porta.
Rispondi