23 CENTOS SERWER HARDINGING WSKAZÓWKI - Część 2

23 CENTOS SERWER HARDINGING WSKAZÓWKI - Część 2

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

  1. 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.

Powiązany artykuł: Jak zablokować konta użytkowników po nieudanych próbach logowania

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żytkownika 
Powią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 Linux

31. 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 -Road 
Powią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 nr 
Powią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 plik 
Powią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 # sestatus 
Powią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 Linux

37. 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 Centos

40. 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:

  1. Nmap - Skaner sieci 29 Przykłady polecenia NMAP
  2. Nessus - Skaner bezpieczeństwa
  3. Openvas - używane do skanowania w poszukiwaniu luk i kompleksowego zarządzania podatnością.
  4. 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:

  1. Pomoc - Zaawansowane środowisko wykrywania włamań - http: // aide.Źródło.internet/
  2. CLAMAV - Skaner antywirusowy https: // www.CLAMAV.internet
  3. Rkhunter - skaner rootkit
  4. Lynis - Narzędzie kontroli bezpieczeństwa i skanowania dla Linux
  5. Tripwire - Integralność bezpieczeństwa i danych http: // www.Tripwire.com/
  6. Fail2ban - Zapobieganie sieci włamań
  7. Ossec - (HIDS) System wykrywania włamań oparty na hosta http: // OSSEC.github.IO/
  8. 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 .Bashrc 
Powią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.