SElinux: consente a httpd di connettersi a una port specifica

Il mio sistema sta eseguendo CentOS 6.4 con apache2.2.15. SElinux sta imponendo e sto cercando di connettersi ad un'istanza locale di redis tramite la mia applicazione python / wsgi. Ottengo l'errore 13, il permesso viene negato. Potrei risolvere questo problema con il command:

setsebool -P httpd_can_network_connect

  • Certificati SSL multipli su Apache che utilizzano più IP pubblici - non funzionano
  • Core CPU e lavoratori / maxserver
  • script non trovato o imansible stat: / usr / lib / cgi-bin / php-cgi
  • Come posso impostare il failover per un singolo server web utilizzando due ISP?
  • Aggiunta di esportzione del registro Apache tramite Syslog ancora scrivendo il registro locale
  • ModSecurity blocca la string specifica nella richiesta
  • Tuttavia, non voglio esattamente che httpd sia in grado di connettersi a tutte le porte tcp. Come posso specificare quali sono le connessioni / reti che httpd è connessa? Se potrei creare un module per consentire a httpd di connettersi alla port 6379 (redis) oa qualsiasi tcp su 127.0.0.1, sarebbe preferibile. Non so perché la mia paranoia è così forte su questo, ma hey …

    Qualcuno sa?

  • Hai bisogno di suggerimenti per un sistema di file distribuito R / W per un cluster di server web che esegue Apache + PHP
  • Installazione di PHP su Linux
  • Apache Rewrite o Proxy al server interno
  • l'installazione di server SVN utilizzando NGINX
  • PHP-FPM ERROR: Imansible leggere quello che il bambino dice: Bad file descriptor (9)
  • Imansible accedere alla cartella javascript
  • 3 Solutions collect form web for “SElinux: consente a httpd di connettersi a una port specifica”

    Per impostazione predefinita, la policy SELinux consentirà solo l'accesso dei servizi alle porte riconosciute associate a tali servizi:

     # semanage port -l | egrep '(^http_port_t|6379)' http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000 # curl http://localhost/redis.php Cannot connect to redis server. 

    – aggiungere la port Redis (6379) alla politica di SELinux

     # semanage port -a -t http_port_t -p tcp 6379 # semanage port -l | egrep '(^http_port_t|6379)' http_port_t tcp 6379, 80, 81, 443, 488, 8008, 8009, 8443, 9000 # curl http://localhost/redis.php Connected successfully. 

    È inoltre ansible installare RPM setroubleshoot-server e eseguire: sealert -a /var/log/audit/audit.log – ti darà una bella relazione con suggerimenti utili (incluso il command sopra).

    Script PHP per verificare la connessione:

     # cat redis.php <?php $redis=new Redis(); $connected= $redis->connect('127.0.0.1', 6379); if(!$connected) { die( "Cannot connect to redis server.\n" ); } echo "Connected successfully.\n"; ?> 

    Potrebbe essere necessario utilizzare

     semanage port -m -t http_port_t -p tcp 6379 

    Se il semantramento è mancante, aggiungere il pacchetto policycoreutils-python

     yum install policycoreutils-python 

    Puoi mettere temporaneamente il selinux in modalità permissiva e lasciare httpd collegarsi a redis, quindi generare e creare un module di criterio personalizzato utilizzando audit2allow

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.