Maksimer sikkerheten på GNU / Linux

Hei venner fra DesdeLinux, lo prometido es deuda y aquí va un post de hvordan du maksimerer beskyttelsen av Linux-systemer og hold deg slik sikker fra inntrengere, i tillegg til å beskytte informasjonen på serverne, PC-ene eller bærbare datamaskiner !!!!

Comenzando

Fail2ban: er et program skrevet i Python for å forhindre inntrenging i et system, som virker ved å straffe eller blokkere eksterne tilkoblinger som forsøker tilgang til brutal kraft.

Installasjon:

Fedora, RHEL, CentOS:

yum install fail2ban

Debian, Ubuntu:

apt-get install fail2ban

Omgivelser:

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

I delen kalt [DEFAULT] fjerner vi kommentar og endrer #bantime = 3600 og lar den være slik:

#bantime = 3600 bantime = 604800

I [sshd] -delen introduserer vi aktivert = sann og lar det være slik:

#enabled = true enabled = true

Vi sparer med CTRL + O og lukker med CTRL + X

Vi starter tjenesten:

Fedora, RHEL, CentOS:

systemctl aktiver fail2ban.service systemctl start fail2ban.service

Debian, Ubuntu:

tjenesten fail2ban start

Nekt root-tilgang ved hjelp av ssh:

For å beskytte maskinen vår, skal vi nekte ssh gjennom rotbrukeren. For å gjøre dette redigerer vi filen / etc / ssh / sshd_config som følger:

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

Vi kommenterer og forandrer oss

#Protocol 2 Protocol 2

Vi kommenterer og forandrer oss

#PermitRootLogin ja PermitRootLogin nei

Vi sparer med CTRL + O og lukker med CTRL + X

Vi starter tjenesten:

Fedora, RHEL, CentOS:

systemctl aktiver sshd.service systemctl start sshd.service

Debian, Ubuntu:

service sshd start

Nekt tilgang til en ssh-server ved hjelp av passord og tillat ssh bare med RSA-nøkler

Hvis vi vil koble til PC1 til Server1, er det første vi må gjøre å generere nøkkelen på PC1. Med vår bruker og uten root på PC1 kjører vi:

ssh-keygen -t rsa -b 8192 (dette genererer en mer enn sikker nøkkel siden nøkler fra 1024 til 2048 vanligvis brukes)

Når vi har passordet vårt, laster vi det opp til Server1:

ssh-copy-id bruker @ server_ip

Når dette er gjort, skal vi koble til Server1 og endre nano / etc / ssh / sshd_config-filen med rottillatelser:

ssh bruker @ Server1 nano / etc / ssh / sshd_config

Vi endrer linjen som sier #PasswordAuthentication ja til dette:

#PasswordAuthentication ja
PassordGodkjenningsnr

Vi sparer med CTRL + O og lukker med CTRL + X

Vi starter ssh-tjenesten på nytt:

Fedora, RHEL, CentOS:

systemctl start sshd.service på nytt

Debian, Ubuntu:

service sshd omstart

Endre ssh lytteport

Igjen redigerer vi / etc / ssh / sshd_config, og i den delen som refererer til porten, lar vi det være slik:

# Port 22 Port 2000 (eller et hvilket som helst annet tall som er større enn 2000. I eksemplene våre vil vi bruke dette.)

Vi sparer med CTRL + O og lukker med CTRL + X

Vi starter ssh-tjenesten på nytt:

Fedora, RHEL, CentOS:

systemctl start sshd.service på nytt

Debian, Ubuntu:

service sshd omstart

Hvis de bruker fail2ban, er det nødvendig å endre konfigurasjonen angående sshd-justering av porten.

nano /etc/fail2ban/jail.local

[sshd]
port    = ssh, 2000

[sshd-ddos]
port    = ssh, 2000

[dropbear]
port    = ssh, 2000

[selinux-ssh]
port    = ssh, 2000

Vi sparer med CTRL + O og lukker med CTRL + X

