Maximizați securitatea pe GNU / Linux

Salut prieteni de la DesdeLinux, lo prometido es deuda y aquí va un post de cum să maximizați protecția sistemelor Linux și rămâneți așa sigur împotriva intrușilor, precum și protejarea informațiilor de pe serverele, computerele sau laptopurile dvs. !!!!

pornire

Fail2ban: este o aplicație scrisă în Python pentru a preveni intruziunea într-un sistem, care acționează penalizând sau blocând conexiunile la distanță care încearcă accesul cu forță brută.

Instalare:

Fedora, RHEL, CentOS:

yum install fail2ban

Debian, Ubuntu:

apt-get install fail2ban

Setare:

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

În partea numită [DEFAULT] descomentăm și modificăm #bantime = 3600 lăsând-o astfel:

#bantime = 3600 bantime = 604800

În partea [sshd] introducem enabled = true lăsând-o astfel:

#enabled = adevărat activat = adevărat

Salvăm cu CTRL + O și închidem cu CTRL + X

Începem serviciul:

Fedora, RHEL, CentOS:

systemctl activate fail2ban.service systemctl start fail2ban.service

Debian, Ubuntu:

service fail2ban start

Refuzați accesul root utilizând ssh:

Pentru a ne proteja mașina, vom refuza ssh prin intermediul utilizatorului root. Pentru a face acest lucru, edităm fișierul / etc / ssh / sshd_config după cum urmează:

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

Decomentăm și ne schimbăm

#Protocol 2 Protocol 2

Decomentăm și ne schimbăm

#PermitRootLogin da PermitRootLogin nu

Salvăm cu CTRL + O și închidem cu CTRL + X

Începem serviciul:

Fedora, RHEL, CentOS:

systemctl activate sshd.service systemctl start sshd.service

Debian, Ubuntu:

service sshd start

Refuzați accesul la un server ssh folosind parola și permiteți ssh numai cu cheile RSA

Dacă vrem să ne conectăm cu PC1 la Server1, primul lucru de făcut este să ne generăm cheia pe PC1. Cu utilizatorul nostru și fără root pe PC1 executăm:

ssh-keygen -t rsa -b 8192 (aceasta generează o cheie mai mult decât sigură, deoarece sunt utilizate în mod normal cheile de la 1024 la 2048)

Odată ce avem parola, o încărcăm pe Server1:

ssh-copy-id user @ server_ip

Odată ce acest lucru este făcut, ne vom conecta la Server1 și vom modifica fișierul nano / etc / ssh / sshd_config cu permisiuni root:

utilizator ssh @ Server1 nano / etc / ssh / sshd_config

Schimbăm linia care spune #PasswordAuthentication da la asta:

#PasswordAuthentication da
Parola Autentificare nr

Salvăm cu CTRL + O și închidem cu CTRL + X

Repornim serviciul ssh:

Fedora, RHEL, CentOS:

systemctl reporniți sshd.service

Debian, Ubuntu:

service sshd reporniți

Schimbați portul de ascultare ssh

Din nou edităm / etc / ssh / sshd_config și în partea care se referă la port îl lăsăm astfel:

# Port 22 Port 2000 (sau orice alt număr mai mare decât 2000. În exemplele noastre vom folosi acest lucru.)

Salvăm cu CTRL + O și închidem cu CTRL + X

Repornim serviciul ssh:

Fedora, RHEL, CentOS:

systemctl reporniți sshd.service

Debian, Ubuntu:

service sshd reporniți

Dacă utilizează fail2ban, este necesar să schimbați configurația privind sshd reglarea portului.

nano /etc/fail2ban/jail.local

[sshd]
port    = ssh, 2000

[sshd-ddos]
port    = ssh, 2000

[dropbear]
port    = ssh, 2000

[selinux-ssh]
port    = ssh, 2000

Salvăm cu CTRL + O și închidem cu CTRL + X

Reînnoim serviciul:

Fedora, RHEL, CentOS:

systemctl reporniți fail2ban.service

Debian, Ubuntu:

