Lorsque l’on commence à avoir un peu de matériel réseau (i.e. Cisco 🙂 ), il est alors intéressant de centraliser l’authentification et l’autorisation sur ses équipements.
Les serveurs que vous rencontrerez le plus souvent sont les Radius (bien connu des internautes :-p ) et plus spécifiquement à Cisco, Tacacs+.
On peut d’authentifier sur un Cisco de plusieurs façons, soit part un mot de passe local, soit via un serveur Radius, soit via un serveur TACACS+.
C’est cette dernière solution que nous allons mettre en oeuvre.
Je ne rentrerais pas dans les détails concernant L’authentification, l’autorisation et l’accounting (le fameux AAA) ni dans le choix de TACACS+ plutôt que Radius, aussi je vous invite à lire ce très bon article de Ben.
Bien évidemment, j’ai choisi mes serveurs OpenBSD pour y installé Tacacs+.
De plus le package TACACS+ est diponible pour le poisson qui pique ( tacacs+-4.0.4ap1.tgz pour la version 4.3).
Vous le trouverez sûrement pour votre distribution Linux favorite sinon, sur le FTP de Cisco, ftp-eng.cisco.com dans /pub/tacacs .
- Partie Serveur
La configuration se fait dans le fichier /etc/tac_plus.conf.
Nous allons faire une configuration simplifiée qui nous servira a nous authentifier sur nos ciscos avec 2 comptes. Celui de l’administrateur et un compte Opérateur qui nous servira plus tard pour la sauvegarde 😉 (dans un futur billet) .
key = maclésecrète (une clé d'échange) accounting file = /var/log/tacacs # Le password Enable : user = $enable$ { login = des "1234567890" }
On évitera bien évidement de mettre les mots de passe en clair… L’utilitaire /usr/local/sbin/generate_passwd vous permettra de chiffrer vos mots de passe :
poissonquipique# ./generate_passwd Password to be encrypted:
On défini un groupe « Admin » et un groupe « Operator » :
group = admin { login = des "AB12GR54RE98" expires = "Dec 31 2099" } group = operators { login = cleartext "motdepassesupersecret" expires = "Dec 31 2999"
Ici je mets login = cleartext pour définir un mot de passe en clair (c’est un exemple hein !!!!), crypté toujours vos mots de passe dans vos fichiers de configuration.
user = charlie { default service = permit member = admin }
Je définie l’admin « charlie » qui fait partie du groupe « admin » et qui a tout les droits (default service=permit).
user = lulu { member = operators cmd = show { permit ver permit ip } cmd = traceroute { permit .* } cmd = logout { permit .* } }
Je définie l’utilisateur « lulu » (oui je sais j’ai un humour imparable…), membre du groupe « operator » et n’a le droit d’executer que les commandes suivantes :
show version
show ip
traceroute (vers n’importe ou)
logout (vaut mieux 🙂 )
Ne reste plus qu’a lancer le serveur :
/usr/local/sbin/tac_plus -C /etc/tac_plus.conf
(A rajouter bien sûr dans votre /etc/rc.local et n’oubliez pas non plus d’ouvrir le port 49/tcp dans PacketFilter si vous faites du filtrage).
- Partie Cisco
Sur les routeurs et switchs :
aaa new-model aaa authentication login default group tacacs+ enable
tacacs-server host ipdupoissonquipique tacacs-server directed-request tacacs-server key maclésecrète line vty 0 4 exec-timeout 0 0 password motdepasselocal login authentication default
Sur un Pix 6.3 :
aaa-server TACACS+ protocol tacacs+ aaa-server TACACS+ max-failed-attempts 3 aaa-server TACACS+ deadtime 10 aaa-server TACACS+ (inside) host ipdupoissonquipique maclésecrète timeout 10 aaa-server LOCAL protocol local aaa authentication ssh console TACACS+ LOCAL
Attention : N’oubliez pas de rajouter enable (ou local) a la fin de la ligne aaa authentication, ceci afin de vous permettre de vous identifier quand le serveur TACACS+ est indisponible (enfin, c’est vous qui voyez 😀 )
Et voilà, désormais vous pouvez vous logguer sur vos Cisco avec le user « charlie » et le mot de passe associé.
J’ai volontairement simplifié la procédure, il y a énormément d’options possible, d’accounting et d’autorisation que je vous laisse potasser tranquillement 😀
Quelques documents ICI
et LA
Oui , mais tu doit reconfigurer 2 fois la meme chose pour radius et tacacs plus.
Ca n’existe pas une methode de rediriger les requetes tacacs vers radius ( et vers ldap 🙂 , a ton avis ?
cdt
???
Tacacs+ *OU* Radius j’écris en début de billet…
Pour utiliser les deux (quel interet ?), au niveau Cisco il suffit de rajouter radius :
aaa authentication login vtymethod group radius tacacs+ enable
Quand a la gestion des comptes, RADIUS et TACACS+ savent déjà se baser sur un serveur LDAP commun
Bonjour, je suis en train d’installer un serveur Tacacs+ pour mon stage. ils veulent lié l’authentification avec LDAP.
Vous parlez que c’est donc possible à faire.
J’effectue des recherches dessus, mais je ne trouve rien de concret.
Pouvez faire un article dessus ou m’indiquer des aides, s’il vous plait ?
J’ai vu beaucoup de chose en rapport avec radius et ldap, mais pas avec tacacs. Ou alors ceux qui en parle n’ont pas la même manière de faire le fichier de configuration. Je suis un peu perdue.
Votre article m’a déjà bien aidé comme les documents Cisco pour installer le serveur Tacacs+.
la doc ici, page 6
http://www.tacacs.net/docs/TACACS.net_config.pdf
Bonjour,
Merci d’avoir répondu mais je l’avais déjà vu ce document.
Certes le LDAP est sur Windows, mais la doc ne me « parle » pas (c’est embetant). Surtout pour les modif à faire sur mon tacacs+, qui ne reconnait pas pam.
Je comprend le document (maintenant traduit ^^)
On ne peut pas faire des modifications disant à mon serveur Tacacs+ que le Ldap se trouve à cette adresse et qu’il doit prendre ça ça pour les utilisateurs et mots de passe, sans passer par Windows ?
C’est bon j’ai trouvé. Merci quand même.
Il a fallu que je me lance à l’aveuglette pour trouver. ^^
exemple : http://julp.developpez.com/freebsd/authentification-ldap/
Un peu de recherche rapide sur google est toujours plus efficace 😉
Ca faisait 5 semaines que je faisais des recherches, mais comme je cherchais qqch de précis.
Je vous remercie vous êtes très attentif.