lunedì 23 giugno 2008

ssh brute force

Prima o poi me lo aspettavo, e alla fine e' venuto anche qui:
grizzly@ronny:~$ tail -n 5 /var/log/auth.log
Jun 23 20:59:30 herbert sshd[18828]: Invalid user leonardo from ###.##.150.91
Jun 23 20:59:34 herbert sshd[18832]: Invalid user notes from ###.##.150.91
Jun 23 20:59:38 herbert sshd[18836]: Invalid user ftpguest from ###.##.150.91
Jun 23 20:59:41 herbert sshd[18840]: Invalid user nagios from ###.##.150.91
Jun 23 20:59:46 herbert sshd[18842]: Invalid user hacker from ###.##.150.91
grizzly@ronny:~$
(Fantastico il tentativo di entrare come utente "hacker". Peccato che l'autenticazione con password non vada e riconosca solo i certificati...)
Che dite? Io mi sono limitato ad un bel ssh-blacklist, dato che non so se e quanto ho voglia di giocare in altro modo, ma quanto prima attivo la sola vpn e, probabilmente un bel port-knocking per le emergenze.

9 commenti:

Fabrizio M. ha detto...

Dunque, di solito lo standard è:

-cambiare la porta di ssh
-disabilitare il login da root
-usare i certificati per autenticarsi al posto di userid/password

Fabrizio M. ha detto...

Dimenticavo, se vuoi fare una cosa carina tunnellizzi tutti i servizi esposti sullo stesso server dove hai ssh (si fa in un attimo)

Grizzly ha detto...

-cambiare la porta di ssh
Sto seguendo un thread in proposito su icols, si usa un escamotage in tal senso, perche' limitarsi a cambiare la porta rende comunque esposti al portscan.

-disabilitare il login da root
-usare i certificati per autenticarsi al posto di userid/password

Al mio paese si usa anche leggere gli articoli C-: quando uno li scrive: Peccato che l'autenticazione con password non vada e riconosca solo i certificati...
E riguardo all'utente root, mi pare che ormai sappiano cani, porci ed orsacchiotti che io uso ubuntu ((-:

se vuoi fare una cosa carina tunnellizzi tutti i servizi esposti sullo stesso server dove hai ssh
Che senso ha? La macchina esposta entro settembre diventa gateway vpn: solo porta 80 e ipsec. E per le emergenze piuttosto che smandruppare un macello con tunnel sottoponibili comunque ad attacchi DoS mi realizzo un buon port-knock per aprire la porta ssh a tempo determinato (-:

Fabrizio M. ha detto...

Ops, scusa per gli errori di distrazione, quando commento la sera scrivo perlopiu' cazzate :-)

Ma usi ubuntu anche sui server? Non credo sia esattamente una scelta azzeccata (anche se indubbiamente comodo), specie visti gli ultimi bugfix gravissimi che hanno coinvolto diversi pacchetti debian.

Per quanto riguarda i tunnel li puoi fare anche usando il port knocking, ma tutto dipende ovviamente dal livello di sicurezza che vuoi raggiungere.

Ovvio che non lo fai se vuoi esporre solo la 80 :-)

Grizzly ha detto...

Mah, a parte l'ultima storia che ha riguardato ssl, e che mi e' caduta tra capo e collo giustappunto dopo aver preparato il nuovo server e configurato millemila servizi basati su certificati ssl (ragione per cui ho gettato la spugna, rinviato l'aggiornamento del server e approfittato per studiare un po' di cosucce carine), non mi pare che ci sia molto di nuovo sotto ai ponti.
Molte vulnerabilita' sono locali, e la macchina ha in esposizione solo web ed ssh... anzi con l'aggiornamento solo web (ed in ssh per ora ci entro solo io...); la piattaforma e' apache+php senza db (anzi, mo' mi studio nel frattempo app-armor e mi realizzo un qualche plugin per dokuwiki che mi faccia qualche bel giochino con eventuali inutili tentativi di sql-injection sul webserver (pensavo che un bel redirect 301 su 127.0.0.1 potrebbe essere utile), per il resto, l'ultima arma di difesa (contro eventuali smurf, ad esempio) restano l'ip dinamico e un buon balancer per le richieste web. Anche se non so quanto possa essere utile infilare in blacklist interi domini IP sulla porta 80...

La fuori e' una guerra, e siamo tutti in battaglia C-:

Fabrizio ha detto...

Eventualmente puoi pensare ad un IDS (snort ad esempio).

Io resto comunque dell'opinione che ubuntu sia un ottima distro desktop, ed un pessima soluzione server.

Poi dipende tutto dall'utilizzo (come sempre), un server LAMP si puo' fare con qualunque OS senza particolari problemi.

Grizzly ha detto...

Mah, la mia in effetti e' una piattaforma LA(p)P [Linux Apache(+proxypass) PHP], dato che il server fa da gateway per l'ufficio, ma le uniche due cose esposte sono la porta 80 (con il proxypass di apache per le altre macchine, vedi ad esempio il nodo seth per la videosorveglianza...) e al momento la 22.

Successivamente, con l'aggiornamento dovrei lasciare solo apache [sempre con php e proxypass, ma naturalmente *SENZA* sql di sorta (dokuwiki si basa su flatfile, e mi va bene cosi', dato che il db sql sta su un altra macchina, dietro un corposo firewall, per gestirmi ben altre cose fra cui zoneminder)].
Devo implementare openvpn, ma quando ho finito di girare trucchi ed artifici dato che il 99,9999999999999999% della documentazione sulle vpn parla di come implementare il perfetto contrario di quello che interessa me (il server vpn e' su un ip dinamico ma con dominio di II livello registrato, i client sono singole macchine su ip statico... per lo piu' $ventanasXP), e poi ssh decido se farlo andare direttamente solo via vpn o anche facendo un bel port-knocking [da quello che ho visto, e' *un* *casino* *immondo*, e a me queste cose m'intrippano, gu ((-: ].
Poi probabilmente approfittando dell'eventualita' di mettere una seconda linea adsl, potrei anche gestire il dominio con un simpatico round-robin fra un IP e l'altro.
Ma c'e' tutta l'estate per cucinarsi in sala macchine ((-: e devo prima finire di studiare anche un po' di cosucce di altro genere.

PS: qualcuno mi sa consigliare una guida *intermedia* (ossia non per principianti, ma manco per plurilaureati in ingegneria nucleare) su iptables?

PS2: qualcun altro, invece, *PERCASO* sa dirmi come usare ldap per l'autenticazione di apache senza passare da pam? E' possibile? Oppure devo calare la testa e seguire qualche guida specifica? Thank you very grazie! ((-:

Fabrizio M. ha detto...

Riguardo iptables di guide ce ne sono molte, più o meno difficili/complete. Però io vorrei consigliarti questo http://easyfwgen.morizot.net/gen/

e questo

http://www.mista.nu/iptables/

Se non devi fare cose molto complesse ed hai fretta sono ottimi, anche perchè poi te li sistemi a puntino a manina (abbastanza intuitivamente)

Grizzly ha detto...

No, grazie. Mi serve una guida che mi spieghi (magari con esempi) regole, errori, ordine da seguire, trucchi e consigli sulla configurazione di piu' gruppi di regole. Front-End ce n'e' una peste immensa senza bisogno di correre in giro.

Ad esempio a seguire un consiglio di per la configurazione di sshblacklist sono riuscito a tirare in drop tutte le richieste sul webserver per un errore di battitura (di chi ha fatto la guida, GRRRRRR), e ci ho messo un po' a capirlo, dato che dalla LAN il webserver andava che e' un piacere...