Pagina 2 di 2

Inviato: dom set 16, 2007 12:20
da albatros
Beh, polemica sterile, così la disabilitazione funziona.............

Non è una polemica sterile: tu ti fidi di rkhunter, ma sei sicuro che sia bug-free? Ok, nessun programma (o quasi) lo è, nemmeno sshd, ma perché credere a rkhunter?
In linea di principio ha ragione cacao74 a fidarsi di più del manuale di sshd, in ogni caso non sarebbe una polemica inutile, perché ci sarebbe un errore o nel manuale o, peggio ancora, nell'implementazione di sshd, da segnalare agli sviluppatori.
In ogni caso la soluzione migliore è provare (It may be so, there is no arguing against facts and experiments, disse il saggio I. Newton): volevo farlo io, ma vedo che l'ha già fatto anycolouryoulike da The dark side of the Moon ( :thumbright: ).
Ho poco tempo a disposizione, ma mi son letto la parte di rkhunter dove fa il test di sshd: nel tuo caso dovrebbe mettere un avviso solo nel file di log, solitamente disabilitato, però stampa a schermo il messaggio scorretto per cui cui a root non è permesso il login.
Non ho avuto modo di controllare bene, potrei anche sbagliarmi, ma secondo me il baco è in rkhunter.
Due commenti sullo script supponendo che in sshd_config ci sia la riga:
#PermitRootLogin no

I commenti miei li ho racchiusi fra asterischi ****

Ho cercato con less la stringa PermitRootLogin e sono arrivato alla riga 4939, io inizio a commentare dalla riga 4930 (uso rkhunter 1.2.9):

displaytext " Searching for sshd_config... "
SSHDCONFIG_PLACES="${ROOTDIR}etc ${ROOTDIR}etc/ssh ${ROOTDIR}usr/local/etc ${ROOTDIR}usr/local/etc/ssh"
for I in ${SSHDCONFIG_PLACES}; do

*****cerca sshd_config in queste directory*******

if [ -e "${I}/sshd_config" ]

*****e se trova il file*******

then
FOUND=0
displaytext " Found ${I}/sshd_config"
displaytext -n " Checking for allowed root login... "

***** stampa il messaggio sopra*****

permitrootlogin=`cat ${I}/sshd_config | grep "PermitRootLogin" | grep -v "#"`

*****estrae una riga che contiene PermitRootLogin e non contiene "#", che indica il commento, nel nostro caso permitrootlogin=stringa vuota*****

if [ "${permitrootlogin}" = "PermitRootLogin yes" ]

***non è il nostro caso***
then
FOUND=1
logtext "Info: Found 'PermitRootLogin yes'. Unsafe for production servers..."
logtext "Tip: Change the option in your configuration file (${I}/sshd_config)."
logtext " Use normal user accounts and 'su' to obtain root permissions."
else
permitrootlogin2=`cat ${I}/sshd_config | egrep "PermitRootLogin (no|without-password)" | grep -v "#"`

***anche permitrootlogin2 è vuota per noi****
if [ "${permitrootlogin2}" = "PermitRootLogin no" -o "${permitrootlogin2}" = "PermitRootLogin without-password" ]
then
FOUND=0
logtext "Info: Found 'PermitRootLogin no' or 'PermitRootLogin without-password' in SSH configuration file ${I}/sshd_config"
else
permitrootlogin2=`cat ${I}/sshd_config | grep "PermitRootLogin forced-commands-only" | grep -v "#"`

***ancora vuota***
if [ "${permitrootlogin2}" = "PermitRootLogin forced-commands-only" ]
then
FOUND=1
logtext "Info: Found 'PermitRootLogin forced-commands-only'"
else
permitrootlogin3=`cat ${I}/sshd_config | grep "#PermitRootLogin yes"`
***e anche questa è vuota per noi***
if [ ! "${permitrootlogin3}" = "" ]
then

***permitrootlogin è vuota per noi, quindi non è il nostro caso***
FOUND=1
logtext "Info: Found no PermitRootLogin value in file ${I}/sshd_config. Default value is 'yes'."
else

****questo è il nostro caso: FOUND viene posto =0 e viene assegnata una stringa a logtext, che stampa in un file di log che, se guardi all'inizio dello script, è di default disabilitato (se ho letto bene $DEBUGFILE, $DEBUGLOG e il rinvio a /dev/null all'inizio dello script).
FOUND=0
logtext "Unknown PermitRootLogin value found in file ${I}/sshd_config"
fi
fi
fi
fi

if [ ${FOUND} -eq 1 ]

**** non è il nostro caso, FOUND=0 per noi*****
then

