Differenza tra i booleani di SELinux "httpd_can_network_relay" e "httpd_can_network_connect"

2

Sono in procinto di abilitare SELinux sul mio server CentOS 7.3. L'ho impostato in modalità permissiva e monitoraggio del registro di controllo per i dinieghi. Sto cercando di implementare il set minimo di regole che consentirà tutto ciò che è necessario sul server e non di più.

Quindi stamattina ho notato che httpd sarebbe stato bloccato dalla connessione alla rete quando ho usato la funzionalità di aggiornamento FTP di WordPress ieri sera. audit2why consiglia di impostare httpd_can_network_relay o httpd_can_network_connect .

Voglio solo assicurarmi di capire la differenza tra questi due correttamente. Sarebbe corretto dire che httpd_can_network_connect consente a httpd di realizzare qualsiasi connessione di rete in uscita che desidera, mentre httpd_can_network_relay consente solo la porta FTP e le porte effimere?

audit2why dice:

# setsebool -P httpd_can_network_connect 1
Description: Allow httpd to act as a relay

# setsebool -P httpd_can_network_relay 1
Description: Allow httpd to act as a FTP client connecting to the ftp port and ephemeral ports

Se sì, come sarebbe la definizione di cosa sono le porte effimere o se consentirebbe solo qualcosa oltre il 1024?

C'è qualche riferimento più dettagliato su tutto ciò che mi manca?

Aggiorna

Ho interpretato erroneamente l'ordine dei commenti ai comandi, il precedente dovrebbe essere:

Description: Allow HTTPD scripts and modules to connect to the network using TCP.
# setsebool -P httpd_can_network_connect 1

Description: Allow httpd to act as a relay
# setsebool -P httpd_can_network_relay 1
    
posta SuperDuperApps 25.02.2017 - 19:57
fonte

2 risposte

4

Come dice Enigma:

The first option [httpd_can_network_relay] is used in an reverse proxy scenario in which your httpd is relaying requests to some backend httpd in behalf of the client.

Come per httpd_can_network_connect , consente a httpd di effettuare connessioni di rete, inclusi script e moduli.

Fondamentalmente l'output di audit2why è formattato in un modo strano che rendeva difficile stabilire quale descrizione corrispondesse a quale booleano, da qui la strana domanda basata su questo. Ho aggiornato la domanda con l'interpretazione corretta di quello.

    
risposta data 26.02.2017 - 04:29
fonte
1

La prima opzione [ httpd_can_network_relay ] viene utilizzata in uno scenario di proxy inverso in cui httpd sta inoltrando richieste ad alcuni backend httpd per conto del client.

Il secondo [ httpd_can_network_connect ] consente ai moduli e agli script httpd di effettuare connessioni in uscita alle porte associate al servizio httpd. Per vedere un elenco di quelle porte eseguire semanage port -l | grep -w http_port_t

Per far funzionare lo scenario devi eseguire setsebool -P httpd_can_network_connect 1 e quindi aggiungere la porta a cui il tuo httpd dovrebbe potersi connettere eseguendo questo comando semanage port -a -t http_port_t -p tcp <PORT>

    
risposta data 26.02.2017 - 02:32
fonte

Leggi altre domande sui tag