SELinux es una gran herramienta que se debe utilizar en cada servidor de acceso público, y en cualquier servidor de la empresa donde se tiene una necesidad de asegurar los datos.
SELinux asegura los servicios hasta que usted le indique que los otros servicios y se permiten conexiones. Su restrictiva por naturaleza y necesita ser configurado para sus necesidades.
Es bastante común que las empresas utilizan un servidor separado para albergar una base de datos o bases de datos compartidas quizá para los clientes separada de máquinas alojados en la web.
Si esto suena como usted:
"No tengo problemas para conseguir el PHP / Apache en el servidor Linux para trabajar con el exterior MySQL base de datos. La conexión desde scripts PHP a la base de datos remota siempre falla. Hemos hecho un pequeño script PHP que simplemente trata de conectarse a la base de datos remota. Cuando se ejecuta el script php en ssh en el servidor web funciona bien. Pero cuando se ejecuta bajo Apache obtenemos un error de conexión, no importa lo que hacemos ".
A continuación nos referiremos a cómo solucionar este problema :)
Instrucciones
1 En primer lugar tenemos que verificar que SELinux está habilitado.
Código:
[Root @ www ~] # getenforce
Debería ver algo que se parece a la espalda
Hacer cumplir
2 Si ve un resultado diferente, pruebe:
Código:
[Root @ www ~] # 1 setenforce
Si se produce un error, entonces no tiene activado SELinux. Tendrá que ir a / etc / selinux / config y editar el archivo para activar SELinux.
Una vez que activa esta opción (o lo apaga para el caso), tendrá que reiniciar el servidor Linux para los chagnes surtan efecto a medida que se realizan durante la carga del núcleo.
3 Una vez que SELinux está activado, haga lo siguiente
Establecer SELinux para permitir conexiones remotas para HTTP
Código:
setsebool -P httpd_can_network_connect = 1
4 ¡Eso es! Su todo hecho. Algunas personas, como para reiniciar el sistema para forzar una recarga, pero no es necesario a menos que quieren.
Consejos y advertencias
- Hay otras restricciones SELinux que pueden afectar el servidor en el futuro. Puede obtener la lista completa con el comando 'getsebool -a'
- No todas las distribuciones o "sabores" de Linux utilizan la misma versión. Algunas versiones más recientes no utilizar este booleano y tienen este comportamiento establecido en RBACs lugar.