21
Baptiste MOINE Déploiement d’un serveur d’impression ~ 1 ~ Déploiement d’un serveur d’impression CONTEXTE ................................................................................................................ 1 TRAVAIL DEMANDE .................................................................................................... 1 CAHIER DES CHARGES ............................................................................................... 1 INSTALLATION DE DEBIAN JESSIE (8.0) .......................................................................... 5 INSTALLATION DE SSH ................................................................................................ 6 CONFIGURATION DU PARE-FEU ................................................................................... 8 INSTALLATION DE CUPS ........................................................................................... 11 INSTALLATION DE SAMBA......................................................................................... 14 CONFIGURATION DE PAM ....................................................................................... 18 PREPARATION DES PILOTES ........................................................................................ 19 TEST SUR UN CLIENT .................................................................................................. 20 CONCLUSION ......................................................................................................... 21 INFORMATIONS SUPPLEMENTAIRES .............................................................................. 21 CONTEXTE Période de formation en milieu professionnel en première année de BTS SIO (2014-2015) au Centre des Ressources Informatiques (CRI) de l’Ecole Supérieur National de Mécanique et d’Aéronautique (ENSMA). TRAVAIL DEMANDE Mettre en place un service d’impression qui sera joint au domaine existant pour permettre une centralisation des ressources d’impression (logs, gestion des copies, gestion des pilotes, etc.). Cette centralisation permettra en étant jointe au domaine, de déployer les imprimantes sur l’ensemble des machines du domaine sans devoir passer par des déploiement multiples qui peuvent devenir laborieux en fonction du système installé, de sa localisation, etc. De plus, ceci permettra une gestion des droits d’impression (par exemple le groupe Stage peut imprimer sur l’imprimante du lab mais pas celle des professeurs). CAHIER DES CHARGES Contraintes La solution doit : Ne pas engendrer des coûts supplémentaires trop importants ; Permettre une jonction au domaine existant ; Offrir une configuration simplifiée pour permettre la gestion des imprimantes rapidement ; Être facilement reconfigurable en cas de panne ou de nécessité de modifications Ne pas entrer en conflit avec un autre service/serveur existant

Déploiement d’un serveur d’impression · SaMBa sur un système virtualisé sur l’hyperviseur (HyperV). Afin d’optimiser au mieux le service d’impression, nous installerons

  • Upload
    others

  • View
    8

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Déploiement d’un serveur d’impression · SaMBa sur un système virtualisé sur l’hyperviseur (HyperV). Afin d’optimiser au mieux le service d’impression, nous installerons

Baptiste MOINE Déploiement d’un serveur d’impression ~ 1 ~

Déploiement d’un serveur d’impression

CONTEXTE ................................................................................................................ 1

TRAVAIL DEMANDE .................................................................................................... 1

CAHIER DES CHARGES ............................................................................................... 1

INSTALLATION DE DEBIAN JESSIE (8.0) .......................................................................... 5

INSTALLATION DE SSH ................................................................................................ 6

CONFIGURATION DU PARE-FEU ................................................................................... 8

INSTALLATION DE CUPS ........................................................................................... 11

INSTALLATION DE SAMBA ......................................................................................... 14

CONFIGURATION DE PAM ....................................................................................... 18

PREPARATION DES PILOTES ........................................................................................ 19

TEST SUR UN CLIENT .................................................................................................. 20

CONCLUSION ......................................................................................................... 21

INFORMATIONS SUPPLEMENTAIRES .............................................................................. 21

CONTEXTE

Période de formation en milieu professionnel en première année de BTS SIO (2014-2015)

au Centre des Ressources Informatiques (CRI) de l’Ecole Supérieur National de

Mécanique et d’Aéronautique (ENSMA).

TRAVAIL DEMANDE

Mettre en place un service d’impression qui sera joint au domaine existant pour

permettre une centralisation des ressources d’impression (logs, gestion des copies,

gestion des pilotes, etc.). Cette centralisation permettra en étant jointe au domaine, de

déployer les imprimantes sur l’ensemble des machines du domaine sans devoir passer

par des déploiement multiples qui peuvent devenir laborieux en fonction du système

installé, de sa localisation, etc. De plus, ceci permettra une gestion des droits

d’impression (par exemple le groupe Stage peut imprimer sur l’imprimante du lab mais

pas celle des professeurs).

CAHIER DES CHARGES

Contraintes

La solution doit :

Ne pas engendrer des coûts supplémentaires trop importants ;

Permettre une jonction au domaine existant ;

Offrir une configuration simplifiée pour permettre la gestion des imprimantes

rapidement ;

Être facilement reconfigurable en cas de panne ou de nécessité de

modifications

Ne pas entrer en conflit avec un autre service/serveur existant

Page 2: Déploiement d’un serveur d’impression · SaMBa sur un système virtualisé sur l’hyperviseur (HyperV). Afin d’optimiser au mieux le service d’impression, nous installerons