if [ "${ALLOW_SSH_ROOT_USER}" = "0" ]
then
displaytext "${red}Watch out ${NORMAL}Root login possible. Possible risk!"
if [ -z "${permitrootlogin}" ]; then
displaytext " info: No 'PermitRootLogin' entry found in file ${I}/sshd_config"
else
displaytext " info: \"${permitrootlogin}\" found in file ${I}/sshd_config"
fi
displaytext " Hint: See logfile for more information about this issue"
logtext "Warning: root login possible. Change for your safety the 'PermitRootLogin'"
logtext "entry in the SSH configuration file ${I}/sshd_config to 'no', and use 'su -' to become root. "
else
logtext "Remote root login permitted, but allowed by using explicit option"
SIZE=36
jump=`expr ${defaultcolumn} - ${SIZE}`
insertlayout
displaytext -e "${LAYOUT}[ ${OK}OK${NORMAL} (Remote root login permitted by explicit option) ]"
fi


****** attenzione!*******

else

***ecco l' else corrispondente a FOUND diverso da 1, come nel nostro caso in cui è 0***

SIZE=36
jump=`expr ${defaultcolumn} - ${SIZE}`
insertlayout
displaytext -e "${LAYOUT}[ ${OK}OK${NORMAL} (Remote root login disabled) ]"
fi
*****ecco che displaytext ci dice che il login a root è disabilitato quando non lo è*******

Naturalmente, avendo fatto le cose abbastanza in fretta, posso anche essermi sbagliato in qualche passaggio, nel qual caso chiedo venia.
Se altri mi confermano il baco, forse converrebbe scrivere due righe a chi sviluppa rkhunter.

Comunque quello che mi preme sottolineare è che, dal mio punto di vista, è una grave falla della sicurezza fidarsi di un programma piuttosto che di un altro (fra l'altro molto ben sviluppato e testato) quando ci sono risultati contrastanti e in aperta contraddizione con la documentazione di un programma, soprattutto se non si fa alcuna prova trascurando del tutto l'anomalia... :)

Inviato: dom set 16, 2007 13:08
da anycolouryoulike

Codice: Seleziona tutto

Sep 16 12:59:41 darkstar sshd[505]: Did not receive identification string from 83.17.6.77
Sep 16 13:03:07 darkstar sshd[18302]: Failed password for root from 83.17.6.77 port 45360 ssh2
Sep 16 13:03:11 darkstar sshd[18586]: Invalid user admin from 83.17.6.77
Sep 16 13:03:11 darkstar sshd[18586]: Failed password for invalid user admin from 83.17.6.77 port 45491 ssh2
Sep 16 13:03:24 darkstar sshd[18872]: Invalid user test from 83.17.6.77
Sep 16 13:03:24 darkstar sshd[18872]: Failed password for invalid user test from 83.17.6.77 port 45609 ssh2
alessandro@darkstar:~$ whois 83.17.6.77
fgets: Connessione abbattuta dal corrispondente
Anche oggi!
Come mai?

Inviato: dom set 16, 2007 13:22
da targzeta
ma, scusa, cambiare la porta per il demone ssh? come ti è stato suggerito? a volte basta poco :)

Spina

Inviato: dom set 16, 2007 13:41
da anycolouryoulike
Si infatti, ora ho cambiato la porta.
[offtopic]
albatros ha scritto:anycolouryoulike da The dark side of the Moon ( :thumbright: ).
Anche tu appassionato di The Dark Side of the Moon e Pink Floyd? Siamo molti qui su Slacky da quello che ho visto! :D
[/offtopic]

Inviato: dom set 16, 2007 14:14
da delta
altrimenti puoi usare brutesshd
http://sourceforge.net/projects/brutesshd

che serve apposta per i bruteforce di ssh :)

Inviato: dom set 16, 2007 18:41
da mkt0
quoto in pieno delta :)

Inviato: dom set 16, 2007 20:39
da slucky
@albatros
okay, comunque non è un problema mio, se secondo te c'è un bug anche in rkhunter, che è uno dei migliori programmi per la sicurezza, allora segnalalo pure ai programmatori ;)
Quello che so è che disabilitando il "permit root login" senza decommentare, facendo il test il programma mi segnala che è tutto okay ............quindi, non so se è un bug di ssh o di rkhunter, per il resto non saprei cosa dirti, non ho la competenza che hai tu nell'esame degli script dei programmi e quant'altro :D
comunque, ormai non mi meraviglierei, di aver scoperto l'ennesimo bug, dopo quelli in nvidia e pkgtool :lol: :lol:


Ciao e saluti a tutti!!! :)

Inviato: dom set 16, 2007 21:51
da albatros
slucky ha scritto:okay, comunque non è un problema mio

No, ma può forse eventualmente esserlo se ritieni che l'accesso per root in sshd sia disabilitato quando forse non lo è...
allora segnalalo pure ai programmatori

Beh, sì, aspettavo semmai qualche conferma; in ogni caso, a meno di smentite, la prossima settimana gli scriverò due righe...
quindi, non so se è un bug di ssh o di rkhunter

