SELinux is een geweldige tool die moet worden gebruikt op elk openbaar toegankelijke webserver, en op een bedrijfsserver waar heb je een behoefte om de gegevens te beveiligen.
SELinux beveiligt diensten totdat je het dat vertelt andere services en verbindingen zijn toegestaan. Haar beperkende door natuur en moet worden geconfigureerd voor uw behoeften.
Het is vrij gemeenschappelijk voor bedrijven om een afzonderlijke server gebruiken om een database te huisvesten, of misschien gedeelde databases voor clients onderscheiden web hosted machines.
Als dit klinkt als u:
"Ik heb een probleem om de PHP/Apache op de linux-server om te werken met de externe database Mysql. Verbinding van PHP manuscripten in de externe database altijd mislukt. We hebben een klein php script dat gewoon probeert te verbinden met de externe database. Bij het uitvoeren van het php script in ssh op de webserver, die het werkt prima. Maar wanneer het draait onder Apache krijgen we een verbindingsfout maakt niet uit wat we doen. "
Dan zullen we behandelen hoe te te bevestigen dit :)
Wat die u nodig hebt
- SSH toegang tot uw server
- Root-toegang
Eerst moeten we controleren of SELinux is ingeschakeld.
Code:
[root ~] # getenforceZie je iets terug dat eruit als ziet
HandhavingAls u een ander resultaat ziet, probeer:
Code:
[root ~] # setenforce 1Als u een foutmelding krijgt, dan u geen SELinux ingeschakeld. U moet naar /etc/selinux/config gaan en bewerken van het bestand zodat SELinux.
Zodra u dit inschakelen (of voor die materie uitschakelen) zal u moeten rebooten van de linux-server voor de chagnes kracht te laten zoals ze zijn gedaan tijdens het laden van de kernel.
Zodra SELinux is ingeschakeld, doet u het volgende
SELinux tot het toestaan van externe verbindingen voor HTTP instellen
Code:
setsebool -P httpd_can_network_connect = 1Dat is het! Uw allemaal gedaan. Sommige mensen willen rebooten om af te dwingen een herlaadbeurt, maar zijn niet noodzakelijk, tenzij je wilt.
- Er zijn andere selinux-beperkingen die kunnen invloed hebben op de server in de toekomst. Kunt u de volledige lijst met de opdracht 'getsebool - a'
- Niet alle distributies of "flavors" van linux gebruiken de zelfde bouwstijl. Sommige nieuwere versies niet gebruiken deze boolean en hebben dit probleem troep in RBACs in plaats daarvan.