Autenticazione · 6 min read · Dec 28, 2025
Configurare SSH per utilizzare Freeradius e WiKID per l'autenticazione a due fattori
Configurare SSH per utilizzare Freeradius e WiKID per l’autenticazione a due fattori
Radius è un ottimo standard. È abbastanza potente da realizzare molto e abbastanza semplice da gestire. Freeradius è un eccellente server radius open source che viene fornito con molte varianti di Linux. È ben documentato e ben supportato. Il server di autenticazione forte WiKID è un sistema commerciale/open source di autenticazione a due fattori che utilizza la crittografia a chiave pubblica per trasmettere PIN e codici di accesso usa e getta in modo sicuro a token software in esecuzione su Blackberries, telefoni cellulari, Palms, PocketPC o, utilizzando il client J2SE, Linux, Mac e PC Windows. Puoi pensare a WiKID come ai certificati, ma senza i problemi delle liste bianche/nere e più sicuro - perché il PIN è convalidato sul server, prevenendo attacchi di forza bruta offline.
Le aziende che devono soddisfare requisiti, come PCI-DSS o HIPAA, potrebbero dover proteggere le proprie reti con autenticazione a due fattori e accesso strettamente controllato. Combinare Freeradius e WiKID è un modo altamente conveniente per raggiungere questo obiettivo.
In questo esempio, installerò Freeradius su Fedora Core 7 e utilizzerò i pacchetti 3.0RC2 di WiKID su Centos5 (tuttavia, le stesse istruzioni funzioneranno per la versione 2.0 di WiKID.) Testeremo con SSH, tuttavia, la stessa configurazione dovrebbe funzionare per Apache, WebDAV, OpenVPN e qualsiasi altra applicazione che supporti PAM.
Installazione e configurazione di Freeradius
Non importa quale variante di Linux stai utilizzando, probabilmente esiste un pacchetto per Freeradius. Per Fedora, l’installazione tramite Yum è semplice:
yum install freeradius
Configurare Freeradius è abbastanza semplice. Ci sono molte opzioni, però. La chiave è cambiare solo gli elementi minimi che comprendi. Le impostazioni predefinite funzionano, quindi apporta piccole modifiche e testale. Modificheremo tre file. Il file /etc/raddb/clients.conf indica a Freeradius quali client accettare. Il file proxy.conf indica a Freeradius di inviare i pacchetti di autenticazione al server WiKID e il file radiusd.conf configura il server Freeradius principale.
Per prima cosa, modifica il file /etc/raddb/clients.conf:
vi /etc/raddb/clients.conf
client 127.0.0.1 {
secret = shared_secret
shortname = localhost
nastype = other
}Tutto ciò che devi cambiare per ora è il segreto condiviso poiché accederemo al server Freeradius tramite SSH come nostro test.
Successivamente, verifica che le richieste possano essere proxy nel file radiusd.conf. Questo era il caso su Fedora:
vi /etc/raddb/radiusd.conf
proxy_requests = yes
$INCLUDE ${confdir}/proxy.confInfine, aggiungi il server di autenticazione forte WiKID come proxy valido in proxy.conf:
vi /etc/raddb/proxy.conf
# Questo dominio è per richieste che non hanno un prefisso o suffisso esplicito.
# I nomi utente come "bob" corrisponderanno a questo.
#
realm NULL {
type = radius
authhost = WIKIDSERVER_IP:1812
# accthost = WIKIDSERVER_IP:1813
secret = shared_secret
}Non è necessario dire, cambia WIKIDSERVER_IP e shared_secret con l’IP del tuo server WiKID e il segreto condiviso. Probabilmente dovrebbe essere diverso dal segreto condiviso utilizzato per il client.
Per ulteriore sicurezza, dovresti limitare la proprietà di questi file:
chmod a-rwx,u+r /etc/raddb/proxy.conf
chmod a-rwx,u+r /etc/raddb/clients.conf
Ora avvia Freeradius:
service radiusd start
Configurazione PAM SSH
Per prima cosa, devi installare PAM Radius. Ci sono ottime documentazioni su questo nella home page di PAM Radius. A seconda della tua distribuzione, potresti anche essere in grado di trovare un binario adatto. Non ho avuto problemi a compilarlo su Fedora 7:
Modifica /etc/pam.d/sshd per consentire l’autenticazione Radius:
vi /etc/pam.d/sshd
Vai alla seconda riga del file, premi il tasto Inserisci o il tasto i e inserisci questa riga:
auth sufficient /lib/security/pam_radius_auth.so proprio sopra questa riga:
auth required pam_stack.so service=system-authIl tag “sufficient” indica che se l’autenticazione Radius ha successo, non sarà necessaria ulteriore autenticazione. Tuttavia, se l’autenticazione Radius fallisce, funzionerà un nome utente e una password dal sistema. Usa “Required” per richiedere un’autenticazione forte. Poiché stiamo modificando solo il file sshd, non influenzerà i log-in del terminale. PAM può essere molto diverso su diverse varianti di Linux. Consulta la documentazione specifica per il tuo sistema operativo.
Modifica o crea il tuo file /etc/raddb/server:
vi /etc/raddb/server
Sotto la riga:
127.0.0.1 secret 1Aggiungi questa riga:
localhost shared_secret 1Infine, ho assicurato che l’autenticazione PublicKey fosse disattivata in /etc/sshd/sshd_config:
PubkeyAuthentication noConfigurazione del server WiKID
Ora, configureremo il server WiKID per elaborare le password usa e getta da Freeradius. Supponiamo che tu debba anche impostare un nuovo dominio WiKID. Se ne hai già uno, puoi saltare questa parte. Ulteriore documentazione sull’installazione di WiKID è disponibile qui.
Accedi al server WiKID e fai clic sulla scheda Domini.
Fai clic su Crea un nuovo dominio.
Inserisci le informazioni richieste. Il codice del server di dominio è l’indirizzo IP del server WiKID con zeri iniziali. Quindi, se l’indirizzo IP esterno è 216.239.51.99, il codice del server WiKID sarebbe 216239051099. Fai clic su “Crea”. (Ovviamente, se hai già un dominio configurato, puoi saltare questo passaggio.)
Fai clic sulla scheda Client di rete e su “Crea un nuovo client di rete”.
Inserisci le informazioni richieste. Per l’indirizzo IP, utilizza l’indirizzo IP del server Freeradius. Seleziona Radius e il dominio che hai appena creato. Fai clic su “Aggiungi” quando hai finito.
Nella pagina successiva, inserisci il segreto condiviso che hai inserito nel file /etc/raddb/proxy.conf del server Freeradius. Non è necessario inserire alcuna informazione sotto “Attributi di ritorno”.
Importante: Dalla terminale WiKID o tramite SSH, dovrai eseguire “wikidctl stop” e poi “wikidcl start” per caricare la nuova configurazione nel server Radius WiKID. (Gli utenti di WiKID 2.0 devono solo eseguire “stop” e “start”.)
Testare Freeradius con password usa e getta
Scarica e installa un client token WiKID. Puoi convalidarti manualmente come utente dall’interfaccia web di WiKIDAdmin. Una volta convalidato, seleziona il dominio associato alla risorsa Freeradius:

