Archives de catégorie : Linux

Comprendre & configurer GNS3 correctement.

Comprendre :

Si je reprend le wiki: GNS3 (Graphical Network Simulator) est un logiciel libre permettant l’émulation ou la simulation de réseaux informatiques.

Explication:

GNS3  qui est l’équivalent de packet tracer de Cisco, a été conçu pour pallier à certaine limitation de packet tracer.  En effet, toutes les commandes ne sont pas présentes dans Packet Tracer.

Si vous souhaitez simplement tester la communication de machine virtuelle avec Wireshark à travers un hyperviseur de niveau 2 comme VMware ou VBox, vous n’avez pas besoin de GNS3. Parcontre, si vous souhaitez comprendre le fonctionnement des routeurs Cisco comme approfondir les protocoles de routage, etc…, ces deux outils sont adaptés pour cet apprentissage. Cependant, même s’ils permettent sensiblement de faire la même chose, ils ont une différence de taille; contrairement à Packet Tracert, GNS3 permet l’utilisation de machine virtuelle et un raccordement au réseau réel.

« Il faut bien garder en mémoire le but dans lequel GNS3 a été créé. »

Prérequis :

  • VMware installés et j’ai attribué les cartes réseaux VMnet comme ci-dessous.

  • Télécharger l’image de la machine virtuelle GNS3 et l’importer dans VMWare. Les deux cartes VMnet  sont  attribuées dans la machine virtuelle GNS3.
  • Une liste d’image IOS

1/ Choix du Serveur

Dans le menu Edit-> Preferences, renseigner GNS3 VMware server. En effet, ceci est du à une certaine instabilité de l’émulation des images IOS sous Windows. En faite, cette étape est primordiale.

2/Testes des Images IOS.

Ceci est une étape importante pour la mise en place de maquette, il faut s’assurer de la stabilité des images importées. Donc, on met en place une maquette simple mais efficace.

2-1/Importer une image IOS:

  1. Cliquer sur New Appliance Template
  2. Choisir l’option Add an IOS
  3. Cliquer sur OK

Ensuite, choisir l’option de faire fonctionner l’image IOS sur la machine virtuelle tournant dans GNS3.

2-2/Maquette:

  • 2 VPCS
  • 2 Routeur pour simuler le comportement d’une box
  • 1 Routeur pour recevoir les pings
  • 1 Switch

Dans cet exemple, les PC1 et 2 sont respectivement derrière une box et ping le routeur R1 à l’adresse 192.168.254.254.

Avant de commencer, pour mieux apprécier le schéma, dans le menu View, cocher les options :

  • Snap to grid
  • Show the grid

Mettre en place les éléments et les nommer correctement. Lors de la mise en place de l’EtherSwitch, il est demandé sur quel machine souhaitez vous la faire fonctionner, naturellement, choisissez GNS3 VM.

2-3/Configuration & Test

Raccorder les machines et enfin démarrer l’ensemble. Si vous avez mis le maximum de coeur pour la VM GNS3, le CPU est sollicité à 100%. Double cliquer sur tous les routeurs et vérifier qu’ils ont tous complètement booter. Ensuite clique droit sur L’icône du routeur et choisir Idle-PC. Un menu déroulant va apparaitre et choisir un des éléments signalé par un astérisque.

Entrer les commandes suivantes:

  • PCs
ip 192.168.0.1 192.168.0.254
save

BOX1

conf t
interface fa0/0
ip address 192.168.0.254 255.255.255.0
no shutdown
ip nat inside

interface fa0/1
ip address 192.168.254.1 255.255.255.0
no shutdown
ip nat outside

access-list 1 permit 192.168.0.0 0.0.0.255
access-list 1 deny any

ip nat inside source list 1 interface fastEthernet 0/1
ip route 0.0.0.0 0.0.0.0 192.168.254.254
exit
write memory
copy run start

BOX2

conf t

interface fa0/0
ip address 192.168.0.254 255.255.255.0
no shutdown
ip nat inside

interface fa0/1
ip address 192.168.254.2 255.255.255.0
no shutdown
ip nat outside

access-list 1 permit 192.168.0.0 0.0.0.255
access-list 1 deny any

ip nat inside source list 1 interface fastEthernet 0/1
ip route 0.0.0.0 0.0.0.0 192.168.254.254

exit
write memory
copy run start

R1

conf t

interface fa0/0
ip address 192.168.254.254 255.255.255.0
no shutdown

exit
exit
write memory
copy run start

On ouvre Wireshark sur la pâte reliant le switch et le routeur R1 et on lance un ping d’un des deux PCs pour vérifier que le NAT s’exécute correctement.

