Proteggersi dai bruteforce!

Postate qui per tutte le discussioni legate alla sicurezza di Linux/Slackware

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Specificare se discussione/suggerimento o richiesta d'aiuto.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
darkstaring
Linux 3.x
Linux 3.x
Messaggi: 657
Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:

Proteggersi dai bruteforce!

Messaggio da darkstaring »

Ciao a tutti,
oggi ho provato con hydra ad "hackerare" il mio sistema.. volevo trovare la password del mio pc
Personalmente uso password che non stanno in un dizionario
ma ho notato che i login falliti non vengono contati e questa è una falla!..

Vorrei bloccare l'accesso per 15 min ogni volta che viene inserita per 3 volte di fila una passwd errata, ma non saprei da dove cominciare :)
spero di esser stato chiaro...

Sapete aiutarmi?

Ah, ho visto che 2 utenti (operator e gdm) avevano bash come shell di login.. li ho settati su /bin/false...

Fatto bene?

Avatar utente
darkstaring
Linux 3.x
Linux 3.x
Messaggi: 657
Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:

Re: Proteggersi dai bruteforce!

Messaggio da darkstaring »

ceeessss son 2 ore cercando su internet e alla fine solo ora ho guardato /etc :).. Sembra che il file sia login.defs

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6629
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: Proteggersi dai bruteforce!

Messaggio da targzeta »

Potresti spiegarti meglio? Io tempo fa ho fatto uno script a questo scopo ma se c'è un modo più semplice tanto meglio.

Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
masalapianta
Iper Master
Iper Master
Messaggi: 2775
Iscritto il: lun 25 lug 2005, 0:00
Nome Cognome: famoso porco
Kernel: uname -r
Desktop: awesome
Distribuzione: Debian
Località: Roma
Contatta:

Re: Proteggersi dai bruteforce!

Messaggio da masalapianta »

vado a memoria ma non mi pare che login.defs ti permetta di impedire il login per n minuti dopo dei tentativi falliti (al massimo ti permette di buttare giu la sessione ssh dopo n tentativi falliti, ma nulla vieta di riprovare a connettersi un nanosecondo dopo); quel che cerchi è pam_tally (la relativa pagina di manuale è chiara ed esaustiva)

Mario Vanoni
Iper Master
Iper Master
Messaggi: 3174
Iscritto il: lun 3 set 2007, 21:20
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey
Località: Cuasso al Monte (VA)

Re: Proteggersi dai bruteforce!

Messaggio da Mario Vanoni »

Un programma efficiente (e cattivo) e`
http://denyhosts.sourceforge.net/

funziona in ditta con accesso internet da oltre 10 anni.
Unico problemino, successo a me:

Il mio provider mi da un IP dinamico, a scelta sua,
sgarro una volta la passwd, denyhosts blocca l'IP per sempre,
unicamente il sysadm in loco puo` cancellarlo.

Spegnere/riaccendere il modem per avere un nuovo IP.

notsafe
Linux 2.x
Linux 2.x
Messaggi: 451
Iscritto il: mar 21 mar 2006, 11:00

Re: Proteggersi dai bruteforce!

Messaggio da notsafe »

