Vous êtes sur la page 1sur 32

Serveur Linux pour TPE/PME

[20 mn de lecture - paru le 9/1/2006 9:09:24 AM - Public : Confirmé]

Auteur
Fabrice POET-BENEVENT
Elève-Ingénieur Supinfo Paris
Promotion SUPINFO 2006

    Lui écrire
    Tous les projets de cet auteur
    Le mini-CV de cet auteur

Resume
Ce mémoire d’étude à pour objectif d’établir une procédure aussi complète que simplifié
afin de mettre en production un serveur Linux en PME, regroupant tout les éléments
nécessaires au fonctionnement d’une entreprise : Contrôleur de domaine, serveur de
fichiers, serveur de messagerie, webmail, serveur Intranet, Internet, serveur base de
données, etc, ...

Sommaire
 Introduction
 1 Aide au choix de la distribution
 2 Préparation
o 2.1 Gestionnaire de package
o 2.2 Archivage
o 2.3 Utilisation des services
o 2.3 VI
 3 Réseau
o 3.1 Configuration
o 3.2 Service DHCP
o 3.3 Service DNS
 4 LAMP
o 4.1 Apache
o 4.2 PHP
o 4.3 MySQL
 5 Messagerie
o 5.1 POSTFIX
o 5.2 Dovecot
o 5.3 Spamassassin
o 5.4 SquirrelMail
 6 Contrôleur de domaine
o 6.1 Primary AD
o 6.1 Connection des stations
o 6.3 ClamAV
 7 Administration et télémaintenance
o 7.1 SSH
o 7.2 FTP
o 7.3 Webmin
o 7.4 PHPSysInfo
 8 Mémo
o 8.1 Commandes de bases
o 8.2 Gestion des utilisateurs
o 8.3 Informations Diverses
o 8.4 Alias et Bash
o 8.5 Cron
o 8.6 Arborescence
 Conclusion

 Introduction
 Il est indéniable que la part de marché de l’Open-Source demeure croissant
depuis quelques années déjà. Alors que la distribution française Mandriva
enregistre ces premiers bénéfices positifs, les magasines faisant louanges de
distributions de plus en plus conviviales développent un certain impact auprès du
grand publique, mais également auprès des artisans, commerçants, chefs
d’entreprises TPE, PME, …
  
 Microsoft Windows garde un certain monopole sur les stations de travails. Bien
implanté dans les mœurs des utilisateurs finaux, et pas seulement des plus
réticents avec l’informatique, Windows offre un certain confort et point de
référence notamment avec la suite originelle Office. Sur le terrain des serveurs,
Linux se fait néanmoins, doucement mais sûrement, une place au sein des RSI et
SSII. Plus que de simples excuses de benchmark (une TPE n’ayant pas les mêmes
besoins qu’un FAI) c’est surtout le goût de la gratuité qui pousse une catégorie de
clientèle à franchir le pas.
  

L’économie engendré par les licences de serveurs, parfois multiples (serveur Exchange,
serveur AD, ...) et de licences connections (CAL), font de Linux un concurrent frontal de
Windows Server. Avec une certaine accoutumance de l’OS, le déploiement ne prend pas
plus de temps qu’un SBS et permet souvent de récupérer l’investissement « licences » ...

1 Aide au choix de la distribution


Première étape décisive : la distribution. Elément de choix important, car il impliquera
directement et indirectement les possibilités de notre futur serveur. Les critères pouvant
bien évidemment variés selon des besoins spécifiques, notre cahier des charges retiendra
le cas d’une entreprise PME générique, dont le cœur de métier ne repose pas sur son SI
(comme les webcommercantq, hébergeurs, télécoms…) :
-          la gratuité.
-          la simplicité.
-          la pérennité.
- Sauf si le client (ou la SSII) manifeste le besoin d’un support constructeur, la gratuité
est un élément moteur des tendances vers Linux. Ceci écarte, tout au moins pour notre
étude, les distributions payante ou version serveur payante (Red Hat, Mandriva desktop
et server, Suse entreprise …).
 
- En matière de simplicité, les distributions se distinguent éventuellement à l’installation
et/ou à l’utilisation. D’une manière général, les documentations de plus en plus fournies,
l’utilisation de plus en plus courante d’assistants à l’installation et d’environnements
évolués comme KDE, harmonise les différences. L’exception sera faite avec Gentoo,
excellente distribution mais pour notre cas trop lourde d’utilisation et fastidieuse à mettre
en production (compilation excessive !).
 
- Le choix de la pérennité (parfois associé à la stabilité), nous évite déjà toute les
distributions peu connu,  peu suivi et/ou éphéméride. Mais également, bien que de
qualité, nous écarterons par soucis de d’imprévisibilité, les nouvelles distributions, certain
« forks » et LiveCD,…Enfin pour terminer, notre serveur se devant être universel (web,
mail, fichiers,…) enlève du comparatif les versions trop spécialisé ou carrément dédiés
par exemple : passerelle/firewall (type IPCop, Mandriva MNF, …) et à contrario les
distributions grand public (Lycoris, Linspire, Xandros ex-Corel, …) trop éloigné du monde
serveur.
 
 
A la suite de se tris très subjectif (chaque ingénieur système dispose de son propre avis
sur les distributions), l’étude retiendra une liste de distribution loin d’être exhaustive,
pour lesquels les informations fournis devraient fonctionner :
Debian Woody                    http://www.debian.org/CD/
Fedora Core 5                    http://fedora.redhat.com/Download/
Mandriva Download Edition http://wwwnew.mandriva.com/en/downloads
Open Suse                        http://en.opensuse.org/Download
Open Solaris                      http://www.opensolaris.org/os/downloads/
 
 

