dimanche 17 juin 2012

Terminator

Terminator, le terminal ultime sous GNU/Linux

Terminator (logiciel libre sous licence GPL) propose les fonctions suivantes:
  • configuration de la fontes et des couleurs avec gestion de la transparence (association dans des profils)
  • division horizontale et verticale de la fenêtre pour disposer de plusieurs terminaux
  • chaque terminal peut disposer d'un profil différent
  • possibilité d'envoyer les lignes de commandes saisies au clavier sur un groupe de terminaux
  • capture d'écran du terminal en 2 clics de souris
  • scroll bar infinie
  • possibilité de lancer des commandes automatiquement au démarrage du terminal

Possibilité de mixer des divisions horizontales et verticales et d'associer un profil différent pour chaque terminal. Par exemple, trois profils différents:
  • default: le profil par défaut que j'utilise sur ma machine (fond bleu foncé, texte blanc)
  • tiny: un profil optimisé pour l'affichage des logs (fontes plus petite)
  • b&w: un profil monochrome
La configuration des profils est stockées dans le fichier ~/.config/terminator/config et peut donc facilement être importée entre vos différents ordinateurs.
Autre fonction très utile, le regroupement. Vous allez pourvoir diffuser, en parallèle, les commandes saisies au clavier sur un ensemble de terminaux.
Imaginons que vous deviez mettre à jour 3 serveurs. Vous commencez donc par diviser horizontalement l'écran en 3 terminaux à partir desquels vous allez vous connecter en SSH sur vos serveurs (1 serveur = 1 terminal). Vous allez ensuite regrouper les 3 terminaux en faisant un clic droit  > Regroupement > Diffuser tout. Il ne reste plus qu'à saisir une seule fois les commandes de mises à jour !
 

VPN Tunnel avec SSH

Les utilisateurs de OpenSSH, ont très souvent recours à SSH uniquement pour réaliser des connexions vers les serveurs, sans savoir qu'il peut être utilisé pour réaliser un VPN, en établissant un tunnel sécurisé ssh vers un serveur, puis en rebondissant vers les serveurs internes, du réseau.
Prenons un exemple simple de schéma réseau : vous êtes à l'extérieur de la société et souhaitez, atteindre 4 machines :
  • intranet sur le port http 80
  • web-metier sur le port http 80
  • pop3 sur le port pop3 110
  • pc1 sur le port RDP (Remote Desktop) et accès aux répertoires partagés
Astuce : Le grand avantage du script que je propose, est d'utiliser complètement les adresses ip loopback 127.0.0.0/8, et pas juste l'adresse 127.0.0.1. On peut ainsi, utiliser plusieurs fois le même port
tunnel ssh
Avec Windows, en utilisant PuTTY vous créez le script suivant qui crée le tunnel SSH :

Démarrez le script, identifiez-vous, laissez la fenêtre DOS "ouverte", et hop vous avez accès aux ressources désirées !
Astuce : vous remarquerez le signe ^ en fin de ligne, il permet d'écrire une commande DOS sur plusieurs lignes.
Avec Linux, de la même façon, vous pouvez créer un alias dans le .bashrc :

hostout.conf et hostin.conf contiennent les noms de machines et les ip de mappage en 127.0.0.x.

  1. alias VPN=' \
  2. sudo cp hostout.conf /etc/hosts; \
  3. sudo ssh \
  4. -L 80:intranet:110 \
  5. -L 80:web-metier:80 \
  6. -L 110:pop3:110 \
  7. -L 3389:pc1:3389 \
  8. -L 137:pc1:137 \
  9. -L 138:pc1:138 \
  10. -L 139:pc1:139 \
  11. user@[nom ou ip du serveur ssh]; \
  12. sudo cp hostin.conf /etc/hosts;'

  1. set path=%path%;"C:\Program Files\PuTTY"
  2. echo 127.0.0.1 localhost > C:\WINDOWS\system32\drivers\etc\hosts
  3. echo 127.0.0.2 intranet >> C:\WINDOWS\system32\drivers\etc\hosts
  4. echo 127.0.0.3 web-metier >> C:\WINDOWS\system32\drivers\etc\hosts
  5. echo 127.0.0.4 pop3 >> C:\WINDOWS\system32\drivers\etc\hosts
  6. echo 127.0.0.5 pc1 >> C:\WINDOWS\system32\drivers\etc\hosts
  7. copy C:\WINDOWS\system32\drivers\etc\lmhosts.sam C:\WINDOWS\system32\drivers\etc\lmhosts
  8. echo 127.0.0.5 pc1 >> C:\WINDOWS\system32\drivers\etc\lmhosts
  9. net stop Browser
  10. net stop lanmanserver
  11. rem pour écrire une ligne de commande sur plusieurs lignes mettre ^ en fin de chaque ligne
  12. rem to write multi-lines DOS command use ^
  13. plink -C ^
  14. -L 127.0.0.2:80:intranet:80 ^
  15. -L 127.0.0.3:80:web-metier:80 ^
  16. -L 127.0.0.4:110:pop3:110 ^
  17. -L 127.0.0.5:3390:pc1:3389 ^
  18. -L 127.0.0.5:137:pc1:137 ^
  19. -L 127.0.0.5:138:pc1:138 ^
  20. -L 127.0.0.5:139:pc1:139 ^
  21. %username%@[nom ou ip du serveur ssh]
  22. net start lanmanserver
  23. net stop Browser
  24. echo 127.0.0.1 localhost > C:\WINDOWS\system32\drivers\etc\hosts
  25. del C:\WINDOWS\system32\drivers\etc\lmhosts