Vi fornyer tjenesten:

Fedora, RHEL, CentOS:

systemctl start fail2ban.service på nytt

Debian, Ubuntu:

tjenesten fail2ban omstart

brannmur

Fedora, RHEL, CentOS:

Selinux og Iptables er aktivert som standard på disse systemene, og jeg anbefaler at du fortsetter på denne måten. Hvordan åpne en port med iptables? La oss se hvordan du åpner den nye porten 2000 i ssh-porten som vi endret tidligere:

Åpen:

nano / etc / sysconfig / iptables

og vi endrer linjen som refererer til standard ssh-port 22 og lar den være slik:

# -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

Vi sparer med CTRL + O og lukker med CTRL + X

Vi starter tjenesten på nytt:

systemctl start iptables på nytt

Debian, Ubuntu:

I Debian eller Ubuntu og derivater har vi en UFW-brannmur som vil gjøre livet enkelt for oss siden det administrerer Netfilter veldig enkelt.

Installasjon:

apt-get install ufw ufw aktivere

For å se statusen til åpne porter vi utfører:

ufw-status

Å åpne en port (i vårt eksempel vil det være den nye ssh-porten 2000):

ufw tillate 2000

Å nekte en port (i vårt tilfelle vil det være standardport 22 på ssh):

ufw nekte 22 ufw slette nekte 22

