![]() |
|
Home | Linux | Réseaux | Developpement | Divers | FAQ | Forum | Guestbook | Musique | |
Samba1 - IntroductionSamba est un serveur SMB. Vous utilisez SMB tous les jours peut être sans vous en appercevoir,
à partir du moment où vous travaillez en réseau OS/2, Windows for workgroup, Windows 95/98/NT ou
même le MSCLIENT sous DOS. 2 - PréparationTout d'abord vous devez avoir configuré correctement le réseau sur toutes les machines. Attention il est préférable d'utiliser des adresses IP non routées - voir la RFC 1597 : 10.0.0.0 -- 10.255.255.255 172.16.0.0 -- 172.31.255.255 192.168.0.0 -- 192.168.255.255 Lorsque les stations clientes sont configurées passez sous Linux pour paramétrer Samba. 3 - Configuration de baseEditez le fichier /etc/smb.conf, en voici un exemple commenté:
#Fichier de configuration de Samba
#==================== Global Settings ====================
[global]
# définie le groupe de travail qui sera utilisé par Samba
workgroup = home
# nom du serveur Samba
netbiosname = cassoulet
# définie le mode de sécurité
# share ==> les utilisateurs se connectent
sans fournir de mot de passe valide
security = share
# utilise des mots de passe cryptés
# (valable uniquement pour Windows 98, 2000 et ME)
encrypt password = yes
# charge les imprimantes configurées
printcap name = /etc/printcap
load printers = yes
#==================== Share Definitions ====================
[public]
comment = Public Stuff
path = /tmp
guest ok = yes
writable = yes
[printers]
comment = All Printers
path = /var/spool/samba
guest ok = yes
writable = yes
printable = yes
4 - Configuration avec accès privéLe nom d'utilisateur et le mot de passe employés pour toutes les connexions auront été rentrés préalablement au démarage de la session des clients. Tout utilisateur souhaitant se connecter à la machine Cassoulet devra posseder un compte Samba et non un compte Unix. Pour créer un compte Samba on utilise un utilitaire fourni à cet effet, smbpasswd. $ smbpasswd -a buggsbunny [Entrée] Si l'utilisateur ne souhaite pas avoir de mot de passe à saisir on peut supprimer le mot de passe comme ceci : smbpasswd -a buggsbunny [Entrée] smbpasswd -n buggsbunny [Entrée] Editez le fichier /etc/smb.conf, en voici un exemple commenté:
#Fichier de configuration de Samba
#==================== Global Settings ====================
[global]
# définie le groupe de travail qui sera utilisé par Samba
workgroup = home
# nom du serveur Samba
netbiosname = cassoulet
# définie le mode de sécurité
# user ==> les utilisateurs se connectent
en fournissant un mot de passe valide
security = user
# utilise des mots de passe cryptés
# (valable uniquement pour Windows 98, 2000 et ME)
encrypt password = yes
# charge les imprimantes configurées
printcap name = /etc/printcap
load printers = yes
#==================== Share Definitions ====================
[public]
comment = Public Stuff
path = /tmp
# si il y a plusieurs utilisateurs
# on les sépare par des espaces, tout simplement
valid users = buggsbunny
writable = yes
[printers]
comment = All Printers
path = /var/spool/samba
writable = yes
printable = yes
5 - Configuration avec un controleur de domaineVous devez procedez de la même façon que pour la configuration avec accès privé pour créer
des utilisateurs. #Fichier de configuration de Samba #==================== Global Settings ==================== [global] workgroup = home netbiosname = cassoulet security = USER password level = 4 domain logons = yes logon script = logon.bat os level = 64 domain master = yes local master = yes prefered master = yes browsable = yes writable = yes locking = no case sensitive = no default case = lower preserve case = yes short preserve case = no encrypt passwords = Yes #==================== Share Definitions ==================== [netlogon] comment = NETLOGON service path = /export/smb/netlogon locking = no public = no writable = no [homes] comment = Home Directories path = %H create mode = 0600 directory mode = 0700 browseable = no valid users = %S [printers] comment = All Printers path = /var/spool/samba browseable = no writable = no printable = yes public = Yes [public] comment = Public Stuff path = /tmp valid users = buggsbunny writable = Yes Vous devez créer un fichier logon.bat au format DOS (utilisez votre éditeur de texte favoris
sous Windows pour le faire). echo ================================= echo | Linux Mandrake 7.1 Hellium used | echo | Welcome to Home domain | echo | Mapping network drives ... | echo ================================= echo. net use f: \\cassoulet\homes net use g: \\cassoulet\public Configurez le client réseau Microsoft comme ceci : 6 - TestAprès avoir configuré Samba lancez cette ligne de commande afin de vérifier le bon fontionement du serveur.
[root@cassoulet /root]# testparm Si vous n'avez eu aucun message d'erreur relancez Samba [root@cassoulet /root]# samba restart 7 - Passez à l'actionCa y est ca marche et revenez sous Windows. Si vous avez de l'administration à faire utilisez telnet pour modifier
vos fichiers à distance. 8 - Swat (Samba Web Administration Tool)Ce programme fait partie de la suite Samba. Swat permet à un administrateur de parametrer plus facilement le fichier de config de Samba par le biais d'un browser. Il facilite la tâche pour les néophytes et les allergiques des fichiers de config (petite pensée à un PTZ...). Nous ne verons pas l'installation de Swat car ce n'est pas le but de cette page et de plus il est installé par défaut dans la plus part des distributions actuelles. 9 - Configuration de SwatNous aurons besoins d'éditer 2 fichiers /etc/services et /etc/inetd.conf. Editez le fichier /etc/services et ajoutez la ligne suivante à la fin du fichier : swat 901/tcp Ceci signifie que l'on va se servir du port 901 pour attaquer Swat - les deux valeurs doivent être séparée par des tabulations. Ajouter la ligne suivante dans le fichier /etc/inetd.conf : swat stream tcp nowait.400 rootpath swat Après ces modifications vous devez tuer le processus inetd avec $ kill -1 pid. 10 - Utilisation de SwatPour accéder à Swat, lancez un navigateur et entrez l'url suivante : http://localhost:901/ 11 - Contrôleur de domaine pour Windows 2000 pro11.1 - IntroductionSuite aux questions qui m'ont été posées je me suis penché sur la configuration d'un contrôleur de
domaine pour station utilisant Windows 2000 Pro. Je précise que la config est beaucoup plus tordue
que pour un environement Win9x ou Nt4. Trouve une nouveauté qui est très importante, à savoir un
compte destiné à l'enregistrement d'un hôte sur le domaine - exactement comme le compte administrateur
de domaine sous NT. 11.2 - Fichier smb.confVoici un fichier smb.conf qui devrait faire l'affaire : */ smb.conf - PDC to win2k station*/ [global] ; standard informations workgroup = home netbiosname = tux security = USER password level = 4 os level = 64 encrypt passwords = Yes browsable = yes writable = yes locking = no case sensitive = no default case = lower preserve case = yes short preserve case = no ; domain controler informations domain master = yes local master = yes prefered master = yes domain logons = yes logon script = logon.bat # ============= Share definitions ============= [netlogon] comment = NETLOGON service path = /home/netlogon locking = no public = no writable = no [dev] comment = Developpement Directory path = /samba/dev locking = yes public = no valid users = maxmaster [homes] comment = Home Directories path = %H create mode = 0600 directory mode = 0700 browseable = no valid users = %S [profiles] path = /home/export/profile browseable = no writeable = yes create mask = 0700 directory mask = 0700 11.3 - Création des comptes utilisateurs UnixComme décrit plus haut pour le contrôleur de domaine classique je vais reprendre la marche
à suivre pour ne pas troubler ceux qui sont habitués au partage classique. $ useradd -g users jmbigard $ useradd -g users grouchi 11.4 - Création des répertoires de logons et de profilesPar défaut le répertoire /home/netlogon n'existe pas, nous allons le créer. $ mkdir -p /home/netlogon On poursuit avec le répertoire pour les profiles. $ mkdir -p /home/export/profile 11.4 - Création des comptes utilisateurs SambaNous créons maintenant les comptes qui seront utilisés par Samba, essayer de reprendre les mots de passes des comptes Unix. $ smbpasswd -a jmbigard $ smbpasswd -a grouchi 11.6 - Création des comptes de machinesLes comptes de machines vont servir à intégrer un poste au domaine. Nous allons créer pour cela un groupe destiné à les recevoir (le groupe postes). $ groupadd postes $ useradd -g postes -s /dev/false -d /dev/null station1$ $ useradd -g postes -s /dev/false -d /dev/null station2$ $ smbpasswd -m -a station1$ $ smbpasswd -m -a station2$ 11.7 - Création du compte administrateur de domaineComme vous le savez le compte administrateur de domaine est utilisé pour "connecter" une machine à un domaine lorsqu'elle se trouve dans un groupe de travail ou lorsque qu'un poste doit changer de domaine. Le compte qui va faire office d'administrateur de domaine est le compte root. $ smbpasswd -a root Pensez à utiliser un autre mot de passe pour le compte root pour des raisons de sécurité. Puis on relance Samba. $ /etc/init.d/samba restart On peut vérifier l'état du serveur en utilisant une commande propre à samba ou par intérogation des process. $ /etc/init.d/samba status $ ps -eaf | grep smbd 11.8 - Connection au domaineIl ne nous reste plus qu'à inclure les station au domaine. Clique droit sur le Poste de travail, propriété, identification réseau, propriété, et indiquer les domaines que l'on vient de créer en utilisant le compte root que l'on a créé en tant que Samba.
12 - Une imprimante pdfBloc à ajouter dans les partages du fichier smb.conf : [pdf-printer] path = /tmp guest ok = No valid users = snake printing = bsd lpq command = /bin/true printable = Yes comment = PDF Generator (only valid users) print command = /samba/netconfig/samba/printpdf.sh "%s" "%H" "//%L/%u" "%m" "%I" "%J" & Le script qui génère le pdf :
#!/bin/bash
# samba-print-pdf
PS2PDF=ps2pdf13
OPTIONS="-dAutoFilterColorImages=false -sColorImageFilter=FlateEncode"
#Values taken from arguments:
INPUT=$1
PREFIX="$2"
WINBASE=$(echo "$3"|sed -e 's,/,\\\\,g')
#NAME=`echo "$6"|sed -e 's/[&/:{}\\\[<>$#@*^!?=|]/-/g;s/\]/-/g'`
NAME=`echo "$6"|tr '[:punct:]' '[-*]'`
# Source config file if it exists:
CONFFILE=/etc/samba/print-pdf.conf
[ -e $CONFFILE ] && . $CONFFILE
#Values not taken as arguments, could be set via env. vars (?) or config file
KEEP_PS=${KEEP_PS=0}
PERMS=${PERMS=640}
BASEFILE=${BASEFILE=pdf-service}
TEMP="${TEMP=$2}"
UMASK=${UMASK=006}
#Make sure that destination directory exists
mkdir -p "$PREFIX"
INFILE=$(basename $INPUT)
umask $UMASK
[ -n "$NAME" ] && TEMP="$PREFIX"
#make a temp file to use for the output of the PDF
OUTPUT=`mktemp -q $TEMP/$BASEFILE-XXXXXX`
if [ $? -ne 0 ]; then
echo "$0: Can't create temp file $TEMP/$OUTPUT, exiting..."
exit 1
fi
if [ -n "$NAME" ]; then
FINALOUTPUT="$PREFIX/$NAME"
else
FINALOUTPUT="$OUTPUT"
fi
if [ -n "$7" ]; then
OPTIONS="$OPTIONS -dPDFSETTINGS=/${7#pdf-}"
else
OPTIONS="$OPTIONS -dPDFSETTINGS=/default"
fi
WIN_OUTPUT="$WINBASE\\"`basename "$FINALOUTPUT"`
#mv "$INPUT" "$INPUT.ps";INPUT="$INPUT.ps"
# create the pdf
$PS2PDF $OPTIONS "$INPUT" "$OUTPUT.pdf" >/dev/null 2>&1
mv -f "${OUTPUT}.pdf" "${FINALOUTPUT}".pdf
# Generate a message to send to the user, and deal with the original file:
MESSAGE=$(echo "Your PDF file has been created as $WIN_OUTPUT.pdf\n")
# Cleanup
if [ $KEEP_PS != 0 ];then
mv -f $INPUT "${FINALOUTPUT}".ps
MESSAGE=$(echo "$MESSAGE and your postscript file as $WIN_OUTPUT.ps")
# Fix permissions on the generated files
chmod $PERMS "${FINALOUTPUT}".ps "${FINALOUTPUT}".pdf
else
rm -f $INPUT
# Fix permissions on the generated files
chmod $PERMS "${FINALOUTPUT}".pdf
fi
#Remove empty file from mktemp:
rm -f $OUTPUT
# Send notification to user
echo -e $MESSAGE|smbclient -M $4 -I $5 -U "PDF Generator" >/dev/null 2>&1
|
|
|