Maksymalizuj bezpieczeństwo w systemie GNU / Linux

Cześć przyjaciele z DesdeLinux, obiecano dług i tutaj jest post na ten temat jak zmaksymalizować ochronę systemów Linux i tak pozostań bezpieczny przed intruzami, a także ochrona informacji na serwerach, komputerach stacjonarnych lub laptopach !!!!

Comenzando

Faul2ban: to aplikacja napisana w Pythonie w celu zapobiegania włamaniom do systemu, która działa poprzez karanie lub blokowanie połączeń zdalnych próbujących uzyskać dostęp siłowy.

Instalacja:

Fedora, RHEL, CentOS:

yum install fail2ban

Debian, Ubuntu:

apt-get install fail2ban

Oprawa:

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local nano /etc/fail2ban/jail.local

W części o nazwie [DOMYŚLNE] odkomentowujemy i modyfikujemy #bantime = 3600, pozostawiając to tak:

#bantime = 3600 bantime = 604800

W części [sshd] wprowadzamy enabled = true pozostawiając to w ten sposób:

#enabled = true enabled = true

Zapisujemy CTRL + O i zamykamy CTRL + X

Rozpoczynamy usługę:

Fedora, RHEL, CentOS:

systemctl włącz fail2ban.service systemctl start fail2ban.service

Debian, Ubuntu:

usługa fail2ban start

Odmów dostępu root za pomocą ssh:

Aby chronić naszą maszynę, odmówimy ssh przez użytkownika root. Aby to zrobić, edytujemy plik / etc / ssh / sshd_config w następujący sposób:

cp sshd_config sshd_config.bck nano / etc / ssh / sshd_config

Odkomentowujemy i zmieniamy

#Protocol 2 Protokół 2

Odkomentowujemy i zmieniamy

#PermitRootLogin tak PermitRootLogin nie

Zapisujemy CTRL + O i zamykamy CTRL + X

Rozpoczynamy usługę:

Fedora, RHEL, CentOS:

systemctl włącz sshd.service systemctl uruchom sshd.service

Debian, Ubuntu:

usługa sshd start

Odmów dostępu do serwera ssh przy użyciu klucza i zezwalaj na ssh tylko z kluczami RSA

Jeśli chcemy połączyć się z PC1 z serwerem1, pierwszą rzeczą, którą musimy zrobić, jest wygenerowanie naszego klucza na PC1. Z naszym użytkownikiem i bez roota na PC1 wykonujemy:

ssh-keygen -t rsa -b 8192 (generuje to więcej niż bezpieczny klucz, ponieważ zwykle używane są klucze od 1024 do 2048)

Gdy już mamy hasło, przesyłamy je na Serwer1:

ssh-copy-id użytkownik @ server_ip

Gdy to zrobisz, połączymy się z naszym serwerem 1 i zmodyfikujemy plik nano / etc / ssh / sshd_config z uprawnieniami roota:

ssh użytkownik @ Server1 nano / etc / ssh / sshd_config

Zmieniamy wiersz z napisem #PasswordAuthentication tak na:

#PasswordAuthentication tak
Hasło Nr uwierzytelnienia

Zapisujemy CTRL + O i zamykamy CTRL + X

Ponownie uruchamiamy usługę ssh:

Fedora, RHEL, CentOS:

systemctl zrestartuj sshd.service

Debian, Ubuntu:

restart usługi sshd

Zmień port nasłuchiwania ssh

Ponownie edytujemy / etc / ssh / sshd_config iw części dotyczącej portu zostawiamy to tak:

# Port 22 Port 2000 (lub inny numer większy niż 2000. W naszych przykładach użyjemy tego).

Zapisujemy CTRL + O i zamykamy CTRL + X

Ponownie uruchamiamy usługę ssh:

Fedora, RHEL, CentOS:

systemctl zrestartuj sshd.service

Debian, Ubuntu:

restart usługi sshd

Jeśli używają fail2ban, konieczna jest zmiana konfiguracji dotyczącej dostosowania portu przez sshd.

nano /etc/fail2ban/jail.local

[sshd]
port    = ssh, 2000

[sshd-ddos]
port    = ssh, 2000

[dropbear]
port    = ssh, 2000

[selinux-ssh]
port    = ssh, 2000

Zapisujemy CTRL + O i zamykamy CTRL + X

Odnawiamy usługę:

Fedora, RHEL, CentOS:

systemctl restart fail2ban.service

Debian, Ubuntu:

usługa fail2ban restart

