Ubuntu – Créer son dépôt Ubuntu 16.04

Préparation

Architecture système

  • Pré requis :
    • LAMP
    • apt-mirror et +/- 500 Go d'espace disque (varie en fonction des branches sélectionnées).
  • Un système virtualisé avec deux disques (le premier de 10Go environ pour le système, le deuxième de 500Go pour accueillir le miroir).
Disques Capacité Répertoires montés
sda1 10Go / (système)
sdb1 500Go /depot (miroir)

mkdir /depot
echo "/dev/sdb1       /depot          ext4    errors=remount-ro 0       1" >> /etc/fstab
mount -a

Paquets

  • Parce que les versions d'apt-mirror sont boguées sur Debain et Ubuntu, on installe depuis SourceForge :

echo "deb http://apt-mirror.sourceforge.net/ apt-mirror/" >> /etc/apt/sources.list
apt-get update
apt-get install apt-mirror apache2

Configuration

  • On crée et on édite le fichier de configuration :

vi /depot/apt-mirror.conf

############# config ##################
#
 set base_path    /depot
#
set mirror_path         $base_path/mirror
set skel_path           $base_path/skel
set var_path            $base_path/var
set cleanscript         $var_path/clean.sh
set defaultarch         i386
# set postmirror_script $var_path/postmirror.sh
set run_postmirror 0
set nthreads     20
set _tilde 0
#
############# end config ##############

deb http://ftp.free.fr/mirrors/ftp.ubuntu.com/ubuntu xenial main restricted universe multiverse main/debian-installer
deb http://ftp.free.fr/mirrors/ftp.ubuntu.com/ubuntu xenial-updates main restricted universe multiverse
deb http://ftp.free.fr/mirrors/ftp.ubuntu.com/ubuntu xenial-security main restricted universe multiverse
deb http://ftp.free.fr/mirrors/ftp.ubuntu.com/ubuntu xenial-backports main restricted universe multiverse

deb-amd64 http://ftp.free.fr/mirrors/ftp.ubuntu.com/ubuntu xenial main restricted universe multiverse main/debian-installer
deb-amd64 http://ftp.free.fr/mirrors/ftp.ubuntu.com/ubuntu xenial-updates main restricted universe multiverse
deb-amd64 http://ftp.free.fr/mirrors/ftp.ubuntu.com/ubuntu xenial-security main restricted universe multiverse
deb-amd64 http://ftp.free.fr/mirrors/ftp.ubuntu.com/ubuntu xenial-backports main restricted universe multiverse

deb-src http://ftp.free.fr/mirrors/ftp.ubuntu.com/ubuntu xenial main restricted universe multiverse
deb-src http://ftp.free.fr/mirrors/ftp.ubuntu.com/ubuntu xenial-security main restricted universe multiverse
deb-src http://ftp.free.fr/mirrors/ftp.ubuntu.com/ubuntu xenial-updates main restricted universe multiverse
deb-src http://ftp.free.fr/mirrors/ftp.ubuntu.com/ubuntu xenial-backports main restricted universe multiverse

clean http://ftp.free.fr/mirrors/ftp.ubuntu.com/ubuntu

  • On lance la mise à jour :

apt-mirror /depot/apt-mirror.conf

  • Le résultat après 1 jour de téléchargement intensif :

Downloading 355 index files using 20 threads...
Begin time: Tue Apr 22 09:58:13 2014
[20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]... [10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]...
End time: Tue Apr 22 09:58:17 2014

Processing tranlation indexes: [TTTTTTTT]

Downloading 189 translation files using 20 threads...
Begin time: Tue Apr 22 09:58:17 2014
[20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]... [10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]...
End time: Tue Apr 22 09:58:19 2014

Processing indexes: [SSSSPPPPPPPP]

133.6 GiB will be downloaded into archive.
Downloading 136357 archive files using 20 threads...
Begin time: Tue Apr 22 09:58:30 2014
[20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]...
End time: Tue Apr 22 14:08:47 2014

0 bytes in 0 files and 0 directories can be freed.
Run /depot/var/clean.sh for this purpose.

  • Rendre les paquets accessibles :

ln -s /depot/mirror/ftp.free.fr/mirrors/ftp.ubuntu.com/ubuntu/ /var/www/ubuntu

Ubuntu – Initialiser un disque additionnel

Voici un petit script pour initialiser un deuxième disque dur. Pratique lors d’un remplacement ou autre…

cat > sfdisk.sh << EOT
sfdisk  --no-reread --force /dev/sdb << EOF
        ,
        ,
        ,
        ,
        y