service fail2ban restart

Firewall

Fedora, RHEL, CentOS:

Selinux și Iptables sunt activate implicit pe aceste sisteme și vă recomand să continuați în acest fel. Cum se deschide un port cu iptables? Să vedem cum să deschidem noul port 2000 al portului ssh pe care l-am schimbat anterior:

Deschis:

nano / etc / sysconfig / iptables

și modificăm linia care se referă la portul 22 ssh implicit și îl lăsăm astfel:

# -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 2000 -j ACCEPT

Salvăm cu CTRL + O și închidem cu CTRL + X

Repornim serviciul:

systemctl reporniți iptables

Debian, Ubuntu:

În Debian sau Ubuntu și derivate avem un firewall UFW care ne va ușura viața, deoarece gestionează Netfilter foarte ușor.

Instalare:

apt-get install ufw ufw enable

Pentru a vedea starea porturilor deschise executăm:

starea ufw

Pentru a deschide un port (în exemplul nostru va fi noul port ssh 2000):

ufw permit 2000

Pentru a refuza un port (în cazul nostru va fi portul implicit 22 al ssh):

ufw deny 22 ufw șterge deny 22

Și prieteni gata. În acest fel, vă vor păstra mașinile în siguranță. Nu uitați să comentați și până data viitoare: D.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   pacatos el a spus

    și un sistem de criptare precum: https://www.dyne.org/software/tomb/

    1.    pacatos el a spus

      Și, de asemenea, utilizatorii cușcă în casa dvs., dacă se conectează prin tty:
      http://olivier.sessink.nl/jailkit/index.html#intro
      https://operativoslinux.wordpress.com/2015/02/21/enjaular-usuarios-en-linux/ (calea ușoară)

    2.    yukiteru el a spus

      Este mult mai bine și mai sigur să criptați întregul sistem de fișiere.

    3.    peterceh el a spus

      Pentru următorul tutorial privind securitatea în Linux îl voi lua în considerare: D.

      1.    yukiteru el a spus

        De asemenea, ar fi bine să vorbim despre întărirea nucleului prin intermediul sysctl, activarea heap-ului aleatoriu și Exec-Shield în nucleul care îl susține, permițând accesul la dmesg și la sistemul de fișiere / proc, rularea unui daemon de audit, activarea protecției TCP SYN, restricționați accesul la / dev / mem, dezactivați opțiunile stivei TCP / IP care pot fi periculoase sau nesigure pentru sistem (redirecționare, ecou, ​​rutare sursă), utilizați pam_cracklib pentru ca utilizatorii să genereze parole puternice, importanța utilizarea sistemului MAC precum Tomoyo, AppArmor și SELinux.

  2.   Şold el a spus

    foarte util!!!! exact ceea ce căutam mulțumesc 🙂

    1.    peterceh el a spus

      Cu plăcere prietene :).

  3.   lame de înger el a spus

    Dacă utilizați apache, nu este rău să adăugați reguli cu mod_rewrite pentru a evita roboții. Foarte util

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

    1.    Rolo el a spus

      și pentru nginx există vreun truc sau configurație?

  4.   Rolo el a spus

    În debian 8 fișierul / etc / ssh / sshd_config are deja Protocolul 2 activ și funcția PermitRootLogin este cu opțiunea fără parolă (puteți introduce root numai cu cheia de autentificare și de pe computerul care are cheia privată)

    A sosit pd în debian 8 firewalld care îl lasă mic pentru ufw

    1.    dhunter el a spus

      Ai văzut ferm? Îmi place cum sunt definite regulile.

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

    2.    peterceh el a spus

      Ei bine, mă bucur că Debian 8 folosește firewalld, deoarece este foarte foarte foarte bun ...

  5.   dhunter el a spus

    Feriți-vă de fail2ban că un atacator produce pachete cu ip-ul computerului local și face DOS foarte ușor.

    1.    Hery el a spus

      Man, IP-ul local al PC-ului și cel loopback sunt excluse din lista Fail2ban.
      Dacă nu, am putea avea falsuri pozitive.

  6.   Jason Soto el a spus

    Recomandări bune și foarte eficiente ... Desigur, în mediul serverului și dacă găzduim un site web, acesta implică pași suplimentari ... În prezent, menținem un proiect numit JackTheStripper care nu este altceva decât un script bash care pregătește și securizează un server cu GNU / Linux urmând cele mai bune practici de securitate, pentru aplicații web ... puteți cunoaște proiectul la http://www.jsitech.com/jackthestripper ....

    1.    yukiteru el a spus

      Frumos script, deși îmi place să păstrez valoarea kernel.randomize_va_space = 2

      1.    Jason Soto el a spus

        Lucrul bun este că, înainte de al rula, îl puteți modifica puțin în funcție de nevoile dvs. ..... O Bună ziua ...

    2.    peterceh el a spus

      Bună ziua, bineînțeles că postarea mea se ocupă de o bază asigurată și fiecare trebuie protejat mai mult sau mai puțin în funcție de serviciile pe care le-au instalat în sistemele lor, cum ar fi LAMP sau FTP, SFTP, BIND și un etc lung :)

      În următoarea postare despre securitate voi aborda aceste probleme.

      Multumesc pentru feedback-ul pozitiv :).

  7.   nex el a spus

    @petercheco, ghidurile tale sunt excelente, ar fi bine un ghid de criptare pentru sistemul FreeeBSD, nu știu când vei face a doua parte despre FreeBSD, despre configurarea și personalizarea desktopurilor, despre Firewall, despre crearea și configurarea unei rețele wireless.

    1.    peterceh el a spus

      Buna prietene,
      Sunt un pic ocupat, așa cum arată postările rare, dar voi ține cont de asta pentru următoarea postare FreeBSD.

      Un salut :).

  8.   Solrak Rainbow Warrior el a spus

    Acest lucru a fost egalizat în comentarii, habar n-am despre ce vorbești, nimeni xD
    Super articol!

  9.   xunil el a spus

    Această acțiune de securitate implică limitarea echipamentului într-un fel?

    1.    peterceh el a spus

      Nu ... Utilizarea normală a sistemului nu este deloc limitată.

  10.   pacatos el a spus

    Și amuzant (tragic) este că, așa cum tocmai am văzut cu mașinile Lenovo, dacă firmware-ul BIOS este modificat cu malware, nimic din ceea ce faceți nu contează.

    1.    peterceh el a spus

      Atâta timp cât utilizați Windows preinstalat de producător ...

      1.    pacatos el a spus

        eroare: amintiți-vă că l-au instalat în firmware-ul BIOS, adică începe cu sistemul la fiecare repornire, înainte de sistemul de operare, înainte de demoni, în primul rând și nu vă permite să faceți nimic împotriva acestuia. Este puțin posibil să se facă atacuri, motiv pentru care ideea uefi este bună în principiu.

  11.   Pablo el a spus

    Interesant articol, îl voi citi mai atent în această după-amiază. Mulțumesc.

    1.    peterceh el a spus

      Cu plăcere :). Mă bucur.

  12.   Carlos Best el a spus

    Articol excelent, m-am distrat toată după-amiaza citind-o. Timpul pe care îl luați pentru a explica totul foarte atent este apreciat,

    Salutări din Chile
    Carlos

    1.    peterceh el a spus

      Bună Carlos,
      Mulțumesc mult :).

  13.   brion el a spus

    Mașinile Lenovo, dacă firmware-ul BIOS pare a fi intervenit cu malware, mașinile (Laptop PC-Desktop Computer) vin întotdeauna instalate cu Windows de către producător, având în vedere cele de mai sus ... se afișează ... .petercheco?

    1.    yukiteru el a spus

      Chiar și fără a face toate acestea, funcționează, deoarece malware-ul este creat pentru Windows, nu pentru Linux.

  14.   SynFlag el a spus

    Există multe lucruri și trucuri care lipsesc de la iptables, cum ar fi nmap amețit, astfel încât toate porturile deschise, minciuna că este un computer Windows care utilizează ttl și dimensiunea ferestrei, scanlogd, securitate mod apache, grsec, selinux sau ceva de genul . Înlocuiți ftp cu sftp, limitați numărul de conexiuni pe IP la fiecare serviciu din portul X pentru a evita ca înainte de un DDoS să ne lase fără servicii, precum și să blocați IP-urile care trimit mai mult de atât de multe UDP pentru atât de multe secunde.

    1.    peterceh el a spus

      Cu exemplele pe care le-ați prezentat, un utilizator nou ar înnebuni când îl citește ... Nu puteți pune totul într-o singură postare. Voi face mai multe intrări :).

  15.   shini kire el a spus

    Primesc o eroare în archlinux în acest moment când dau serviciul start, îi dau statutul și acest lucru iese:
    stare sudo systemctl fail2ban
    ● fail2ban.service - Serviciul Fail2Ban
    Încărcat: încărcat (/usr/lib/systemd/system/fail2ban.service; activat; presetarea furnizorului: dezactivată)
    Activ: eșuat (Rezultat: start-limit) din Vineri 2015-03-20 01:10:01 CLST; Acum 1 s
    Documente: man: fail2ban (1)
    Proces: 1695 ExecStart = / usr / bin / fail2ban-client -x start (cod = ieșit, stare = 255)

    20 Mar 01:10:01 Gundam systemd [1]: Nu s-a putut porni serviciul Fail2Ban.
    20 Mar 01:10:01 Gundam systemd [1]: Unitatea fail2ban.service a intrat în starea de eșec.
    20 Mar 01:10:01 Gundam systemd [1]: fail2ban.service a eșuat.
    20 Mar 01:10:01 Gundam systemd [1]: cerere de pornire repetată prea repede pentru fail2ban ... gheață
    20 Mar 01:10:01 Gundam systemd [1]: Nu s-a putut porni serviciul Fail2Ban.
    20 Mar 01:10:01 Gundam systemd [1]: Unitatea fail2ban.service a intrat în starea de eșec.
    20 Mar 01:10:01 Gundam systemd [1]: fail2ban.service a eșuat.
    Sugestie: unele linii au fost elipsate, folosiți -l pentru a afișa integral
    putin ajutor? D:

    1.    peterceh el a spus

      Bună, dacă ați activat fail2ban cu systemctl enable fail2ban.service și systemctl start fail2ban.service, problema va fi în configurația închisorilor pe care ați făcut-o. Vă rugăm să verificați închisoarea și să verificați dacă totul este în regulă.

      Un saludo
      Peterceh

      1.    maykel franco el a spus

        În primul rând tutorial bun. Multe lucruri lipsesc, dar v-ați concentrat asupra elementelor de bază.

        shini-kire, verificați /var/log/fail2ban.log

        Salutări.

      2.    peterceh el a spus

        Mulțumesc @ Maykel Franco :).

  16.   jony127 el a spus

    bun,

    fail2ban ar trebui să îl instaleze pe un computer de acasă sau este mai mult pentru servere ???

    Mulţumesc.

    1.    peterceh el a spus

      Mai degrabă pentru servere, dar dacă sunteți pe un wifi accesibil de mai mulți oameni decât dvs., este bine ...

  17.   Rodrigo el a spus

    Bună ziua prietene, cred că este o postare bună de securitate în partea unui scurt incendiu în distribuțiile Gnu / Linux, scriu acest comentariu pentru că o fac într-o distribuție Ubuntu 14.04 știind că este deja în 15.04 ceea ce se întâmplă este Următoarea problemă introduc nano /etc/fail2ban/jail.local ca root și nu am vizualizare în partea sshd și salvăm În partea numită [DEFAULT] descomentăm și modificăm #bantime = 3600 și
    În partea [sshd] introducem enabled = true lăsând-o astfel:
    #enabled = adevărat
    activat = adevărat
    Nu pare că sshd ar putea fi pentru că lucrez la versiunea anterioară mulțumesc