10 kroków do zabezpieczenia serwera Linux dla środowiska produkcyjnego
Zabezpieczanie serwera Linux jest niezbędne do ochrony naszych danych przed hakerami. Ale zabezpieczenie serwera nie musi być skomplikowane. Powinniśmy przyjąć metodę, która zabezpieczy nasz serwer przed najczęstszymi atakami wraz z efektywną administracją.
Nie bierz jednak rzeczy za pewnik. Nawet najbardziej odporne serwery mogą zostać porwane przez wykorzystanie każdego podatnego na ataki komponentu działającego na tym serwerze.
Instaluj to, czego potrzebujesz
Pierwszą zasadą jest utrzymywanie serwera w dobrej kondycji. Instaluj tylko te pakiety, których naprawdę potrzebujesz. Jeśli są tam niechciane pakiety, usuń je. Im mniej pakietów, tym mniejsza szansa na niezałatany kod.
Włącz SELinux
Security-Enhanced Linux (SELinux) jest mechanizmem bezpieczeństwa kontroli dostępu w jądrze.
SELinux zapewnia 3 podstawowe tryby działania :
- Wymuszanie: Jest to domyślny tryb, który włącza i egzekwuje politykę bezpieczeństwa SELinux na maszynie.
- Dozwolony: W tym trybie SELinux nie będzie egzekwował polityki bezpieczeństwa w systemie, tylko ostrzegał i rejestrował działania.
- Wyłączony: SELinux jest wyłączony.
Można nim zarządzać z pliku '/etc/selinux/config’, gdzie można go włączyć lub wyłączyć.
Zabezpiecz dostęp do konsoli
Musisz chronić dostęp do konsoli serwerów linuksowych poprzez wyłączenie bootowania z urządzeń zewnętrznych takich jak DVD / CD / Pen USB po konfiguracji BIOS-u. Również, ustaw hasło BIOS i grub boot loader aby chronić te ustawienia.
Restrict using Old passwords
Możemy ograniczyć użytkowników do używania tych samych starych haseł. Plik ze starymi hasłami znajduje się w /etc/security/opasswd. Można to zrobić za pomocą modułu PAM.
Otwórz plik '/etc/pam.d/system-auth’ pod RHEL / CentOS / Fedora.
# vi /etc/pam.d/system-auth
Otwórz plik '/etc/pam.d/common-password’ pod Ubuntu/Debian/Linux.
# vi /etc/pam.d/common-password
Dodaj następującą linię do sekcji 'auth’.
auth sufficient pam_unix.so likeauth nullok
Dodaj następującą linię do sekcji 'password’, aby uniemożliwić użytkownikowi ponowne użycie trzech ostatnich haseł.
password sufficient pam_unix.so nullok use_authtok md5 shadow remember=3
Trzy ostatnie hasła są pamiętane przez serwer. Jeśli użytkownik spróbuje użyć któregoś z 3 ostatnich starych haseł, otrzyma błąd, taki jak.
Sprawdź porty nasłuchujące
Użyj polecenia 'netstat’, aby wyświetlić otwarte porty i odpowiadające im usługi.
netstat -tunlp
Wyłącz niechciane usługi z systemu za pomocą polecenia 'chkconfig’ i zamknij porty, które nie są potrzebne.
chkconfig serviceName off
Wyłącz logowanie roota
Nie jest wskazane, aby ssh do serwera jako superuser(root). Powinniśmy wyłączyć ssh jako użytkownik root na serwerze, ale zanim to zrobimy, stwórzmy użytkownika z uprawnieniami sudo, abyś mógł wejść na serwer i wykonywać zadania administracyjne. Po zalogowaniu się na serwer, zawsze możesz zmienić użytkownika na roota, jeśli zajdzie taka potrzeba.
Utwórz nowego użytkownika :
useradd user1
Utwórz hasło dla dodanego użytkownika :
passwd user1
Przydziel uprawnienia sudo nowo dodanemu użytkownikowi :
echo 'user1 ALL=(ALL) ALL' >> /etc/sudoers
SSH do serwera z nowym użytkownikiem i upewnij się, że logowanie działa.
Zamierzamy teraz wyłączyć logowanie roota, co oznacza, że nikt nie może się zalogować na serwer jako użytkownik root. Aby to zrobić, otwórz plik konfiguracyjny sshd:
nano /etc/ssh/sshd_conf
Następnie odkomentuj linię, która mówi
PermitRootLogin no