Maksimalno povećajte sigurnost na GNU / Linuxu

Zdravo prijatelji iz DesdeLinux, ono što je obećano je dug i evo posta o tome kako maksimizirati zaštitu Linux sistema i ostanite takvi sigurno od uljeza, kao i zaštitu podataka na vašim serverima, PC-ima ili laptopima !!!!

Comenzando

Fail2ban: je aplikacija napisana na Pythonu kako bi se spriječio upad u sistem koji djeluje kažnjavanjem ili blokiranjem udaljenih veza koje pokušavaju pristup grubom silom.

Instalacija:

Fedora, RHEL, CentOS:

yum install fail2ban

Debian, Ubuntu:

apt-get install fail2ban

Postavljanje:

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

U dijelu nazvanom [DEFAULT] mi komentiramo i mijenjamo #bantime = 3600 ostavljajući ga ovako:

#bantime = 3600 bantime = 604800

U [sshd] dio uvodimo enabled = true ostavljajući ga ovako:

#enabled = true omogućeno = true

Štedimo CTRL + O i zatvaramo CTRL + X

Uslugu započinjemo:

Fedora, RHEL, CentOS:

systemctl omogući fail2ban.service systemctl start fail2ban.service

Debian, Ubuntu:

usluga fail2ban start

Zabraniti root pristup pomoću ssh:

Da bismo zaštitili naš stroj, uskratit ćemo ssh preko root korisnika. Da bismo to učinili, uređujemo datoteku / etc / ssh / sshd_config na sljedeći način:

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

Komentiramo i mijenjamo se

# Protokol 2 Protokol 2

Komentiramo i mijenjamo se

#PermitRootLogin da PermitRootLogin ne

Štedimo CTRL + O i zatvaramo CTRL + X

Uslugu započinjemo:

Fedora, RHEL, CentOS:

systemctl omogući sshd.service systemctl pokreni sshd.service

Debian, Ubuntu:

servis sshd start

Zabranite pristup ssh serveru pomoću lozinke i omogućite ssh samo s RSA ključevima

Ako se želimo povezati s PC1 na Server1, prvo što treba učiniti je generirati naš ključ na PC1. Sa našim korisnikom i bez root-a na PC1 izvršavamo:

ssh-keygen -t rsa -b 8192 (ovo generira više nego siguran ključ jer se obično koriste ključevi od 1024 do 2048)

Nakon što imamo lozinku, prenosimo je na Server1:

ssh-copy-id korisnik @ server_ip

Jednom kada se to učini, povezati ćemo se s našim Server1 i izmijeniti nano / etc / ssh / sshd_config datoteku s root dopuštenjima:

ssh korisnik @ Server1 nano / etc / ssh / sshd_config

Mijenjamo liniju koja kaže #PasswordAuthentication da na ovo:

#PasswordAuthentication da
PasswordAuthentication br

Štedimo CTRL + O i zatvaramo CTRL + X

Ponovo pokrećemo ssh uslugu:

Fedora, RHEL, CentOS:

systemctl ponovno pokrenite sshd.service

Debian, Ubuntu:

ponovno pokretanje sshd usluge

Promijenite ssh port za slušanje

Opet uređujemo / etc / ssh / sshd_config i u dijelu koji se odnosi na port ostavljamo ga ovako:

# Port 22 Port 2000 (ili bilo koji drugi broj veći od 2000. U našim primjerima koristit ćemo ovo.)

Štedimo CTRL + O i zatvaramo CTRL + X

Ponovo pokrećemo ssh uslugu:

Fedora, RHEL, CentOS:

systemctl ponovno pokrenite sshd.service

Debian, Ubuntu:

ponovno pokretanje sshd usluge

Ako koriste fail2ban potrebno je promijeniti konfiguraciju u vezi sshd podešavanja porta.

nano /etc/fail2ban/jail.local

[sshd]
port    = ssh, 2000

[sshd-ddos]
port    = ssh, 2000

[dropbear]
port    = ssh, 2000

[selinux-ssh]
port    = ssh, 2000

Štedimo CTRL + O i zatvaramo CTRL + X

Obnavljamo uslugu:

Fedora, RHEL, CentOS:

