Originariamente inviato da maurizio54
Ulteriori informazioni arrivate oggi:
[..]
Tale Ole H. Nielsen dell'universita` di Lyngby ti sta informando che dal tuo server e` partito un portscan verso la loro rete, dopodiche` sempre dal tuo server e` partito un tentativo di connessione via ssh. Qualcuno ti ha violato il server e lo sta usando per scopi illeciti. Comincerei col scrivere a Ole.H.Nielsen@fysik.dtu.dk per spiegargli che stai indagando sulla situazione, tanto per arginare le sue segnalazioni al provider.
Riesci a dirmi cosa sta impegnando la banda e come fai a sapere quali sono i servizi che girano sulla macchina?
Cosa stia impegnando la banda non lo so, potresti dare un'occhiata tu stesso con iptraf. Visto l'impegno e` probabile che la tua macchina sia al momento utilizzata per ospitare torrent o va` a sapere cos'altro, non mi stupirei se il suo indirizzo ip fosse incluso in qualche lista di tracker su canali illeciti. I servizi che girano sul tuo server li ho individuati con un semplice portscan [hai pubblicato il tuo indirizzo in chiaro]:
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
80/tcp open http
106/tcp open pop3pw
110/tcp open pop3
111/tcp open rpcbind
135/tcp filtered msrpc
137/tcp filtered netbios-ns
138/tcp filtered netbios-dgm
139/tcp filtered netbios-ssn
143/tcp open imap
443/tcp open https
445/tcp filtered microsoft-ds
465/tcp open smtps
993/tcp open imaps
995/tcp open pop3s
1004/tcp open unknown
3306/tcp open mysql
5900/tcp open vnc
8443/tcp open https-alt
10000/tcp open snet-sensor-mgmt [questo e` webmin]
Per quanto riguarda mysql, plesk e vnc mi servono per poter operare sulla macchina da remoto.Hai qualche consiglio da darmi per rendere più sicuro il server continuando a poterlo controllare da remoto? Grazie
In via generale, su una macchina dovrebbero essere costantemente attivi solo i servizi strettamente necessari al suo funzionamento: plesk, vnc e webmin li dovresti avviare solo alla bisogna. Non capisco la necessita` di far rispondere mysql dall'esterno, a meno di casi particolarissimi il database dovrebbe essere raggiungibile solo da localhost. Inoltre via ssh non dovrebbe essere mai permesso il collegamento diretto via root ma solo tramite un utente fittizio dal quale poi eventualmente ottenere i privilegi di root con su una volta loggati.
Probabilmente ti e` stato bucato l'account con un bruteforce via ssh, dopodiche` giu` di rootkit.
Io solitamente, quando non dispongo di un collegamento vpn, configuro sshd per poter accettare login solo da un utente particolare, la cui shell e` la login di root: in questo modo quando mi collego alla macchina mi vengono richieste DUE password prima di poter effettivamente accedere alla shell vera e propria, e le probabilita` di successo tramite un bruteforce si riducono drasticamente: l'attaccante deve scovare non solo la password di root ma ancora prima il nome utente corretto con cui loggarsi prima di loggarsi con root, e ovviamente anche la sua password. Ma anche scovando questa, il suo bel programmino di bruteforce verra` ingannato dalla seconda richiesta di password, che non sara` piu` quella scovata ma una totalmente diversa [quella di root]. Di seguito un esempio, con il comando vipw editiamo /etc/passwd per sostituire /bin/bash con /bin/su:
codice:
MioUtenteRemoto:x:1056:1056:,,,:/home/MioUtenteRemoto:/bin/su
E un esempio di /etc/ssh/sshd_config [per debian, non uso centos e non so quale sia la posizione del file di config in quella distro]:
codice:
# Facciamo rispondere ssh su una porta non standard:
Port 62666
# Impediamo l'accesso diretto a root:
PermitRootLogin no
# Permettiamo l'accesso solo a un particolare utente con login >14 caratteri:
AllowUsers MioUtenteRemoto
E questo il risultato [nota che ANCHE le password dovrebbero essere >14 caratteri, e contenenti caratteri maiuscoli/minuscoli, numeri, ecc.]:
codice:
ssh -l MioUtenteRemoto -p 62666 mioserver.it
Password: ***************
Password: ***************
root@mioserver: /home/MioUtenteRemoto#
Inoltre bisognerebbe lavorare un po' con iptables per impedire connessioni dal server verso l'esterno salvo quelle necessarie ai servizi offerti.
Inizierei col fermare tutti i servizi all'infuori di sshd.
Posta il risultato di nmap -vv localhost, tanto per verificare se sulla macchina sta girando qualche servizio che dall'esterno non riesco a individuare.