Mario Vanoni ha scritto: sgarro una volta la passwd, denyhosts blocca l'IP per sempre,
unicamente il sysadm in loco puo` cancellarlo.
http://denyhosts.sourceforge.net/faq.html#2_20

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6629
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: Proteggersi dai bruteforce!

Messaggio da targzeta »

What is DenyHosts?

DenyHosts is a Python script that analyzes the sshd server log messages to determine what hosts are attempting to hack into your system. It also determines what user accounts are being targeted. It keeps track of the frequency of attempts from each host.

Additionally, upon discovering a repeated attack host, the /etc/hosts.deny file is updated to prevent future break-in attempts from that host.
Questo è esattamente quello che ho fatto io, ma in bash. C'è da dire, però, che il file hosts.deny viene utilizzato da tcpd, giusto? Cioé, se io ho un server ssh "puro" in ascolto sulla 22 allora questo meccanismo non funziona. La porta 22 dovrebbe essere monitorata da inted o direttamente da tcpd, corretto?

Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
davide77
Linux 2.x
Linux 2.x
Messaggi: 359
Iscritto il: mar 26 apr 2005, 0:00
Desktop: xfce
Distribuzione: XUbuntu
Località: Bergamo

Re: Proteggersi dai bruteforce!

Messaggio da davide77 »

Guarda anche questo, non l'ho mai provato ma non sembra male: http://www.sshguard.net/

notsafe
Linux 2.x
Linux 2.x
Messaggi: 451
Iscritto il: mar 21 mar 2006, 11:00

Re: Proteggersi dai bruteforce!

Messaggio da notsafe »

spina ha scritto:
C'è da dire, però, che il file hosts.deny viene utilizzato da tcpd, giusto? Cioé, se io ho un server ssh "puro" in ascolto sulla 22 allora questo meccanismo non funziona. La porta 22 dovrebbe essere monitorata da inted o direttamente da tcpd, corretto?
no.I file "hosts_access" sono accessibili anche da qualsiasi programma con supporto della libreria libwrap (tcp wrapper):uno di questi è proprio sshd (--with-tcp-wrappers).

Meskalamdug
Iper Master
Iper Master
Messaggi: 3961
Iscritto il: ven 14 mag 2004, 0:00

Re: Proteggersi dai bruteforce!

Messaggio da Meskalamdug »

http://www.pawelzorzan.eu/infolinux/27- ... force.html

Io personalmente adotto questa politica di sicurezza.
Restringo gli ip che possono accedere a ssh
per sicurezza uso anche tcpwrapper
cambio porta a ssh.

Avatar utente
darkstaring
Linux 3.x
Linux 3.x
Messaggi: 657
Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:

Re: Proteggersi dai bruteforce!

Messaggio da darkstaring »

Grazie a tutti :)
masalapianta ha scritto: quel che cerchi è pam_tally (la relativa pagina di manuale è chiara ed esaustiva)
Ho installato pam_tally,
E' questa la pagina da seguire?
http://www.kernel.org/pub/linux/libs/pa ... tally.html
Perchè non è chiarissima come dici tu :)
O meglio, non è chiaro dove e come mettere i dati
In rete ho trovato queste configurazioni:

/etc/pam.d/login:

Codice: Seleziona tutto

    auth         required    pam_tally.so    onerr=fail unlock_time=20       deny=5 per_user
    account     required    pam_tally.so     reset
O questa:

Codice: Seleziona tutto

auth       requisite  pam_securetty.so
auth       required   pam_nologin.so
auth       required   pam_env.so
auth       required   pam_unix.so nullok
account    required   pam_unix.so
session    required   pam_unix.so
session    optional   pam_lastlog.so
session    optional   pam_motd.so
session    optional   pam_mail.so standard noenv
password   required   pam_unix.so nullok obscure min=4 max=8
Nel primo esempio, la voce unlock_time=20 indica la disattivazione per 20 sec o 20 min?
Perchè la guida uffic. diceva secondi mentre la pagina da dove lo preso diceva minuti..

La seconda config è meglio della prima?
Una configurazione ideale?

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6629
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: Proteggersi dai bruteforce!

Messaggio da targzeta »

Ma siamo sicuri che pam_tally sia eseguibile sulla Slackware? Dal nome sembrerebbe che necessita anche di PAM, che se non sbaglio Slackware non usa ancora. Però oggi mi sono già sbagliato, come dimostrato da notsafe, che ringrazio ;).

Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6629
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

ssh_blacklilst.sh

Messaggio da targzeta »

Vi allego lo script che avevo fatto io l'anno scorso. Basta eseguirlo, ma ovviamente l'utente deve avere i diritti per scrivere nel file /etc/hosts.deny (potete provarlo come utente qualunque, semplicemente modificando il file in cui inserire gli IP). Lo script è molto banale (93 righe tra commenti e configurazione) ed ha almeno un punto debole che, se eseguito su un server che ha frequenti accessi ssh (o tantissimi tentativi di bruteforce) lo rende vano. Attualmente funziona bene su di un server in cui gira ed ha bloccato 717 IP.

Note:
  • Così com'è configurato blocca un IP che sbaglia password per più di 6 volte in 5 minuti.
  • Un'IP bloccato non viene più ripristinato, a meno di non eliminarlo fisicamente dal file /etc/hosts.deny (come diceva Mario).
  • Per come l'avevo pensato io, il server ssh viene eseguito da inetd e tcpd. Però notsafe ci ha mostrato che forse potrebbe funzionare direttamente anche con sshd. C'è da dire che nel mio manuale di sshd, tra l'elenco dei file che usa c'è anche /etc/hosts.deny, e senza bisogno di configurazione.
  • I tentativi di accesso devono avvenire tutti di seguito. Questo vuol dire che se IP_1 sbaglia pass e poi IP_2 tenta (o effettua) una connessione, allora il tentativo fallito di IP_1 viene dimenticato.
Tutto lo script si regge sul fatto che chi prova un bruteforce generalmente fa un sacco di tentativi in un breve tempo. Si può anche mettere un array di IP in modo da risolvere il problema citato all'ultimo punto, ma per quello che ne devo fare io, va bene.

Emanuele

P.S. Prima di allegarlo ho fatto alcune modifiche. Commenti e configurazione (io uso un altro file), quindi se dovesse dare problemi avvisatemi pure.
Allegati
ssh_blacklist.sh
Blocca i tentativi di bruteforce sui server ssh.
(3.43 KiB) Scaricato 232 volte
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

notsafe
Linux 2.x
Linux 2.x
Messaggi: 451
Iscritto il: mar 21 mar 2006, 11:00

Re: Proteggersi dai bruteforce!

Messaggio da notsafe »

comunque onestamente penso sia meglio usare un DROP in iptables che tcpwrapper: più malleabile (anche "on the fly" ;)) e meno "oneroso" (la sessione TCP non viene elaborata dalla macchina)

Avatar utente
masalapianta
Iper Master
Iper Master
Messaggi: 2775
Iscritto il: lun 25 lug 2005, 0:00
Nome Cognome: famoso porco
Kernel: uname -r
Desktop: awesome
Distribuzione: Debian
Località: Roma
Contatta:

Re: Proteggersi dai bruteforce!

Messaggio da masalapianta »

darkstaring ha scritto: E' questa la pagina da seguire?
http://www.kernel.org/pub/linux/libs/pa ... tally.html
Perchè non è chiarissima come dici tu :)
quale parte specifica non ti è chiara?
Nel primo esempio, la voce unlock_time=20 indica la disattivazione per 20 sec o 20 min?
Perchè la guida uffic. diceva secondi mentre la pagina da dove lo preso diceva minuti..
sono secondi, come specifica la pagina di manuale
La seconda config è meglio della prima?
che intendi con "meglio"? magari dovresti prima capire come funziona pam_tally e, dopo aver letto la pagina di manuale, fare una tua configurazione in base alle tue esigenze, anzichè cercare di scopiazzare roba fatta da altri, senza capirne il senso.
Una configurazione ideale?
quella che soddisfa le tue necessità

Rispondi