systemctl ponovno pokrenite fail2ban.service

Debian, Ubuntu:

usluga fail2ban ponovno pokretanje

firewall

Fedora, RHEL, CentOS:

Selinux i Iptables su podrazumevano aktivirani na ovim sistemima i preporučujem da nastavite tim putem. Kako otvoriti port pomoću iptables-a? Pogledajmo kako otvoriti novi port 2000 ssh porta koji smo prethodno promijenili:

Otvoreno:

nano / etc / sysconfig / iptables

i mi modificiramo liniju koja se odnosi na zadani ssh port 22 i ostavimo je ovako:

# -A ULAZ -m stanje - stanje NOVO -m tcp -p tcp --dport 22 -j PRIHVATI -A ULAZ -p tcp -m stanje - stanje NOVO -m tcp --dport 2000 -j PRIHVATI

Štedimo CTRL + O i zatvaramo CTRL + X

Ponovo pokrećemo uslugu:

systemctl restart iptables

Debian, Ubuntu:

U Debianu ili Ubuntuu i izvedenicama imamo UFW zaštitni zid koji će nam olakšati život jer vrlo lako upravlja Netfilterom.

Instalacija:

apt-get install ufw ufw omogući

Da bismo vidjeli status otvorenih portova koje izvršavamo:

status ufw

Da biste otvorili port (u našem primjeru to će biti novi ssh port 2000):

ufw dopustiti 2000

Da odbijete port (u našem slučaju to će biti zadani port 22 od ssh):

ufw deny 22 ufw delete deny 22