zapora

Fedora, RHEL, CentOS:

Selinux i Iptables są domyślnie aktywowane w tych systemach i zalecam kontynuowanie w ten sposób. Jak otworzyć port za pomocą iptables? Zobaczmy, jak otworzyć nowy port 2000 portu ssh, który zmieniliśmy wcześniej:

Otwarty:

nano / etc / sysconfig / iptables

i modyfikujemy wiersz odnoszący się do domyślnego portu ssh 22 i zostawiamy go tak:

# -A WEJŚCIE -m stan - stan NOWY -m tcp -p tcp --dport 22 -j AKCEPTUJ -A WEJŚCIE -p tcp -m stan - stan NOWY -m tcp --dport 2000 -j AKCEPTUJ

Zapisujemy CTRL + O i zamykamy CTRL + X

Ponownie uruchamiamy usługę:

systemctl zrestartuj iptables

Debian, Ubuntu:

W Debianie, Ubuntu i pochodnych mamy firewall UFW, który ułatwi nam życie, ponieważ zarządza Netfiltrem bardzo łatwo.

Instalacja:

apt-get install ufw ufw enable

Aby zobaczyć stan otwartych portów, wykonujemy:

status ufw

Aby otworzyć port (w naszym przykładzie będzie to nowy port ssh 2000):

ufw zezwalaj na 2000

Aby odmówić portowi (w naszym przypadku będzie to domyślny port 22 ssh):

ufw deny 22 ufw delete deny 22

