Odpowiedzi:
Nie mogę wymyślić żadnych poprawek specyficznych dla Ubuntu, ale oto kilka, które dotyczą wszystkich dystrybucji:
Oczywiście ta lista nie jest kompletna i nigdy nie będziesz całkowicie bezpieczny, ale obejmuje wszystkie exploity , które widziałem w prawdziwym życiu.
Ponadto exploity, które widziałem, były prawie zawsze związane z niezabezpieczonym kodem użytkownika, a nie z niezabezpieczoną konfiguracją. Domyślne konfiguracje w minimalnej dystrybucji serwerów są zazwyczaj dość bezpieczne.
Jedną szybką rzeczą, którą robię wcześnie, jest instalacja DenyHosts . Będzie regularnie przeglądał / var / log / secure, szukając nieudanych logowania, a po kilku błędach zablokuje adres IP. Ustawiłem go tak, aby blokował się po pierwszym braku takiego użytkownika, po drugiej próbie rootowania i po kilku próbach dla prawdziwych użytkowników (na wypadek, gdybyś się bałaganił, ale do logowania powinien być używany klucz publiczny SSH).
Ubuntu opiera się na Debianie i uważam, że Podręcznik Zabezpieczania Debiana jest bardzo przydatny w dystrybucjach opartych na Debianie, całkowicie przeprowadzając cię przez system i sprawdzając każdą część. Jest to w zasadzie naprawdę bardzo wyczerpująca odpowiedź na twoje pytanie.
Zwykle instaluję RKHunter, który skanuje w poszukiwaniu rootkitów i sprawdza integralność różnych ważnych plików binarnych systemu. Jest w standardowym repozytorium i będzie działał codziennie z crona. Nie jest doskonały, jeśli chodzi o bezpieczeństwo, ale można go dodawać bez wysiłku i zapewnia ochronę.
Zainstaluj dziennik, ale popraw, aby nigdy nie otrzymywać wiadomości z regularnych wydarzeń, w przeciwnym razie będziesz miał zwyczaj ignorowania wiadomości e-mail.
Sprawdź, które procesy nasłuchują za pomocą netstat, i upewnij się, że nic nie działa, co nie wymaga uruchomienia. Wiele demonów można skonfigurować tylko do nasłuchiwania na wewnętrznym IP (lub localhost) zamiast na wszystkich interfejsach.
Rób, co sugeruje Can ...
Nmap hosta i wyłącz wszystkie nieistotne usługi. W razie potrzeby użyj iptables.
Jeśli korzystasz z serwera w pobliżu Internetu, zainstaluj system wykrywania włamań, np. Snort.
Użyj osobnych partycji dla różnych katalogów, takich jak /tmp
lub, /var
i zamontuj je nosuid
, nodev
i noexec
jeśli to możliwe.
Naucz się korzystać z zapory i koncepcji prawidłowego blokowania skrzynki. Zmiana domyślnych portów jest w dużej mierze bezużyteczna; ważniejsza jest odpowiednia konfiguracja aplikacji i zapory ogniowej.
Oba są w repozytoriach Ubuntu:
ma świetną dokumentację i bardzo łatwą do nauczenia się składnię. Byłem w stanie skonfigurować bramę / firewall w ciągu dwudziestu minut. Jedynym powodem, dla którego odeszłam od tego, jest to, że wydaje się, że nie jest utrzymywane (ostatnie wydanie 2 lata temu). To nie znaczy, że to nie działa, ale ...
jest inny. Więcej składni podobnej do iptables, ale ta sama koncepcja. Więcej społeczności utrzymywanych niż FireHOL, ale odbiór trwa dłużej.
obecnie używam. Jego dokumentacja jest obszerna, a format konfiguracji tabelaryczny. Około półtorej godziny zajęło mi zrozumienie wszystkich potrzebnych plików (6), aby uruchomić działającą konfigurację zapory / bramy. Jest dość potężny. WSKAZÓWKA: Strony podręcznika dla różnych plików konfiguracyjnych są NAPRAWDĘ pomocne!
Wszystkie te ładują konfiguracje zapory z pliku konfiguracyjnego. Bardzo skuteczny, łatwiejszy w obsłudze niż iptables od razu i (moim zdaniem) łatwiejszy w użyciu i zarządzaniu niż ufw.
Popieram zalecenia dotyczące użycia klucza SSH.
Skonfiguruj IDS.
Dowiedz się więcej o AppArmor. Ogranicza dostęp do plików wykonywalnych tylko do określonych katalogów i plików, których potrzebuje. Podobne do SELinux w świecie RHEL. Jest zainstalowany i włączony ze wstępnie skonfigurowanymi „profilami” dla wielu dobrze używanych programów.
Oprócz innych sugestii tutaj wymienię trzy, które są oczywiste, ale być może warte wspomnienia dla kompletności: