Aus Sicherheitsgründen möchte ich SELinux einmal auf einem Server laufen lassen.
Normalerweise deaktiviere ich SELinux, damit alles funktioniert.
Wie kann ich SELinux anweisen, MySQL-Verbindungen zuzulassen?
Das meiste, was ich in der Dokumentation gefunden habe, ist diese Zeile von mysql.com:
Wenn Sie unter Linux ausgeführt werden und SELinux (Security-Enhanced Linux) aktiviert ist, stellen Sie sicher, dass Sie den SELinux-Schutz für den mysqld-Prozess deaktiviert haben.
Wow ... das ist wirklich hilfreich.
getsebool -a | grep mysql
6. Genaue Schritte, die Sie unternommen haben, um dies zu reproduzierenAntworten:
So überprüfen Sie SELinux
Um zu sehen, welche Flags auf httpd-Prozessen gesetzt sind
Damit Apache über SELinux eine Verbindung zur entfernten Datenbank herstellen kann
Mit der Option -P wird die Änderung dauerhaft gespeichert. Ohne diese Option würde der Boolesche Wert beim Neustart auf 0 zurückgesetzt.
quelle
setsebool -P httpd_can_network_connect 1
kann auch benötigt werden. Dies wurde in meinen Protokollen vorgeschlagen, indem ausgeführt wurde,ausearch -m avc -ts today | audit2why
wie in einem Kommentar von vnix27 vorgeschlagen.Bekommst du einen fehler Welche Art von Linux verwenden Sie? Der Sicherheitskontext ist ein guter Ausgangspunkt, wenn Sie eine Fehlermeldung erhalten. ls -Z wird Kontext geben ... Aber Ihre Frage ist sehr vage.
quelle
Anscheinend ist die Konfiguration von Selinux nicht trivial. Vielleicht möchten Sie hier anfangen .
Versetzt Selinux in den permissiven Modus, in dem alles erlaubt wird, außer dass protokolliert wird, was es erlaubt. Ein Neustart oder
kehrt zum Blockieren zurück, was die Richtlinie nicht zulässt.
Sehen Sie sich diese selinux-Richtliniendokumente für mySQL in Fedora an .
quelle
Bist du sicher, dass es Selinux ist? Normale Verbindungen von außen sollten von selinux zugelassen werden. So könnte es auch die Firewall sein. Wenn Sie lokale Dienste haben, die versuchen, eine Verbindung zu mysqld herzustellen, ist dies etwas anderes: http://docs.fedoraproject.org/en-US/Fedora/13/html/Managing_Confined_Services/sect-Managing_Confined_Services-MySQL-Booleans.html
quelle
Mit dem
ausearch
Befehl können Sie das Fehlerprotokoll leichter finden.quelle
Sie können auch lokale Richtlinien erstellen:
"Sie können ein lokales Richtlinienmodul generieren, um diesen Zugriff zuzulassen. Lassen Sie diesen Zugriff jetzt zu, indem Sie Folgendes ausführen:"
grep httpd /var/log/audit/audit.log | audit2allow -M mypol
semodule -i mypol.pp
oder global für die aktuelle Sitzung aktivieren:
oder permanent:
quelle