Baptiste MOINE Déploiement d’un serveur d’impression ~ 2 ~

Ressources exploitables

Infrastructure réseau + clients (voir Figure 1) ;

Hyperviseur (HyperV) ;

Contrôleurs de domaine, possédant divers services :

Service DNS ;

Serveur WINS ;

Service DHCP (+BOOTP/PXE) ;

Service d’annuaire Active Directory ;

Service de déploiement WDS (Windows Deployment Service) MDT.

Page 3: Déploiement d’un serveur d’impression · SaMBa sur un système virtualisé sur l’hyperviseur (HyperV). Afin d’optimiser au mieux le service d’impression, nous installerons

Baptiste MOINE Déploiement d’un serveur d’impression ~ 3 ~

Comparatif des solutions

Nom Licence Coût Intégration au

domaine

CUPS + SaMBa Libre Gratuit Oui

Serveur d’impression /

Windows Server

Propriétaire Payant mais

inclut avec le

système

PXE

Solution retenue

Suite à une réunion avec l’équipe, nous avons choisis de ne pas installer de serveur

d’impression sur un contrôleur de domaine mais sur un serveur membre du domaine.

Étant donné que l’architecture système du domaine est amenée à évoluer pour

changer son niveau fonctionnel, actuellement à Windows Server 2008, il passera à 2012,

nous avons décidé de ne pas installer de serveur d’impression sur un Windows Server par

pure optimisation des ressources.

La solution retenue est donc le service de gestion des imprimantes CUPS avec un serveur

SaMBa qui permettra de partager les imprimantes. L’objectif sera donc de faire

fonctionner le serveur d’impression comme décrit sur la Figure 2.

Clients

Contrôleur 1

Serveur de virtualisation Hyper-V

Contrôleur 2

DHCP/BOOTPDNS

WDS (MDT) Firewallavec RADIUS

Routeur

Internet

Imprimantes Serveur d’impression

Figure 1 - Schéma logique du réseau

Page 4: Déploiement d’un serveur d’impression · SaMBa sur un système virtualisé sur l’hyperviseur (HyperV). Afin d’optimiser au mieux le service d’impression, nous installerons

Baptiste MOINE Déploiement d’un serveur d’impression ~ 4 ~

ClientServeur d’impression

1 - Authentification

3 - Accès aux partages

1 - Le client s’authentifie sur le serveur d’impression2 - Le serveur d’impression transmet la demande d’authentification au contrôleur de domaine3 - Le client authentifié accède aux ressources disponibles selon ses droits4 - Le client procède à une impression en utilisant l’imprimante partagée5 - Le serveur procède à l’impression et récupère l ‘état de l’opération d’impression6 - Le serveur transmet l’état de l’opération au client

4 & 6 – Impression

Contrôleurde domaine AD

2 - Vérification

5 - Impression

Figure 2 - Processus d'impression

Comparatif des systèmes d’exploitation compatibles

Nom Licence Coût Mémoire vive Espace disque Processeur

Debian Libre Gratuit 512Mo 3Go 1GHz

CentOS Libre Gratuit 512Mo 2Go 500MHz

Ubuntu Libre Gratuit 192Mo 1Go 300MHz

Système d’exploitation retenue

Nous avons décidé afin d’optimiser les ressources et donc le budget d’installer le service

SaMBa sur un système virtualisé sur l’hyperviseur (HyperV). Afin d’optimiser au mieux le

service d’impression, nous installerons SaMBa sur une distribution Debian server car elle

est plus facilement maintenable et ne nécessite pas d’une grande configuration

matérielle.

Page 5: Déploiement d’un serveur d’impression · SaMBa sur un système virtualisé sur l’hyperviseur (HyperV). Afin d’optimiser au mieux le service d’impression, nous installerons

Baptiste MOINE Déploiement d’un serveur d’impression ~ 5 ~

INSTALLATION DE DEBIAN JESSIE (8.0)

Pour installer Debian Jessy, il faut commencer par télécharger l’image d’installation

depuis le site officiel, télécharger une image au format CD, dans la mesure où seul le

système basique sera installé (sans interface graphique). Une fois téléchargé, créer un

support d’installation, soit en gravant l’image disque soit en ajoutant une partition active

à une clé USB et en y copiant les fichiers de l’image d’installation de Ubuntu

(UnetBootin). Une fois le support d’installation préparé, il suffit de démarrer la machine sur

le support d’installation en modifiant les paramètres d’amorçage du BIOS.

Lorsque le programme d’installation s’affiche, procéder à une installation simple, sans

pour autant ajouter les utilitaires usuels du système ni une interface graphique (inutile

dans cette situation).

Configuration du système post-installation

Afin de pouvoir bénéficier d’une connectivité sur notre serveur et pouvoir y installer des

services, configurer l’interface Ethernet de la machine comme ceci :

