Le blog de Jean David TECHER, un Réunionnais à Saint-Priest/Lyon

Aller au contenu | Aller au menu | Aller à la recherche


lundi 25 octobre 2010

FreeRadius 2.1.10: Tests pour OpenLDAP et wpa_supplicant sur Debian Lenny (méthode EAP-TTLS)

J'ai actuellement un domU qui tourne déjà  prévu pour FreeRadius 2.1.8.

Avant de procéder à  la mise à  jour sur ce même domU, je me suis donc créé un nouveau domU pour tester la version 2.1.10, jugé stable (à  en croire la release note de cette version)

Intérêt EAP-TTLS et OpenLDAP?

Voir

Architecture pour le test

FreeRadius

Installation sur melina-xen07

 apt-get update
 apt-get install build-essential libldap2-dev libssl-dev openssl
 wget ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-2.1.10.tar.bz2
 tar xjf freeradius-server-2.1.10.tar.bz2 
 cd freeradius-server-2.1.10
 tar xjf freeradius-server-2.1.10.tar.bz2 
 cd freeradius-server-2.1.10
 ./configure --prefix=/opt/freeradius
 make
 make install
 echo "/opt/freeradius/lib" > /etc/ld.so.conf.d/freeradius.conf

Génération du certificat serveur

Suivre les instructions de /opt/freeradius/etc/raddb/certs/README ou voir sou Google avec tinyca et freeradius

Fichiers de configurations

Récupérez ceux de ce précédent billethttp://www.davidgis.fr/blog/index.php?2009/12/06/626--freeradius-217-openldap-partie-2-eap-ttls-fichiers-de-configurations (ATTENTION POUR LE MOT DE PASSE PAR RAPPORT AU CERTIFICAT fichier eap.conf pour private_key_password)

Configuration pour le belkin

Consultez le billet http://www.davidgis.fr/blog/index.php?2010/01/10/644-flasher-belkin-fd7130-avec-dd-wrt-et-freeradius-218

Rapide test sur un poste client (wpa_supplicant)

Test couronné de succès!!! Sur le serveur (melina-xen07), on lance le serveur radius en mode debug
/opt/freeradius/sbin/radiusd -X
Sur le poste client (bremko)
root@bremko:~# cat  /etc/wpa_supplicant/wifi_belkin54g_03.conf
ctrl_interface=/var/run/wpa_supplicant
ap_scan=1

network={
        ssid="belkin54g"
        scan_ssid=1
        key_mgmt=WPA-EAP
#       eap=TTLS

#########################
# Authentification LDAP #
#########################
        phase2="auth=PAP"       # Necessaire sinon on tourne en boucle
        identity="????"         # utilisateur OpenLDAP
        password="????"         # Mot de passe OpenLDAP

###############
# Certificats #
###############
# Rappel: pas obligatoire avec EAP-TTLS
#       client_cert="/etc/wpa_supplicant/certs/david.techer@davidgis.fr.pem"
#       private_key="/etc/wpa_supplicant/certs/david.techer@davidgis.fr.pem"
#       private_key_passwd="chocolat"

}
root@bremko:~# /usr/local/sbin/wpa_supplicant -P /var/run/wpa_supplicant.ath0.pid -i eth1 -Dwext  -c /etc/wpa_supplicant/wifi_belkin54g_03.conf
Trying to associate with 00:30:bd:98:fa:ef (SSID='belkin54g' freq=2462 MHz)
Associated with 00:30:bd:98:fa:ef
CTRL-EVENT-EAP-STARTED EAP authentication started
CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=21
CTRL-EVENT-EAP-METHOD EAP vendor 0 method 21 (TTLS) selected
CTRL-EVENT-EAP-PEER-CERT depth=1 subject='/C=FR/ST=France/L=Avignon/O=Resau DavidGIS./emailAddress=info@davidgis.fr/CN=Certificate Authority Radius DavidGIS'
CTRL-EVENT-EAP-PEER-CERT depth=1 subject='/C=FR/ST=France/L=Avignon/O=Resau DavidGIS./emailAddress=info@davidgis.fr/CN=Certificate Authority Radius DavidGIS'
CTRL-EVENT-EAP-PEER-CERT depth=0 subject='/C=FR/ST=France/O=Resau DavidGIS./CN=Certificate Authority Radius DavidGIS/emailAddress=info@davidgis.fr'
CTRL-EVENT-EAP-SUCCESS EAP authentication completed successfully
WPA: Key negotiation completed with 00:30:bd:98:fa:ef [PTK=TKIP GTK=TKIP]
CTRL-EVENT-CONNECTED - Connection to 00:30:bd:98:fa:ef completed (auth) [id=0 id_str=]

samedi 2 octobre 2010

Installation de NSIS 2.46 sous Debian Lenny

0. Exemple

J'ai mon domaine Windows à  la maison géré par Samba/OpenLDAP en tant que PDC.

Je veux utiliser NSIS pour me créer un petit exe qui affiche un petit message de bienvenue lors de l'ouverture de session.

Ca affichera pendant une dizaine de seconde