Cisco Template Manager

Configuration CISCO par template
Cisco Template Manager ou CTM est un programme, qui permet de configurer et demanager, simplement, sur d'important réseau CISCO, la configuration des switchs et routeurs CISCO, en toutes sécurité. Il fonctionne actuellement avec les équipements suivants : C760x, C730x, C37xx, C35xx, C29xx, C28xx, C18xx et C17xx.
Sécurité CISCO
Cet outil nécessite un environnement de type Linux/Unix.
Les fonctionnalités du Cisco Template Manager sont les suivantes :
  • configuration rapide d'équipements réseaux, à partir de template
  • 3 types de templates : globaux, section, services
  • création de templates personnalisés
  • fonctionne avec les équipements CISCO : C760x, C730x, C37xx, C35xx, C29xx, C28xx, C18xx, C17xx series
Avec CISCO Template Manager, vous pouvez contrôler la configuration par équipement, par type d'équipement ou même par rôle. Un équipement peut avoir plusieurs rôles sur votre réseau, prenons un Catalyst 3750, on peut définir les règles d'accès switch niveau 2 et les règles de routage niveau 3. CTM permet de définir un template pour chaque rôle de ceCatalyst.
CTM est constitué de 3 scripts principaux, qui gèrent les templates de configurations :
  • ctm-conf-checker.sh
  • ctm-show-global-template.sh
  • ctm-show-template.sh
La documentation disponible sur le site de Gelogic explique l'ensemble des fonctionnalités.

Remote Destokp Manager

Il est gratuit et gère les protocoles suivants :
  • VMware Player, VMware Workstation, VMware ESXi, VMware vSphere
  • Sun VirtualBox
  • Microsoft Hyper-V
  • Microsoft Virtual PC
  • Microsoft Virtual Server
  • Microsoft Remote Desktop and Microsoft Terminal Services
  • Microsoft Remote Assistance
  • RealVNC, TightVNC, UltraVNC and embedded VNC
  • Citrix
  • LogMeIn desktop shortcut
  • Team Viewer
  • Dameware
  • Radmin
  • pc Anywhere
  • Ftp (Explorer, Filezilla and WinSCP)
  • Telnet, SSH, RAW and rLogin
  • Xwindow
  • Automatic VPN connection (Microsoft / Cisco / SonicWall)
  • Network management (Wake on LAN, ping, trace and more)
  • plus des Addons de sessions, d'applications, ...
Remote management

Rancid ( Sauvegarde Cisco)


Présentation de Rancid

Rancid permet d'automatiser la sauvegarde des équipements réseaux de plusieurs fabricants.Rancid réalise les sauvegardes dans un dépôt CVS ou Subversion, pour garder l'historique des changements de configuration. Dés lors qu'une modification est détectée, un email est envoyé. Les avantages sont donc multiples:
  • backup automatisé des équipements réseaux
  • mise en configuration permettant de revenir en arrière
  • détection de changement de configuration
Ainsi, vous sécurisez vos équipements et configurations réseaux.

Installer et configurer Rancid sur Ubuntu en 5 minutes

On attaque l'installation de Rancid pour backuper notre infrastructure CISCO :
sudo aptitude install rancid
Éditez le fichier /etc/rancid/rancid.conf, mettre dans la variable LIST_OF_GROUPS votre"découpage logique de votre réseau", pour moi, par exemple, les différents sites d'implantation de ma société :
LIST_OF_GROUPS="batiment1 batiment2 batiment3"
Ensuite, on démarre la création du repository CVS, avec les commandes :
rancid-run
sudo su -c /var/lib/rancid/bin/rancid-cvs -s /bin/bash -l rancid
Le repository CVS Rancid est créé dans le répertoire /var/lib/rancid/
Pour chaque "découpage logique de votre réseau", vous édité le fichier /var/lib/rancid//router.db, pour moi :
/var/lib/rancid/batiment1/router.db
/var/lib/rancid/batiment2/router.db
/var/lib/rancid/batiment3/router.db
Vous indiquez les adresses ip ou nom DNS des équipements CISCO qui doivent être pris en charge :
192.168.222.1:cisco:up
switch-bat1.mondomaine.com:cisco:up
wifi1-bat1.mondomaine.com:cisco:up
catalyst-bat1.mondomaine.com:cisco:up
Vous éditez, maintenant, le fichier /var/lib/rancid/.cloginrc, qui va contenir les informations de login sur vos différents équipements : ATTENTION FICHIER SENSIBLE !!!
# Batiment 1 switch1 en SSH avec auto-enable
add autoenable  switch1-bat1.mondomaine.com 1
add method      switch1-bat1.mondomaine.com ssh
add user        switch1-bat1.mondomaine.com root
add password    switch1-bat1.mondomaine.com passwdssh

