Pagina 1 di 2

Proteggersi dai bruteforce!

Inviato: gio 19 mag 2011, 1:55
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?

Re: Proteggersi dai bruteforce!

Inviato: gio 19 mag 2011, 2:41
da darkstaring
ceeessss son 2 ore cercando su internet e alla fine solo ora ho guardato /etc :).. Sembra che il file sia login.defs

Re: Proteggersi dai bruteforce!

Inviato: gio 19 mag 2011, 10:30
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

Re: Proteggersi dai bruteforce!

Inviato: gio 19 mag 2011, 11:40
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)

Re: Proteggersi dai bruteforce!

Inviato: gio 19 mag 2011, 17:00
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.

Re: Proteggersi dai bruteforce!

Inviato: gio 19 mag 2011, 17:15
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

Re: Proteggersi dai bruteforce!

Inviato: gio 19 mag 2011, 18:24
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

Re: Proteggersi dai bruteforce!

Inviato: gio 19 mag 2011, 20:56
da davide77
Guarda anche questo, non l'ho mai provato ma non sembra male: http://www.sshguard.net/

Re: Proteggersi dai bruteforce!

Inviato: gio 19 mag 2011, 21:48
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).

Re: Proteggersi dai bruteforce!

Inviato: gio 19 mag 2011, 23:55
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.

Re: Proteggersi dai bruteforce!

Inviato: ven 20 mag 2011, 0:20
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?

Re: Proteggersi dai bruteforce!

Inviato: ven 20 mag 2011, 0:22
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

ssh_blacklilst.sh

Inviato: ven 20 mag 2011, 1:08
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.

Re: Proteggersi dai bruteforce!

Inviato: ven 20 mag 2011, 9:54
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)

Re: Proteggersi dai bruteforce!

Inviato: ven 20 mag 2011, 15:43
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à