1 $ sudo su -

2 # cat >> /etc/network/interfaces << EOT

3 allow-hotplug eth0

4 iface eth0 inet dhcp

5 EOT

6 # ifdown eth0; ifup eth0

Suite à la configuration dynamique de notre adressage IPv4 par DHCP, nous obtenons

cette configuration :

IP/CIDR : 192.168.251.108/24

Bail DHCP : 288961 secondes

DNS : 192.168.251.1

DNS secondaire : 192.168.251.2

Serveur DHCP : 192.168.251.1

Passerelle par défaut : 192.168.251.1

Pour conserver cette configuration IPv4, nous allons ajouter ce bail aux réservations du

serveur DHCP. Le service DHCP étant installé sur le contrôleur 1 (sous Windows Server),

nous allons effectuer cette configuration en utilisant l’outil de gestion d’ouverture de

session à distance. De plus nous ajouterons cette configuration en statique dans le fichier

de configuration /etc/network/interfaces.

Page 6: Déploiement d’un serveur d’impression · SaMBa sur un système virtualisé sur l’hyperviseur (HyperV). Afin d’optimiser au mieux le service d’impression, nous installerons

Baptiste MOINE Déploiement d’un serveur d’impression ~ 6 ~

INSTALLATION DE SSH

Pour respecter le cahier des charges stipulant de faciliter l’administration de ce serveur,

nous installerons un service SSH pour prendre plus facilement le contrôle du serveur à

distance. Cependant à des fins purement sécuritaires, nous changerons le port par

défaut du service SSH et n’autoriserons que le réseau CRI.LAB à accéder au serveur SSH.

Pour installer un serveur SSH, nous allons installer le paquet openssh-server :

1 # apt-get update

2 # apt-get install -fy openssh-server

A présent nous allons configurer le service SSH de manière à le sécuriser au maximum

(tous les détails sont des commentaires et peuvent donc être laissés) :

3 # /etc/init.d/ssh stop # Stop le service SSH

4 # cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak # Sauvegarde la configuration actuelle

5 # cat > /etc/ssh/sshd_config << EOT

6 #### Configuration initiale de SSH2 ####

7 Port 54365 # Écoute sur un port non standard > 1024

8 Protocol 2 # Le SSH1 est moins sécurisé

9 AddressFamily inet # Restriction à IPv4

10 X11Forwarding no # Désactive la redirection d'une session X11

11 #### Prévenir des attaques par spoofing ####

12 TCPKeepAlive no

13 ClientAliveInterval 600

14 ClientAliveCountMax 3

15 ListenAddress 192.168.251.108 # Écoute uniquement sur cette interface (eth0)

16

17 #### Clés d'authentification pour SSH2 ####

18 HostKey /etc/ssh/ssh_host_rsa_key

19 HostKey /etc/ssh/ssh_host_dsa_key

20

21 UsePrivilegeSeparation yes # Active la séparation des privilèges en créant un processus avec les droits de l'utilisateur authentifié à chaque connexion-

22 #### Authentification par clés publiques ####

23 PubkeyAuthentication yes

24 AuthorizedKeysFile %h/.ssh/authorized_keys

Page 7: Déploiement d’un serveur d’impression · SaMBa sur un système virtualisé sur l’hyperviseur (HyperV). Afin d’optimiser au mieux le service d’impression, nous installerons

Baptiste MOINE Déploiement d’un serveur d’impression ~ 7 ~

25 PermitBlacklistedKeys no # Rejette les connexions avec une clé compromise

26 AllowUsers user # Autorise un nombre limité d'utilisateur à se connecter

27 LoginGraceTime 60 # Laisse 1 minute à l'utilisateur pour se connecter en entrant sa passphrase (sinon timeout)

28 StrictModes yes # Vérifie les permissions et les droits sur les clés privées

29 PermitRootLogin no # Empêcher une connexion avec le compte root

30 IgnoreRhosts yes # Ignore les fichiers ~/.rhosts et ~/.shosts car rhost est obsolète

31 HostbasedAuthentication no # Désactive l'authentification basée sur l'hôte (rhosts)

32 IgnoreUserKnownHosts yes # Ignore le fichier ~/.ssh/known_hosts pour les connexions RSA

33 PermitEmptyPasswords no # Interdit les connexions sans mot de passe

34 UsePAM no # Désactive PAM

35 ChallengeResponseAuthentication no # Désactive la réponse PAM

36 PasswordAuthentication no # Désactive l'authentification par mot de passe (utilisation de passphrase)

37 UseLogin no # Désactive la fonction login()

38 #### Logging ####

39 SyslogFacility AUTH # /var/log/auth.log

40 LogLevel INFO # Verbosité à INFO

41 PrintLastLog yes # Affiche la dernière connexion de l'utilisateur

42 MaxAuthTries 2 # Maximum de tentative avant échec de l'authentification