Prova ad accedere via ssh come root, no? ;)
anyocolouryoulike ha provato e ha riportato:
A me se non decommento la linea il login di root rimane abilitato, decommentandola invece non accetta la password anche se è giusta, quindi presumo che sia disabilitato, quindi quoto cacao74.

Prova anche tu... (potrei farlo anch'io, ma ho poco tempo in questi giorni...)

Ciao! :D

Inviato: dom set 16, 2007 22:11
da Luci0
anycolouryoulike ha scritto:.....
Non ho capito perché provano intrusioni di questo tipo: è impossibile indovinare l'user e la password!

Esisteva un problema su ssh, ma per poter arrivare ad acquisire i diritti di root, bisogna prima poter individuare un utente abilitato all' uso del sistema .. esiste anche un metodo per identificare quale utente é abilitato in base alla velocità di risposta del sistema ... credo proprio che esista un vero e proprio tool per sferrare questo tipo di attacco ... i log che vedi é probabilmete la traccia lasciata da questa specie "user" sniffer .. l' importante é non lasciare utenti con password banali ... password nulla, = al nome utente etc ... oppure disabilitare il servizio verso l' esterno etc.. ma se il servizio va lasciato attivo é bene verificare se ssh é aggiornato ... la cosa più semplice é spostare la porta di ascolto di ssh in genere questi script automatizzati falliscono se si mescolano un pò le acque ... e gli script kiddies hanno il benservito!!

Inviato: lun set 17, 2007 14:52
da ildiama
Riguardo al discorso dell'accesso di root... tu puoi permetterlo o no, ma se hai scelto l'autenticazione con chiavi e root non le ha, non potrà neanche provare ad autenticarsi.
Insomma il PermitRootLogin vale solo per autenticazione con password. O almeno questo è quello che ho capito dalle prove fatte sulle mie macchine.
Ciao.

Inviato: lun set 17, 2007 14:53
da ildiama
Riguardo al discorso dell'accesso di root... tu puoi permetterlo o no, ma se hai scelto l'autenticazione con chiavi e root non le ha, non potrà neanche provare ad autenticarsi.
Insomma il PermitRootLogin vale solo per autenticazione con password. O almeno questo è quello che ho capito dalle prove fatte sulle mie macchine.
Ciao.

Inviato: lun set 17, 2007 19:52
da anycolouryoulike
Appena ho visto tutti quegli avvisi di tentato accesso ho postato dove mi è capitato e non me ne ero manco accorto, mi scuso con i moderatori e tutti!
Ringrazio tutti per le esaurienti risposte :mille:

PS: ma in che sezione avevo postato?

Inviato: lun set 17, 2007 22:03
da Luci0
Slackware ... :-)

Inviato: gio set 20, 2007 17:01
da albatros
@slucky:
ho provato con la versione 1.3.0 (beta4?) di rkhunter.
Nel file di configurazione di rkhunter ho scelto il valore di default per il file di log, ovvero LOGFILE=/var/log/rkhunter.log, mentre per sshd ho messo (o meglio ho lasciato):


#
# The following option is checked against the SSH configuration file
# 'PermitRootLogin' option. A warning will be displayed if they do not
# match. This option has a default value of "no".
#
ALLOW_SSH_ROOT_USER=no

#
# Allow the use of the SSH-1 protocol which is theoretically weaker than SSH-2.
# Do not modify this option unless you have good reasons to use the SSH v1
# protocol (for instance for AFS token passing or Kerberos4 authentication).
#
ALLOW_SSH_PROT_V1=0

#
# This setting tells rkhunter the directory containing the SSH configuration
# file. This setting will be worked out by rkhunter, and so should not
# usually need to be set.
#
SSH_CONFIG_DIR=/etc/ssh

Ovviamente ho messo in /etc/ssh/sshd_config:

#PermitRootLogin no

Avviato rkhunter con l'opzione --check, quando arriva a ssh mi da uno warning e nel file di log si legge:
[16:39:24] Checking for SSH configuration file [ Found ]
[16:39:24] Info: Found SSH configuration file: /etc/ssh/sshd_config
[16:39:24] Info: Rkhunter option ALLOW_SSH_ROOT_USER set to 'no'.
[16:39:24] Checking if SSH root access is allowed [ Warning ]
[16:39:24] Warning: The SSH configuration option 'PermitRootLogin' has not been
set.
The default value may be 'yes', to allow root access.

Mi pare dunque che il comportamento di rkhunter, per la versione 1.3.0, sia soddisfacente e non vedo il bisogno, come prospettato in precedenza, di fare una segnalazione.

Se dovessi usare sshd, tieni comunque presente che, se non vuoi consentire il login a root, devi togliere il # prima di PermitRootLogin no , altrimenti rimane commentato e il valore di default è yes.
Puoi provare anche in locale avviando /usr/sbin/sshd e tentando di accedere come root con:
ssh -l root 127.0.0.1

Ciao! :)