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:
- Wyłącz protokół SSH 1
- Zezwalaj tylko na uwierzytelnianie użytkownika root
without-password
(tylko para kluczy)
Z Apache:
- Wyłącz wszystkie niepotrzebne moduły
- Wyłącz .htaccess i katalogi publiczne
- Wyłącz FollowSymlink i wszelkie niepotrzebne opcje
- Nie instaluj PHP, jeśli go nie potrzebujesz.
Z MySQL:
- Wyłącz domyślnych użytkowników.
- Nie używaj hostów z symbolami wieloznacznymi.
- Pamiętaj, aby ustawić unikalny host dla każdego użytkownika.
- Nie słuchaj na komputerze, chyba że jest to konieczne. (Niezwykle nieuniknione.)
- Ogranicz uprawnienia użytkownika aplikacji w jak największym stopniu. (SELECT, INSERT, UPDATE, DELETE idealny do zapisu i SELECT do odczytu)
Poleciłbym poszukać tuningu php.ini dla bezpieczeństwa. Domyślnie jest to bardziej ryzykowne oprogramowanie.
Bastille