Message de bienvenue apparaissant (pendant quelques secondes) lors de l'ouverture de session pour un domaine en PDC géré par Samba/OpenLDAP

1. Motivations

  1. Travailler avec NSIS sous Windaube c'est bien mais l'avoir sous Nunux c'est encore mieux

    Si vous travaillez avec quelqu'un qui est sous Nunux et vous sous Windaube, ca évitera qu'il vienne vous squatter votre ordi pour compiler ses scripts de NSIS. (Moi je dis ça mais je dis rien)
  2. De plus les paquets .deb proposés par Debian sont quand même assez anciens. Il est intéressant de disposer d'une version à  jour

    melina-xen07:~/example# apt-cache policy nsis
    nsis:
      Installé : (aucun)
      Candidat : 2.37-3
     Table de version :
         2.37-3 0
            500 http://ftp.us.debian.org lenny/main Packages
    
  3. Par ailleurs le paquet est incomplet comme l'atteste
    melina-xen07:~/example# apt-cache show nsis |tail -6 |head -3
     Some parts of nsis cannot be built on Debian because of non-free
     requirements. Please see the following file for more information:
     /usr/share/doc/nsis/README.Debian
    

2. Pré-requis

Cette version de NSIS suppose d'installer scons, python et gcc/g++. Pour scons, il faut une version supérieure à  0.98 Ca tombe bien. Sous Lenny, on a
melina-xen07:~/nsis_work# apt-cache show scons | grep -i ^version
Version: 1.0.0-1
Donc on peut installer
apt-get update
apt-get install -y python scons g++ gcc bzip2 unzip mingw32-binutils mingw32 mingw32-runtime libpthread-stubs0-dev

2. Téléchargement

On télécharge nsis-2.46-src.tar.bz2. On décompresse ensuite
wget -q http://sourceforge.net/projects/nsis/files/NSIS%202/2.46/nsis-2.46-src.tar.bz2/download -O nsis-2.46-src.tar.bz2 && tar xjf nsis-2.46-src.tar.bz2
Ou sinon le tout à  la voléé
wget -q http://sourceforge.net/projects/nsis/files/NSIS%202/2.46/nsis-2.46-src.tar.bz2/download -O - |tar xjf -

3. Compilation et installation

Rien de plus simple que
scons PREFIX=/opt/nsis install

4 .Exemple

4.1 Le script
Le script welcome.nsi utilisé sera donc
/*

    Script de connexion au domaine DavidGIS.fr
*/
!define PRODUCT_NAME "Welcome"
!define PRODUCT_VERSION "0.1"
!define PRODUCT_PUBLISHER "Jean David TECHER"
!define PRODUCT_WEB_SITE "http://www.davidgis.fr"

SetCompressor zlib

Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "${PRODUCT_NAME}-${PRODUCT_VERSION}.exe"
InstallDir "$TEMP"
# Mode silencieux
SilentInstall silent

# Ecran de bienvenue inspiré de http://nsis.sourceforge.net/Docs/Splash/splash.txt
####################################################################
Function .onInit
  SetOutPath $TEMP
  File /oname=spltmp.bmp "welcome_davidgis.bmp"

  splash::show 10000 $TEMP\spltmp

#  advsplash::show 3000 1600 1400 0xFFFFFF $TEMP\spltmp

  Pop $0 ; $0 has '1' if the user closed the splash screen early,
     ; '0' if everything closed normally, and '-1' if some error occurred.

  Delete $TEMP\spltmp.bmp
FunctionEnd


Section "Principal" SEC01
SetOverwrite on
SetOutPath "$TEMP"
File "connexion.txt"
Exec `cmd /c echo %COMPUTERNAME%: l'utilisateur "%USERNAME%" est connecté sur le domaine "%USERDOMAIN%"  >> %TEMP%\connexion.txt`
SectionEnd

Section -Post

SectionEnd
4.2 Compilation et mise en place avec Samba
Pour la compilation
/opt/nsis/bin/makensis welcome.ns
qui générera le fichier Welcome-0.1.exe

Mon serveur Samba est sur l'hote olivia.davidgis.fr. Pour mon Samba, j'ai configuré mon netlogon ainsi de manière général pour tout les utilisateurs

root@olivia:~# grep logon /etc/samba/smb.conf|grep -E '(script|netlogon)'
logon script = logon.bat
[netlogon]
path = /home/netlogon
C'est donc /home/netlogon/logon.bat que je vais devoir modifier.

Il suffit donc de copier Welcome-0.1.exe sur un partage commun à  tous afin de le rendre accessible à  tous les utilisateurs. Par exemple

root@olivia:~# grep '\[partage\]' -A5 /etc/samba/smb.conf
[partage]
comment = Repertoire commun
browseable = Yes
writeable = Yes
public = No
path = /home/partage

On le copie donc sur /home/partage

Le contenu de /home/partage devient donc

root@olivia:~# cat /home/netlogon/logon.bat
\\olivia\partage\Welcome-0.1.exe
net use p: \\olivia\partage
net use u: \\olivia\%username%