[RISOLTO] Far ascoltare un servizio su porta privilegiata

Discussioni relative a Debian e Linux

[RISOLTO] Far ascoltare un servizio su porta privilegiata

Messaggioda sirio81 » 11/04/2019, 11:49

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: 1071
Iscritto il: 13/02/2006, 5:04

Re: Far ascoltare un servizio su porta privilegiata

Messaggioda sirio81 » 11/04/2019, 14:27

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.
sirio81
Hero Member
Hero Member
 
Messaggi: 1071
Iscritto il: 13/02/2006, 5:04

Re: Far ascoltare un servizio su porta privilegiata

Messaggioda Aki » 14/04/2019, 8:14

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
Aki
Global Moderator
Global Moderator
 
Messaggi: 8756
Iscritto il: 27/12/2007, 16:59

Re: Far ascoltare un servizio su porta privilegiata

Messaggioda sirio81 » 20/04/2019, 8:03

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.
sirio81
Hero Member
Hero Member
 
Messaggi: 1071
Iscritto il: 13/02/2006, 5:04


Torna a Generale

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti

cron