Dedian Woody (stable)


+ version stable (woody), fortement testé, robuste et légère.
+ multiplateforme excessif (x86 32/64bit, Sparc, PowerPC, Motorola, IBM, HP PA-RISC,
…)
+ support, documentation et réactivité communautaire.
+ 100 % gratuit et symbole de l’esprit GNU/GPL.
+ forte pénétration dans le marché des serveurs d’entreprises.
- nouvelles versions rares (tout les 2 ans) donc peu de logiciels récents.
- plus complexe qu’une Fedora ou Mandriva, notamment à l’installation.
- pas de support constructeur même payant.
 

Fedora Core 5
+ simple, accessible et efficace.
+ sponsorisé par Red-Hat (code source et savoir-faire repris) mais garde une certaine
autonomie (contrairement à Open Suse et Open Solaris !).
+ entièrement gratuit et débridé, pas de version payante.
+ déjà présent sur le marché des serveurs libre en entreprise.
- orienté workstation / poste clients (version serveur = Red Hat).
 
 

Mandriva Donwload Edition


+ facilité et accessibilité exemplaire.
+ support matériel et drivers florissants.
+ nouvelles versions tout les 6 mois.
+ logithèque récente.
- orienté desktop / grand publique car très multimédia.
- version serveur payante.
 

Open Suse
+ simplicité à l’image de Fedora et Mandriva.
+ bonne image professionnel (Suse / Novell).
+ projet prometteur et grandissant.
- orienté workstation / poste clients (version serveur = Suse Entreprise).
- pas complète certaines fonctionnalités doivent être téléchargés manuellement (ftp).
- pas entièrement libre (par ex : gestionnaire de Packages Yast).
 

Open Solaris
+ Utilisation d’une grande partie du code source Solaris v10 et même noyau Sun OS.
+ Prestige et savoir-faire de Sun Microsystem.
+ Issu du monde Unix/BSD mais exécute les binaires Linux.
- Éloigné du monde Linux, risque de certaines incompatibilités.
- Licence CDDL au lieu de GNU/GPL (Sun garde le contrôle des sources).
- Exclusivement sur plate-forme x86 et SPARC.
 
 
La décision finale sera laissé à l’appréciation des intéressés et/ou décideurs !

2 Préparation
Une fois l’installation effectué, il convient de se familiariser avec le système et notamment avec les
deux méthodes d’installation sous linux : le gestionnaire de package (téléchargement ET
installation de façon automatisé) ou selon les envies, les commandes de désarchivage (manuel).
Elles permettrons d’installer en ligne de commande, et donc sur la majorité des distributions, les
services serveurs décrits dans ce document.

2.1 Gestionnaire de package


Debian/Ubuntu          apt-get install <package>

Slackware                  installpkg <package>

Fedora/RH                 yum install <package>

Mandriva                    urpmi <package>

Gentoo                        emerge net-fs/<package>

Exemple :

Sous Debian Sous Fedora Descritpion

apt-get install yum install Installation de package

apt-get remove yum remove Désinstallation de package

apt-cache search yum list Recherche d’un package

apt-get update yum check-update Maj liste de package disponibles


apt-get upgrade yum upgrade Maj de tt les packages installés

apt-get dist-upgrade / Maj de l’OS

apt-get clean yum clean Suppression fichiers temporaires

apt-get show / Information sur le package

Avec pour les différents services désirés, comme httpd pour apache, smb pour samba, etc… Il est à
noter que les packages les plus courant sont sous format RPM (Redhat Package Manager) devenu
un standard sauf Debian (.deb). Il est également possible d’installer un package sans passer par le
gestionnaire, et donc après un téléchargement manuel :

rpm -i .rpm             installe le package téléchargé

rpm -q .rpm            vérifie si le package est bien installé

rpm -e .rpm            désinstalle le package

2.2 Archivage
Moins assisté qu’avec les gestionnaires de package, le mode archivage requiert de télécharger le
module et de l’installer manuellement.

tar cvf save.tar /home/user      archivage (on obtient fichier "save.tar")

gzip save.gz                                 compression en save.tar.gz

gzip -d save.gz                             décompression

tar xvf save.tar /home/user       désarchivage de save.tar

tar zxvf save.tar.gz                      décompression+désarchivage        

                        z = gZip

                        x = eXtraire

                        v = Verbal (détail)

                        f = flux extrait en Fichier

cd        rentrer dans le répertoire décompressé

./configure                                    lance le script de configuration


make                                              compile

make install                                   installer manuellement

2.3 Utilisation des services


Une fois les services installés, un minimum est requis pour savoir les utiliser, les démarrer, les
arrêter, …

/etc/init.d/ start                  démarre le service

/etc/init.d/ stop                   stop le service

/etc/init.d/ restart               redémarre le service

/etc/init.d/ reload                recharge le fichier de configuration

chkconfig --level 345 on   place un service au démarrage du serveur

chkconfig --list                                      affiche tt les services lancés au boot

Les levels ou « run level » correspondant aux différents mode de démarrage de Linux : 0 arrêt ; 1
singleuser ; 2 normal (multi-user sans nfs) ; 3 mode texte (multi avec nfs) ; 4 non used ; 5 mode
graphique ; 6 reboot.

 
Quelques commandes utiles :

init 0   ou            shutdown           éteint le serveur

init 6   ou            reboot                reboot le serveur

ps                                                   affiche tt les processus en cours de l'user

ps aux                                            affiche les processus en cours de tlm

kill -9                      tue le processus, au numéro ID fourni par la commande “ps”

2.3 VI
Beaucoup de fichiers, et particulièrement les .conf, devront être modifier à la main. Vi est un
éditeur certes un peu rebutant, mais qui possède le très gros avantage d’être universel
unix/linux/bsd installé par défaut sur toutes les distributions aussi archaïque que récente. Il est
idéal de savoir travailler en lignes de commandes afin de faire abstraction de la quantité
d’interfaces graphiques existantes. De ce faite, passer d’un AIX /370 à une Lycoris, ne posera
aucun problème :)

vi                                          ouvre le fichier avec vi

i                                                          insérer (pour faire modification)

echap                                                 revenir mode commande de vi

:w                                                       commande vi pour enregistrer


:q                                                        commande vi pour quitter

:wq                                                     commande pour enregistrer et quitter

:q!                                                       commande pour quitter sans sauver

3 Réseau
La première des manipulations consiste à mettre le serveur en ip fixe, afin de lui appliquer une
politique de PAT.

3.1 Configuration

Les fichiers de configuration des interfaces réseaux diffèrent selon la distribution. 

vi /etc/network/interfaces                                         sous Debian/Ubuntu

vi /etc/sysconfig/network-scripts/ifcfg-eth0           sous Fedora/RH

DEVICE=eth0

BOOTPROTO=none

ONBOOT=yes

IPADDR=192.168.0.10

NETMASK=255.255.255.0

vi /etc/resolv.conf                                  ajout des DNS

            nameserver 193.252.19.3

            nameserver 193.252.19.4

vi /etc/sysconfig/network                      nom d’hôte et adresse passerelle

            NETWORKING=yes

            HOSTNAME=serveur_linux

            GATEWAY=192.168.0.254

Quelques commandes utiles :

ifconfig eth0 down                           active la carte réseau

ifconfig eth0 up                                désactive la carte réseau


/etc/init.d/network restart            reboot la carte réseau

route                                                affiche le chemin route

netstat –nr                                      affiche les connexions

vi /etc/hosts                                   donne les relations ip<->hôte statiques

3.2 Service DHCP


Service aussi utile qu’indispensable, il peut néanmoins être gérer par un élément actif du réseau.
La première étape consiste à installer le service DHCP par le gestionnaire de package
correspondant à la distribution :

apt-get install dhcp    ou            yum install dhcp            ou autre gestionnaire …

Ensuite il est nécessaire de configurer le .conf qui se trouve dans /etc/

vi /etc/dhcpd.conf

authoritative   #met en master, permet une protection contre dhcp spoofing


lease-file-name “/etc/dhcpd.leases”  #définition du fichier de lease

default-lease-time 86400;                 #bail en seconde (defaut 172800=48h)

max-lease-time 432000;                   #maximun 5jours

subnet 192.168.100.0 netmask 255.255.255.0

        range 192.168.0.200 192.168.0.240;               #plage dispo

        option routers 192.168.0.254;                          #passerelle par défaut

        option domain-name-servers 193.252.19.3;     #dns fai ou local

        option domain-name-servers 193.252.19.4;     #dns fai ou local

        option broadcast-address 192.168.0.255;        #diffusion

        option domain-name "mydomain";        #nom workgoup ou domain

host serveur1      # permet de définir une ip fixe d’après une adresse mac

hardware ethernet 00:02:3F:64:CE:D8;                                      


fixed-address 192.168.0.10;

option host-name “serveur2.reseau.com”;

touch /etc/dhcpd.leases                    création du fichier de lease

/etc/init.d/dhcpd start                      démarrage du service DHCP

chkconfig --level 345 dhcp on           planifié au démarrage

cat /etc/dhcpd.leases                       visualisation des inscriptions (bail début, fin, mac, uid,
réseau, ..)

3.3 Service DNS


Le service DNS sera implémenté ici à sa plus simple expression : redirection vers les DNS du
fournisseur d’accès internet. Evidement la configuration pour évoluer selon les exigences, mais
voici une trame de départ :

apt-get install bind9               ou            yum install bind9

on modifie dans le fichier dépendant de la distribution 

vi /etc/nsswitch.conf                ou            /etc/named.conf

            forwarders {

                193.252.19.3;

                193.252.19.4;

                };

/etc/init.d/named start                    démarrage du service DHCP

chkconfig --level 345 dhcp on          planification pour le démarrage

4 LAMP
Quatuor de choque, le couple Linux/Apache/PHP/MySQL répond à beaucoup de besoins, internet et
intranet. Voyons en détails comment faire fonctionner l’ensemble.

4.1 Apache
apt-get install httpd     ou     yum install httpd     installe apache 2.0

/etc/init.d/httpd start                                          démarre le service apache

chkconfig --level 345 httpd on                             planifié au démarrage

Quelques retouches sont à effectuer sous le fichier de configuration, sur des paramètres qui existe
déjà (attention à ne pas créer de doublons)

vi /etc/httpd/conf/httpd.conf          

            AddDefaultCharset iso-8859-15   # à la place de UTF-8 met les caractères


latin                                    

            MaxClients 150                      # diminues le risque d’attaque pas DoS

KeepAlive On

MaxKeepAliveRequests 100

KeepAliveTimeout 5

/etc/init.d/httpd restart                               recharge le fichier conf et relance le service

Le répertoire contenant le site se trouve sous /var/www/html/ d’où il suffit de créer un fichier index
pour y accéder

touch /var/www/html/index.html

et d’y rentrer les premières ligne html

vi /var/www/html/index.html

            <html> Site Web Powered By VI </html>

le résultat sera visible sous un navigateur Internet en local (http://localhost/) ou sur le réseau

 
4.2 PHP
apt-get install php5 ou yum install php5 installe la dernière version de php

Le fichier de configuration d’apache réclame d’être modifier une nouvelle fois, ceci afin de déclarer
les module php dans le serveur web, et d’appliquer les extentions .php pouvant être index.

/etc/httpd/conf/httpd.conf

LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php .php5 .inc

DirectoryIndex index.html index.htm index.php index.php4 index.php5

La manipulation est après avoir recharger les changements /etc/init.d/httpd restart et créer un
fichier php

touch /var/www/html/index.php

<?php              phpinfo();        ?>

4.3 MySQL
Il existe de nombreuse base de donnée, des plus impressionnante comme Oracle au plus futile.
Bien que PostgreSQL prenne de l’ampleur, MySQL deumeure un bon compromis, et reste
majoritairement utilisé par les webmasters.

Afin d’exploiter au mieux la base, PHPMyAdmin offre une souplesse captivante. Pour l’installer il
suffit de télécharger manuellement le tar.gz correspondant à la dernière version de sur
www.phpmyadmin.net , puis le décompressez dans le répertoire web :

tar zxvf phpMyAdmin-2.8.0.3.tar.gz /var/www/html/

Mettre en place le fichier php de configuration par défaut, puis changer le mot de passe admin
définit à l’intérieur :

cp /phpmyadmin/libraries/config.default.php /phpmyadmin/config.inc.php

Reste à installer la partie SQL en elle-même :


apt-get install mysql
apt-get install php-soap
apt-get install php-mysql
 

Mise en état des services :

/etc/init.d/mysqld start

/etc/init.d/httpd restart

chkconfig --level 345 mysqld on

L’ensemble devrait être opérationnel sous http://localhost/phpmyadmin/

        

5 Messagerie
Quelle entreprise pourrai aujourd’hui se passer d’emails ? Même s’il est tout à faire possible
d’implémenter le protocole IMAP comme dans Microsoft Exchange, nous viserons la simplicité avec
Dovecot en POP3. Mais commençons tout d’abord par mettre en place le MX SMTP :

5.1 POSTFIX
L’incontournable Postfix permet de d’envoyer, recevoir et relayer les mails. Avant de l’installer il est
préférable de s’assurer que sendmail est désactiver :

/etc/init.d/sendmain stop                            arrête sendmail

chkconfig --level 345 sendmail off               retire sendmail du démarrage

Puis il suffit de l’installer


apt-get install postifx                                      installe postfix

/etc/init.d/postfix start                                  démarrage postfix

chkconfig --level 345 postfix on                     mettre postfix au démarrage

Pour le configurer il suffit de se rendre dans son fichier :

vi /etc/postfix/main.cf           

smtpd_banner = $myhostname ESMTP $mail_name (GNU/GPL)       #affichage d’accueil


220 à la connexion telnet

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

myhostname = mail.serveurlinux.com #nom serveur

mydomain = serveurlinux.com            #nom du domaine

myorigin = $mydomain                     #expéditeur auto, si pas précisé

mydestination = mail.serveurlinux.com, serveurlinux.com   #pour la réception

mynetworks = 192.168.100.0/24, 127.0.0.0/8                             #pour l’envoi

relay_domains = all                       # gestion du domaine expéditeur

net_interfaces = all

relayhost =                                   #smtp.fai.com si besoin

Pour tester, une connexion telnet suffit :

telnet <serveur> 25

helo <serveur>

mail from:toto@serveur

rcpt to:toto@serveur

data

quit

Quelques commandes utiles :

postfix flush                                       envoi les messages en attentes

postfix check                                      vérifie le fichier conf

postfix reload                                     recharge le fichier conf

postfix –n                                           affiche le fichier conf actuel

postfix –d                                           affiche le fichier conf par défaut

Résolutions de problèmes courants :

- « Bad adress Syntax » -> mettre l’adresse par nom d’hôte toto@serveur et non par ip
toto@192.168.0.10
- « Relay Denied » -> vérifier le champ mynetworks (autorisation des réseaux pour l’envoi)

- l’envoi marche en local mais pas vers en extérieur -> vérifier que myhostname != mydomain

     

5.2 Dovecot
Postfix gère la transaction des emails (envois, réception), il faut un service à part afin de checker
les mails, c’est le rôle de Dovecot.

Apt-get install dovecot                                   installe dovecot

/etc/init.d/dovecot start                               démarrage dovecot

chkconfig --level 345 dovecot on                  mettre dovecot au démarrage

Le fichier de conf se trouve sous /etc/ mais rien de particulier n’est à modifier sauf pour faire du
IMAP :
vi /etc/dovecot.conf

Pour tester POP3 :

telnet <serveur> 110                                                                       

user toto                                                                                

pass totopwd                                                                         

stat                                                                                        

list

quit

Pour tester IMAP :

telnet <serveur> 143

. login toto toto

. select inbox

. logout

 
A note que sur si boite est vide, Dovecot acceptera le login quelque soit le mot de passe ; Pour
remédier à ça il suffit d’envoyer un mail de bienvenue. Envoyer bien le mail à l’adresse
user@domain et non user@hostname, sinon le mail n’arrivera pas à destination. Enfin pour
reçevoir du mails d’internet, renseigner les DNS à l’adresse du fai et non du DNS local.

5.3 Spamassassin
Le Spam est devenu un tel fléau pour les utilisateurs qu’ils deviens indispensable de s’en protéger.
Spamassassin permet de filtrer le spam directement sur le serveur et évite le déploiement
d’antispam sur les stations. Après installation, il suffit de le lancer :

/etc/init.d/spamassassin start

Puis de le configurer :

vi /etc/mail/spamassassin/local.cf

required_hits 5           #sensibilité de détection

report_safe 0             #encapsuler le spam en pièce jointe 0non 1oui

rewrite_header Subject [SPAM]            #titre message

blacklist_from *@hotmail.com, *.korean.com, ... #filtrage statique

whitelist_from ...

#rewrite_subject 1               change le sujet du spam 0non 1oui       

#subject_tag ****SPAM****          si rewrite_subject à 1

            #use_bayes 1                utilisation du protocole Bayes

            #auto_learn 1               activation  de l’auto apprentissage Bayesien

            #allow_user_rules 0        autoriser préférences user (/!\ sécu)

            #use_razor2 1                                  agents de contrôles externe

            #user_dcc 0                                        agents de contrôles externe

            #use_pyzor 0                                      agents de contrôles

5.4 SquirrelMail
Pour une utilisation nomade, le webmail est un outil fort commode. SquirrelMail répond très
simplement et efficacement à cette demande :

Apt-get install squirrelmail


 
Mettre mettre squirrelmail et son fichier de configuration dans le répertoire web d’apache

cp -r /usr/share/squirrelmail/ /var/www/html/webmail/ 

cp -r /etc/squirrelmail/ /var/www/html/webmail/config/

lancer le script qui après configuration, un génère config.php valide. La configuration du script
(perl) se présente sous forme d’un menu de 10 commandes :

1) config du domaine