43 MaxStartups 10:30:60 # Bloque les connexions entrantes au-delà de 10 connexion actives

44 AcceptEnv LANG LC_* # Autorise le passage de variables locales au client

45 Subsystem sftp /usr/lib/openssh/sftp-server # Active le service sftp sur SSH

46 Banner /etc/issue # Affiche une bannière d'avertissement

47 EOT

Page 8: Déploiement d’un serveur d’impression · SaMBa sur un système virtualisé sur l’hyperviseur (HyperV). Afin d’optimiser au mieux le service d’impression, nous installerons

Baptiste MOINE Déploiement d’un serveur d’impression ~ 8 ~

Nous avons à présent recrée un fichier de configuration pour le service SSH de manière à

garantir de manière optimale, la sécurité de l’administration du serveur à distance. A

présent il faut préparer les jeux de clés RSA et DSA nécessaires à l’authentification mais

aussi le message d’avertissement lors de la connexion :

48 # cat > /etc/issue << EOT

49 -------------------------------------------------------------------------

50 AVERTISSEMENT: L'accès à ce système est restreint aux seuls utilisateurs autorisées à s'y connecter.

51 -------------------------------------------------------------------------

52 EOT

53 # rm /etc/ssh/ssh_host_*

54 # ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa # Recréation du jeu de clé RSA

55 # ssh-keygen -f /etc/ssh/ssh_host_dsa_key -N '' -t dsa # Recréation du jeu de clé DSA

56 # su user

57 $ mkdir ~/.ssh && cd ~/.ssh

58 $ ssh-keygen -t rsa -b 2048 # Création d'un jeu de clé avec un passkey

59 $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

60 $ chmod 600 ~/.ssh/id_rsa

61 $ chmod 600 ~/.ssh/authorized_keys

62 $ chmod 700 ~/.ssh

63 $ exit

64 # /etc/init.d/ssh start # Démarre le service SSH

CONFIGURATION DU PARE-FEU

Afin d’apporter une protection supplémentaire, nous avons décidés de configurer le

pare-feu pour ne permettre l’interrogation des services qu’aux seules machines

autorisées.

Page 9: Déploiement d’un serveur d’impression · SaMBa sur un système virtualisé sur l’hyperviseur (HyperV). Afin d’optimiser au mieux le service d’impression, nous installerons

Baptiste MOINE Déploiement d’un serveur d’impression ~ 9 ~

Nous avons donc créé un fichier de script permettant de s’adapter aux modifications IP

du système de manière pseudo-automatique :

1 # cat > /etc/init.d/firewall.sh << EOT # Création d'un fichier contenant nos règles de pare-feu (meilleur persistance)

2 #!/bin/sh

3 if ![ -x /sbin/iptables]; then # Quitte si iptables n'existe pas

4 exit 0

5 fi

6 #### Déclaration des variables ####

7 IP_eth0="$(ifconfig eth0 | grep 'inet adr:'| cut -d: -f2 | awk '{print$1}' | grep -Eo '([0-9]{1,3}[\.]){3}[0-9]{1,3}')" #Récupération dynamique de l'adresse IP

8 CRI_lab="192.168.251.0/24"

9

10 #### Configuration ####

11 iptables-save > /etc/iptables.backup # Sauvegarde la configuration actuelle

12 iptables -F # Vide (flush) la table de configuration du pare-feu actuellement utilisée

13

14 iptables -t nat -F # Vide les règles nat, relatives au rôle de passerelle (non installé ...)

15 iptables -t mangle -F # Vide les règles mangle, relatives à la QoS

16 iptables -P INPUT DROP # Rejet par défaut de toute les requêtes entrantes sur les cartes réseau

17 iptables -A INPUT -i lo -j ACCEPT # Accepte les paquets entrant depuis la carte de bouclage (loopback)

18 iptables -P FORWARD DROP # Rejet par défaut de toute les requêtes passant d'une carte réseau à une autre

19 iptables -P OUTPUT ACCEPT # Autorise par défaut toute les requêtes sortantes d'une des cartes réseau

20 iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT # Autorisation de paquets faisant partie d'une session ou flux déjà établie (donc autorisé)

21 iptables -A INPUT -p icmp -j ACCEPT # Autorise les requêtes ICMP entrantes

22

23 #### SSH ####

24 iptables -A INPUT -p tcp -s $CRI_lab -d $IP_eth0 --dport 54365 -m state --state NEW,ESTABLISHED -j ACCEPT # Ajoute une règle autorisant l'interrogation du service SSH depuis le réseau CRI_lab uniquement

25

Page 10: Déploiement d’un serveur d’impression · SaMBa sur un système virtualisé sur l’hyperviseur (HyperV). Afin d’optimiser au mieux le service d’impression, nous installerons

Baptiste MOINE Déploiement d’un serveur d’impression ~ 10 ~

