Cattive notizie a tutti! Sembra che ci sia un bug non corretto in Fedora 21: connessione cablata con PEAP / MSCHAPv2 802.1x non funzionante . Quindi, mentre la risposta qui sotto potrebbe funzionare per altre distro, gli utenti di Fedora 21 sono attualmente sfortunati.
Non l'ho mai provato da solo, ma questo post sembra contenere una procedura dettagliata per la configurazione di 802.1x tra client Linux e dominio Windows. Nota la parte di richiesta del certificato: dovrebbe risolvere il problema del certificato non esportabile. Le versioni del software sono piuttosto vecchie ( Ubuntu è 8.04 e anche Power Broker di Beyond Trust è ancora simile ), ma l'idea di base mi sembra solida.
Ho formattato il post sopra per facilitarne la lettura. Citando le caselle di codice diventano grigie su grigie, quindi l'ho abbandonato, scusa:
Disclaimer: questa guida è scritta dal punto di vista della distribuzione Ubuntu 8.04 di Linux. Per farlo funzionare con altre distribuzioni Linux o Unix, potrebbe essere necessario apportare alcune modifiche.
Le due cose principali necessarie per l'autenticazione della macchina Linux su 802.1x sono un certificato client e un account nel dominio Windows. Durante il processo di autenticazione, il client Linux presenta il proprio certificato del computer allo switch, che a sua volta lo presenta al server RADIUS che verifica il certificato e verifica l'account del computer a cui è assegnato il certificato in Active Directory. Se il certificato e l'account del computer sono validi, il server RADIUS approva la richiesta di autenticazione rinviandola allo switch, che a sua volta autentica la porta a cui è connessa la scatola Linux.
La prima cosa da fare è unire il tuo computer Linux al dominio Windows. Poiché Linux non può unirsi nativamente a un dominio Windows, dobbiamo scaricare il software necessario per consentirci di farlo. Allo stesso modo crea software per permetterci di fare proprio questo. Per installarlo su Ubuntu è molto semplice, basta seguire questi passaggi:
- sudo apt-get update
- sudo apt-get install allo stesso modo-open
- sudo domainjoin-cli join
enter the FQDN of your domain here
enter your admin account here
, è possibile utilizzare il formato user@domain.com
. Dovresti anche essere in grado di utilizzare la versione della GUI andando suSystem → Administration → Likewise.
- sudo update-rc.d allo stesso modo apre impostazioni predefinite
- sudo /etc/init.d/likewise-open start
Se non si esegue Ubuntu, è possibile scaricare il software qui http://www.likewisesoftware.com/products/likewise_open . È ora possibile disconnettersi e riconnettersi utilizzando il proprio account di dominio. Credo che entrambi i formati di user@domain.com
dominio e utente funzionino entrambi. Lo proverò più tardi.
Esistono tre file situati sulla macchina Linux che devono essere configurati correttamente affinché questa autenticazione abbia luogo. Questi tre file sono:
- /etc/wpa_supplicant.conf
- / etc / network / interfaces
- /etc/openssl/openssl.cnf
Innanzitutto configureremo il software per consentire alla nostra macchina Linux di utilizzare un certificato client per l'autenticazione su una rete abilitata 802.1x; wpa_supplicant
sarà usato per questo.
Attenersi alla seguente procedura per configurare il file wpa_supplicant.conf:
- sudo gedit /etc/wpa_supplicant.conf
Incolla quanto segue nel file e salvalo:
# Where is the control interface located? This is the default path:
ctrl_interface=/var/run/wpa_supplicant
# Who can use the WPA frontend? Replace "0" with a group name if you
# want other users besides root to control it.
# There should be no need to chance this value for a basic configuration:
ctrl_interface_group=0
# IEEE 802.1X works with EAPOL version 2, but the version is defaults
# to 1 because of compatibility problems with a number of wireless
# access points. So we explicitly set it to version 2:
eapol_version=1
# When configuring WPA-Supplicant for use on a wired network, we don't need to
# scan for wireless access points. See the wpa-supplicant documentation if you
# are authenticating through 802.1x on a wireless network:
ap_scan=0
network={
ssid="<enter any name here, it doesn't matter>"
key_mgmt=IEEE8021X
eap=TLS
identity="<FQDN>/computers/<Linux computer name>"
client_cert="/etc/ssl/certs/<your authentication certificate name>.pem"
private_key="/etc/ssl/private/<your private key name>.pem"
}
Ora dobbiamo modificare il file delle interfacce. Seguire questi passaggi per configurare il file delle interfacce:
- sudo gedit / etc / network / interfaces
Incolla quanto segue nel file sotto l' eth0
interfaccia e salvalo:
# Configure the system to authenticate with WPA-Supplicant on interface eth0
wpa-iface eth0
# In this case we have a wired network:
wpa-driver wired
# Tell the system we want to use WPA-Supplicant with our configuration file:
wpa-conf /etc/wpa_supplicant.conf
Il prossimo passo è generare e installare i tuoi certificati. Dovremo generare un certificato autofirmato, quindi generare una richiesta di certificato basata sul certificato autofirmato che abbiamo creato, quindi installare i certificati.
Nota: quando si creano i certificati, ogni volta che viene richiesto il proprio nome, è necessario fornire il nome del computer che eseguirà l'autenticazione. Per sicurezza, consiglio di far corrispondere il nome al modo in cui è assegnato al computer, inclusa la distinzione tra maiuscole e minuscole. Se non sei sicuro di come sia assegnato al tuo computer, apri un terminale e digita hostname.
Segui questi passi:
sudo openssl req -x509 -nodes -days enter in days how long you want the cert valid for
-newkey rsa: 1024 -keyout enter a name for your private key/certificate here
.pem -out enter a name for your private key/certificate here
.pem
Esempio: sudo openssl req -x509 -nodes -days 365 -newkey rsa: 1024 -keyout privcert.pem -out privcert.pem
openssl req -new -newkey rsa: 1024 -nodes -keyout enter a name for your private key here
.pem - out enter a name for your certificate request here
.pem
Esempio: sudo openssl req -new -newkey rsa: 1024 -nodes -keyout privkey.pem -out certreq.pem
Tutti i certificati creati vengono inseriti nella tua home directory ( /home/<username>
). La parte successiva è richiedere un certificato alla propria CA utilizzando la richiesta di certificato creata nel passaggio precedente. Questo dovrà essere fatto su un computer Windows, poiché per qualche ragione Linux e Windows non vanno molto d'accordo quando si richiedono e si scaricano certificati; Ho appena trovato più semplice inviare a me stesso la richiesta di certificato ed eseguirla su un computer Windows.
Seguire questi passaggi per completare la richiesta di certificato:
- Vai alla tua home directory sul computer Linux e trova il file di richiesta del certificato
- Invia il file a te stesso tramite email o apri il file con un editor di testo (come gedit) e copia e incolla la richiesta in un messaggio di posta elettronica e invialo a te stesso.
- Su un client Windows, apri una pagina Web utilizzando IE sul sito Web della tua CA (come
http://caname/certsrv
).
- Seleziona Richiedi un certificato
- Richiesta avanzata di certificati
- Ora apri la tua e-mail e ottieni la richiesta di certificato che hai inviato per e-mail.
- Se hai inviato il file tramite e-mail, aprilo con il blocco note e copia e incolla il contenuto nella casella di richiesta del certificato con codifica Base-64. Se ti sei inviato per e-mail il contenuto del file di richiesta del certificato anziché il file stesso, copia e incolla la richiesta da lì nella casella di richiesta del certificato con codifica Base-64.
- Fare clic su Invia e scaricare il certificato nel modulo Base-64, non DER.
- Salvare il certificato sul desktop e denominarlo
your Linux machine name
.pem. Il sistema lo aggiungerà automaticamente .cer
alla fine, quindi cancellalo. Linux utilizza .pem per le estensioni del certificato.
- Prendi questo file e invialo a te stesso.
- Ora, sulla tua macchina Linux, ottieni il tuo certificato e salvalo da qualche parte (preferibilmente la tua cartella home per mantenere le cose organizzate e insieme).
- Ora, dobbiamo copiare il certificato che hai appena ricevuto nella tua
/etc/ssl/certs
cartella e dobbiamo copiare la tua chiave privata / certificato e la chiave privata creata precedentemente nella tua /etc/ssl/private
cartella. Ora, solo root ha i permessi per farlo, quindi puoi farlo dalla riga di comando digitando sudo cp /home/<username>/<certificate>.pem /etc/ssl/private
o /etc/ssl/certs
. Questo può essere fatto anche dalla GUI copiando e incollando usando il comando gksudo e digitando nautilus. Nautilus è il browser di file della GUI che Ubuntu utilizza e lo eseguirà come root consentendoti di copiare e incollare nelle directory a cui solo root ha accesso.
Ora che i nostri certificati sono attivi, dobbiamo dire a openssl come vogliamo usare i certificati. Per fare ciò, dobbiamo modificare il file openssl.cnf e dirgli di autenticare la nostra macchina Linux come client piuttosto che come utente.
Per fare ciò segui questi passaggi:
- sudo gedit /etc/ssl/openssl.cnf
- Scorri verso il basso per circa metà strada e dovresti vedere una sezione chiamata
[usr_cert]
. In questa sezione è necessario il punto in cui nsCertType
è definito "Per un normale utilizzo da parte del cliente questo è tipico" , e dovrebbe avere nsCertType = client, email
e verrà commentato. Rimuovi il commento da questa riga ed elimina l'email in modo che sia visibile nsCertType = client
. Ora salva il file.
Ora dovresti avere tutto ciò di cui hai bisogno configurato correttamente per avere una macchina Linux in esecuzione in un ambiente di dominio Windows e autenticarti usando 802.1x.
Ora non resta che riavviare il servizio di rete in modo che Linux utilizzi il wpa_supplicant.conf
file che è ora collegato alla tua eth0
interfaccia e esegua l'autenticazione. Quindi corri e basta sudo service networking restart
. Se non si ottiene un indirizzo IP dopo il ripristino dell'interfaccia, è possibile richiedere manualmente un IP dal server DHCP digitando sudo dhclient
.