Og klare venner. På denne måten vil de holde maskinene dine trygge. Ikke glem å kommentere og til neste gang: D.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   syndemann sa

    og et krypteringssystem som: https://www.dyne.org/software/tomb/

    1.    syndemann sa

      Og bur brukere i hjemmet ditt hvis de kobler seg sammen med tty:
      http://olivier.sessink.nl/jailkit/index.html#intro
      https://operativoslinux.wordpress.com/2015/02/21/enjaular-usuarios-en-linux/ (den enkle måten)

    2.    yukiteru sa

      Det er mye bedre og sikrere å kryptere hele filsystemet.

    3.    peterczech sa

      For følgende veiledning angående sikkerhet i Linux vil jeg ta den i betraktning: D.

      1.    yukiteru sa

        Det ville også være bra å snakke om herding av kjernen ved hjelp av sysctl, aktivering av den tilfeldige dyngen og Exec-Shield i kjernen som støtter den, muliggjør tilgang til dmesg og / proc-filsystemet, kjører en revisjonsdemon, muliggjør TCP-beskyttelse SYN , begrense tilgangen til / dev / mem, deaktivere TCP / IP-stabelalternativer som kan være farlige eller usikre systemet (omdirigering, ekko, kildesending), bruk pam_cracklib for brukere å generere sterke passord, viktigheten av bruk av MAC-system som Tomoyo , AppArmor og SELinux.

  2.   kuk sa

    veldig nyttig!!!! akkurat det jeg lette etter takk 🙂

    1.    peterczech sa

      Du er velkommen venn :).

  3.   engelblad sa

    Hvis du bruker apache, skader det ikke å legge til regler med mod_rewrite for å unngå roboter. Veldig nyttig

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

    1.    rolo sa

      og for nginx er det noe triks eller konfigurasjon?

  4.   rolo sa

    I debian 8 har filen / etc / ssh / sshd_config allerede protokoll 2 aktiv, og PermitRootLogin-funksjonen er med alternativet uten passord (du kan bare angi root med autentiseringsnøkkelen og fra datamaskinen som har den private nøkkelen)

    pd i debian 8 firewalld har ankommet som lar den være liten til ufw

    1.    dhunter sa

      Har du sett ferm? Jeg liker hvordan reglene er definert.

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

    2.    peterczech sa

      Vel, jeg er glad for at Debian 8 bruker firewallld siden det er veldig veldig veldig bra ...

  5.   dhunter sa

    Vær oppmerksom på fail2ban at en angriper produserer pakker med IP-en til den lokale pc-en og gjør DOS veldig enkelt.

    1.    Hery sa

      Mann, den lokale PC-en og loopback-en er ekskludert fra Fail2ban-listen.
      Hvis ikke, kan vi ha falske positive.

  6.   Jason soto sa

    Gode ​​og veldig effektive anbefalinger ... Selvfølgelig, i servermiljøet, og hvis vi er vert for et nettsted, innebærer det flere trinn ... Vi har for tiden et prosjekt kalt JackTheStripper som ikke er noe annet enn et bash-skript som forbereder og sikrer en server med GNU / Linux i henhold til de beste sikkerhetspraksis for webapplikasjoner ... du kan kjenne prosjektet på http://www.jsitech.com/jackthestripper ....

    1.    yukiteru sa

      Fint skript, selv om jeg liker å beholde verdien av kernel.randomize_va_space = 2

      1.    Jason soto sa

        Det gode er at før du kjører den, kan du endre den litt etter dine behov ..... A Hei ...

    2.    peterczech sa

      Hei, selvfølgelig handler innlegget mitt om en grunnleggende forsikring, og hver og en må beskytte seg mer eller mindre avhengig av tjenestene den har installert i systemene sine, slik som LAMP eller FTP, SFTP, BIND og en lang osv. :) ...

      I neste innlegg om sikkerhet vil jeg ta opp disse problemene.

      Takk for positive tilbakemeldinger :).

  7.   nex sa

    @petercheco, guidene dine er gode, det ville være bra en krypteringsguide for FreeeBSD-systemet, jeg vet ikke når du skal gjøre den andre delen om FreeBSD, om konfigurering og tilpasning av skrivebord, om brannmur, om å lage og konfigurere et trådløst nettverk.

    1.    peterczech sa

      Hei venn,
      Jeg er litt opptatt som sjelden det er å legge ut, men jeg vil huske det for neste FreeBSD-innlegg.

      En hilsen :).

  8.   Solrak Rainbow Warrior sa

    Som nivået i kommentarene, aner jeg ikke hva du snakker om, ingen xD
    Stor artikkel!

  9.   xunil sa

    Denne sikkerhetsaksjonen innebærer å begrense utstyret på en eller annen måte?

    1.    peterczech sa

      Nei ... Normal bruk av systemet er ikke begrenset i det hele tatt.

  10.   syndemann sa

    Og den morsomme (tragiske) tingen er at, som vi nettopp så med Lenovo-maskiner, er det ingenting du gjør noe hvis det blir manipulert med bio-firmware.

    1.    peterczech sa

      Så lenge du bruker Windows forhåndsinstallert av produsenten ...

      1.    syndemann sa

        feil: husk at de installerte det i bios firmware, det vil si at det starter med systemet i hver omstart, før operativsystemet, før demonene, først og fremst, og det lar deg ikke gjøre noe mot det. angriper lite kan gjøres, så ideen om uefi er i prinsippet god.

  11.   Pablo sa

    Interessant artikkel, jeg vil lese den mer nøye i ettermiddag. Takk skal du ha.

    1.    peterczech sa

      Værsågod :). Jeg er glad.

  12.   Carlos Best sa

    Utmerket artikkel, jeg underholdt meg hele ettermiddagen mens jeg leste den. Tiden du tar for å forklare alt veldig nøye er verdsatt,

    Hilsener fra Chile
    Carlos

    1.    peterczech sa

      Hola Carlos,
      Takk så mye :).

  13.   brion sa

    Lenovo-maskinene, hvis bio-firmware ser ut til å være intervenert med skadelig programvare, kommer maskinene (bærbar PC-stasjonær datamaskin) alltid installert med Windows av produsenten, med tanke på det ovennevnte ... gjør innlegget ... .petercheco?

    1.    yukiteru sa

      Selv uten å gjøre alt dette fungerer det, siden skadelig programvare er laget for Windows, ikke Linux.

  14.   SynFlag sa

    Det er mange ting og triks som mangler fra iptables, for eksempel svimmel nmap, slik at av alle åpne porter, lyver det at det er en Windows-pc som bruker ttl og vindusstørrelse, scanlogd, apache mod-sikkerhet, grsec, selinux eller noe sånt . Erstatt ftp med sftp, begrens antall tilkoblinger per IP til hver tjeneste i X-port for å unngå at de før en DDoS forlater oss uten tjenester, samt blokker IP-ene som sender mer enn så mange UDP i så mange sekunder.

    1.    peterczech sa

      Med eksemplene du presenterte, ville en ny bruker bli gal og lese den ... Du kan ikke sette alt i ett innlegg. Jeg kommer til å legge inn flere bidrag :).

  15.   shini kire sa

    Jeg får en feil i archlinux på dette tidspunktet når jeg gir starttjenesten, jeg gir den status og dette kommer ut:
    sudo systemctl status fail2ban
    ● fail2ban.service - Fail2Ban Service
    Lastet: lastet (/usr/lib/systemd/system/fail2ban.service; aktivert; leverandør forhåndsinnstilling: deaktivert)
    Aktiv: mislyktes (Resultat: startgrense) siden fre 2015-03-20 01:10:01 CLST; For 1s siden
    Dokumenter: mann: fail2ban (1)
    Prosess: 1695 ExecStart = / usr / bin / fail2ban-client -x start (kode = avsluttet, status = 255)

    20. mars 01:10:01 Gundam systemd [1]: Kunne ikke starte Fail2Ban Service.
    20. mars 01:10:01 Gundam systemd [1]: Enhet fail2ban.service inn i mislykket tilstand.
    20. mars 01:10:01 Gundam systemd [1]: fail2ban.service mislyktes.
    20. mars 01:10:01 Gundam systemd [1]: startforespørsel gjentas for raskt for fail2ban ... is
    20. mars 01:10:01 Gundam systemd [1]: Kunne ikke starte Fail2Ban Service.
    20. mars 01:10:01 Gundam systemd [1]: Enhet fail2ban.service inn i mislykket tilstand.
    20. mars 01:10:01 Gundam systemd [1]: fail2ban.service mislyktes.
    Tips: Noen linjer var ellipsiserte, bruk -l til å vises i sin helhet.
    litt hjelp? D:

    1.    peterczech sa

      Hei, hvis du aktiverte fail2ban med systemctl aktiver fail2ban.service og systemctl start fail2ban.service, vil problemet være i fengselskonfigurasjonen du har laget. Kontroller fengselet og bekreft at alt er i orden.

      En hilsen
      Peter tsjekkisk

      1.    maykel franco sa

        Først og fremst god opplæring. Mange ting mangler, men du har fokusert på det grunnleggende.

        shini-kire, sjekk /var/log/fail2ban.log

        Hilsener.

      2.    peterczech sa

        Takk @Maykel Franco :).

  16.   jony127 sa

    bra,

    fail2ban skal de installere den på en hjemme-pc eller er det mer for servere ???

    Takk.

    1.    peterczech sa

      Snarere for serverne, men hvis du er på en wifi tilgjengelig av flere enn deg, er det bra ...

  17.   Rodrigo sa

    Hei venn, jeg synes det er et godt sikkerhetsinnlegg i den delen av en kort brann i Gnu / Linux-distribusjonene. Jeg skriver denne kommentaren fordi jeg gjør det i en Ubuntu 14.04 distribusjon og vet at den allerede er i 15.04, hva skjer er det følgende problemet jeg skriver inn nano /etc/fail2ban/jail.local som root, og jeg har ingen visualisering i sshd-delen og lagrer I den delen som heter [DEFAULT], kommenterer og endrer vi #bantime = 3600 og
    I [sshd] -delen introduserer vi aktivert = sann og lar det være slik:
    # aktivert = sant
    aktivert = sann
    Det ser ikke ut som av sshd som kan være fordi jeg jobber med den forrige versjonen takk