26 #### CUPS ####

27 iptables -A INPUT -p tcp -s $CRI_lab -d $IP_eth0 --dport 631 -m state --state NEW,ESTABLISHED -j ACCEPT # Ajoute une règle autorisant l'interrogation de CUPS par le réseau CRI.lab

28 iptables -A INPUT -p udp -s $CRI_lab -d $IP_eth0 --dport 631 -m state --state NEW,ESTABLISHED -j ACCEPT # Ajoute une règle autorisant l'interrogation de CUPS par le réseau CRI.lab

29

30 #### SaMBa ####

31 iptables -A INPUT -p udp -s $CRI_lab -d $IP_eth0 --dport 137 -m state --state NEW,ESTABLISHED -j ACCEPT

32 iptables -A INPUT -p udp -s $CRI_lab -d $IP_eth0 --dport 138 -m state --state NEW,ESTABLISHED -j ACCEPT

33

34 iptables -A INPUT -p tcp -s $CRI_lab -d $IP_eth0 --dport 139 -m state --state NEW,ESTABLISHED -j ACCEPT

35 iptables -A INPUT -p tcp -s $CRI_lab -d $IP_eth0 --dport 445 -m state --state NEW,ESTABLISHED -j ACCEPT

36

37 #### Sauvegarde de la configuration ####

38 iptables-save > /etc/network/iptables.up.rules

39 printf "y\n" | iptables-apply –w /etc/network/iptables.up.rules >/dev/null

40 #### Désaffectation des variables ####

41 unset IP_eth0

42 unset CRI_lab

43 exit 0

44 EOT

45 # chmod +x /etc/init.d/firewall.sh

Page 11: Déploiement d’un serveur d’impression · SaMBa sur un système virtualisé sur l’hyperviseur (HyperV). Afin d’optimiser au mieux le service d’impression, nous installerons

Baptiste MOINE Déploiement d’un serveur d’impression ~ 11 ~

INSTALLATION DE CUPS

Afin de gérer les imprimantes installées sur le serveur, nous allons installer CUPS qui est un

outil de gestion d’imprimante. En utilisant cet outil nous pourrons ajouter de manière plus

souple et en utilisant une interface de configuration basé sur http, les imprimantes que

l’on souhaite ou non partager par la suite en utilisant le serveur SaMBa.

Préparation du système Avant de procéder à l’installation du service, nous allons apporter quelques

modifications aux sources d’installation d’Aptitude qui par défaut utilise le support

d’installation système pour récupérer les paquets :

1 # sed -i 's/\(deb cdrom\)/# \1/' /etc/apt/sources.list # Commente les lignes concernant les CDROM

Le fichier de source devrait alors ressembler à ceci (sans les commentaires) :

2 deb http://httpredir.debian.org/debian jessie main

3 deb-src http://httpredir.debian.org/debian jessie main

4

5 deb http://httpredir.debian.org/debian jessie-updates main

6 deb-src http://httpredir.debian.org/debian jessie-updates main

7

8 deb http://security.debian.org/ jessie/updates main

9 deb-src http://security.debian.org/ jessie/updates main

Ajoutons une source supplémentaire qui permettra l’installation de paquets non open-

source :

10 # printf "\ndeb http://httpredir.debian.org/debian jessie-backports main contrib non-free" >> /etc/apt/sources.list

11 # apt-get update # Mise à jour de la base de données des dépots apt

Installation et configuration A présent, nous pouvons installer CUPS ainsi que ses dépendances :

1 # apt-get -fy install cups cups-client

Le service CUPS est installé, passons à sa configuration :

2 # cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.bak

3 # sed -i 's/^\(Listen \)localhost:631$/\1192.168.251.108:631/' /etc/cups/cupsd.conf # Permet l'écoute sur l'interface eth0 et donc un accès distant pour l'administration

4 # usermod -aG lpadmin user # Ajoute user au groupe lpadmin

Page 12: Déploiement d’un serveur d’impression · SaMBa sur un système virtualisé sur l’hyperviseur (HyperV). Afin d’optimiser au mieux le service d’impression, nous installerons

Baptiste MOINE Déploiement d’un serveur d’impression ~ 12 ~

5 # nano /etc/cups/cupsd.conf

6 # Restrict access to the server...

7 <Location />

8 Order allow,deny

9 Allow from 192.168.251.*

10 </Location>

11

12 # Restrict access to the admin pages...

13 <Location /admin>

14 Order allow all

15 Allow from 192.168.251.*

16 </Location>

17

18 # Restrict access to configuration files...

19 <Location /admin/conf>

20 AuthType Default

21 Require user @SYSTEM

22 Order allow,deny

23 Allow from 192.168.251.*

24 </Location>

25

26 # Allow machines on local network to use printers

27 <Location /printers>

28 Order allow,deny

29 Allow from 192.168.251.*

30 </Location>

