Messaggio di errore personalizzato per sshd


8

È possibile impostare un messaggio di errore personalizzato per gli utenti a cui è negato l'accesso a un server? In effetti, vorrei visualizzare questo messaggio solo se un utente è stato rifiutato a causa del filtro IP impostato sshd_config. Ma sarebbe sufficiente un messaggio di errore globale.

Risposte:


6

Per "messaggio di errore" credo che intendi una stringa di testo visualizzata dal programma client. La parola "messaggio" ha un certo contesto nel protocollo di autenticazione SSH RFC che farò riferimento in seguito, ma non penso che sia la connotazione in cui lo stai usando.

Credo che stai pensando a SSH come qualcosa di simile a TELNET, in cui le stringhe di testo arbitrarie inviate dal demone del server verranno visualizzate dal client. SSH utilizza un protocollo di autenticazione che passa i messaggi tokenizzati sotto forma di valori binari avanti e indietro tra client e server. Uno di questi messaggi tokenizzati, "SSH_MSG_USERAUTH_BANNER", può essere utilizzato per istruire il client a visualizzare stringhe di testo arbitrarie (se lo desidera), ma dovresti modificare il demone SSH per inviarle al momento opportuno. Non credo che OpenSSH abbia funzionalità integrate per inviare messaggi SSH_MSG_USERAUTH_BANNER durante punti arbitrari nel processo di autenticazione.

Mi chiedo perché vorresti dare a un utente malintenzionato remoto ulteriori informazioni sul perché la sua autenticazione non è riuscita. Sanno che è fallito perché il loro client SSH riceve e reagisce al messaggio tokenizzato dal demone SSH che segnala l'errore.


1

EDIT: Evan Anderson digita più velocemente di me e sembra confermare che il messaggio non è personalizzabile sulla dimensione del server.

È possibile specificare un file banner in sshd_config. Il banner verrà visualizzato a tutti gli utenti prima della richiesta di accesso e indica che sono consentiti solo accessi da determinati domini e indirizzi.

SSH può passare l'accesso al comando unix / bin / login. A seconda del tuo sistema operativo, potresti avere un'opzione lì dentro per personalizzare i prompt e gli errori?

Qualsiasi altra cosa che mi viene in mente significherebbe probabilmente la modifica del codice e la ricompilazione. Ed è possibile che il messaggio di errore non venga inviato dal server al client come una stringa, ma come un codice, al fine di impedire a un utente malintenzionato di raccogliere informazioni. (Se è una stringa e personalizzabile, qualcuno la imposterà su "Accesso fallito. OpenSSH_3.7_p2 21032004")


0

Questo non funzionerebbe specificamente per il filtro ip in sshd_config, ma funzionerebbe per qualsiasi controllo di accesso implementato da PAM usando pam_echo.so.

Per esempio:

account [success=2 default=ignore] pam_lastlog.so inactive=30
account optional pam_echo.so file=/path/to/lastlog_error_message.txt
account requisite pam_deny.so
account ...

In questo scenario se un utente autenticato non avesse effettuato l'accesso negli ultimi trenta giorni, il contenuto di /path/to/lastlog_error_message.txtsarebbe stato ripetuto come standard prima che la connessione SSH fosse chiusa. Se avessero superato il controllo da pam_lastlogallora, la valutazione salterebbe pam_echoe le pam_denyinvocazioni per continuare a valutare i restanti moduli PAM.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.