23 CENTOS SERWER HARDINGING WSKAZÓWKI - Część 2
- 1313
- 396
- Tomasz Szatkowski
Kontynuując poprzedni samouczek na temat bezpieczeństwa i stwardnienia serwera Centos, w tym artykule omówimy inne wskazówki dotyczące bezpieczeństwa, które zostaną przedstawione na poniższej liście kontrolnej.
Wymagania
- 20 Centos Server Hartening Security Wskazówki - Część 1
21. Wyłącz bezużyteczne polecenia SUID i SGID
Jeśli setuid I setgid Bity są ustawione na programach binarnych, polecenia te mogą wykonywać zadania z innymi prawami użytkownika lub grupy, takimi jak źródło Przywileje, które mogą ujawnić poważne problemy z bezpieczeństwem.
Często ataki z przeniesieniem bufora mogą wykorzystać takie pliki wykonywalne do uruchomienia nieautoryzowanego kodu z prawami rooternik użytkownika.
# Znajdź / -path / proc -prune -o -Type f \ (-perm -4000 -o -perm -2000 \) -exec ls -l \;
Aby rozeutować setuid bit wykonaj poniższe polecenie:
# chmod u-s/ścieżka/do/binary_file
Aby rozeutować bit setgid, uruchom poniższe polecenie:
# chmod g-s/ścieżka/do/binary_file
22. Sprawdź, czy nie ma się niekieć plików i katalogów
Pliki lub katalogi nie należące do prawidłowego konta muszą zostać usunięte lub przypisane z uprawnieniami od użytkownika i grupy.
Wydaj poniższe polecenie Znajdź, aby wymienić pliki lub katalogi bez użytkownika i grupy.
# Znajdź / -Nouser -o -nogroup -exec ls -l \;
23. Wymień światowe pliki
Utrzymanie światowego pliku w systemie może być niebezpieczne ze względu na fakt, że każdy może je zmodyfikować. Wykonaj poniższe polecenie, aby wyświetlić pliki Word-Writable, z wyjątkiem SymLinks, które zawsze są na całym świecie.
# Znajdź / -path / proc -prune -o -perm -2 ! -Typ L -LS
24. Utwórz silne hasła
Utwórz hasło co najmniej ośmiu znaków. Hasło musi zawierać cyfry, znaki specjalne i wielkie litery. Używać Pwmake Aby wygenerować hasło 128 bitów z /dev/urandom plik.
# PWMake 128
25. Zastosuj silne zasady haseł
Zmusić system do używania silnych haseł, dodając poniższą linię /etc/pam.d/passwd plik.
Wymagane hasło PAM_PWQUALATY.Więc ponowne = 3
Dodając powyższy wiersz, wprowadzone hasło nie może zawierać więcej niż 3 postacie w sekwencji monotonicznej, takie jak Abcd, i ponad 3 identyczne kolejne postacie, takie jak 1111.
Zmusić użytkowników do użycia hasła o minimalnej długości 8 Postacie, w tym wszystkie klasy postaci, sprawdź siłę dla sekwencji postaci i kolejne postacie, dodają następujące wiersze do /itp./Security/Pwquality.conf plik.
Minlen = 8 Minclass = 4 MAX SEACH = 3 MaxRepeat = 3
26. Użyj starzenia się hasła
Polecenie Chage może być używane do starzenia się hasła użytkownika. Aby ustawić hasło użytkownika, aby wygasnąć 45 Dni, użyj następującego polecenia:
# chage -m 45 nazwa użytkownika
Aby wyłączyć czas ważności hasła, użyj polecenia:
# chage -m -1 nazwa użytkownika
Wymuć natychmiastowe wygaśnięcie hasła (użytkownik musi zmienić hasło w następnym logowaniu), uruchamiając następujące polecenie:
# chage -d 0 nazwa użytkownika
27. Zamknij konta
Konta użytkowników można zablokować, wykonując Passwd lub polecenie Usermod:
# passwd -l nazwa użytkownika # Usermod -l Nazwa użytkownika
Aby odblokować konta, użyj -u
opcja dla Passwd polecenie i -U
opcja dla Usermod.
28. Zapobiegaj dostępom o kontach
Aby zapobiec rachunku systemowym (zwykłe konto lub konto usługi) w celu uzyskania dostępu do powłoki bash, zmień powłokę główną na /usr/sbin/nologin Lub /bin/false w /etc/passwd Plik, wydając poniższe polecenie:
# Usermod -s /bin /False Nazwa użytkownika
Aby zmienić powłokę podczas tworzenia nowego wydania użytkownika następujące polecenie:
# useradd -s/usr/sbin/nologin nazwa użytkownikaPowiązany artykuł: Naucz się 15 przykładów polecenia „UserAdd” w Linux
29. Zablokuj wirtualną konsolę użytkownika za pomocą VLOCK
vlock to program używany do blokowania jednej sesji wielokrotnej na konsoli Linux. Zainstaluj program i rozpocznij blokowanie sesji terminali, uruchamiając poniższe polecenia:
# Yum Instal vlock # vlock
30. Użyj scentralizowanego systemu do zarządzania kontami i uwierzytelnianiem
Korzystanie z scentralizowanego systemu uwierzytelniania może znacznie uprościć zarządzanie kontami i kontrolą konta. Usługi, które mogą oferować tego rodzaju zarządzanie kontami, to IPA Server, LDAP, Kerberos, Microsoft Active Directory, NIS, Samba Ads lub WinBind.
Niektóre z tych usług są domyślnie wysoce zabezpieczone protokołami kryptograficznymi i kryptografią klucza symetrycznego, takich jak Kerberos.
Powiązany artykuł: Ustaw serwer NFS z uwierzytelnianiem użytkownika opartego na Kerberos w Linux31. Mocowanie multimediów USB tylko do odczytu
Za pomocą BlockDev narzędzie możesz zmusić wszystkie usunięte nośniki do zamontowania jako tylko odczyt. Na przykład stwórz nowe Udev Plik konfiguracyjny o nazwie 80-readonly-USB.zasady w /etc/udev/reguły.D/ katalog z następującą zawartością:
Podsystem == "blok", attrs usuwalny == "1", run program = "/sbin/blockDev - -setro %n"
Następnie zastosuj regułę z poniższym poleceniem:
# Udevadm Control -RoadPowiązany artykuł: Jak używać UDEV do wykrywania i zarządzania urządzeniami w Linux
32. Wyłączanie dostępu root za pośrednictwem TTY
Aby zapobiec rejestrowaniu konta głównego za pośrednictwem wszystkich urządzeń konsolowych (TTY), usuń zawartość pliku Securetty, wpisując następującą monit zacisku polecenia jako root.
# cp /etc /securetty /etc /securetty.Bak # cat /dev /null> /etc /securetty
Pamiętaj, że ta zasada nie dotyczy sesji logowania SSH
Aby zapobiec logowaniu root za pośrednictwem SSH edytuj plik /etc/ssh/sshd_config i dodaj poniższą linię:
Pertrootlogin nrPowiązany artykuł: Jak zabezpieczyć i harten OpenSsh Server
33. Użyj POSIX ACL, aby rozszerzyć uprawnienia systemowe
Listy kontroli dostępu mogą zdefiniować prawa dostępu dla czegoś więcej niż tylko jednego użytkownika lub grupy i mogą określać prawa do programów, procesów, plików i katalogów. Jeśli ustawisz ACL w katalogu, jego potomkowie odziedziczą te same prawa automatycznie.
Na przykład,
# setfacl -m u: Użytkownik: plik RW # getFacl plikPowiązany artykuł: Konfiguruj kwoty ACL i dysku dla użytkowników/grup w Linux
34. Konfiguruj SELINUX w trybie egzekwowania
Selinux Ulepszenie do jądra Linux implementuje zasadę obowiązkowej kontroli dostępu (MAC), umożliwiając użytkownikom zdefiniowanie zasad bezpieczeństwa, które zapewnia szczegółowe uprawnienia dla wszystkich użytkowników, programów, procesów, plików i urządzeń.
Decyzje dotyczące kontroli dostępu jądra oparte są na całym kontekście bezpieczeństwa, a nie na uwierzytelnionej tożsamości użytkownika.
Aby dostać Selinux Status i polityka egzekwowania Uruchom poniższych poleceń:
# getenforce # setenforce 1 # sestatusPowiązany artykuł: Konfiguracja obowiązkowej zasady kontroli dostępu z Selinux
35. Zainstaluj dodatkowe narzędzia Selinux
zainstalować PolicyCoreutils-Python pakiet, który zapewnia dodatkowe narzędzia Python do działania Selinux: Audit2Allow, audyt2 dlaczego, CHCAT, I Semanage.
Aby wyświetlić wszystkie wartości logiczne wraz z krótkim opisem, użyj następującego polecenia:
# semanage boolean -l
Na przykład, aby wyświetlić i ustawić wartość httpd_enable_ftp_server, Uruchom poniższe polecenie:
# getSebool httpd_enable_ftp_server
Aby wartość logiczna utrzymuje -P
opcja Setsebool, Jak pokazano w poniższym przykładzie:
# setsebool -p httpd_enable_ftp_server
36. Użyj scentralizowanego serwera dziennika
Skonfiguruj Rsyslog Demon, aby wysłać czułe komunikaty dziennika na narzędzia do scentralizowanego serwera dziennika. Monitoruj również pliki dziennika za pomocą narzędzia LogWatch.
Wysyłanie komunikatów dziennika na zdalny serwer zapewnia, że po tym, jak system zostanie naruszony, złośliwe użytkownicy nie mogą całkowicie ukryć swojej aktywności, zawsze pozostawiając ślady na zdalnych plikach dziennika.
Powiązany artykuł: 4 Najlepsze narzędzia do monitorowania i zarządzania dziennika Linux37. Włącz rachunkowość procesu
Włącz rozliczanie procesów, instalując narzędzia PSACCT i używać Lastcomm polecenie wyświetlania informacji o wcześniej wykonanych polecenia sa podsumowując informacje o wcześniej wykonanych poleceń, zgodnie z rejestrowanymi w pliku rachunkowości systemowej.
38. Hartowanie /etc /sysctl.conf
Użyj następujących reguł parametrów jądra, aby chronić system:
Wyłączanie routingu źródłowego
internet.IPv4.conf.Wszystko.Accept_source_route = 0
Wyłącz przekazywanie IPv4
IPv4.conf.Wszystko.przekazanie = 0
Wyłącz IPv6
internet.IPv6.conf.Wszystko.disable_ipv6 = 1 netto.IPv6.conf.domyślny.disable_ipv6 = 1 netto.IPv6.conf.lo.disable_ipv6 = 1
Wyłącz akceptację i wysyłanie pakietów przekierowanych przez ICMP, chyba że jest to specjalnie wymagane.
internet.IPv4.conf.Wszystko.Accept_redirects = 0 netto.IPv4.conf.Wszystko.Secure_redirects = 0 net.IPv4.conf.Wszystko.send_redirects = 0
Wyłącz przekazywanie odwrotnej ścieżki
internet.IPv4.conf.Wszystko.RP_FILTER = 2
Zignoruj wszystkie żądania Echo ICMP (ustawione na 1, aby włączyć)
internet.IPv4.ICMP_OCHO_IGNORE_ALL = 0
39. Korzystaj z usług VPN, aby uzyskać dostęp do swoich lokali ponad niezabezpieczone sieci publiczne
Zawsze używaj VPN Usługi dla przewoźników w celu zdalnego dostępu do lokalu LAN przez Internet. Takie typy usług można skonfigurować za pomocą bezpłatnego rozwiązania open source, takiego jak OpenVPN lub za pomocą zastrzeżonego rozwiązania, takiego jak Cisco VPN (zainstaluj instalację VPNC Narzędzie wiersza poleceń dostarczone przez repozytoria EPEL).
Powiązany artykuł: Zainstaluj serwer OpenVPN z klientami systemu Windows w Centos40. Wykonaj zewnętrzny skanowanie systemu
Oceń bezpieczeństwo systemu w zakresie luk w zabezpieczeniach, skanując system ze zdalnych punktów nad LAN za pomocą określonych narzędzi, takich jak:
- Nmap - Skaner sieci 29 Przykłady polecenia NMAP
- Nessus - Skaner bezpieczeństwa
- Openvas - używane do skanowania w poszukiwaniu luk i kompleksowego zarządzania podatnością.
- Nikto - Doskonała wspólna brama interfejs skryptowa skanera skanera Scan Web wrażliwość w Linux
41. Chronić system wewnętrznie
Używaj wewnętrznej ochrony systemu przed wirusami, korzeniami, złośliwym oprogramowaniem i, jako dobra praktyka, zainstaluj systemy wykrywania włamań, które mogą wykryć nieautoryzowaną aktywność (ataki DDOS, skanowanie portów), takie jak:
- Pomoc - Zaawansowane środowisko wykrywania włamań - http: // aide.Źródło.internet/
- CLAMAV - Skaner antywirusowy https: // www.CLAMAV.internet
- Rkhunter - skaner rootkit
- Lynis - Narzędzie kontroli bezpieczeństwa i skanowania dla Linux
- Tripwire - Integralność bezpieczeństwa i danych http: // www.Tripwire.com/
- Fail2ban - Zapobieganie sieci włamań
- Ossec - (HIDS) System wykrywania włamań oparty na hosta http: // OSSEC.github.IO/
- Mod_security - Chronić ataki brutalnej lub DDOS
42. Zmodyfikuj zmienne środowiska użytkownika
Dodać data I czas Format do przechowywania wykonania poleceń poprzez wydanie poniższego polecenia:
# echo 'histtimeformat = "%d/%m/%y%t"' >> .bashrc '
Zmusza natychmiastowe nagrywanie Histfile Za każdym razem, gdy polecenie jest wpisywane (zamiast logout):
# echo 'monit_command = "historia -a"' >> .Bashrc
Ogranicz sesję logowania limitu czasu. Automatycznie wyrzucaj skorupę, gdy nie jest wykonywana aktywność w okresie bezczynności. Bardzo przydatne do automatycznego odłączania sesji SSH.
# echo 'tmout = 120' >> .Bashrc
Zastosuj wszystkie zasady, wykonując:
# źródło .BashrcPowiązany artykuł: Ustaw zmienne środowiska użytkownika w Linux
43. Kopia zapasowa danych
Użyj narzędzi kopii zapasowej, takich jak TAR, CAT, RSYNC, SCP, migawki LVM itp., Aby przechowywać kopię systemu, najlepiej poza siedzibą, w przypadku awarii systemu.
Jeśli system zostanie zagrożony, możesz przeprowadzić przywracanie danych z poprzednich kopii zapasowych.
Wreszcie, nie zapominaj, że bez względu na to, ile środków bezpieczeństwa i pomiarów Contrata, aby zapewnić bezpieczeństwo systemu, nigdy nie będziesz w 100% całkowicie bezpieczny, o ile maszyna jest podłączona i zasilana.
- « Jak zainstalować PostgreSQL i PGADMIN4 w Ubuntu 20.04
- Konfigurowanie pakietu współpracy Zimbra (ZCS) na RHEL/CENTOS 7/8 »