Enfin, on enregistre la maquette, ensuite, on ferme le document et on le réouvre. Mise à part le problème de l’occupation du CPU à 100%, si le ping est correctement « natté », alors c’est que l’image est stable.

Samba 4

Samba 4 peut s’exécuter  comme un contrôleur de domaine (DC). Dans un environnement de production, il est recommandé d’exécuter plusieurs DC pour des raisons de « basculement ». Samba 4 est administrable depuis un client Windows à l’aide des outils RSAT.

Prérequis

  • Une machine Linux debian de préférence.
  • Configurer le serveur DHCP en pointant l’adresse du serveur DNS primaire vers le futur DC.
  • Un serveur NTP opérationnel.
  • Un nom de domaine : dom.jbsky.fr

Comme Microsoft et Samba4 préconise d’utiliser un nom DNS réel, j’ai mis un nom de domaine réel en 3 parties (Active Directory Naming FAQ). Soit le contrôleur de domaine n°1 aura un FQND : dc1.dom.jbsky.fr.

Configurer le serveur

  • Configurer une adresse IP statique pour le DC À vérifier que le fichier /etc/hosts  résout correctement son FQND  :
127.0.0.1     localhost.localdomain      localhost
192.168.0.1   dc1.dom.jbsky.fr     dc1
  • Modification du fichier fstab, on ajoute dans les options pour chaque montage « acl,user_xattr,barrier=1 ».
UUID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX /               ext4    errors=remount-ro,user_xattr,acl,barrier=1    0       1
UUID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX /home           ext4    defaults,user_xattr,acl,barrier=1        0       2 
UUID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX /usr            ext4    defaults,user_xattr,acl,barrier=1        0       2 
UUID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX /var            ext4    defaults,user_xattr,acl,barrier=1        0       2 
UUID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX none            swap    sw              0       0
  • On met à jour son système et on installe les paquets nécessaires :
apt-get update && apt-get upgrade
apt-get install ca-certificates build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls28-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr acl docbook-xsl libcups2-dev libpam0g-dev ntpdate ntp -y

Purge des précédentes installations

  • Attention, désinstallé aussi tous les serveur DNS comme unbound/dnsmasq!
apt-get remove krb5-config smbldap-tools libcrypt-smbhash-perl libnss3 \
libnss-mdns libnss-ldapd  libnss-ldap samba-libs samba-common samba-doc \
samba-libs:amd64 ldb-tools samba --purge --auto-remove

rm /usr/include/samba-4.0/ -R
rm /usr/lib/samba -R
rm /etc/samba/smb.conf
rm /usr/lib/python2.7/dist-packages/samba -R
rm /var/lib/samba/ -R

Compilation/Installation de samba 4:

cd /usr/src
wget http://ftp.samba.org/pub/samba/samba-latest.tar.gz
tar xvf samba-latest.tar.gz
  • A l’heure où j’écris, nous sommes à la version 4.5.5.
cd samba-4.5.5
./configure --enable-debug --enable-selftest --prefix=/usr --enable-fhs \
--sysconfdir=/etc \
--localstatedir=/var \
--with-lockdir=/var/run/samba \
--with-statedir=/var/lib/samba \
--with-cachedir=/var/cache/samba
make
make install

Création de l’AD

samba-tool domain provision --use-rfc2307 --interactive --function-level=2008_R2

Vérifier que la ligne ci-dessous, dans le fichier smb.conf, pointe bien sur le serveur DNS habituel de votre réseau.

dns forwarder = 8.8.8.8

Il est possible d’ajouter un répertoire de partage dans le fichier smb.conf, par exemple :

echo "[home$]" >> /etc/samba/smb.conf
echo -e "\tpath = /home/%U" >> /etc/samba/smb.conf
echo -e "\tread only = No" >> /etc/samba/smb.conf

Le signe $ indique que le partage est caché.

On lance le service.

samba

On vérifie que samba écoute bien sur le port 53.

 netstat -aneptu |grep ":53 "
 tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN      0          60722       16374/samba
 tcp6       0      0 :::53                   :::*                    LISTEN      0          60720       16374/samba
 udp        0      0 0.0.0.0:53              0.0.0.0:*                           0          60723       16374/samba
 udp6       0      0 :::53                   :::*                                0          60721       16374/samba

Test du DNS :

cat "nameserver 127.0.0.1" > /etc/resolv.conf
dhost -t SRV _ldap._tcp.dom.jbsky.fr
host -t SRV _kerberos._udp.dom.jbsky.fr 
host -t A dc1.dom.jbsky.fr

ajout de la zone de recherche inversé, évite une erreur 41 avec nslookup.