2) config du serveur

3) config smtp/imap

4) …

Pour le lancer :

cd /var/www/html/webmail/config/

./conf.pl                                                                                 

La configuration fini, un redémarrage du service web s’impose

/etc/init.d/httpd restart

et le webmail est accessible …

http://serveur/webmail

6 Contrôleur de domaine
6.1 Primary AD
Installer samba par gestionnaire de package (yum, apt, ...), ou par compilation ..

apt-get install samba ou            yum install samba

chkconfig --level 345 smb on            mettre smb au démarrage

/etc/init.d/smb stop                          s’assurer que Samba est fermé

mkdir -p /home/ad/netlogon            création du répertoire netlogon

mkdir -p /home/ad/profile               création du répertoire de profiles

chmod 777 /home/ad/netlogon        attribution des droits

chmod 777 /home/ad/profile

 
cat /etc/passwd | mksmbpasswd.sh > smbpasswd            création d’un fichier passwd pour
samba

smbpasswd –a root                  mettre un mot de pass root pour samba

groupadd –g 101 pcs               créer un groupe pour les machines

useradd –g pcs –d /dev/null/ -s /dev/null PCADMIN$            ajout les machines, mdp vide

smbpasswd –a –m PCADMIN

éditer le .conf

vi /etc/samba/smb.conf

et rentrer la configuration ci-dessous, en l’adaptant :

[global]

netbios name = SERVEUR_LINUX            #hostname du serveur

workgroup = DOMAINLINUX                   #nom du domaine

server string = Serveur Samba %v

hosts allow = 192.168.0. 127.               #réseaux ayant accès

security = user

name resolve order = wins lmhosts bcast

username map = /etc/samba/smbusers

log file = /var/log/samba/log.%m

max log size = 50

announce version = 5.2

encrypt passwords = Yes

smb passwd file = /etc/samba/smbpasswd

unix password sync = yes

passwd program = /usr/bin/passwd %u