I spremni prijatelji. Na ovaj način će zaštititi vaše mašine. Ne zaboravite komentirati i do sljedećeg puta: D.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   grešnik rekao je

    i sistem šifriranja kao što su: https://www.dyne.org/software/tomb/

    1.    grešnik rekao je

      A također i korisnike u kavezu u vašem domu ako se povežu putem tty:
      http://olivier.sessink.nl/jailkit/index.html#intro
      https://operativoslinux.wordpress.com/2015/02/21/enjaular-usuarios-en-linux/ (jednostavan način)

    2.    yukiteru rekao je

      Mnogo je bolje i sigurnije šifrirati čitav sistem datoteka.

    3.    peterczech rekao je

      Za sljedeći vodič o sigurnosti u Linuxu uzet ću ga u obzir: D.

      1.    yukiteru rekao je

        Također bi bilo dobro razgovarati o učvršćivanju jezgre sysctl-om, aktiviranju slučajne hrpe i Exec-Shield-a u jezgru koji je podržavaju, omogućavanju pristupa dmesg-u i / proc datotečnom sistemu, pokretanju demona revizije, omogućavanju TCP zaštite SYN, ograničiti pristup / dev / mem, onemogućiti TCP / IP stek opcije koje mogu biti opasne ili nesigurne u sistemu (preusmjeravanje, eho, usmjeravanje izvora), koristiti pam_cracklib za korisnike da generiraju jake lozinke, važnost upotreba MAC sistema poput Tomoyo, AppArmor i SELinux.

  2.   Hip rekao je

    veoma korisno!!!! upravo ono što sam tražio hvala 🙂

    1.    peterczech rekao je

      Dobrodošao si prijatelju :).

  3.   angel blade rekao je

    Ako koristite apache, ne škodi dodavanje pravila s mod_rewrite kako biste izbjegli botove. Veoma korisno

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

    1.    rolo rekao je

      a za nginx postoji neki trik ili konfiguracija?

  4.   rolo rekao je

    U debianu 8 datoteka / etc / ssh / sshd_config već ima aktivni Protokol 2, a funkcija PermitRootLogin ima opciju bez lozinke (root možete unijeti samo s ključem za provjeru autentičnosti i s računala koje ima privatni ključ)

    stigao je pd u debian 8 firewall koji ga ostavlja malim ufw-om

    1.    dhunter rekao je

      Jeste li vidjeli Ferm? Sviđa mi se kako su pravila definirana.

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

    2.    peterczech rekao je

      Pa, drago mi je što Debian 8 koristi zaštitni zid jer je vrlo jako dobar ...

  5.   dhunter rekao je

    Pazite se fail2ban-a koji napadač proizvodi pakete pomoću ip-a lokalnog računara i čini DOS vrlo jednostavnim.

    1.    hery rekao je

      Čovjek, lokalni IP računara i povratni IP isključeni su s liste Fail2ban.
      Ako ne, mogli bismo imati lažne pozitivne rezultate.

  6.   Jason soto rekao je

    Dobre i vrlo efikasne preporuke ... Naravno, u okruženju servera i ako hostiramo web stranicu, to uključuje dodatne korake .... Trenutno održavamo projekt nazvan JackTheStripper koji nije ništa drugo do bash skripta koja priprema i osigurava server s GNU / Linuxom slijedeći najbolje sigurnosne prakse, za web aplikacije ... projekt možete znati na http://www.jsitech.com/jackthestripper ....

    1.    yukiteru rekao je

      Lijepa skripta iako volim zadržati vrijednost kernel.randomize_va_space = 2

      1.    Jason soto rekao je

        Dobra stvar je što ga prije pokretanja možete malo prilagoditi svojim potrebama ..... A Hello ...

    2.    peterczech rekao je

      Pozdrav, naravno da se moj post bavi osiguranom bazom i svaka se mora zaštititi više ili manje, ovisno o uslugama koje je instalirala u svoje sisteme kao što su LAMP ili FTP, SFTP, BIND i duga itd.:)

      U sljedećem postu o sigurnosti pozabaviću se ovim pitanjima.

      Hvala na pozitivnim povratnim informacijama :).

  7.   sljedeći rekao je

    @petercheco, vaši vodiči su izvrsni, bilo bi dobro vodič za šifriranje za sistem FreeeBSD, ne znam kada ćete raditi drugi dio o FreeBSD-u, o konfiguraciji i prilagodbi radne površine, o zaštitnom zidu, o stvaranju i konfiguriranju bežične mreže.

    1.    peterczech rekao je

      Zdravo prijatelju,
      Pomalo sam zauzet kako pokazuju rijetka objavljivanja, ali to ću imati na umu za sljedeći FreeBSD post.

      Pozdrav :).

  8.   Solrak Rainbow Warrior rekao je

    To se poravnalo u komentarima, nemam pojma o čemu pričate, niko xD
    Odličan članak!

  9.   xunil rekao je

    Ova sigurnosna radnja podrazumijeva ograničavanje opreme na neki način?

    1.    peterczech rekao je

      Ne ... Uobičajena upotreba sistema uopće nije ograničena.

  10.   grešnik rekao je

    Smiješno (tragično) je to što, kao što smo upravo vidjeli kod Lenovo mašina, ako se bios firmver miješa sa zlonamjernim softverom, ništa što radite nije važno.

    1.    peterczech rekao je

      Sve dok koristite Windows koji je unaprijed instalirao proizvođač ...

      1.    grešnik rekao je

        greška: sjetite se da su ga instalirali u bios firmware, to jest, započinje sistemom pri svakom ponovnom pokretanju, prije operativnog sistema, prije demona, prije svega, i ne dopušta vam da učinite ništa protiv njega. napada malo može se učiniti, zbog čega je ideja uefi u principu dobra.

  11.   Pablo rekao je

    Zanimljiv članak, pažljivije ću ga pročitati danas popodne. Hvala ti.

    1.    peterczech rekao je

      Nema na čemu :). Drago mi je.

  12.   Carlos Best rekao je

    Odličan članak, zabavljao sam se čitavo popodne čitajući ga. Cijenimo vrijeme koje vam treba da sve pažljivo objasnite,

    Pozdrav iz Čilea
    Carlos

    1.    peterczech rekao je

      Zdravo Carlos,
      Hvala puno :).

  13.   brion rekao je

    Lenovo mašine, ako se čini da je bios firmver intervenisan sa zlonamernim softverom, uređaji (prenosni računar-stoni računar) proizvođač uvek instaliraju sa Windowsom, s obzirom na gore navedeno ... da li post ... .petercheco?

    1.    yukiteru rekao je

      Čak i bez činjenja svega ovoga, to funkcionira, budući da je malver napravljen za Windows, a ne za Linux.

  14.   SynFlag rekao je

    Mnogo stvari i trikova nedostaje u iptables-ima, poput vrtoglave nmap-e, tako da od svih otvorenih portova, laže da se radi o Windows računalu koji koristi ttl i veličinu prozora, scanlogd, apache mod security, grsec, selinux ili nešto slično. Zamijenite ftp sftf, ograničite broj veza po IP-u na svaku uslugu u X portu kako biste izbjegli da nas prije DDoS-a ostave bez usluga, kao i blokirajte IP-ove koji šalju više od toliko UDP-a na toliko sekundi.

    1.    peterczech rekao je

      Uz primjere koje ste predstavili, novi korisnik bi poludio čitajući ga ... Ne možete sve staviti u jedan post. Upisat ću nekoliko unosa :).

  15.   shini kire rekao je

    U ovom trenutku dobivam grešku u archlinuxu prilikom davanja usluge pokretanja, dajem joj status i ovo izlazi:
    sudo systemctl status fail2ban
    ● fail2ban.service - usluga Fail2Ban
    Učitana: učitana (/usr/lib/systemd/system/fail2ban.service; omogućeno; unaprijed postavljeno dobavljače: onemogućeno)
    Aktivan: neuspjelo (Rezultat: start-limit) od petka 2015-03-20 01:10:01 CLST; Pre 1s
    Dokumenti: man: fail2ban (1)
    Proces: 1695 ExecStart = / usr / bin / fail2ban-client -x start (kod = izašao, status = 255)

    20. mar. 01:10:01 Gundam systemd [1]: Nije uspjelo pokretanje usluge Fail2Ban.
    20. mar. 01:10:01 Gundam systemd [1]: Jedinica fail2ban.service ušla je u neuspješno stanje.
    20. mar. 01:10:01 Gundam systemd [1]: fail2ban.service nije uspio.
    20. mar. 01:10:01 Gundam systemd [1]: zahtjev za pokretanje prebrzo ponovljen za fail2ban… ice
    20. mar. 01:10:01 Gundam systemd [1]: Nije uspjelo pokretanje usluge Fail2Ban.
    20. mar. 01:10:01 Gundam systemd [1]: Jedinica fail2ban.service ušla je u neuspješno stanje.
    20. mar. 01:10:01 Gundam systemd [1]: fail2ban.service nije uspio.
    Savjet: Neke linije su elipsirane, koristite -l za prikaz u cijelosti.
    neka pomoć? D:

    1.    peterczech rekao je

      Zdravo, ako ste omogućili fail2ban sa systemctl enable fail2ban.service i systemctl start fail2ban.service, problem će biti u konfiguraciji zatvora koju ste napravili. Molimo provjerite svoj zatvor i provjerite je li sve u redu.

      Hvala!
      PeterCzech

      1.    maykel franco rekao je

        Prije svega dobar vodič. Mnogo stvari nedostaje, ali usredotočili ste se na osnove.

        shini-kire, provjeri svoj /var/log/fail2ban.log

        Pozdrav.

      2.    peterczech rekao je

        Hvala vam @Maykel Franco :).

  16.   jony127 rekao je

    Dobro,

    fail2ban trebaju li ga instalirati na kućni računar ili je to više za servere ???

    Hvala.

    1.    peterczech rekao je

      Prije za servere, ali ako ste na wifiju koji pristupa više ljudi od vas, dobro je ...

  17.   Rodrigo rekao je

    Pozdrav prijatelju, mislim da je to dobar sigurnosni post u dijelu kratkog požara u distribucijama Gnu / Linux, pišem ovaj komentar jer to radim u distribuciji Ubuntu 14.04 znajući da je to već u 15.04 što se događa je sljedeći problem Unosim nano /etc/fail2ban/jail.local kao root i nemam vizualizaciju u sshd dijelu i spremam. U dijelu zvanom [DEFAULT] mi komentiramo i mijenjamo #bantime = 3600 i
    U [sshd] dio uvodimo enabled = true ostavljajući ga ovako:
    #enabled = istina
    omogućeno = tačno
    Ne čini se da bi sshd mogao biti zato što radim na prethodnoj verziji, hvala