Üretim kullanımı için güvenli LAMP sunucusu


10

Üretim kullanımı için Linux, Apache, MySQL, PHP Sunucusu (veya Perl) güvenliğini sağlama prosedürü nedir?

MySQL parolasını ve Linux için kök parolayı ayarlamak dışında başka (belki çok açık olmayan) adımlar atılmalıdır?

Ayrıca, fazladan paranoyak olacaksam, normalde gerekli olmayabilecek olan hangi adımları atabilirim?

Bu, temel tek bir site kullanımı içindir, ancak güvenli olması gerekir.


Kardeş bir sitede Apache Sertleşme .
Marcin

Yanıtlar:


13

Bu öneriler başımın tepesinde değil ve kapsamlı olması amaçlanmamış.

Bastille'e bakın, Linux'ta en iyi uygulamaları uygulayan bir dizi komut dosyasıdır.

Doğrulama verilerini düz metin protokolleri üzerinden göndermeyin. Örneğin, FTP'yi devre dışı bırakın. Kimlik doğrulama verilerini Apache üzerinden gönderirseniz SSL kullanın.

GUI arayüzü de dahil olmak üzere gereksiz tüm yazılımları devre dışı bırakın ve kaldırın.

SUID biti ayarlanmış tüm dosyaları denetleyin ve kaldırın. (Bu, kök olmayan yetenekleri ciddi şekilde sınırlar. Her bir değişikliğin sonuçlarını anlayın.)

Genel yazılabilir dizinleri denetleyin ve yazılabilir biti kaldırın. (Yalnız / tmp bırakın.)

Herhangi bir arka plan programı kök olarak çalıştırmaktan kaçının.

En iyi güvenlik uygulamaları için soketleri ayrıntılı olarak dinleyen tüm çok kullanıcılı yazılımları araştırın.

Sisteme kullanıcı eklemekten kaçınmak en iyi yaklaşımlardan biridir. Çok kullanıcılı sistemler detaylara daha fazla dikkat gerektirir.

Şifre standartlarını uygulayın. Örneğin: harf ve rakam kullanarak en az 10 karakter, alfasayısal olmayan karakterler. Bu, parola dosyalarından ödün verilmesi durumunda kaba zorlamayı daha zor hale getirmektir. Bunu sistem üzerinden uygulayın.

En az 10 dakikalık kilitleme ile 5 başarısız kimlik doğrulama denemesinden sonra kullanıcıları kilitleyin. Kullanıcıların son 5 şifreyi kullanamaması için bir şifre geçmişi koruyun.

Daha geniş bir ortamınız varsa, riski izole etmek için birden fazla alt ağ ile ağ ayrımı kullanmak mutlak bir gerekliliktir. Daha küçük bir ortam varsa, pozlamayı sınırlamak için yerel sistemde bir güvenlik duvarı çalıştırmanız önerilir. Örneğin, yalnızca IP'nize SSH'ye izin verir. tcpwrappers ek bir katman için de kullanılabilir. (/etc/hosts.allow, /etc/hosts.deny)

Ve elbette, tüm yazılımları güncel tutmak. Özellikle halka bakan cinler.

SSH ile:

  • SSH protokolünü devre dışı bırak 1
  • Yalnızca kök kimlik doğrulamasına izin without-passwordver (yalnızca anahtar çifti)

Apache ile:

  • Gerekli olmayan modülleri devre dışı bırakın
  • .Htaccess ve genel dizinleri devre dışı bırak
  • FollowSymlink'i ve gereksiz seçenekleri devre dışı bırakın
  • İhtiyacınız yoksa PHP yüklemeyin.

MySQL ile:

  • Varsayılan kullanıcıları devre dışı bırakın.
  • Joker karakter barındırıcıları kullanmayın.
  • Her kullanıcı için benzersiz bir ana makine ayarladığınızdan emin olun.
  • Gerekmedikçe TCP'yi dinlemeyin. (Alışılmadık bir şekilde kaçınılmaz.)
  • Uygulama kullanıcı ayrıcalıklarını olabildiğince sınırlayın. (SELECT, INSERT, UPDATE, DELETE yazma için ideal ve okuma için SELECT)

Özellikle güvenlik için php.ini ayarını araştırmanızı tavsiye ederim. Varsayılan olarak daha riskli bir yazılımdır.

Bastille



2

Kurulumunuz için bir temel olarak kullanabileceğiniz ve dağıtımınıza göre değiştirebileceğiniz iyi bir makale: http://it.toolbox.com/blogs/rayheffer/how-to-build-a-secure-lamp-web- sunucu ile-centos-5-36786


Ancak temel olarak, açıkça ihtiyaç duymadığınız modülleri yüklemeyin, tüm sürüm numaralarını ve hata ayıklama / bilgi sayfalarını gizlemeyin, şifrelenmiş şifreleri olan her uygulama için bir mysql kullanıcısı oluşturun, her zaman kişilerin normal kullanıcı hesabını kullanarak sunucunuzda çalışmasını sağlayın ve sudo yapın root izinlerine ihtiyaç duyarlarsa iptables gibi bir güvenlik duvarı kullanın ve yalnızca kutunuza girmeniz gereken şeylere göre açık portlar kullanın ... Bu artı son yamalar size oldukça güvenli bir kurulum sağlayacaktır.
Alexandre Nizoux

Bu makale iyi değil.
Selinux'u

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.