passwd chat = *New* %n\n *Re* %n\n *pa*

passwd chat debug = Yes

os level = 255

share modes = No

domain master = True

local master = yes

preferred master = True

domain logons = yes

logon script = logon.cmd

logon path = \\%L\profile\%U  #profils (docs and settings)

logon home = \\%L\%U          #dossier personnel (lecteur reseau)

logon drive = z:                    #lettre du lecteur

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

case sensitive = No

default case = lower

preserve case = yes

short preserve case = Yes

dns proxy = No

wins support = Yes

remote announce = 192.168.0.10      #adresse du serveur samba

remote browse sync = 192.168.0.10  #adresse du serveur samba

winbind use default domain = Yes

nt acl support = Yes                       #permet les profils errants

msdfs root = Yes

add user script = /usr/sbin/useradd -g pcs -d /dev/null -d /bin/false %u

[netlogon]
path = /home/ad/netlogon

writable = No

browseable = No

write list = Administrateur

[profile]

path = /home/ad/profile

browseable = No

writeable = Yes

create mask = 0777

directory mask = 0777

##partages##

[homes]

comment = Répertoire Personnels

browseable = No

writeable = Yes

[public]

comment = Répertoire commun      #commentaire

path = /home/public               #chemin du répertoire

public = Yes                          #accès par tout le monde oui

create mode = 0755               #fichiers crés en lect seul sauf propriétaire

read only = No                      #lecture seule

[toto]                                 #partage des utilisateurs

comment = partage de toto

path = /home/toto/partage
public = no

valide users = toto,root         #accessible aux comptes toto et root

read only = no

writeable = yes

create mode = 0700              #sinon 0744 par défaut si pas renseigné

guest ok = no                      #pas d’accès aux comptes invités

printable = no                      #utile seulement pour les partages d’impr

[site web]                          #partage du site pour le webmaster

commente = site internet

path = /var/www/html

public = no

valide users = root,webmaster

read only = no

writeable = yes

create mode =0755

guest ok = no

printable = no

Avant de lancer samba, il existe une commande afin de s’assurer que le fichier de configuration ne comporte pas
d’anomalies :

testparm

S’il n’y a pas d’erreurs retournés :

/etc/init.d/smb start

6.1 Connection des stations

 
Propriété du « Poste de travail »

- Windows 2000 allez sous « Identification réseau »

- Windows XP allez sous « Nom de l’ordinateur »

Ensuite bouton « ID réseau », l’assistant s’ouvre faire Suivant >

Choisir appartient à un réseau d’entreprise puis Suivant >

Choisir domaine, Suivant >

Rentrer les identifiants root de samba (mot de passe root du smbpasswd) et mettre le domaine du
serveur linux (paramètre workgroup dans smb.conf).

Rentrer le nom de la station Windows et encore le domaine.

 
 

Se connecter une dernière fois au domaine, en tant que root.

Ajouter l’utilisateur root dans le domaine ...

... en tant qu’administrateur

Une fois terminé, vous devez redémarrer votre ordinateur pour que les modifications soient prises
en compte. Il convient ensuite de créer d’autres comptes utilisateurs normaux.

D’abord sur le serveur :


useradd –g 100 toto                                 #crée un utilisateur unix

smbpasswd –a toto                          #crée un utilisateur samba

useradd –g pcs –d /dev/null/ -s /dev/null PCTOTO$            #ajoute un pc avec mdp vide

smbpasswd –a –m PCTOTO            #ajoute un pc dans samba avec mdp vide

useradd –g 100 webmaster

smbpasswd –a webmaster

useradd –g pcs –d /dev/null/ -s /dev/null PCWEBMASTER$

smbpasswd –a –m PCWEBMASTER

etc…

pour supprimer un utilisateur :

userdel toto

smbpasswd –x toto

Ensuite sur les stations correspondantes, pour cela au redémarrage de la station, se mettre en root
dans le domaine linux, puis « Gérer » sur Poste de travail. Allez dans Gestion de l’ordinateur (local)
> Outils système > Utilisateurs et groupes locaux > Groupes

Rentrer dans les propriétés du groupe Utilisateurs (ou Utilisateurs avec pouvoir)

Cliquer sur « Ajouter »


 

Parcourir le domaine linux et ajouter les utilisateurs devants être connecté (normalement tous).

OK , Appliquer et Fermer

Se délogger et reloger sous l’utilisateur pour tester …

Remarques :

- Cela ne fonctionne qu’avec des stations NT4 SP4 mini, 2000 et XP (pas de 9x/Me).

- Lorsqu’un problème apparaît avec XP SP2 au momment de rentrer sur le domaine, modifier la clé
de registre avec regedit :
HKEY_LOCAL_MACHINE>SYSTEM>CurrentControlSet>Services>Netlogon>Parameters

et mettre requiresignorseal à 0.

- Noter que si un utilisateur samba n’a pas de répertoire déclaré dans smb.conf, il tombe par
défaut sur son répertoire home.

- La gestion ici développé sous smbpasswd, peut-être plus poussé et utiliser des bases de données,
tdb, ldap, ...

6.3 ClamAV

yum install clamav clamav-lib clamav-freshclam clamav-daemon | samba-vscan

