Wskazówki dotyczące bezpieczeństwa w systemach GNU / Linux

Cóż, przygotowywałem ten post mój blog przez jakiś czas zasugerowali mi to DesdeLinuxiz braku czasu nie mógł ani nie chciał. Jeśli jestem trochę leniwy ????. Ale teraz strajkują, jak mówimy na Kubie ...

To jest zestawienie podstawowych reguł bezpieczeństwa dla administratorów systemów, w tym przypadku dla takich jak ja, którzy zarządzają sieciami / systemami opartymi na GNU / Linuksie ... Może być ich więcej, aw rzeczywistości jest ich więcej, to tylko próbka moje wędrówki po świecie Linuksa ...

0- Aktualizuj nasze systemy za pomocą najnowszych aktualizacji zabezpieczeń.

0.1- Krytyczne aktualizacje Listy mailingowe [Doradca bezpieczeństwa Slackware, Doradca bezpieczeństwa Debiana, w moim przypadku]

1- Brak fizycznego dostępu do serwerów przez nieautoryzowany personel.

1.1- Zastosuj hasło do BIOS naszych serwerów

1.2- Brak uruchamiania z CD / DVD

1.3- Hasło w GRUB / Lilo

2- Dobra polityka dotycząca haseł, znaki alfanumeryczne i inne.

2.1- Starzenie haseł [Starzenie się haseł] za pomocą polecenia „chage”, a także liczba dni między zmianą hasła a datą ostatniej zmiany.

2.2- Unikaj używania poprzednich haseł:

w /etc/pam.d/common-password

password sufficient pam_unix.so use_auth ok md5 shadow remember 10

W ten sposób zmieniasz hasło i przypomina ci o ostatnich 10 hasłach, które miał użytkownik.

3- Dobra polityka zarządzania / segmentacji naszej sieci [routery, switche, vlany] i firewall, a także reguły filtrowania INPUT, OUTPUT, FORWARD [NAT, SNAT, DNAT]

4- Włącz używanie powłok [/ etc / shells]. Użytkownicy, którzy nie muszą logować się do systemu, otrzymają / bin / false lub / bin / nologin.

5- Blokuj użytkowników, gdy logowanie się nie powiedzie [faillog], a także kontroluj konto użytkownika systemu.

passwd -l pepe -> zablokuj użytkownika pepe passwd -v pepe -> odblokuj użytkownika pepe

6- Włącz użycie "sudo", NIGDY nie loguj się jako root przez ssh, "NIGDY". W rzeczywistości musisz edytować konfigurację ssh, aby osiągnąć ten cel. Użyj kluczy publicznych / prywatnych na swoich serwerach z sudo.

7- Zastosuj w naszych systemach „Zasada najmniejszego przywileju".

8- Sprawdzaj od czasu do czasu nasze usługi [netstat -lptun] dla każdego z naszych serwerów. Dodaj narzędzia monitorujące, które mogą nam pomóc w tym zadaniu [Nagios, Cacti, Munin, Monit, Ntop, Zabbix].

9- Zainstaluj IDS, Snort / AcidBase, Snotby, Barnyard, OSSEC.

10- Nmap to twój przyjaciel, użyj go do sprawdzenia podsieci / podsieci.

11- Dobre praktyki bezpieczeństwa w OpenSSH, Apache2, Nginx, MySQL, PostgreSQL, Postfix, Squid, Samba, LDAP [tych, które najczęściej używają] i kilku innych usługach, których potrzebujesz w swojej sieci.

12- Szyfruj całą komunikację tak długo, jak to możliwe w naszych systemach, SSL, gnuTLS, StarTTLS, skrót, itp ... A jeśli masz do czynienia z poufnymi informacjami, zaszyfruj swój dysk twardy !!!

13- Zaktualizuj nasze serwery pocztowe przy użyciu najnowszych reguł bezpieczeństwa, czarnej listy i antyspamu.

14- Rejestrowanie aktywności w naszych systemach za pomocą logwatch i logcheck.

15- Znajomość i wykorzystanie narzędzi takich jak między innymi top, sar, vmstat, free.

sar -> raport o aktywności systemu vmstat -> procesy, pamięć, system, we / wy, aktywność procesora itp. iostat -> stan we / wy procesora mpstat -> stan i użycie wieloprocesora pmap -> użycie pamięci przez wolne procesy -> pamięć iptraf -> ruch w czasie rzeczywistym naszej sieci ethstatus -> konsolowy monitor statystyk ethernetowych etherape -> graficzny monitor sieci ss -> stan gniazda [informacje o gnieździe tcp, udp, surowe gniazda, gniazda DCCP] tcpdump -> Szczegółowa analiza ruchu vnstat -> monitor ruchu sieciowego wybranych interfejsów mtr -> narzędzie diagnostyczne i analiza przeciążeń w sieciach ethtool -> statystyki dotyczące kart sieciowych