I gotowi przyjaciele. W ten sposób zapewnią bezpieczeństwo Twoim maszynom. Nie zapomnij skomentować i do następnego razu: D.


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.   grzesznik powiedział

    oraz system szyfrowania, taki jak: https://www.dyne.org/software/tomb/

    1.    grzesznik powiedział

      A także użytkowników klatki w domu, jeśli łączą się przez tty:
      http://olivier.sessink.nl/jailkit/index.html#intro
      https://operativoslinux.wordpress.com/2015/02/21/enjaular-usuarios-en-linux/ (łatwa droga)

    2.    jukiteru powiedział

      O wiele lepsze i bezpieczniejsze jest szyfrowanie całego systemu plików.

    3.    peterczech powiedział

      W poniższym samouczku dotyczącym bezpieczeństwa w Linuksie wezmę to pod uwagę: D.

      1.    jukiteru powiedział

        Dobrze byłoby również porozmawiać o hartowaniu jądra za pomocą sysctl, aktywowaniu losowej sterty i Exec-Shield w jądrze, które ją obsługuje, umożliwieniu dostępu do dmesg i systemu plików / proc, uruchomieniu demona audytu, włączeniu ochrony TCP SYN , ogranicz dostęp do / dev / mem, wyłącz opcje stosu TCP / IP, które mogą być niebezpieczne lub niebezpieczne dla systemu (przekierowanie, echo, routing źródłowy), użyj pam_cracklib dla użytkowników do generowania silnych haseł, znaczenie korzystania z systemu MAC, takiego jak Tomoyo , AppArmor i SELinux.

  2.   Kuku powiedział

    bardzo przydatne!!!! właśnie tego szukałem dzięki 🙂

    1.    peterczech powiedział

      Zapraszamy przyjacielu :).

  3.   Angelblade powiedział

    Jeśli używasz apache, dodawanie reguł za pomocą mod_rewrite nie zaszkodzi, aby uniknąć botów. Bardzo przydatne

    http://perishablepress.com/eight-ways-to-blacklist-with-apaches-mod_rewrite/

    1.    Rolo powiedział

      a dla nginx czy jest jakaś sztuczka lub konfiguracja?

  4.   Rolo powiedział

    W Debianie 8 plik / etc / ssh / sshd_config ma już aktywny protokół 2, a funkcja PermitRootLogin jest z opcją bez hasła (możesz wprowadzić root tylko z kluczem uwierzytelniającym i z komputera, który ma klucz prywatny)

    pd w debianie 8 pojawił się firewalld, który pozostawia go za mały dla ufw

    1.    łowca powiedział

      Widziałeś Ferm? Podoba mi się sposób definiowania zasad.

      http://ferm.foo-projects.org/download/examples/webserver.ferm

    2.    peterczech powiedział

      Cóż, cieszę się, że Debian 8 używa firewalld, ponieważ jest bardzo, bardzo dobry ...

  5.   łowca powiedział

    Uważaj na fail2ban, ponieważ osoba atakująca produkuje pakiety z adresem IP lokalnego komputera i sprawia, że ​​DOS jest bardzo łatwy.

    1.    Hery powiedział

      Man, lokalny adres IP komputera i adres IP pętli zwrotnej są wykluczone z listy Fail2ban.
      Jeśli nie, moglibyśmy mieć fałszywe alarmy.

  6.   Jasona Soto powiedział

    Dobre i bardzo skuteczne Rekomendacje… Oczywiście w środowisku serwerowym i jeśli prowadzimy serwis WWW to wymaga dodatkowych kroków…. Obecnie utrzymujemy projekt o nazwie JackTheStripper, który jest niczym innym jak skryptem bash, który przygotowuje i zabezpiecza serwer z systemem GNU / Linux zgodnie z najlepszymi praktykami bezpieczeństwa, dla aplikacji internetowych ... możesz poznać ten projekt pod adresem http://www.jsitech.com/jackthestripper ....

    1.    jukiteru powiedział

      Ładny skrypt, chociaż lubię zachować wartość kernel.randomize_va_space = 2

      1.    Jasona Soto powiedział

        Dobrą rzeczą jest to, że przed uruchomieniem możesz go trochę zmodyfikować do swoich potrzeb ..... Witam ...

    2.    peterczech powiedział

      Witam, oczywiście mój post dotyczy bazy ubezpieczonej i każdy musi zabezpieczyć się mniej więcej w zależności od usług, które zainstalował w swoich systemach, takich jak LAMP lub FTP, SFTP, BIND i długa itp.:)…

      W następnym poście dotyczącym bezpieczeństwa zajmę się tymi kwestiami.

      Dziękuję za pozytywny odzew :).

  7.   nex powiedział

    @petercheco, twoje przewodniki są doskonałe, byłby dobry przewodnik po szyfrowaniu dla systemu FreeeBSD, nie wiem, kiedy zamierzasz zrobić drugą część o FreeBSD, o konfiguracji i dostosowywaniu pulpitów, o Firewallu, o tworzeniu i konfigurowanie sieci bezprzewodowej.

    1.    peterczech powiedział

      Witaj przyjacielu,
      Jestem trochę zajęty, ponieważ pojawiają się rzadkie publikacje, ale będę o tym pamiętać w następnym poście na temat FreeBSD.

      Pozdrowienie :).

  8.   Solrak Tęczowy Wojownik powiedział

    To zrównane w komentarzach, nie mam pojęcia, o czym mówisz, nikt xD
    Świetny artykuł!

  9.   xunil powiedział

    To działanie w zakresie bezpieczeństwa oznacza jakiekolwiek ograniczenie sprzętu?

    1.    peterczech powiedział

      Nie ... Normalne użytkowanie systemu nie jest wcale ograniczone.

  10.   grzesznik powiedział

    A zabawne (tragiczne) jest to, że, jak właśnie widzieliśmy w przypadku komputerów Lenovo, jeśli oprogramowanie układowe bios jest modyfikowane przez złośliwe oprogramowanie, nic nie ma znaczenia.

    1.    peterczech powiedział

      O ile używasz systemu Windows preinstalowanego przez producenta ...

      1.    grzesznik powiedział

        błąd: pamiętaj, że zainstalowali go w oprogramowaniu bios, czyli uruchamia się z systemem przy każdym restarcie, przed systemem operacyjnym, przede wszystkim przed demonami i nie pozwala nic z nim zrobić. atakuje niewiele można to zrobić, dlatego idea uefi jest w zasadzie dobra.

  11.   Paweł powiedział

    Ciekawy artykuł, przeczytam go dokładniej dziś po południu. Dziękuję Ci.

    1.    peterczech powiedział

      Nie ma za co :). Cieszę się.

  12.   Carlos Best powiedział

    Świetny artykuł, przez całe popołudnie bawiłem się czytaniem. Czas poświęcony na dokładne wyjaśnienie wszystkiego jest mile widziany,

    Pozdrowienia z Chile
    Carlos

    1.    peterczech powiedział

      Cześć Carlos,
      Dziękuję Ci bardzo :).

  13.   Bryon powiedział

    Maszyny Lenovo, jeśli oprogramowanie bios wydaje się być zakłócane przez złośliwe oprogramowanie, maszyny (laptop PC-komputer stacjonarny) są zawsze dostarczane z systemem Windows przez producenta, biorąc pod uwagę powyższe… czy post… .petercheco?

    1.    jukiteru powiedział

      Nawet bez tego wszystkiego działa, ponieważ złośliwe oprogramowanie jest stworzone dla systemu Windows, a nie Linux.

  14.   SynFlaga powiedział

    Wiele rzeczy i sztuczek brakuje w iptables, takich jak zawrotny nmap, więc ze wszystkich otwartych portów, kłamstwo, że jest to komputer z systemem Windows korzystający z ttl i rozmiaru okna, scanlogd, zabezpieczenia modów apache, grsec, selinux lub coś w tym rodzaju. Zamień ftp na sftp, ogranicz liczbę połączeń na IP do każdej usługi w porcie X, aby uniknąć tego, że przed atakiem DDoS zostawiają nas bez usług, a także blokują adresy IP, które wysyłają więcej niż tyle UDP na tak wiele sekund.

    1.    peterczech powiedział

      Przy przedstawionych przez Ciebie przykładach nowy użytkownik zwariowałby podczas czytania… Nie możesz umieścić wszystkiego w jednym poście. Zrobię kilka wpisów :).

  15.   Shini Kire powiedział

    W tym momencie wyskakuje mi błąd w archlinux podczas oddawania usługi start, podaję status i tak wychodzi:
    stan sudo systemctl fail2ban
    ● fail2ban.service - Usługa Fail2Ban
    Załadowano: załadowano (/usr/lib/systemd/system/fail2ban.service; włączone; ustawienie dostawcy: wyłączone)
    Aktywny: nieudany (wynik: limit startu) od pt. 2015 03:20:01 CLST; 10 s temu
    Dokumenty: man: fail2ban (1)
    Proces: 1695 ExecStart = / usr / bin / fail2ban-client -x start (kod = zakończony, stan = 255)

    20 marca 01:10:01 Gundam systemd [1]: Nie udało się uruchomić usługi Fail2Ban.
    20 marca 01:10:01 Gundam systemd [1]: Jednostka fail2ban.service przeszła w stan awarii.
    20 marca 01:10:01 Gundam systemd [1]: fail2ban.service failed.
    20 marca 01:10:01 Gundam systemd [1]: żądanie uruchomienia zostało powtórzone zbyt szybko dla fail2ban… ice
    20 marca 01:10:01 Gundam systemd [1]: Nie udało się uruchomić usługi Fail2Ban.
    20 marca 01:10:01 Gundam systemd [1]: Jednostka fail2ban.service przeszła w stan awarii.
    20 marca 01:10:01 Gundam systemd [1]: fail2ban.service failed.
    Podpowiedź: niektóre linie były elipsy, użyj -l, aby pokazać w całości.
    trochę pomocy? RE:

    1.    peterczech powiedział

      Cześć, jeśli włączyłeś fail2ban z włączoną usługą systemctl fail2ban.service i systemctl uruchom fail2ban.service, problem będzie dotyczył konfiguracji więzień, którą wykonałeś. Sprawdź swoje więzienie i sprawdź, czy wszystko jest w porządku.

      pozdrowienia
      PeterCzeski

      1.    majkel franco powiedział

        Przede wszystkim dobry tutorial. Brakuje wielu rzeczy, ale skupiłeś się na podstawach.

        shini-kire, sprawdź swój /var/log/fail2ban.log

        Pozdrowienia.

      2.    peterczech powiedział

        Dziękuję @Maykel Franco :).

  16.   jony127 powiedział

    dobra,

    fail2ban powinien zainstalować go na komputerze domowym, czy to bardziej dla serwerów ???

    Dziękuję.

    1.    peterczech powiedział

      Raczej dla serwerów, ale jeśli korzystasz z Wi-Fi dostępnego dla większej liczby osób niż ty, jest dobrze ...

  17.   Rodrigo powiedział

    Witaj przyjacielu, wydaje mi się, że to dobry post bezpieczeństwa w części krótkiego pożaru w dystrybucjach Gnu / Linux.Piszę ten komentarz, ponieważ robię to w dystrybucji Ubuntu 14.04 wiedząc, że jest już w 15.04 co się dzieje jest następujący problem wpisuję nano /etc/fail2ban/jail.local jako root i nie mam wizualizacji w części sshd i zapisuję W części o nazwie [DEFAULT] odkomentowujemy i modyfikujemy #bantime = 3600 i
    W części [sshd] wprowadzamy enabled = true pozostawiając to w ten sposób:
    #włączone = prawda
    włączone = prawda
    Nie wygląda na to, że sshd może być spowodowane tym, że pracuję z poprzednią wersją, dzięki