Afin de chercher les bonnes mise à jours, modifier le fichier freshclam.conf ou clamd.conf (selon
la distribution) et mettre :

# DatabaseMirror db.XX.clamav.net                   
DatabaseMirror db.fr.clamav.net

 
Pour effectuer une mise à jour des définitions de virus :

freshclam

Pour scanner un répertoire, très utile pour automatiser avec Cron :

clamscan –r –i /home/user

 7 Administration et télémaintenance
7.1 SSH

Remplaçant de l’historique Telnet, SSH offre une prise en main directe sur le serveur au moyen
d’un canal sécurisé. L’installer, si ce n’est pas déjà fait par défaut, se révèle extrêmement facile :

apt-get install sshd ou yum install sshd

/etc/init.d/sshd start                                         démarrage sshd

chkconfig --level 345 sshd on                            mettre sshd au démarrage

Pour tester une session SSH, rien de plus triviale :

ssh localhost                                                  

$login_de_lutilisateur

$motdepasse_de_lutilisateur

$ls –la /home

$exit

 
Résolutions de problèmes courants :

si un problème de type "erreur id" apparaît à la connexion faire un chmod a+r /etc/group

7.2 FTP
Spécialement étudier pour le transfert de fichier, FTP peut-être employer par les utilisateurs pour
travailler les gros fichiers entre différents sites.

yum install vsftpd ou apt-get install vsftpd         installe vsftpd

/etc/init.d/vsftpd start                                       démarrage

chkconfig --level 345 vsftpd on                          mettre vsftp au démarrage

vi /etc/vsftpd/vsftpd.conf                                   édition du fichier conf


            anonymous_enable=NO

            ftpd_banner=Bienvenue sur le serveur

Pour tester une connectivité FTP :

ftp localhost                                       

ftp> login_de_lutilisateur

motdepasse_de_lutilisateur

ftp>dir

ftp>bye

Quelques commandes utiles :

ps aux | grep vsftp                                        voir les users connectés en ftp

ftp://user:passwd@host                               ftp dans browser

7.3 Webmin
Prérequis : apache et perl d’installés.

Webmin (port 10000) est une interface conviviale et pratique pour rapidement effectuer des
changements. Différents droits peuvent même être établis afin de définir plusieurs niveaux
d’administration à des utilisateurs (ou administrateurs).

Pour l’utiliser, deux méthodes distincts :

- soit récupérer le RPM sur www.webmin.com et l’installer

rpm –Uvh webmin-x.xxx-x.noarch.rpm


 
 
- soit récupérer le tar.gz sur www.webmin.com et décompresser, pour le compiler
tar –xzvf /rep/ webmin-x.xxx-x.tar.gz
cd webmin-x.xxx/
./setup.sh
laissez valeur par défaut [enter], mettre login/pass de root
Start Webmin at boot time (y/n) : y
 
Pour bénéficier de l’interface il suffit de se rendre sur http://localhost:10000 et rentrer les
login/pass du root
 
 
Quelques astuces utiles :

Mettre en français - Webmin>Language>fr


Restreindre l’accès - Webmin>Configuration de Webmin>Contrôle d’accès IP
Gérer les administrateurs - Webmin>Utilisateurs Webmin>Créer un nouvel utilisateur Webmin

7.4 PHPSysInfo
Prérequis : apache, php

Module php, qui affice une foule d’information sur l’état du système et de ses périphériques.

Récupérer le tar.gz sur http://phpsysinfo.sourceforge.net/ et décompresser le dans le répertoire


web

Tar zxvf phpsysinfo-x.xxx-x.tar.gz /var/www/html

cp /var/www/html/phpsysinfo/config.php.new

     /var/www/html/phpsysinfo/config.php

Donne l’affichage :

http://localhost/phpsysinfo

8 Mémo
8.1 Commandes de bases
ls -al                                                   affiche répertorie courant (-l info -a all)

cd /repertoire                                    change directory (cd .. = remonter)

pwd                                                    arborescence en cours

touch <nouveau_fichier>                    créer un fichier vide

more <fichier>                                     edit le fichier

cat <fichier>                                         edit le fichier de manière brut

mv <fichier> <fichier>                          renomme

cp <fichier> <destination>                   copy (-r récursif toute l’arbo)

mkdir <nouveau_rep>                         créer un répertoire

mrdir <ancien_rep>                             supprimer un répertoire

rm -rf            <repertoire>                   remove récursif sur tt l'arborescence

 
find / -name <fichier>                          recherche d'un fichier à partir de la racine

ln -s /var/www/html/ /home/user/web     créer un raccrouci </src/> </dest>

mount -t iso9660 /dev/cdrom /mnt/cdrom       monter un cd

startx                                             lance interface graphique (si en CLI pure)

xterm                                             lance un terminal

man <commande>                          aide (q pour sortir)

<commande> « not found »            voir /bin, /sbin ou /usr sinon “find”

<commande> &                               en fond de tâche

<commande1> | <commande2>     enchaîner 2 commandes

grep 'x'                                            afficher les lignes avec x

8.2 Gestion des utilisateurs


/etc/passwd               username ; pswd ; uid ; gid ; nom groupe ; rep ; bash

