A propos / How-To...

TinyCA est une interface graphique écrite en Perl-GTK2 qui permet de gérer une petite Autorité de Certification (AC) ou "Certificate Authority" (CA). TinyCA s’appuie sur OpenSSL ; il permet de gérer (créer, renouveller, révoquer...) des certificats X509, de les exporter aux formats PEM, DER, PKCS#12, TXT, ZIP.... Couplé avec le logiciel FreeRADIUS, TinyCA permet de pouvoir facilement administrer et gérer des certificats pour authentifier des utilisateurs avec le mode EAP-TLS ou EAP-TTLS.

Ce tutorial / How-to va vous montrer comment gérer avec TinyCA votre propre Autorité de Certification et la coupler avec Freeradius pour sécuriser une connexion WiFI grâce à WPA-Entreprise ou WPA2-Entreprise (IEEE 802.11i) et le mode EAP-TLS.

Tutorial en cours de rédaction...
Wait&See

Création des certificats serveur et client

... documentation à compléter...

cf. mon article précédent Gestion d’une CA avec TinyCA pour :

  • créer votre propre Autorité de Certification avec le logiciel TinyCA,
  • créer un certificat/clé serveur (pour le serveur radius),
  • créer un certificat/clé client (pour l’utilisateur "Thus0").

Exporter les certificats créés :

  • le certificat de la CA : au format PEM : "cacert.pem" (pour GNU/Linux) et au format DER : "cacert.der" (pour WindowsXP)
  • le certificat client et la clé de l’utilisateur Thus0 au format PKCS12 : "thus0@pervasive-network.org-cert.p12"
  • le cerfificat serveur et la clé du le serveur radius au format PEM : "cert-srv.pem"

Configuration de FreeRADIUS en mode EAP-TLS

Pour installer FreeRADIUS avec le module EAP-TLS sur une distribution Debian, lisez mon précédent article Ajouter les modules EAP/TLS et EAP/TTLS à FreeRADIUS sur une Debian testing : par défaut, ce module n’est pas installé en raison de problèmes de licence de OpenSSL.

Copier les certificats cacert.pem et cert-srv.pem dans le répertoire /etc/freeradius/certs.

Crééer les fichiers Diffie Hellman et random nécessaires pour EAP-TLS

# cd /etc/freeradius/certs
# openssl dhparam -check -text -5 512 -out dh
# dd if=/dev/urandom of=random count=2

Dans le fichier /etc/freeradius/clients.conf, rajouter l’adresse IP du point d’accès DLink

# borne DLink
client 10.0.0.40 {
       secret = secretradius123
       shortname = irina
       nastype = other
}

Dans le fichier /etc/freeradius/users, activer l’authentification EAP pour tous les utilisateurs.

[...]
#
# Deny access for a group of users.
#
# Note that there is NO 'Fall-Through' attribute, so the user will not
# be given any additional resources.
#
#DEFAULT        Group == "disabled", Auth-Type := Reject
#               Reply-Message = "Your account has been disabled."
#

DEFAULT         Auth-Type := EAP

[...]

Dans le fichier /etc/freeradius/eap.conf, configurer le module EAP-TLS

eap {
 default_eap_type = tls
 timer_expire     = 60
 ignore_unknown_eap_types = yes
 cisco_accounting_username_bug = no
 
 tls {  
   private_key_password = tata123
   private_key_file = ${raddbdir}/certs/cert-srv.pem
                       
   certificate_file = ${raddbdir}/certs/cert-srv.pem
   CA_file = ${raddbdir}/certs/cacert.pem

   dh_file = ${raddbdir}/certs/dh
   random_file = ${raddbdir}/certs/random
   fragment_size = 1024

   include_length = yes
   # check_crl = yes

   check_cert_cn = %{User-Name}
 }
}

Fichier /etc/freeradius/radiusd.conf

[...]
user = freerad
group = freerad
[...]
modules {
 [...]
 $INCLUDE ${confdir}/eap.conf
 [...]
}
[...]
authorize {
 preprocess
 suffix
 eap
 files
}
[...]
authenticate {
 unix
 eap
}

Documentation