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


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

Linux için MySQL şifresini ve root şifresini ayarlamaktan başka ne (belki de çok açık değil) adımlar atılmalıdır?

Ekstra paranoyak olsaydım, normalde gerekli olmayabilir hangi adımları atabilirim?

Bu basit bir tek site kullanımı içindir, ancak güvenli olmalıdır.


10
2018-03-08 14:47


Menşei


Apache Sertleştirme bir kardeş sitesinde. - Marcin


Cevaplar:


Bu tavsiyeler başımın üst kısmında yer almakta ve kapsamlı olmayı amaçlamamaktadır.

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

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

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

SUID biti ile herhangi bir dosyayı denetleyin ve kaldırın. (Bu kök dışı yetenekleri ciddi şekilde sınırlayacaktır. Her bir değişimin etkilerini anlayın.)

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

Kök olarak herhangi bir artalan çalıştırmaktan kaçının.

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

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

Şifre standartlarını zorla. Örneğin: harfler ve sayılar kullanarak en az 10 karakter, alfasayısal olmayan karakterler. Bu şifre dosya uzlaşma durumunda daha zor kaba zorlama yapmaktır. Bunu sistem üzerinden zorla.

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 geçen 5 şifreyi kullanamaması için bir şifre geçmişi koruyun.

Daha büyük bir ortama sahipseniz, riski ayırmak için birden çok alt ağ ile ağ ayrımını kullanmak mutlak bir gereksinimdir. Daha küçük bir ortam varsa, yerel sistemde maruz kalmayı sınırlandırmak için bir güvenlik duvarı çalıştırmanız önerilir. Örneğin, yalnızca SSH’nizin IP’ye izin vermesi. tcpwrappers fazladan bir katman için de kullanılabilir. (/etc/hosts.allow, /etc/hosts.deny)

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

SSH ile:

  • SSH protokolünü devre dışı bırak 1
  • Sadece root kimlik doğrulamasına izin ver without-password (sadece anahtar deliği)

Apache ile:

  • Gerekli olmayan modülleri devre dışı bırak
  • .Htaccess ve public dizinlerini devre dışı bırak
  • FollowSymlink ve gereksiz seçenekleri devre dışı bırak
  • Gerekmiyorsa PHP'yi kurmayın.

MySQL ile:

  • Varsayılan kullanıcıları devre dışı bırak.
  • Joker ana bilgisayarları kullanma.
  • Her kullanıcı için benzersiz ana bilgisayar ayarladığınızdan emin olun.
  • Gerekmedikçe tcp'de dinleme. (Olağandışı kaçınılmaz.)
  • Uygulama kullanıcı ayrıcalıklarını mümkün olduğunca sınırlayın. (SELECT, INSERT, UPDATE, DELETE yazmak için yazın ve SEÇİM için SEÇİM)

Ö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


13
2018-03-08 15:00



Okumayı önereceğim cyberciti.biz/tips/php-security-best-practices-tutorial.html php tunning için - ALex_hha


Kurulumunuz için bir temel olarak kullanabileceğiniz ve buna göre deitirmenize göre değiştirebileceğiniz iyi bir makale: http://it.toolbox.com/blogs/rayheffer/how-to-build-a-secure-lamp-web-server-with-centos-5-36786


2
2018-03-08 15:00



Ama temel olarak, ihtiyaç duymadığınız modülleri yüklemeyin, tüm sürüm numaralarını ve hata ayıklama / bilgi sayfalarını gizleyin, sertleştirilmiş parolalarla her uygulama için bir mysql kullanıcısı oluşturun, her zaman kullanıcıların düzenli kullanıcı hesabı kullanarak sunucunuzda çalışmasını sağlayın ve bunları sudo yapın root izinlerine ihtiyaç duyarlarsa, iptables gibi bir güvenlik duvarı kullanın ve sadece kutunun içine girmeniz gerekenlere 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 devre dışı bırakma, mysql'leri sertleştirme, gereksiz apache modüllerini devre dışı bırakma ... - sumar


Savunma Bilgi Güvenliği Ajansı bir dizi var güvenlik kontrol listeleri Bu başlamak için iyi yerlerdir. Daha da iyisi, her bir girdinin mantığını anlamaktır, ancak bu hızlı bir cevap değildir. Enclave, Network, Unix ve Web Sunucusuna bakmanızı öneririm STIGs.


0
2018-03-08 15:59