/etc/group                  name:reserve:GID:menber

adduser toto              créer un utilisateur

passwd toto               change le mot de passe d’un utilisateur

userdel toto               efface un utilisateur

groupadd -g              ajoute un groupe

groupdel                    efface un groupe

chmod                        gestion droit ugo (user group other)

r w x  r w x  r w x    bit_fort   r(read),w(write),x(execute)   bit_faible

user   group  others    (UID:user identifier),  (GID:groupe identifier)

chown                        change le propriétaire du fichier ou répertoire

chgrp                         change le groupe du fichier ou répertoire

su                              mode superviseur (su root)

whoami                      qui suis-je

id                                quel id et groupe

exit     
 

8.3 Informations Diverses

uname -a                                                  info linux (kernel x.y.z : ypair=stable, z=révision)

cat /proc/version                                       info linux

cat /proc/cupinfo                                       info cpu

cat /proc/meminfo                                     info mémoire

free -m                                                      info mémoire

cat /proc/partitions                                    info disque dure

df -h                                                           info disque dure

dmesg                                            affiche tt périph avec pointage (/dev/hdb)

cat /etc/sysconfig/i18n                              info langue

date                                                          affiche la date

8.4 Alias et Bash


/etc/profile            1er fichier recherché commun à tous les utilisateurs et tous les shells

/etc/bashrc                                                        alias pour tt les users

/root/.bashrc ou /home/user/.bashrc                alias personnalisé

            p='pwd'

            alias w='whoami'

            alias l='ls -al'

            alias whoftp='ps aux | grep vsftpd'

source .bashrc                                           compiler / valider le script bash

redirection :

stdin         « entrée »       <     

stdout      « sortie »         >       écrase               >>            suite fichier

stderr              « erreurs »

variable d’environnement :
export VARIABLE=moi             créer une variable

echo $VARIBALE                      afficher une variable

set                                           affiche toutes les variables

PS1=prompt             HOME =rep perso            USER=login            PWD=repcourant


HOSTNAME=machine

Scripts :

touch /home/user/test_script.sh

#!/bin/bash

# tester un fichier ou répertoire

if [ ! -e "/oracle" ]

then                 echo "pas d’oracle"

else                 echo "ya du oracle"

fi

echo "surpprimer le repertoire ... ? (o/n)"

read reponse

if ["${reponse}" =  "o"] then ..

8.5 Cron

crontab minute(0à59) heure(0à23) jour(1à31) mois(1à12) jsemaine(0à6) 

/etc/crontab                            table d’execution

crontab -e                               équivaut à un edit crontab sous vi

* à chaque unité de temps

2-5 unité de temps 2 à 5 (2, 3, 4, 5)

*/3 toutes les 3 unités de temps (0,3,6,9, ...)

5,8 les unités de temps 5 et 8

00 23 * * *                       tous les jours à 23h00

00 00 * * *                       tous les jours à minuit

30 23 1 * *                       tout les premiers du mois à 23h30


00 23 * * 1                       tout les lundis à 23h

15 10 2-5 * *                   du 2 au 5 de chaque mois à  10h15

59 23 */2 * *                    tout les jours pairs du mois à 23h59

8.6 Arborescence
/                      racine ou root

/etc                 utilitaires d'administration et fichiers .conf

/dev                devices, périphériques (/hda1 /hdb1 : nappe-dd-partition)

/mnt                point de montage des périphériques externes /floppy /cdrom

/bin                 commandes et utilitaires indispensables

/sbin               commandes et utilitaires indispensables réservées à l'admin

/lib                  bibliothèques système (librairies et modules du noyau)

/usr                logiciel installes et commandes en lecture seule :

/home            répertoire personnels des utilisateurs

/tmp               fichiers temporaires

/proc              liste des processus en cours

/opt                logiciels optionnels comme KDE

/boot              fichiers, dont le noyau, nécessaires au démarrage

/var                 fichiers de configuration liés à /usr

 |->      /var/log                      fichiers de traçage d'évènements (log)

 |->            /var/run                fichiers de processus (pid)

 |->            /var/www             fichiers apache (html)

/usr                             applications, accessible par tous en lecture seule

 |->      /usr/bin            commandes accessible par tous

 |->            /usr/sbin     commandes réservées à l'administrateur

 |->      /usr/lib               autres bibliothèques

 |->            /usr/include           fichier d'inclusion C

 |->            /usr/local               application indépendantes d'une distribution

 |->            /usr/man               manuels

 |->            /usr/spool              file d'attente


 |->      /usr/src                        code source des logiciels

Conclusion
Voici donc la fin de ce tutorial, certes non-exhaustif et volontairement limité à l’essentiel, mais
illustrés d’exemples concrets et de réelles problématiques résolues. Le domaine d’étude étant vaste
et les besoins parfois spécifiques, il est dure de tout prévoir dans une unique procédure pré-
formater.

 
Cependant démonstration est faite que le choix existe, seule la volonté du client, accompagné du
prestataire ou de sa DSI, le déterminera ; différentes technologies peuvent se superposer et
permettre une variété de solutions, même dans les plus petites entreprises.
 

Vous aimerez peut-être aussi