SELinux üzerinden MySQL bağlantılarına nasıl izin veririm?


21

SELinux'un bir kez daha iddia edilen artan güvenlik için bir sunucuda çalışmasını bırakmak istiyorum.
SELinux’u işe yaramaz bir şey almak için genellikle devre dışı bırakırım.
SELinux'a MySQL bağlantılarına izin vermesini nasıl söylerim?
Dokümantasyonda bulduğum en çok, mysql.com adresindeki bu satır:

Linux altında çalışıyorsanız ve Güvenlik Geliştirilmiş Linux (SELinux) etkinse, mysqld işlemi için SELinux korumasını devre dışı bıraktığınızdan emin olun.

vay ... bu gerçekten yardımcı oldu.


1
Size yardımcı olma şansını elde etmek için lütfen aşağıdaki tüm bilgileri sağlayın. 1. Linux Distro ve Sürüm, 2. MySQL sürümü ve kurulum kaynağı, bir inkar bağlantısından 3. AVC günlük girişleri, 4. İlgili MySQL günlükleri, herhangi 5. eğer çıktısı getsebool -a | grep mysqlbu çoğaltmak almış 6. Kesin adımlar
hobodave

Yanıtlar:


40

SELinux'u kontrol etmek için

sestatus

Httpd işlemlerinde hangi bayrakların ayarlandığını görmek için

getsebool -a | grep httpd

Apache'nin SELinux aracılığıyla uzak veritabanına bağlanmasına izin vermek için

setsebool httpd_can_network_connect_db 1

-P seçeneğini kullanmak değişikliği kalıcı kılar. Bu seçenek olmadan, boole yeniden başlatıldığında 0'a sıfırlanır.

setsebool -P httpd_can_network_connect_db 1

3
127.0.0.1 geri döngü aracılığıyla da bağlanırken gerekli görünüyor?
Devin Ceartas

@Devin, kesinlikle.
e18r

2
Kullanıcıların yerel mysql sunucusuna bağlanmasına izin vermek istiyorsanız, selinuxuser_mysql_connect_enabled boolean özelliğini de açmanız gerekir.
Anton Makovetsky

setsebool -P httpd_can_network_connect 1ayrıca gerekli olabilir. Bu benim günlüklerinde ausearch -m avc -ts today | audit2whyvnix27 tarafından yapılan yorumda önerildiği gibi çalıştırılarak önerildi.
site

2

bir hata alıyor musun? Hangi linux lezzetini kullanıyorsunuz? Güvenlik bağlamı, bir hatayla karşılaşmanız durumunda başlamak için iyi bir yerdir. ls -Z bağlam verir ... Ama sorunuz çok belirsiz.


Windows kutusundan bağlanıyorum. Hata yok ... bağlantı sadece reddedildi ve sayfa zaman aşımına uğradı. Selinux’u kapatırsam her şeyin iyi olacağını biliyorum.

bağlantı bir windows kutusundan geldiğinden, ls -Z bana linux kutusunda bulunduğum dizindeki dosyalar hakkında bilgi verir.

Yukarıdaki soruma, mysqld işlemi için selinux korumasını devre dışı bırakma dedi ... bir mysql referansı alıntı yaptım ... ama bunu nasıl yapacağımı söylemedi :( Nasıl olduğunu da

Linux kutusundaki kayıtlarda bir şey var mı? selinux httpd'nin soket bağlantısı

Mesajlarda veya güvenli kayıtlarda hiçbir şey ... aklınızda bulundurduğunuz belirli bir kayıt var mı?



1

ausearchKomut hata günlüğünü bulmanıza yardımcı olabilir.


1
ausearch -m avc -ts bugün | audit2why, komuta çözüm önerebilir
vnix27

1

yerel politika da oluşturabilirsiniz:

"Bu erişime izin vermek için bir yerel ilke modülü oluşturabilirsiniz. Bu erişime şu anda izin vererek izin verin:"

grep httpd /var/log/audit/audit.log | audit2allow -M mypol

semodule -i mypol.pp

veya gerçek oturum için genel olarak etkinleştir:

setsebool httpd_can_network_connect_db 1

veya kalıcı:

setsebool -P httpd_can_network_connect_db 1
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.