# Batiment 1 wifi1 en telnet avec auto-enable
add autoenable  wifi1-bat1.mondomaine.com 1
add method      wifi1-bat1.mondomaine.com telnet
add user        wifi1-bat1.mondomaine.com adminPower
add password    wifi1-bat1.mondomaine.com asswdtelnet

# Batiment 2 pix1 en ssh SANS auto-enable
add autoenable  pix1-bat1.mondomaine.com 0
add method      pix1-bat1.mondomaine.com ssh
add user        pix1-bat1.mondomaine.com rootMan
add password    pix1-bat1.mondomaine.com passwdssh passwdenable
Pour des raisons de sécurité, Rancid refusera de s’exécuter, si vous ne procédez pas aux modifications suivantes sur le fichier /var/lib/rancid/.cloginrc :
  • chown rancid: /var/lib/rancid/.cloginrc
  • chmod o-r /var/lib/rancid/.cloginrc
Avant d'automatiser les sauvegardes, je vous propose de vérifier votre configuration pour chaque équipement, pour voir si la connexion se passe correctement :
sudo su -c "/var/lib/rancid/bin/clogin \
-f /var/lib/rancid/.cloginrc -u root "
Vous avez vérifié toutes vos connexions, automatisons la sauvegarde, avec cron, éditez le fichier /etc/crontab et ajoutez les lignes suivantes :
# RANCID
# run config differ hourly
1   * * * *  rancid /usr/lib/rancid/bin/rancid-run
# clean out config differ logs
50 23 * * *  rancid /usr/bin/find \
/var/log/rancid -type f -mtime +2 -exec rm {} \;
Pour permettre l'envoie des emails de détection de changement de configuration, vous devez éditer le fichier /etc/aliases en ajoutant ces lignes :
rancid-bat1: email@mondomaine.com
rancid-admin-bat1: email@mondomaine.com
rancid-bat2: email@mondomaine.com
rancid-admin-bat2: email@mondomaine.com
rancid-bat3: email@mondomaine.com
rancid-admin-bat3: email@mondomaine.com
Enfin, lancer la commande newaliases.
Pour lancer la vérification/sauvegarde des configurations CISCO avec Rancid manuellement, lancer la commande (cela peut durer plusieurs minutes suivant votre configuration) :
sudo su -c /var/lib/rancid/bin/rancid-run -s /bin/bash -l rancid

Installer CVSWeb, pour suivre la mise en configuration de son réseau CISCO

Pour visualiser, de façon simple, les configurations sauvegardées, je propose d'installer cvsweb avec la commande :
sudo aptitude install cvsweb
Ensuite je crée un lien symbolique, vers /var/www/, avec la commande :
ln -s /usr/share/cvsweb /var/www/cvsweb
Modifiez le fichier /etc/cvsweb/cvsweb.conf, en indiquant l'emplacement de votre repository Rancid :
'local'   => ['Local Repository', '/var/lib/rancid/CVS/'],
Accéder au serveur web cvs, allez à l'adresse http:///cgi-bin/cvsweb
Vue du serveur CVSWeb :
Vue de l’arborescence du découpage logique :
Vue des équipements CISCO :

Conclusion sur la sauvegarde automatisé de gros réseaux CISCO

Rancid est particulière bien adapter, à la sauvegarde de mon réseau CISCO, la gestion des configurations permet de revenir en arrière en cas de détection de problèmes, ou de fausses manipulations ! Vous renforcez ainsi la sécurité du système d'informationaméliorez la qualité de servicelimitez les interruptions de services, toujours néfaste pour lebusiness !
Rancid supporte également les équipements suivants :
DeviceDescription
alteonAn Alteon WebOS switches.
baynetA Bay Networks router.
cat5A Cisco catalyst series 5000 and 4000 switches (i.e.: running the catalyst OS, not IOS).
ciscoA Cisco router, PIX, or switch such as the 3500XL or 6000 running IOS (or IOS-like) OS.
cssA Cisco content services switch.
enterasysAn enterasys NAS. This is currently an alias for the riverstone device type.
erxA Juniper E-series edge router.
ExtremeAn Extreme switch.
ezt3An ADC-Kentrox EZ-T3 mux.
force10A Force10 router.
foundryA Foundry router, switch, or router-switch. This includes HP Procurve switches that are OEMs of Foundry products, such as the HP9304M.
hitachiA Hitachi routers.
hpA HP Procurve switch such as the 2524 or 4108 procurve switches. Also see the foundry type.
mrtdA host running the (merit) MRTd daemon.
netscalarA Netscalar load balancer.
netscreenA Netscreen firewall.
redbackA Redback router, NAS, etc.
tntA lucent TNT.
zebraZebra routing software.
riverstoneA Riverstone NAS or Cabletron (starting with version ~9.0.3) router.
juniperA Juniper router.