J'ai pris goût à l'Radius et de centraliser toutes les questions d'authentification sous son parapluie
.
D'une part, nous avons vu comment créer des VPN et des points d'accès sans fil avec Radius et d'autre part comment intégrer vsftpd avec MySQL en utilisant les utilisateurs FTP virtuel. Pourquoi ne pas les combiner? Pourquoi voudrions-nous de maintenir une base de données pour ftp si nous avons notre rayon prêt à effectuer des authentifications? C'est presque fait, nous avons juste besoin de jouer les bonnes touches.
Supposons que votre serveur Radius est maintenant en cours d'exécution et que vous avez monté votre système vsftpd avec les utilisateurs virtuels sur les liens ci-dessus explique tout. Maintenant, configurez votre serveur FTP pour authentifier contre Radius au lieu de contre MySQL directement.
Comme vsftpd utilise PAM pour l'authentification, nous ne changeons le module MySQL correspondant à Radius. A cette époque, nous avons utilisé pam_mysql. Maintenant, faites la même chose avec pam_radius , aussi simple que cela.
Dans mon cas, comme vous le savez, je me sers CentOS5 , et curieusement pas disponible est un rpm avec ce module, donc je dois me préparer à la main, la chance est que le fichier source est . spec approprié pour créer directement. Si votre système ne peut avoir le droit d'installation pour passer cette étape.
Nous pourrions compiler et d'installer directement le goudron, mais je préfère créer un rpm pour le mettre à jour et désinstaller par la suite. Nous avons téléchargé le code source ici , décompressez dans un chemin temporaire et copiez le goudron lui-même le chemin approprié pour compiler le rpm:
- . tar .gz # Cp pam_radius .17 -1.3. Tar. Gz / usr / src / redhat / SOURCES / pam_radius_auth -1.3 .17. Tar. Gz
- # Tar xvfz .17 -1.3 pam_radius. Tar. Gz
- # Cp pam_radius -1.3 17 / pam_radius_auth.spec / usr / src / redhat / SPECS
Maintenant, nous devons faire un petit changement dans ce fichier spec. Nous allons éditer et modifier la ligne 2
- % Définir la version 1.3 .15
mettre à jour le numéro de version correspondant:
- % Définir la version 1.3 .17
Et ajoutez la ligne
- BuildRequires: pam pam-devel
Après la ligne 15, de sorte qu'il est
- % Définir un nom pam_radius_auth
- % Définir la version 1.3 .17
- % Définir libération 0
- Nom:% {name}
- Résumé: Le module PAM pour l'authentification RADIUS
- Version:% {version}
- Sortie:% {release}
- .freeradius.org/pub/radius/pam_radius_auth-% { version } . tar Source:. Ftp :/ / ftp .freeradius.org/pub/radius/pam_radius_auth-% {version} Tar
- URL: http://www.freeradius.org/pam_radius_auth/
- Groupe: Environnement système / Bibliothèques
- /% { name } -buildroot BuildRoot:% {_tmppath} /% {name}-buildroot
- Licence: BSD ou GNU GPL
- Nécessite: pam
- BuildRequires: pam pam-devel
Nous avons tout prêt à compiler le module
- # Rpmbuild-ba / usr / src / redhat / SPECS / pam_radius_auth.spec
Si tout va bien nous aurons dans / usr/src/redhat/RPMS/x86_64 le paquet rpm prêt à installer. Dans mon cas, comme il s'agit d'un système 64 bits est le dossier x86_64, dans votre cas peut être en i386. Nous ne pouvons installer.
- rpm-ivh / usr / src / redhat / RPMS / pam_radius_auth .17 -1.3 -0. x86_64.rpm
Voyons maintenant comment configurer peu qu'il ya à configurer
. Nous avons mis l'adresse du serveur Radius et mot de passe pour y accéder:
/ Etc / raddb / serveur
- 1 .0 .1 127,0 claveSecretaRadius
Nous avons changé la configuration PAM vsftpd pour authentifier avec MySQL utiliser à la place Rayon:
/ Etc / pam.d / vsftpd
- auth required / lib / security / debug pam_radius_auth.so
- compte required / lib / security / debug pam_radius_auth.so
C'est tout. Notre serveur FTP s'authentifier auprès du serveur Radius. Nous avons ajouté l'option de débogage (debug) pour vérifier le fonctionnement, lorsque nous sommes sûrs que tout fonctionne bien, nous pouvons retirer.
Si vous avez des problèmes, afin de vérifier que le module doit vérifier pam_radius journal de débogage standard. Par défaut n'est pas activée sur le démon syslog , alors j'ai ajouté:
/ Etc / syslog.conf
- *. Debug / var / log / debug.log
Nous avons essayé d'accéder au serveur FTP et vérifier ce qui se fait le module d'authentification dans ce journal:
cat / var / log / debug.log
- : 09 osiris vsftpd: pam_radius_auth: Got user name XXX 28 septembre 17: 11: 09 Osiris vsftpd: pam_radius_auth: Vous avez le nom d'utilisateur XXX
- : 09 osiris vsftpd: pam_radius_auth: Sending RADIUS request code 1 28 septembre 17: 11: 09 Osiris vsftpd: pam_radius_auth: Envoi code de requête RADIUS 1
- : 09 osiris vsftpd: pam_radius_auth: DEBUG: getservbyname ( radius, udp ) returned 1214042784 . 28 septembre 17: 11: 09 Osiris vsftpd: pam_radius_auth: DEBUG: getservbyname (rayon, udp) revient 1214042784.
- : 09 osiris vsftpd: pam_radius_auth: Got RADIUS response code 2 28 septembre 17: 11: 09 Osiris vsftpd: pam_radius_auth: Got code de réponse RADIUS 2
- : 09 osiris vsftpd: pam_radius_auth: authentication succeeded 28 septembre 17: 11: 09 Osiris vsftpd: pam_radius_auth: l'authentification réussi
S'il ya un problème, nous devrions le voir là-bas, mais si vous avez déjà Radius et de travail vsftpd, tout devrait bien se passer.
Jusqu'à présent, nous sommes venus, nous avons intégré un nouveau service dans notre réseau dans le même système d'authentification. Toute démon qui utilise PAM pour l'authentification doit être configurée de la même façon. Chut est le meilleur exemple, serait presque égale.
























