Jaka jest procedura zabezpieczania Linuksa, Apache, MySQL, PHP Server (a nawet Perla) do użytku produkcyjnego?
Poza ustawieniem hasła MySQL i hasła roota dla Linuksa, jakie inne (może nie tak oczywiste) kroki należy podjąć?
Jakie kroki mogę podjąć, jeśli miałbym być wyjątkowo paranoikiem, co zwykle nie jest konieczne?
Ma to zastosowanie podstawowe w pojedynczej witrynie, ale musi być bezpieczne.
Odpowiedzi:
Te zalecenia są poza moim zasięgiem i nie są wyczerpujące.
Sprawdź Bastille, to seria skryptów, które implementują najlepsze praktyki w Linuksie.
Nie wysyłaj danych uwierzytelniających przez protokoły w postaci zwykłego tekstu. Na przykład wyłącz FTP. Jeśli wysyłasz dane uwierzytelniające przez Apache, użyj SSL.
Wyłącz i usuń niepotrzebne oprogramowanie, w tym interfejs GUI.
Przeprowadź inspekcję wszystkich plików z ustawionym i usuniętym bitem SUID. (To poważnie ograniczy umiejętności inne niż root. Zrozum implikacje dla każdej indywidualnej zmiany).
Kontroluj publiczne katalogi z możliwością zapisu i usuń bit do zapisu. (Pozostaw / tmp w spokoju.)
Unikaj uruchamiania dowolnego demona jako root.
Zbadaj całe oprogramowanie dla wielu użytkowników, które szczegółowo nasłuchuje na gniazdach, aby poznać najlepsze praktyki bezpieczeństwa.
Unikanie dodawania użytkowników do systemu jest jednym z najlepszych podejść. Systemy dla wielu użytkowników wymagają większej dbałości o szczegóły.
Egzekwuj standardy haseł. Na przykład: minimum 10 znaków, znaki niealfanumeryczne, przy użyciu liter i cyfr. Ma to na celu utrudnienie brutalnego wymuszania w przypadku naruszenia bezpieczeństwa plików haseł. Wymuszaj to przez system.
Zablokuj użytkowników po 5 nieudanych próbach uwierzytelnienia z co najmniej 10-minutową blokadą. Zachowaj historię haseł, aby użytkownicy nie mogli używać ostatnich 5 haseł.
Jeśli masz większe środowisko, bezwzględnym wymogiem jest segregacja sieci z wieloma podsieciami w celu odizolowania ryzyka. W mniejszym środowisku zalecane jest uruchomienie zapory sieciowej w systemie lokalnym w celu ograniczenia narażenia. Na przykład, zezwalając tylko SSH na twoje IP. tcpwrappers może być również użyty jako dodatkowa warstwa. (/etc/hosts.allow, /etc/hosts.deny)
I oczywiście aktualizowanie całego oprogramowania. Zwłaszcza demony publiczne.
Z SSH:
without-password
(tylko para kluczy)Z Apache:
Z MySQL:
Poleciłbym poszukać tuningu php.ini dla bezpieczeństwa. Domyślnie jest to bardziej ryzykowne oprogramowanie.
Bastille
źródło
Oto dobry artykuł, którego możesz użyć jako podstawy konfiguracji i zmienić odpowiednio do swojej dystrybucji: http://it.toolbox.com/blogs/rayheffer/how-to-build-a-secure-lamp-web- server-with-centos-5-36786
źródło
Agencja Bezpieczeństwa Obrony posiada zestaw list kontrolnych bezpieczeństwa , które są dobrym miejscem do rozpoczęcia. Jeszcze lepiej jest zrozumieć uzasadnienie każdego wpisu, ale nie jest to szybka odpowiedź. Polecam zajrzeć do STIG Enklawy, Sieci, Uniksa i Serwera WWW .
źródło