Inserisci il PIN:

E riceverai indietro il codice di accesso usa e getta. L’OTP è limitato nel tempo, ma il tempo può essere impostato sul server WiKID come desideri:

Ora, ssh nel tuo server Freeradius:
ssh user@freeradius_server
Quando richiesto, inserisci la password usa e getta WiKID - dovrebbe essere stata automaticamente copiata negli appunti, quindi ctrl-c o shift-ins dovrebbero funzionare. Dovresti ottenere accesso. Se non lo fai, ci sono diversi log da consultare. Prima di tutto, controlla /var/log/secure sul tuo server Freeradius per vedere perché l’utente è stato rifiutato. Se vedi “Tutti i server RADIUS hanno fallito nel rispondere.” assicurati che radiusd sia in esecuzione sulla porta 1812. Controlla i log di Freeradius in /var/log/radius/radius.log e il log radius di WiKID in /opt/WiKID/log/radius.log sul server WiKID.
Una configurazione alternativa: Freeradius come backup
Uno dei vantaggi dell’utilizzo di PAM Radius è che i server possono essere concatenati nel file /etc/raddb/server. Se i server principali non rispondono, il server successivo proverà ad autenticare l’utente. Per chiarire: se il primo server risponde con un errore di autenticazione, l’utente viene rifiutato. Solo se non c’è risposta verrà controllato il secondo server radius. Questa capacità di backup può essere particolarmente utile se il tuo server WiKID si trova in un datacenter remoto. Configurando PAM per comunicare direttamente con WiKID e tornando a Freeradius, crei una soluzione di failover in caso di guasto hardware.
Per prima cosa, modifica il file /etc/raddb/server per puntare prima al server WiKID, poi al server Freeradius in esecuzione su localhost:
# server[:port] shared_secret timeout (s)
127.0.0.1:1812 shared_secret 1
WIKIDSERVER_IP:1812 shared_secret 3
localhost:1812 shared_secret 2Ho dovuto apportare alcune piccole modifiche per far funzionare Freeradius con /etc/passwd. Prima di tutto, ho dovuto cambiare il gruppo di radiusd in /etc/raddb/radiusd.conf in shadow:
user = radiusd
group = shadowPoi ho dovuto dare permessi shadow per /etc/passwd:
chgrp shadow /etc/shadow
chmod g+r /etc/shadow
Ora, se il server WiKID fallisce per qualche motivo, hai un fallback automatico al tuo file /etc/passwd.
Conclusione
Radius è un eccellente standard per l’autenticazione degli utenti remoti. Combinare Freeradius con WiKID Strong Authentication crea una soluzione potente, flessibile e sicura.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.