31 # /etc/init.d/cups start

A présent, pour ajouter une imprimante il faut accéder à la page

http://192.168.251.108:631 en utilisant un navigateur WEB, dans l’onglet « Administration »,

choisir l’option « ajouter une imprimante » en se connectant avec l’utilisateur simple

ajouté au groupe lpadmin (ici « user »). Ajouter l’imprimante en suivant les indications du

constructeur, par exemple la Toshiba 2540 CSE s’ajoute en choisissant l’option « Hôte ou

imprimante LPD/LPR » puis en chargeant le fichier ppd fournis par le constructeur (pour le

Toshiba eStudio 2500CSE : http://pastebin.com/raw.php?i=BfbevSj3).

Page 13: Déploiement d’un serveur d’impression · SaMBa sur un système virtualisé sur l’hyperviseur (HyperV). Afin d’optimiser au mieux le service d’impression, nous installerons

Baptiste MOINE Déploiement d’un serveur d’impression ~ 13 ~

Pour connaitre les protocoles d'impression utilisés par l'imprimante (avec l'accord du RSSI

!), utiliser NMAP comme ceci :

32 # nmap -A -sV --open 172.16.1.159/32

33 Starting Nmap 6.47 ( http://nmap.org ) at 2015-05-28 09:26 Paris, Madrid (heure dÆÚtÚ)

34 Nmap scan report for 172.16.1.159

35 Host is up (0.000068s latency).

36 Not shown: 990 closed ports

37 PORT STATE SERVICE

38 21/tcp open ftp

39 25/tcp open smtp

40 80/tcp open http

41 139/tcp open netbios-ssn

42 427/tcp open svrloc

43 445/tcp open microsoft-ds

44 515/tcp open printer

45 631/tcp open ipp

46 8080/tcp open http-proxy

47 9100/tcp open jetdirect

Ici nous pouvons voir que le port631 est en écoute et fournis un service IPP qui est un

standard de communication basé sur HTTP, ainsi pour ajouter l’imprimante Toshiba nous

pouvons entrer l'URL « lpd://172.16.1.159/ ». Il sera alors nécessaire de donner un nom à

l’imprimante, par exemple « TOSHIBA2540CSE_LAB ».

L’imprimante est à présent ajoutée, comme il s’agit de la seule imprimante installée pour

le moment, nous pouvons la définir comme imprimante par défaut.

Page 14: Déploiement d’un serveur d’impression · SaMBa sur un système virtualisé sur l’hyperviseur (HyperV). Afin d’optimiser au mieux le service d’impression, nous installerons

Baptiste MOINE Déploiement d’un serveur d’impression ~ 14 ~

INSTALLATION DE SAMBA

Afin de partager l’imprimante fraichement installé nous allons installer SaMBa et le

configurer pour permettre son intégration au domaine en tant que serveur membre et

non pas contrôleur de domaine :

1 # apt-get -fy install samba

2 # cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

3 # nano /etc/samba/smb.conf # Remplacer la configuration

4 #======================= Paramètres globaux =======================

5

6 [global]

7 ### Groupe de travail et domaine ###

8 workgroup = CRI

9 server string = Serveur d’impression

10 netbios name = printsrv

11 realm = CRI.lab

12 local master = no

13 domain master = no

14 preferred master = no

15 os level = 0

16

17 ### Sécurité ###

18 security = ADS

19 encrypt passwords = yes

20 guest account = nobody

21

22 ### Réseau ###

23 # Serveurs et option des services voisins

24 wins server = 192.168.251.11

25 socket options = TCP_NODELAY SO_RCVBUF=16384 SO_SNDBUF=16384

26 dns proxy = no

27 disable netbios = no

28 # Port et interfaces d'écoute

29 smb ports = 445

30 interfaces = 127.0.0.0/8 eth0

31 bind interfaces only = yes

Page 15: Déploiement d’un serveur d’impression · SaMBa sur un système virtualisé sur l’hyperviseur (HyperV). Afin d’optimiser au mieux le service d’impression, nous installerons

Baptiste MOINE Déploiement d’un serveur d’impression ~ 15 ~

32 ### Authentification ###

33 guest ok = no

34 encrypt passwords = true

35 client use spnego = yes

36 client ntlmv2 auth = yes

37

38 ### Winbind ###

39 winbind separator = +

40 winbind use default domain = yes

41 winbind refresh tickets = yes

42 winbind enum users = yes

43 winbind enum groups = yes

44 winbind nested groups = yes

45 winbind cache time = 40

46

47 idmap config *: backend = ad

48 idmap config *: range = 10000-20000

49

50 idmap config CRI: backend = rid

51 idmap config CRI: schema_mode = rfc2307

52 idmap config CRI: default = yes

53 idmap config CRI: range = 10000-20000

54

55 ### Authentification ###

56 winbind offline logon = yes

57 template shell = /bin/bash

58 template homedir = /home/%u

59

60 ### Journalisation ###

61 # Débogage verbeux

62 log level = 3

63 # Répertoire avec variable dédiée à la machine

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

65 # Taille maximale des fichiers de log

66 max log size = 1000

Page 16: Déploiement d’un serveur d’impression · SaMBa sur un système virtualisé sur l’hyperviseur (HyperV). Afin d’optimiser au mieux le service d’impression, nous installerons

Baptiste MOINE Déploiement d’un serveur d’impression ~ 16 ~

67 # Désactivation de syslog

68 syslog only = no

69 syslog = 0

70 # Action si problème critique

71 panic action = /usr/share/samba/panic-action %d

72

73 ### CUPS ###

74 load printers = yes

75 printing = cups

76 printcap name = cups

77 preserve case = yes

78 short preserve case = yes

79

80 #======================= Partages =======================

81

82 [printers]

83 comment = Toute les imprimantes

84 valid users = @\"CRI+utilisateurs du domaine\"

85 browseable = yes

86 path = /var/spool/samba

87 printable = yes

88 guest ok = no

89 create mode = 0700

90 write list = @lpadmin, root

91

92 [print$]

93 comment = Drivers d'impression

94 path = /var/lib/samba/printers

95 browseable = yes

96 read only = yes

97 guest ok = no

A présent nous allons procéder à la configuration de Kerberos afin de pouvoir obtenir le

jeton nécessaire à l’intégration de notre serveur au domaine :

1 # apt-get -fy install krb5-user libpam-krb5 winbind

2 # cp /etc/krb5.conf /etc/krb5.conf.bak

Page 17: Déploiement d’un serveur d’impression · SaMBa sur un système virtualisé sur l’hyperviseur (HyperV). Afin d’optimiser au mieux le service d’impression, nous installerons

Baptiste MOINE Déploiement d’un serveur d’impression ~ 17 ~

3 # nano /etc/krb5.conf # Ajouter / modifier la configuration

4 [logging]

5 default = FILE:/var/log/krb5libs.log

6 kdc = FILE:/var/log/krb5kdc.log

7 admin_server = FILE:/var/log/kadmind.log

8

9 [libdefaults]

10 default_realm = CRI.LAB

11 dns_lookup_realm = false

12 dns_lookup_kdc = false

13 ticket_lifetime = 24h

14 forwardable = yes

15

16 [realms]

17 CRI.LAB = {

18 kdc = controleur1.cri.lab

19 admin_server = controleur1.cri.lab

20 default_domain = cri.lab

21 }

22

23 [domain_realm]

24 .kerberos.server = CRI.LAB

25 .cri.lab = CRI.LAB

26 cri.lab = CRI.LAB

27

28 [kdc]

29 profile = /var/kerberos/krb5kdc/kdc.conf

30

31 [appdefaults]

32 pam = {

33 debug = false

34 ticket_lifetime = 36000

35 renew_lifetime = 36000

36 forwardable = true

37 krb4_convert = false

Page 18: Déploiement d’un serveur d’impression · SaMBa sur un système virtualisé sur l’hyperviseur (HyperV). Afin d’optimiser au mieux le service d’impression, nous installerons

Baptiste MOINE Déploiement d’un serveur d’impression ~ 18 ~

38 }

Passons maintenant à la configuration de la résolution de nom en modifiant le Name

Service Switch :

1 # cp /etc/nsswitch.conf /etc/nsswitch.conf.bak

2 # nano /etc/nsswitch.conf

3 passwd: compat winbind

4 group: compat winbind

5 shadow: compat

Nos services étant configurés, nous pouvons procéder à l’intégration de notre serveur au

domaine CRI.lab :

1 # /etc/init.d/winbind restart

2 # testparm /etc/samba/smb.conf

3 # /etc/init.d/cups restart

4 # /etc/init.d/samba restart

5 # kinit admens

6 # klist

7 Ticket cache: FILE:/tmp/krb5cc_0

8 Default principal: [email protected]

9

10 Valid starting Expires Service principal

11 28/05/2015 16:47:03 29/05/2015 02:47:03 krbtgt/[email protected]

12 renew until 29/05/2015 16:46:48

13 # net rpc join -U admens

14 Enter admens's password:

15 Using short domain name -- CRI

16 Joined 'PRINTSRV' to dns domain 'CRI.LAB'

CONFIGURATION DE PAM

Pour permettre l’authentification en utilisant LDAP, il faut modifier les fichiers de

configurations de PAM (Pluggable Authentication Modules) :

1 # cp /etc/pam.d/common-account /etc/pam.d/common-account.bak

2 # cp /etc/pam.d/common-auth /etc/pam.d/common-auth.bak

3 # cp /etc/pam.d/common-session /etc/pam.d/common-session.bak

4 # nano /etc/pam.d/common-auth

Page 19: Déploiement d’un serveur d’impression · SaMBa sur un système virtualisé sur l’hyperviseur (HyperV). Afin d’optimiser au mieux le service d’impression, nous installerons

Baptiste MOINE Déploiement d’un serveur d’impression ~ 19 ~

5 auth sufficient pam_winbind.so

6 auth required pam_unix.so use_first_pass nullok_secure

7 # nano /etc/pam.d/common-session

8 session required pam_mkhomedir.so skel=/etc/skel/ umask=0066

9 session sufficient pam_winbind.so

10 session required pam_unix.so

PREPARATION DES PILOTES

Pour permettre aux utilisateurs de notre serveur d’impression de ne pas avoir à

télécharger les pilotes, nous allons ajouter les pilotes de notre imprimante à SaMBa :

1 # mkdir -p /var/spool/samba/

2 # chmod 1777 /var/spool/samba/ # Empêche la suppression accidentelle

3 # lpadmin -d TOSHIBA2540CSE_LAB # Définie l’imprimante par défaut

A présent pour récupérer les pilotes nécessaires, il est possible d’imprimer une page de

test d'imprimante depuis un PC possédant déjà une installation de cette imprimante et

d’en extraire la liste des pilotes nécessaire à son fonctionnement (voir Figure 3)

Figure 3 - Pilotes d'impression

Page 20: Déploiement d’un serveur d’impression · SaMBa sur un système virtualisé sur l’hyperviseur (HyperV). Afin d’optimiser au mieux le service d’impression, nous installerons

Baptiste MOINE Déploiement d’un serveur d’impression ~ 20 ~

Une fois cette liste récupéré, il faut indiquer à CUPS que l’on souhaite installer des pilotes

et les déployer sur SaMBa, pour cela il faut commencer par copier ces pilotes en

conservant leur casse (majuscules et minuscules) dans le répertoire prévu à cet effet

(/usr/share/cups/drivers). Il est possible de compléter ce package de pilote avec

d’autres qui sont notamment prévu pour le Postscript de CUPS :

4 # cd /tmp/

5 # wget http://ftp.ntua.gr/mirror/gnu/cups/windows/cups-windows-6.0-source.tar.gz

6 # tar xvzf cups-windows-6.0-source.tar.gz

7 # cd cups-windows-6.0

8 # make install

9 # cupsaddsmb -H localhost -U admens -v -a

TEST SUR UN CLIENT

Pour vérifier le fonctionnement du serveur d’impression, il suffit de s’authentifier sur un

poste du domaine CRI.LAB et d’accéder au partage du serveur SaMBa, si tout se passe

bien l’imprimante et installée en utilisant le pilotes partagées via le partage « print$ ».

Pour vérifier le fonctionnement de l’imprimante, il suffit d’imprimer une page de test, si

cela fonctionne, le partage a fonctionné (voir Figure 4).

Figure 4 - Page de teste d'imprimante via partage SaMBa

Page 21: Déploiement d’un serveur d’impression · SaMBa sur un système virtualisé sur l’hyperviseur (HyperV). Afin d’optimiser au mieux le service d’impression, nous installerons

Baptiste MOINE Déploiement d’un serveur d’impression ~ 21 ~

CONCLUSION

Après avoir procédé à plusieurs installations du service et vérifier son fonctionnement

avant que ce dernier soit effectif, j’ai dû procéder à de nombreuses analyses

protocolaires mais aussi applicative via les journaux d’évènement pour comprendre le

fonctionnement réel de ce service, j’ai ainsi pu constater que celui-ci est très compliqué

à maintenir dans la mesure où plusieurs gestion des droits sont à prendre en compte à

savoir les ACL, les droits NTFS mais aussi les droits POSIX. De plus il faut également prendre

en compte la compatibilité entre les services d’authentification propriétaire et libres.

Cela m’a donc permis de comprendre la véritable complexité d’intégrer un service

dédié à un environnement libre, dans un domaine fournis par des services propriétaire

tout en gérant la rétrocompatibilité des services. Il n’en reste pas moins que cette

solution fonctionne mais est plus complexe à administrer si l’on possède déjà une

infrastructure de domaine propriétaire.

INFORMATIONS SUPPLEMENTAIRES

Contact : [email protected]

Références :

Ask Ubuntu - http://askubuntu.com/

Super User - http://superuser.com/

Stack Overflow - http://stackoverflow.com/

Server Fault - http://serverfault.com/

Information Security - http://security.stackexchange.com/

Stack Exchange Unix and Linux - http://unix.stackexchange.com/

Ubuntu Wiki -https://wiki.ubuntu.com/

Ubuntu Documentation - https://help.ubuntu.com/

ArchWiki - https://wiki.archlinux.org/

Syslinux Wiki - http://www.syslinux.org

DigitalOcean Community - https://www.digitalocean.com/community/

IT-Connect - http://www.it-connect.fr/