samba-tool dns zonecreate dc1 10.168.192.in-addr.arpa --username=administrator

Si tout est ok jusqu’ici et que les pares feux correctement ouvert, on peux maintenant joindre un Client au domaine.

/!\

*Suite a un duplication de profil (à force de test), j’ai du nettoyer dans le registre de la machine cliente:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-21-XXXXXXXX-XXXXXXXXX-XXXXXXX-XXXX

Mappage des Groupes

Scénario deluge

Deluge est un serveur de téléchargement de torrent.

Prérequis

  • J’ai ajouté dans le fichier smb.conf le partage deluge.
  • Enfin, j’ai un user/group Unix du nom de deluge qui possède les droits sur le répertoire. L’idéal est que l’uid correspond bien au gid sur les futurs répertoires partagé..
  • Créer un groupe deluge et un utilisateur appartenant au groupe deluge avec les outils RSAT.

Configuration

  • La base de donnée de mappage idmap.ldb se situe dans le répertoire /var/lib/samba/private/.
  • Elle est accessible par la commande ci-dessous:

 

ldbedit -e nano -H /var/lib/samba/private/idmap.ldb
  • La commande qui nous intéresse pour trouver les SID correspondant aux groupes et utilisateurs du domaine et wbinfo.
wbinfo --help
-n, --name-to-sid=NAME                             Converts name to sid
-u, --domain-users                                 Lists all domain users
-g, --domain-groups                                Lists all domain groups
-s, --sid-to-name=SID                              Converts sid to name
-S, --sid-to-uid=SID                               Converts sid to uid
-Y, --sid-to-gid=SID
  • La procédure est un peu lourde dans le sens où il faut d’abord obtenir le SID (option -n) grâce au nom soit du groupe (option -g) soit de l’utilisateur (option -u). * Ensuite, voir la correspondance (option -Y) et la créer si elle n’existe pas.
  • Enfin, il est possible de changer le numéro xid dans la base de donnée de mappage.
  • En dernier lieu, vérifier si le numéro correspond enfin au numéro unix.
wbinfo -g
DOM\deluge
  • Pour obtenir le numéro SID :
wbinfo -n "DOM\deluge"
# S-1-5-21-466102154-213423172-5412416656-1108 SID_DOM_GROUP (2)
wbinfo -Y S-1-5-21-466102154-213423172-5412416656-1108
# 3000012
ldbedit -e nano -H /var/lib/samba/private/idmap.ldb objectsid=S-1-5-21-466102154-213423172-5412416656-1108
# 0 adds  1 modifies  0 deletes

forcer la mise à jour du mappage

  • il faut nettoyer le cache.
net cache flush #Permet de mettre à jour le mapage
wbinfo -Y S-1-5-21-466102154-213423172-5412416656-1108
# 129

Personnellement, j’ai créée une fonction adedit dans /usr/local/sbin

#!/bin/bash
if [[ "$1" == "" ]] then
       ldbedit -e nano -H /var/lib/samba/private/idmap.ldb
else
       ldbedit -e nano -H /var/lib/samba/private/idmap.ldb objectsid=`wbinfo -n "$1" | cut -d" " -f1`;
fi

Dans mon cas, je souhaite que seulement le groupe DOM/deluge ait les droit rxw sur le repertoire /home/deluge

setfacl -b -R /home/deluge/ #nettoyage des ACL
setfacl -m g:deluge:rwx -R /home/deluge/ 
getfacl  /home/deluge
# file: home/deluge/
# owner: deluge
# group: deluge
user::rwx
group::rwx
group:deluge:rwx
mask::rwx
other::r-x
  • Quand ça ne mappe pas correctement, vérifier la base de donné pour voir s’il n’y a pas des doublons au niveau des SID ou des xid.
ldbedit -e nano -H /var/lib/samba/private/idmap.ldb

=> Cette commande affiche le fichier de base de donnée de mappage.

  • Avoir la liste complète des users/groupes
getent group
getent passwd

boot

  • Téléchargement
wget https://raw.githubusercontent.com/jbsky/jbsky/master/debian/rootfs/etc/init.d/samba
  • Rendre le script exécutable
chmod 755 /etc/init.d/samba
  • Activation du script au démarrage de la machine.
update-rc.d samba defaults

Changer le mot de passe

samba-tool user Julien –noexpiry
samba-tool user setpassword Julien

source

https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller
https://wiki.samba.org/index.php/Active_Directory_Naming_FAQ
Pour la compilation, je m’appuie essentiellement sur cet article.
http://www.bidouilleit.com/2014/02/06/installation-configuration-et-administration-samba-4-ad/