Na razie to wszystko. Wiem, że istnieje tysiąc i jeszcze jedna sugestia dotycząca bezpieczeństwa w tego typu środowisku, ale to te najbardziej mnie uderzyły lub że w pewnym momencie musiałem zastosować / ćwiczyć w środowisku, którym zarządzam .

Uścisk i mam nadzieję, że ci to pomoże 😀


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   koratsuki powiedział

    Zapraszam w komentarzach do opowiedzenia o kilku innych zasadach, które zostały wdrożone poza wymienionymi już, aby zwiększyć wiedzę naszych czytelników 😀

    1.    jukiteru powiedział

      Cóż, dodałbym:

      1. - Zastosuj reguły sysctl, aby uniknąć dmesg, / proc, dostępu SysRQ, przypisz PID1 do rdzenia, włącz zabezpieczenia dla twardych i miękkich łączy symbolicznych, zabezpieczenia stosów TCP / IP zarówno dla IPv4, jak i IPv6, aktywuj pełne VDSO dla maksymalnej randomizacji wskaźników i alokacji miejsca w pamięci i poprawiają odporność na przepełnienia bufora.

      2.- Utwórz ściany przeciwpożarowe typu SPI (Stateful Package Inspect), aby uniemożliwić dostęp do systemu połączeniom, które nie zostały utworzone lub nie zostały wcześniej dopuszczone.

      3.- Jeśli nie masz usług, które gwarantują połączenia z podwyższonymi uprawnieniami ze zdalnej lokalizacji, po prostu unieważ dostęp do nich za pomocą access.conf lub, w przypadku jego braku, włącz dostęp tylko dla określonego użytkownika lub grupy.

      4.- Stosuj sztywne ograniczenia, aby uniemożliwić dostęp do niektórych grup lub użytkowników destabilizację systemu. Bardzo przydatne w środowiskach, w których przez cały czas jest aktywnych wielu użytkowników.

      5.- TCPWrappers jest twoim przyjacielem, jeśli jesteś w systemie, który go obsługuje, używanie go nie zaszkodzi, więc możesz odmówić dostępu każdemu hostowi, chyba że został wcześniej skonfigurowany w systemie.

      6.- Utwórz klucze SSH RSA o długości co najmniej 2048 bitów lub więcej z 4096 bitów z kluczami alfanumerycznymi dłuższymi niż 16 znaków.

      7. - Na ile jesteś zapisywalny na całym świecie? Sprawdzenie uprawnień do odczytu i zapisu katalogów nie jest wcale złe i jest najlepszym sposobem na uniknięcie nieautoryzowanego dostępu w środowiskach wielu użytkowników, nie wspominając o tym, że niektórym nieautoryzowanym dostępom trudniej jest uzyskać dostęp do informacji, które robisz nie chcę tego. nikt inny nie widzi.

      8.- Zamontuj dowolną partycję zewnętrzną, która na to nie zasługuje, z opcjami noexec, nosuid, nodev.

      9.- Użyj narzędzi, takich jak rkhunter i chkrootkit, aby okresowo sprawdzać, czy w systemie nie ma zainstalowanego rootkita lub złośliwego oprogramowania. Ostrożny środek, jeśli jesteś jednym z tych, którzy instalują rzeczy z niezabezpieczonych repozytoriów, z PPA lub po prostu kompilują na żywo kod z niezaufanych witryn.

      1.    koratsuki powiedział

        Uhmmm, pyszne… Dobry komentarz, dodajcie facetów… 😀

    2.    William Moreno-Reyes powiedział

      Zastosować obowiązkową kontrolę dostępu z SElinux?

  2.   Armando F powiedział

    bardzo dobry artykuł

    1.    koratsuki powiedział

      Dzięki przyjacielu 😀

  3.   Joaco powiedział

    Witam i jeśli jestem zwykłym użytkownikiem, powinienem używać su czy sudo?
    Używam su, ponieważ nie lubię sudo, ponieważ każdy, kto ma moje hasło użytkownika, może zmienić cokolwiek chce w systemie, zamiast tego su no.

    1.    koratsuki powiedział

      Na twoim komputerze nie przeszkadza używanie su, możesz go używać bez problemów, na serwerach zdecydowanie zaleca się wyłączenie używania su i używanie sudo, wielu twierdzi, że dzieje się tak ze względu na fakt audytu, kto co wykonał polecenie, a sudo wykonuje to zadanie ... ja w szczególności na moim komputerze używam jego, tak jak ty ...

      1.    Joaco powiedział

        Jasne, naprawdę nie wiem, jak to działa na serwerach. Chociaż wydaje mi się, że sudo miało tę zaletę, że można nadać uprawnienia użytkownikowi innego komputera, o ile się nie mylę.

    2.    andrew powiedział

      Ciekawy artykuł, niektóre pliki szyfruję gnu-gpg, np. Minimalne przywileje, na wypadek gdybyś chciał wykonać np. Plik binarny nieznanego pochodzenia zagubiony w ogromnych morzach informacji na dysku, jak usunąć dostęp do pewnych funkcje?

      1.    koratsuki powiedział

        Jestem ci to winien, chociaż myślę, że powinieneś uruchamiać tylko jako sudo / root, programy, które są niezawodne, to znaczy pochodzą z twojego repozytorium ...

      2.    jukiteru powiedział

        Pamiętam, że czytałem, że jest sposób na włączenie możliwości rootowania w podręczniku dotyczącym GNU / Linux i UNIX, jeśli go znajdę, umieszczę go 😀

      3.    pajac powiedział

        i klatki chown do uruchamiania nieznanych plików binarnych?

    3.    jukiteru powiedział

      Używanie sudo przez cały czas jest znacznie lepsze.

    4.    pełen życia powiedział

      Lub możesz użyć sudo, ale ograniczając czas zapamiętywania hasła.

  4.   Kevina Rodrigueza powiedział

    Podobne narzędzia, których używam do monitorowania komputera, "iotop" jako substytut "iostat", "htop" doskonały "menedżer zadań", "iftop" monitorowanie przepustowości.

  5.   monitorolinux powiedział

    wielu pomyśli, że to przesada, ale widziałem już ataki polegające na włączeniu serwera do botnetu.

    https://twitter.com/monitolinux/status/594235592260636672/photo/1

    ps: Chińscy żebracy i ich próby włamania się do mojego serwera.

  6.   błazen powiedział

    wygodnym rozwiązaniem jest również użycie klatek żniwnych dla usług, więc jeśli z jakiegoś powodu zostaną zaatakowani, nie naruszą systemu.

  7.   Diab powiedział

    Używanie polecenia ps jest również doskonałe do monitorowania i może być częścią działań sprawdzających pod kątem luk w zabezpieczeniach. uruchomienie ps -ef wyświetla wszystkie procesy, jest podobne do top, ale pokazuje pewne różnice. instalacja iptraf to kolejne narzędzie, które może działać.

  8.   Claudio J. Concepcion Pewność powiedział

    Dobry wpis.

    Dodałbym: SELinux lub Apparmor, w zależności od dystrybucji, zawsze włączony.

    Z własnego doświadczenia zdałem sobie sprawę, że wyłączanie tych komponentów jest złą praktyką. Prawie zawsze robimy to, gdy zamierzamy zainstalować lub skonfigurować usługę, pod pretekstem, że działa ona bezproblemowo, podczas gdy tak naprawdę powinniśmy nauczyć się obsługiwać je, aby umożliwić tę usługę.

    Pozdrowienia.

  9.   GnuLinux ?? powiedział

    1. jak zaszyfrować cały system plików? Warto było??
    2. Czy należy go odszyfrować za każdym razem, gdy system ma być aktualizowany?
    3. Czy szyfrowanie całego systemu plików maszyny jest takie samo, jak szyfrowanie innych plików?

    1.    jukiteru powiedział

      Skąd wiesz, że wiesz, o czym mówisz?

  10.   Łodzik powiedział

    Możesz także blokować programy, a nawet wielu użytkowników. Chociaż robienie tego wymaga więcej pracy, ale jeśli coś się stało i miałeś poprzednią kopię tego folderu, to po prostu uderzanie i śpiewanie.

  11.   Toño powiedział

    Najlepszą i najwygodniejszą polityką bezpieczeństwa jest unikanie paranoi.
    Spróbuj, to nieomylne.

  12.   angelbenity powiedział

    Używam csf i podczas odblokowywania klienta, który zgubił swoje hasło w pewnym dostępie, opóźnia to proces, ale tak się dzieje. To normalne?

    Szukam polecenia odblokowania z ssh ... wszelkie sugestie