Tous les articles par jb

Compaq A900Presario

Je dispose d’un PC portable Compaq A900Presario. Je tiens à exposer les différents services et son utilisation au sein de mon réseau personnel. Debian y est installé et tourne en permanence sur ce matériel.

Son histoire …

… d’avant

Ce pc qui appartenez à un copain à couté dans les 600€ neuf, je l’ai acquis pour moitié moins. C’est mon premier PC portable. A l’époque, je faisant un peu de MAO dans ma voiture, et j’avais besoin d’une alimentation universelle avec un branchement sur allume-cigare, et j’ai cramé la carte mère. Par chance, l’appareil était encore en garanti et HP ne demandait pas de facture.

… et d’aujourd’hui

Aujourd’hui, il tourne tranquillement sur son meuble. Cependant, comme la grille d’aération se bouche rapidement, je l’ai installé sur un support ventilé.

Évolution technique du Compaq A900Presario

J’ai installé le processeur Intel T8300 afin d’augmenter la puissance d’exécution de la machine. Il fut impératif de mettre à jour le bios à jour de la carte mère pour enlever la « whitelist » qui bloque le changement de la carte wifi. J’ai remplacé le lecteur CD pour mettre un deuxième disque dur de même capacité que celui en place et avoir un RAID1 opérationnel.

Tableau récapitulatif de la mise à niveau du matériel.

Processeur T2390 T8300
Fréquence du processeur 1,83GHz 2,4GHz
Quantité de mémoire vive 2024Mo 2024Mo
Capacité de stockage principal 160Go 2x750Go
Type de stockage principal 5400tr/mn 7200tr/min

Rôles :

  • Contrôleur de domaine – samba 4
  • Serveur Xivo/Asterisk
  • Serveur Deluge

 

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/