EOF
EOT

cat sfdisk.sh
chmod +x sfdisk.sh
./sfdisk.sh
mkfs.ext4 /dev/sdb1

http://www.tutorialspoint.com/unix_commands/sfdisk.htm

Syslinux sur WDS

WDS

  • Arrêter le service et faire une copie de sauvegarde du répertoire RemoteInstall
net stop wdsserver

DHCP

  • Rajouter les directives au serveur DHCP pour le démarrage depuis le serveur WDS :
        next-server @IP_wds-server;
        # Windows deployment server settings
        option tftp-server-name &quot;@IP_wds-server&quot;;
        option bootfile-name &quot;bootx86wdsnbp.com&quot;;

PXELinux sur WDS

  • Télécharger les fichiers de démarrage depuis : http://www.kernel.org/pub/linux/utils/boot/syslinux/ (v5.01 au 02/2013)
  • Extraire les fichiers suivants et les copier dans $WDS-ROOTBootx86 et $WDS-ROOTBootx64
    • corepxelinux.0
    • com32menuvesamenu.c32
    • com32moduleschainchain.c32
    • com32elflinkldlinuxldlinux.c32
    • com32liblibcom32.c32
    • com32libutillibutil.c32
  • Renommer le fichier pxelinux.0 en pxelinux.com (reproduire cette opération pour chaque type d'architecture)
  • Créer un répertoire nommé pxelinux.cfg
  • Dans le répertoire pxelinux.cfg créer un fichier nommé default et inscrire les directives suivantes :
DEFAULT      vesamenu.c32
PROMPT       0
NOESCAPE     0
ALLOWOPTIONS 0
# Timeout in units of 1/10 s
TIMEOUT 300
MENU MARGIN 10
MENU ROWS 16
MENU TABMSGROW 21
MENU TIMEOUTROW 26
MENU COLOR BORDER 30;44		#20ffffff #00000000 none
MENU COLOR SCROLLBAR 30;44	#20ffffff #00000000 none
MENU COLOR TITLE 0 		#ffffffff #00000000 none
MENU COLOR SEL   30;47		#40000000 #20ffffff
MENU BACKGROUND		menu.png
MENU TITLE PXE Boot Menu
#---
LABEL wds
MENU LABEL Windows Deployment Services
KERNEL pxeboot.0
#---
LABEL Abort
MENU LABEL AbortPXE
Kernel	abortpxe.0
#---
LABEL local
MENU DEFAULT
MENU LABEL Boot from Harddisk
LOCALBOOT 0
Type 0x80
  • Faire une copie des fichiers :
    • pxeboot.n12 et renommer en pxeboot.0
    • abortpxe.com et renommer en abortpxe.0
  • Créer un répertoire Linux pour accueillir les fichier de démarrage.
  • Dans une console, lancer ces lignes de commande pour configurer les options de démarrage du service WDS :
wdsutil /set-server /bootprogram:bootx86pxelinux.com /architecture:x86
wdsutil /set-server /N12bootprogram:bootx86pxelinux.com /architecture:x86
wdsutil /set-server /bootprogram:bootx64pxelinux.com /architecture:x64
wdsutil /set-server /N12bootprogram:bootx64pxelinux.com /architecture:x64
  • Relancer le service WDS :
net start wdsserver

GLPI – Plugin SCCM

SCCM

  • Pré-requis : GLPI + FusionInventory
  • Dans le but d’obtenir les postes inventoriés par SCCM sur GLPI, un plugin peut vous aider.
  • Le pré-requis, une installation de GLPI 0.85 ou ultérieure avec le plugin Fusion Inventory
  • Modules Curl et Sybase pour PHP5

Installation

apt-get install php5-curl php5-sybase
service apache2 restart
  • Se rendre dans le répertoire plugins de GLPI :
cd /usr/share/glpi/plugins
wget https://github.com/TECLIB/sccm/releases/download/0.85-1.0Beta/sccm-0.85-1.0Beta.tar.gz
tar -xzf sccm-0.85-1.0Beta.tar.gz
  • Se connecter sur l’interface de GLPI et se rendre dans le menu Configuration / Plugins
  • Installer et Activer les deux plugins :

Paramétrages

Fusion

SCCM

  • ConfigurationConnecteur SCCM :
Activer la synchronisation SCCM Oui
Hostname (MSSQL) or IP SCCM
Nom BDD SCCM DB_SCCM
Utilisateur SCCM UserDB
Mot de passe utilisateur SCCM PasswordDB
URL FusionInventory pour injection http://test/plugins/fusioninventory/front/communication.php

  • Vérifier que la tâche planifiée est créée et active : Configuration / Actions automatiques :

  • La régler en fonction des besoins :

Tests

Installation OCS Inventrory Ubuntu 14.04

Installation par les dépôts

  • Bon courage, car la magie d'apt-get ne sera pas au rendez-vous et va procurer une certaine frustration, donc autant passer à l'installation manuelle. Néanmoins pour ceux qui souhaitent perdre leur temps :
apt-get install ocsinventory-reports ocsinventory-server -y

Méthode manuelle

Apache

apt-get update; apt-get upgrade -y; apt-get install apache2 apache2-utils openssl openssl-blacklist openssl-blacklist-extra mysql-server php5 libapache2-mod-php5 php5-mysql -y
echo ServerName $HOSTNAME &gt;&gt; /etc/apache2/apache2.conf
echo AddDefaultCharset utf-8 &gt;&gt; /etc/apache2/apache2.conf
service apache2 restart

Création du VHost

FIXME

MySQL

Configuration de la taille des paquets

  • Editer le fichier /etc/mysql/my.cnf et augmenter la taille des paquets à 32M
max_allowed_packet      = 32M
sed -i &#039;s,max_allowed_packet = 16M,max_allowed_packet = 32M,g&#039; /etc/mysql/my.cnf
cat /etc/mysql/my.cnf | grep max_allowed_packet
max_allowed_packet      = 16M
max_allowed_packet      = 16M

Compte de service

  • Création du compte OCS :
mysql -u root -p
grant all on ocsweb.* to &#039;ocs&#039;@&#039;localhost&#039; identified by &#039;password&#039;;
exit;

PHP

apt-get install php5 php5-mysql php5-gd
  • Augmentation des limitations d'upload :
sed -i &#039;s/post_max_size = 8M/post_max_size = 60M/g&#039; /etc/php5/apache2/php.ini
sed -i &#039;s/upload_max_filesize = 2M/upload_max_filesize = 60M/g&#039; /etc/php5/apache2/php.ini
cat /etc/php5/apache2/php.ini | grep post_max_size
cat /etc/php5/apache2/php.ini | grep upload_max_filesize
post_max_size = 60M
upload_max_filesize = 60M

Perl

<note important>Sur les versions 14.xx d'Ubuntu Server, le paquet libcompress-zlib-perl est remplacé par libio-compress-zlib-perl</note>

  • Installer la prise en charge Perl depuis Apache avec les modules nécessaires :
apt-get install libapache2-mod-perl2 libxml-simple-perl libio-compress-perl  libdbi-perl libdbd-mysql-perl libapache-dbi-perl libnet-ip-perl libsoap-lite-perl libproc-daemon-perl libapache2-mod-perl2-dev
  • Mise à jour des modules :
perl -MCPAN -e shell
Would you like to configure as much as possible automatically? [yes]
sites for you? (This means connecting to the Internet) [yes]
cpan[1]&gt; install CPAN
reload CPAN...
cpan[2]&gt; install YAML
reload YAML...
cpan[3]&gt; install SOAP::Lite
reload SOAP...
cpan[4]&gt; install Apache2::SOAP
cpan[5]&gt; exit

Librairies supplémentaires

apt-get install libc6-dev

Outils réseaux

  • Installation de NMAP et SNMP :
apt-get install nmap snmp

Outils de compilation

  • Installation de Build-Essebtial :
apt-get install build-essential

Sources

OCS Inventory over AD

Authentification via Active Directory

Pré-requis

  • Un groupe d'administration ocs_admins, un ou plusieurs utilisateurs membres du groupe.
  • Un compte dédié pour se connecter à l'annuaire Active Directory, ex : ocs-bind avec un mot de passe PasswOOrd
  • Installation du module php5-ldap
apt-get install php5-ldap

Configuration

  • Se rendre dans le menu Configuration / Configuration LDAP et compléter les champs suivants :
CONEX_LDAP_SERVEUR dc.domain.tld
CONEX_ROOT_DN ocs-bind@domain.tld
CONEX_ROOT_PW PasswOOrd
CONEX_LDAP_PORT 389
CONEX_DN_BASE_LDAP dc=domain,dc=tld
CONEX_LOGIN_FIELD sAMAccountName
CONEX_LDAP_PROTOCOL_VERSION 3
CONEX_LDAP_CHECK_FIELD1_NAME member
CONEX_LDAP_CHECK_FIELD1_VALUE ocs_admins
CONEX_LDAP_CHECK_FIELD1_ROLE Super administrateurs
  • Éditer ensuite les fichiers aut.php et identity.php pour modifier le type de connexion et la priorité :
vi /usr/share/ocsinventory-reports/ocsreports/backend/AUTH/auth.php

// $list_methode=array(0=&gt;&quot;local.php&quot;);
// $list_methode=array(0=&gt;&quot;ldap.php&quot;);
$list_methode=array(0=&gt;&quot;ldap.php&quot;,1=&gt;&quot;local.php&quot;);
vi /usr/share/ocsinventory-reports/ocsreports/backend/identity/identity.php

//$list_methode=array(0=&gt;&quot;local.php&quot;);
//$list_methode=array(0=&gt;&quot;ldap.php&quot;);
$list_methode=array(0=&gt;&quot;ldap.php&quot;,1=&gt;&quot;local.php&quot;);
  • Si tout se passe bien, les utilisateurs contenus dans le groupe ocs_admins peuvent désormais se connecter et administrer OCS

Sources

Apache SSO over AD

Pré-requis

  • Une installation fraiche d'Ubuntu 14.04
  • Une entrée directe et inverse dans votre DNS d'un Virtual Host (ex: test.domain.tld)
  • Un environnement Active Directory fonctionnel
    • Un utilisateur avec le nom équivalent au Virtual Host que l'on souhaite déployer (ex: utilisateur test pour le vhost test.domain.tld)
    • Un poste et un utilisateur membres du domaine

Préparation

Active Directory

  • Depuis un DC, créer un utilisateur un utilisateur avec le nom équivalent au Virtual Host que l'on souhaite déployer (ex: utilisateur test pour le VHost test.domain.tld)
  • Lancer une console MSDOS :
ktpass -princ HTTP/test.domain.tld@DOMAIN.TLD -mapuser test@DOMAIN.TLD -crypto RC4-HMAC-NT -ptype KRB5_NT_PRINCIPAL -pass MotDePasse -out c:test.keytab
  • Une fois créé, transférer le fichier sur le serveur Web, ex : /home/user.

Serveur Web

  • Avant de se lancer dans les installations, s'assurer que le serveur Web est bien paramétrée et référencée dans le DNS :
root@test:/home/user# hostname
test.domain.tld
  • Tester la recherche directe :
nslookup test
Server:         192.168.0.1
Address:        192.168.0.2#53

Name:   test.domain.tld
Address: 192.168.0.10
  • La recherche inversée
nslookup 192.168.0.10
Server:         192.168.0.1
Address:        192.168.0.2#53

10.0.168.192.in-addr.arpa      name = test.domain.tld.
  • Vérifier la résolution DNS :
cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.0.1
nameserver 192.168.0.2
search domain.tld

Installation

Winbind, Samba, Kerberos

  • On lance l'installation des paquets :
apt-get install libnss-winbind libpam-winbind ntp krb5-user samba smbclient winbind -y

Fichiers de configuration

nsswitch.conf

mv /etc/nsswitch.conf{,.ori}

cat &gt;&gt; /etc/nsswitch.conf &lt;&lt; EOF
passwd:         compat winbind file
group:          compat winbind file
shadow:         compat winbind file

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis
EOF

krb5.conf

mv /etc/krb5.conf{,.ori}

cat &gt;&gt; /etc/krb5.conf &lt;&lt; EOF
[libdefaults]
ticket_lifetime = 24h
default_realm = DOMAIN.TLD
forwardable = true

[realms]
DOMAIN.TLD = {
kdc = 192.168.0.100
kdc = 192.168.0.110
default_domain = DOMAIN.TLD
}

[domain_realm]
.domain.tld = DOMAIN.TLD
domain.tld = DOMAIN.TLD

[kdc]
profile = /etc/krb5kdc/kdc.conf

[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}

[logging]
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmin.log
default = FILE:/var/log/krb5lib.log
EOF

smb.conf

mv /etc/samba/smb.conf{,.ori}

cat &gt;&gt; /etc/samba/smb.conf &lt;&lt; EOF
[global]
workgroup = DOMAIN
server string = Samba Server Version %v
security = ads
realm = DOMAIN.TLD
domain master = no
local master = no
preferred master = no
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072
use sendfile = true
# read raw = yes # Should provide a performance increase but currently untested, YMMV
# write raw = yes # Should provide a performance increase but currently untested, YMMV

idmap config * : backend = tdb
idmap config * : range = 100000-299999
idmap config DOMAIN : backend = rid
idmap config DOMAIN : range = 10000-99999
winbind separator = +
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
winbind nested groups = yes
winbind refresh tickets = yes
template homedir = /home/%D/%U
template shell = /bin/bash

client use spnego = yes
client ntlmv2 auth = yes
encrypt passwords = yes
restrict anonymous = 2
log file = /var/log/samba/log.%m
max log size = 50
EOF

Mise au domaine

Tests préalables

  • Avant d'inscrire le serveur Web dans le domaine, s'assurer que la configuration Kerberos est fonctionnelle :
kinit ad_user@DOMAIN.TLD
Password for ad_user@DOMAIN.TLD:
  • On valide l'obtention du ticket :
root@test:/home/user# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: ad_user@DOMAIN.TLD

Valid starting       Expires              Service principal
02/10/2015 10:46:18  02/10/2015 20:46:18  krbtgt/DOMAIN.TLD@DOMAIN.TLD
        renew until 03/10/2015 10:46:15
  • Si la commande klist renvoie un ticket, on peut alors intégrer la machine au domaine :
net ads join -U Administrateur
Enter Administrateur&#039;s password:
Using short domain name -- DOMAIN
Joined &#039;TEST&#039; to dns domain &#039;domain.tld&#039;
DNS Update for test.domain.tld failed: ERROR_DNS_GSS_ERROR
DNS update failed: NT_STATUS_UNSUCCESSFUL
  • Les deux messages liés à la mise à jour DNS ne sont pas bloquant et une fois intégré au domaine il faut redémarrer.

Vérifications

  • Vérifier que les méthodes d'authentification sont bien enregsitrées :
pam-auth-update

[*] Unix authentication
[*] Winbind NT/Active Directory authentication
[*] Mount volumes for user
[*] Register user sessions in the systemd control group hierarchy
[*] Inheritable Capabilities Management
  • Vérifier que winbind renvoi bien les utilisateurs et groupes depuis Active Direcory :
wbinfo -u &amp;&amp; wbinfo -g
  • Idem avec la commande getent :
getent passwd | more &amp;&amp; getent group | more

Apache

  • Installation d'Apache2, MySQL et PHP :
apt-get update; apt-get upgrade -y; apt-get install apache2 apache2-utils openssl openssl-blacklist openssl-blacklist-extra mysql-server php5 libapache2-mod-php5 php5-mysql
  • Ajouter les paquets suivants :
apt-get install apache2-mpm-prefork libapache2-mod-auth-kerb

VHost

  • On crée le fichier de configuration en référence à notre Virtual Host :
vi /etc/apache2/sites-available/test.conf

&lt;VirtualHost 192.168.0.10:80&gt;

        ServerName      test
        Redirect        / https://test
        ErrorLog        /var/log/apache2/test.log
        CustomLog       /var/log/apache2/test.log combined

&lt;/VirtualHost&gt;

&lt;VirtualHost 192.168.0.10:443&gt;

        ServerName test
        DocumentRoot /var/www/test

        SSLEngine on
        SSLCertificateFile /etc/apache2/test.crt
        SSLCertificateKeyFile /etc/apache2/test.key

        ErrorLog        /var/log/apache2/test.log
        CustomLog       /var/log/apache2/test.log combined

&lt;Directory /var/www/test&gt;

        Options         Indexes FollowSymLinks MultiViews
        AllowOverride   none
        Order           allow,deny
        allow from      all

        AuthType                Kerberos
        AuthName                &quot;Kerberos Login&quot;
        KrbMethodNegotiate      On
        KrbMethodK5Passwd       On
        KrbAuthRealms           DOMAIN.TLD
        Krb5KeyTab              /etc/apache2/HTTP-test.keytab
        require                 valid-user

&lt;/Directory&gt;
&lt;/VirtualHost&gt;

Keytab

  • Copier le fichier HTTP-test.keytab et poser les droits pour l'utilisateur www-data :
mv /home/user/HTTP-test.keytab /etc/apache2/
chown www-data:www-data /etc/apache2/HTTP-test.keytab

Certificat

  • On génère un certificat auto-signé :
openssl req -x509 -nodes -days 3650 -newkey rsa:1024 -out /etc/apache2/test.crt -keyout /etc/apache2/test.key

<note important>L'option Common Name doit reprendre le nom du VHost déclaré dans le DNS, ex test.domain.tld devient test </note>

Country Name (2 letter code) [AU]: TS
State or Province Name (full name) [Some-State]: test_land
Locality Name (eg, city) []: test_city
Organization Name (eg, company) [Internet Widgits Pty Ltd]: domain.tld
Organizational Unit Name (eg, section) []: domain.tld
Common Name (e.g. server FQDN or YOUR name) []: test
Email Address []: webmaster@domain.tld
  • Activer les modules Apache et le site :
a2enmod {authnz_ldap,ssl}
a2ensite test.conf
service apache2 restart

Paramétrage du navigateur

Depuis Firefox

about:config
network.negotiate-auth.trusted-uris http://,https://
network.negotiate-auth.delegation-uris http://,https://

Depuis IE

FIXME

Validation

  • Pour valider le bon fonctionnement, créer un fichier index.php dans le répertoire racine du site :
vi /var/www/test/index.php

&lt;?php
echo &quot;&lt;h2&gt;Kerberos Auth&lt;/h2&gt;&quot;;
echo &quot;Auth type: &quot; . $_SERVER[&#039;AUTH_TYPE&#039;] . &quot;&lt;br /&gt;&quot;;
echo &quot;Remote user: &quot; . $_SERVER[&#039;REMOTE_USER&#039;] . &quot;&lt;br /&gt;&quot;; ?&gt;
Kerberos Auth
Auth type: Basic
Remote user: toto@DOMAIN.TLD

Services Web

GLPI

        &lt;Files &quot;plugin_fusioninventory.communication.php&quot;&gt;
          Satisfy Any
          Options FollowSymLinks
        &lt;/Files&gt;

Nagios

Dokuwiki

Sources

Active Directory – Installer un serveur d’impression

Pré-requis

Installation

Rôle

Add-WindowsFeature -Name Print-Services

Imprimante

  • Se munir des pilotes du matériel et les décompresser (ex: IMPHPCOLOR4700)
  • Démarrer / Menu d'administration / Gestion d'impression ou lancer la console printmanagement.msc
  • Serveur d'impression / srv-printer / Imprimantes / Clic droit : Ajouter une imprimante
Ajouter une imprimante TCP/IP… Suivant
Type de périphérique Périphérique TCP/IP
Nom d'hôte ou adresse IP imp-hp-color-4700
Nom du port Modifier si nécessaire
Détecter automatiquement le pilote d'imprimante… coché
Installer un nouveau pilote Suivant
Disque fourni… Chemin des drivers
Nom de l'imprimante imp-hp-color-4700
Partager cette imprimante coché
Nom du partage imp-hp-color-4700
Emplacement Bureau de John
  • Une fois terminée, lancer une page de test pour valider l'installation.

Déploiement

Répertorier dans l'imprimante dans l'annuaire

  • Faire un clic droit sur l'imprimante et sélectionner :
    • Répertorier dans l'annuaire, de ce fait elle sera visible par l'ensemble des utilisateurs.
    • Déployer avec la stratégie de groupe :
      • Rechercher l'OU où se trouve les utilisateurs concernés
      • Cocher le type d'objet Utilisateurs et/ou Ordinateurs

Autoriser les utilisateurs à installer une imprimante

  • Créer une GPO Utilisateur :
    • Configuration utilisateur
      • Stratégies
        • Modèles d’administration
          • Panneau de configuration/Imprimantes
            • Stratégie
            • Pointer et imprimer les packages – Serveurs approuvés Désactivé
    Configuration Ordinateur &gt; Stratégies &gt; Modèles d’administration &gt; Imprimantes &gt; Restrictions Pointer et Imprimer &gt; Désactivé
    Configuration Utilisateur &gt; Stratégies &gt; Modèles d’administration &gt; Panneau de configuration/Imprimantes &gt; Restrictions Pointer et Imprimer &gt; Désactivé

Automatiser l'installation par groupe d'utilisateurs

  • Créer une stratégie Utilisateur :
Préférences
Paramètres du Panneau de configuration
Imprimantes
Imprimante partagée (nom : serveurimprimante)
Général
Action Mettre à jour
Chemin d’accès du partage serveurimprimante
Définir cette imprimante comme imprimante par défaut Vrai
Uniquement en l’absence d’une imprimante locale Vrai
Port local
Commun
Interrompre le traitement des éléments sur cette extension si une erreur se produit sur cet élément Non
Exécuter dans le contexte de sécurité de l’utilisateur connecté (option de la stratégie utilisateur) Non
Supprimer cet élément lorsqu’il n’est plus appliqué Non
Appliquer une fois et ne pas réappliquer Non
bool AND
not 0
name TESTUsers_Printers
sid S-1-5-21-xxxxxxx-xxxxxx445-xxxxxx526-xxxx8966
userContext 1
primaryGroup 0
localGroup 0

Sources

PowerShell

Cacti 0.8.8b Installation Over Active Directory Ubuntu 14.04

Pré-requis

  • Un LAMP
  • Un domaine fonctionnel sous Active Directory

Installation

  • L'installation depuis les paquets permet un paramétrage assez complet (crontab, permissions, binaires…) :

apt-get install php5-ldap libphp-adodb librrd4 php5-cli php5-snmp rrdtool dbconfig-common cacti cacti-spine snmp-mibs-downloader snmp snmpd

  • Répondre aux questions posées :
Mise à jour du php.ini Ok
Server web apache2
Faut-il configurer la base de données de cacti avec dbconfig-common Oui
Mot de passe de l'administrateur de la base de données MySQL_Password
Mot de passe de connexion MySQL pour cacti Cacti_Password
Confirmation du mot de passe Cacti_Password
Configurer la base avec dbconfig-common Oui
  • Pas la peine de se connecter au serveur pour procéder à sa mise à jour.

Mise à jour

Site

cd /usr/src
wget http://www.cacti.net/downloads/cacti-0.8.8b.tar.gz
tar -xzf cacti-0.8.8b.tar.gz
mv /usr/share/cacti/site/ /usr/share/cacti/_site/
mv cacti-0.8.8b /usr/share/cacti/site/
chown www-data:www-data -R /usr/share/cacti/site/{rra,log}

VHost

  • Création du VirtualHost :

cat > /etc/apache2/sites-available/cacti.conf << EOF

<VirtualHost 192.168.1.10:80>

        ServerName              chronos
        ServerAlias             chronos
        Redirect                / https://chronos

        ErrorLog                /var/log/apache2/chronos.log
        CustomLog               /var/log/apache2/chronos.log combined

</VirtualHost>

Alias /cacti /usr/share/cacti/site

<DirectoryMatch /usr/share/cacti/site>
        Options +FollowSymLinks
        AllowOverride None
        order allow,deny
        allow from all

        AddType application/x-httpd-php .php

        php_flag magic_quotes_gpc Off
        php_flag short_open_tag On
        php_flag register_globals Off
        php_flag register_argc_argv On
        php_flag track_vars On
        # this setting is necessary for some locales
        php_value mbstring.func_overload 0
        php_value include_path .

        DirectoryIndex index.php
</DirectoryMatch>

<VirtualHost 192.168.1.10:443>

        ServerName              chronos
        DocumentRoot            /usr/share/cacti/site

        ErrorLog                /var/log/apache2/chronos.log
        CustomLog               /var/log/apache2/chronos.log combined

        Options                 +Indexes +SymlinksIfOwnerMatch
        IndexOptions            NameWidth=* +SuppressDescription

        SSLEngine               on
        SSLCertificateFile      /etc/apache2/ssl/chronos.crt
        SSLCertificateKeyFile   /etc/apache2/ssl/chronos.key

</VirtualHost>
EOF

  • Supprimer les fichiers de configurations (obsolètes) :

a2ensite cacti.conf
rm /etc/apache2/conf-{enabled,available}/cacti.conf
service apache2 restart

Crontab

  • On vérifie que la tâche planifiée est créée pour lancer le script poller.php :

cat /etc/cron.d/cacti

  • On peut vérifier les détails dans le fichier de log :

tailf /var/log/cacti/poller-error.log

Base de données

  • Lancer les commandes pour la configuration de la base de données, saisie des mdp et comptes utilisés par MySQL :

read -e -p "Mot de passe du compte root pour MySQL : " mysqlpass
read -e -p "Nom de la base utilsee pour cacti : " -i "cacti" cactidb
read -e -p "Utilisateur de connexion a la base cacti : " cactiuser
read -e -p "Mot de passe du compte pour la base cacti : " cactipass

  • Sauvegarde, suppression et création de la BDD :

mysql -u root -e "create database _cacti" --password=$mysqlpass
mysqldump -u root --password=$mysqlpass cacti | mysql -u root --password=$mysqlpass -h localhost _cacti
mysql -u root -e "drop database cacti" --password=$mysqlpass
mysql -u root -e "create database cacti" --password=$mysqlpass
mysql cacti < /usr/share/cacti/site/cacti.sql --password=$mysqlpass
mysql -u root -e "GRANT ALL ON $cactidb.* TO $cactiuser@localhost IDENTIFIED BY '$cactipass'" --password=$mysqlpass

  • Modification du fichier de configuration :

sed -i "s,database_default = "cacti",database_default = "${cactidb}" /usr/share/cacti/site/include/config.php
sed -i "s,username = "cactiuser",username = "${cactiuser}",g' /usr/share/cacti/site/include/config.php
sed -i "s,cactiuser,${cactipass},g" /usr/share/cacti/site/include/config.php

PHP

  • Vérifier que les modules nécessaires sont activés :

for i in cgi cli apache2; do cat /etc/php5/$i/php.ini | more; done

SNMP

  • Pour rendre accessible les MIB au travers de SNMP :

cp  /etc/snmp/snmpd.conf{,.ori}
sed -i "s,agentAddress  udp:127.0.0.1:161,agentAddress  udp:0.0.0.0:161,g" /etc/snmp/snmpd.conf
sed -i 's,-V systemonly,,g' /etc/snmp/snmpd.conf
sed -i 's,export MIBS=,export MIBS=ALL,g' /etc/default/snmpd
/etc/init.d/snmpd restart

Connexion à l'interface Web

  • Se connecter à l'adresse http://chronos et répondre au questions :
Cacti Installation Guide Next
New Install Next
Check – OK Finish
Utilisateur admin
Mot de passe admin
  • A la première connexion, l'application force le changement du mot de passe, changer le. Si on attend un peu on peu voir 4 jolis graphes afficher les infos de notre serveur :o)

Settings

General


Path

  • Vérifier que tout est renseigné, en installation manuelle il manque le chemin de la police pour RRDTool Default Font
RRDTool Default Font /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf

Poller


Graph Export


Visual


Authentification

Authentification LDAP

  • Configuration / Settings / Authentication :
Active Directory
General
Authentication Method LDAP Authentification
Special Users
Guest User No User
User Template Admin
LDAP General Settings
Server ldap.domain.tld
Port Standard 389
Port SSL 636
Protocol Version Version3
Encryption None
Referrals Enable
Mode Specific Searching
Distinguished Name (DN) <username>@test.lan
Require Group Membership coché
LDAP Group Settings
Group Distingished Name (DN) cn=cacti-group,ou=Users,dc=test,dc=lan
Group Member Attribute member
Group Member Type Distingished Name
LDAP Specific Search Settings
Search Base ou=Users,dc=test,dc=lan
Search Filter (&(objectclass=user)(objectcategory=user)(userPrincipalName=<username>*))
Search Distingished Name (DN) bind-cacti@test.lan
Search Password Password
LDAP Error: Group DN could not be found to compare
LDAP Search Error: Unable to find users DN

Plugins

Installer et activer un plugin

  • Trois actions sont requises pour installer un plugin, le télécharger, le décompresser et l'activer.
  • Les deux premières se font en ligne de commande :

cd /usr/share/cacti/site/plugins
wget http://docs.cacti.net/_media/mon_plugin.2.0.3.tgz
tar -xzf mon_plugin.2.0.3.tgz

  • La dernière à partir de l'interface d'administration (Console) :
    • Se rendre sur l'onglet Console / Plugin Management
    1. Actions : Install plugin (flèche bleue)
    2. Actions : Enable plugin (flèche verte)

Discovery

  • En ligne de commande :

cd /usr/share/cacti/site/plugins
wget http://docs.cacti.net/_media/plugin:discovery-v1.5-1.tgz
mv plugin:discovery-v1.5-1.tgz discovery-v1.5-1.tgz
tar -xzf discovery-v1.5-1.tgz

  • Activer le plugin et le paramétrer :
    • Console / Settings / Misc
Subnet(s) to scan 192.168.1.0/24
DNS Server 192.168.1.1
Ping Method ICMP
SNMP Communities public
Poller Frequency Every 1 Hour
Start Time for Polling 10
Rerun Data Queries coché
Create Graphs coché
  • Vérifier les droits liés à l'utilisateur :
    • Console / User Management / compteLDAP :
    • Dans Realm Permissions, cocher View Host Auto-Discovery
  • L'onglet discover doit normalement apparaitre :o)

SSO

  • piste : auth_login.php cacti ldap sso

Sources

Debug

  • En cas de problème de connexion avec la base de données :

dpkg-reconfigure cacti

  • Pour info, le répertoire des logs se trouve dans :

/var/log/cacti/