Ubuntu Server

Logo Ubuntu Server

Tous mes trucs et astuces sur Ubuntu Server récoltés ici et là.

Mes problèmes rencontrés et les solutions que j'ai trouvées.

Des exemples de configuration pour avoir un serveur opérationnel.

Etiquettes: 

Téléchargement

Pour télécharger Ubuntu Server, rien de plus simple.

Il suffit de se rendre à l'adresse suivante :

http://www.ubuntu-fr.org/telechargement?variante=server

et de cliquer sur le lien

Télécharger

Etiquettes: 

Installation

Documentation Ubuntu

Pour installer Ubuntu Server, rien de plus simple.

  1. Télécharger la version Ubuntu Server
  2. Graver sur un CD ou un DVD le fichier téléchargé
  3. Démarrer le PC destiné à devenir le serveur avec le CD ou le DVD (faire en sorte que le PC boot sur le CD ou le DVD au démarrage)
  4. Suivre les instructions à l'écran (installer uniquement le système de base)

Pour info, voir la rubrique Trucs & Astuces > Linux > Commandes > Ubuntu Server

Etiquettes: 

Réseau

Paramétrer le serveur en IP fixe

Pour configurer une IP fixe, modifier le fichier /etc/network/interfaces

$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
 
# The loopback network interface
auto lo  Interface réseau
iface lo inet loopback
 
# The primary network interface
 
auto eth0
#Indication IP fixe
iface eth0 inet static
#Adresse IP du serveur
address 192.168.1.22
#Masque de sous-réseau
netmask 255.255.255.0
#Adresse de diffusion
broadcast 192.168.1.255
#Adresse du réseau
network 192.168.1.0
#Adresse du routeur / passerelle
gateway 192.168.1.1

Prise en compte des modifications

$ sudo /etc/init.d/networking restart

SSH

Documentation Ubuntu

Pour pouvoir administrer son serveur de n'importe quel PC de la maison, il faut obligatoirement installer le paquet SSH.

Après s'être logué au serveur, saisir la commande suivante

$ sudo apt-get install openssh-server

Le système demande alors le mot de passe du super utilisateur (mot de passe renseigné lors de l'installation) et le paquet SSH est automatiquement installé.

Installer également le client SSH

$ sudo apt-get install openssh-client

Le fichier de configuration SSH

$ sudo nano /etc/ssh/sshd_config

Paramètres à modifier dans le fichier de configuration

Port 22 port d'écoute du serveur SSH

PermitRootLogin no ne pas autoriser l'utilisateur root

PermitEmptyPasswords no ne pas autoriser les mots de passe vide

AllowUsers nom_du_user utilisateur autorisé à se connecter

PasswordAuthentication yes connexion obligatoire avec mot de passe

Pour accéder au serveur de l'extérieur du réseau interne via SSH, créer une règle de routage au niveau du routeur afin de rediriger le port 22 de l'IP externe vers le port 22 de l'IP interne du serveur.

Pour arrêter SSH

$ sudo /etc/init.d/ssh stop

Pour démarrer SSH

$ sudo /etc/init.d/ssh start

Pour redémarrer SSH

$ sudo /etc/init.d/ssh restart

Webmin

Documentation Ubuntu

Webmin est un système permettant de gérer son serveur via une interface web. C'est une bonne alternative pour les personnes n'étant pas habituées à saisir des commandes dans une console.

Le site de Webmin

Pour l'installer, rien de plus simple

  • Récupérer la clé GPG

$ sudo wget http://www.webmin.com/jcameron-key.asc
$ sudo apt-key add jcameron-key.asc

  • Editer le fichier /etc/apt/sources.list et ajouter la ligne :

$ echo "deb http://download.webmin.com/download/repository sarge contrib" >> /etc/apt/sources.list
$ echo "deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib " >> /etc/apt/sources.list

Installer le paquet Webmin


$ sudo apt-get update
$ sudo apt-get install webmin

Pour accéder à l'interface de Webmin, saisir dans un navigateur :

Pour accéder au serveur de l'extérieur du réseau interne via un navigateur web, créer une règle de routage au niveau du routeur afin de rediriger le port 10000 de l'IP externe vers le port 10000 de l'IP interne du serveur.

Sur un autre ordinateur

  • https://nom_du_serveur:10000/
  • https://adresse_ip_du_serveur:10000/

En local (directement sur le serveur)

Virtualmin

Virtualmin est une sur-couche applicative pour Webmin permettant une gestion complète d'un serveur web.

Il permet une gestion multi-domaine.

Pour fonctionner, Virtualmin a besoin de diverses applications :

  • Bind
  • Postfix
  • Dovecot
  • Apache
  • Webalizer
  • MySQL ou PostgreSQL
  • ProFTPd
  • Un anti SPAM
  • Un anti virus

Si toutes ces applications ne sont pas pré-installées, le script d'installation de Virtualmin les installera automatiquement.

Virtualmin existe en version PRO et GPL.

Installer la version GPL de Virtualmin

Pour installer la version GPL de Virtualmin.

Télécharger le script d'installation :

$ wget http://software.virtualmin.com/gpl/scripts/install.sh

Rendre le script exécutable :

$ sudo chmod +x ./install.sh

Exécuter le script :

$ sudo ./install.sh

Une fois l'installation terminée, l'accès à Virtualmin se fait de la même manière que l'accès à Webmin.

Dans un navigateur, saisir l'adresse https://adresse_ip_du_serveur:10000

Utiliser le thème de Virtualmin

Utilisation du thème de Virtualmin à la place du thème de Webmin.

Dans Webmin/Virtualmin, se rendre dans la section Webmin --> Modification de la langue et du thème.

Dans la section Thème de l'interface, cocher l'option Choix personnel et choisir le thème Virtualmin Framed Theme

Création d'un serveur virtuel

Créer un nouveau serveur virtuel

La création d'un nouveau serveur virtuel entraine automatiquement la création d'un nouvel utilisateur et par conséquent la création d'un répertoire "home".

Cliquer sur "Create Virtual Server"

Dans la section "Détails du nouveau serveur virtuel"

  1. Saisir le nom de domaine concerné
  2. Saisir une description
  3. Saisir un mot de passe

Dans la section "Advanced options"

  1. Saisir une adresse mail de contact différente si besoin

Dans la section "Enabled features"

  1. Décocher les options inutiles (Ne pas décocher l'option "Créer une zone DNS")

Une fois le serveur créer, un user ainsi qu'un répertoire home a été créé.

Par exemple, pour le domaine "mondomaine.fr", un user mondomaine a été créé avec le mot de passe choisi et le répertoire "/home/mondomaineest automatiquement créé.

Si l'option "Créé un site web pour le domaine" a été cochée, un répertoire "public_html" a été créé dans le répertoire home.

C'est dans ce dossier qu'il faut placer tous les fichiers du site web.

Création d'un sous-serveur virtuel

Créer un sous-serveur virtuel

La création d'un sous-serveur est identique à la création d'un serveur mis à part qu'il faut auparavant sélectionner dans la liste des serveurs celui qui va servir de serveur parent puis cliquer sur "Create Virtual Server" et choisir le type "Sub-server".

Les sous-serveurs sont stockés dans le répertoire "/home/nom_du_domaine_parent/domains/"

Un répertoire par sous-serveur y est créé ainsi qu'un répertoire "public_html" dans lequel se trouveront tous les fichiers web du sous-serveur.

Par exemple, pour installer un webmail (RoundCube) afin de consulter ses mails à distance, il est intéressant de se créer un serveur virtuel correspondant à son domaine (monDomaine.fr) puis de créer un sous-serveur (roundcube.monDomaine.fr) permettant d'accéder à RoundCube.

Création d'un serveur proxy Apache

Création d'un serveur (web) proxy

La création d'un serveur virtuel comme serveur proxy est intéressant dans le cas où il est nécessaire d'accéder à un serveur web installé sur un serveur inaccessible de l'extérieur mais faisant partie d'un réseau dont un autre serveur est lui accessible de l'extérieur.

Par exemple :

  • Un serveur web (serveur A) accessible de l'extérieur via les ports 80 et 443.
  • Un serveur mail (serveur B) disposant d'un webmail et accessible uniquement via les ports 25, 110, 143, 465, 993 et 995 (ports utilisés pour l'envoi et la réception des mails)

Dans cette configuration, il est techniquement impossible d'accéder au webmail du serveur B via un navigateur utilisant le port 80 ou 443 pour ses requêtes.

Il existe 2 solutions :

  1. La première consistant à faire écouter le webmail du serveur B sur un port autre que le 80 et/ou 443 et d'autoriser le flux sur ce port via une règle de translation dans le routeur.
  2. La seconde solution consiste à créer sur le serveur A, via Virtualmin, un serveur ou sous-serveur virtuel, d'activer le mode proxy et d'y indiquer l'adresse ip du serveur B ainsi que le port utilisé.

La seconde solution est beaucoup plus simple à gérer et à mettre en oeuvre.

Dans Virtualmin, une fois le serveur virtuel créé, il suffit de cliquer sur "Configuration du serveur", puis sur "Edit proxy Website".
Activer le mode proxy en sélectionnant l'option "Oui" de "Proxy enabled" et d'indiquer dans la zone "Proxy to URL" l'adresse ip et le port du serveur à joindre (http://mon_autre_serveur:80/)

Et voilà, de cette manière on accède au webmail du serveur B via le port 80 en passant par un serveur web virtuel installé sur le serveur A.

Nom de domaine

Documentation Ubuntu

Afin de pouvoir accéder au serveur de n'importe où, que ce soit pour l'accès SSH ou un serveur WEB, le plus simple est de se créer un nom de domaine.

Pour cela, rien de plus simple, il suffit de se rendre sur le site www.dyndns.org, de se créer un nouveau compte afin d'obtenir un nom de domaine.

Une fois le compte créer sur dynns, il faut que le serveur fasse une mise à jour régulière de l'adresse IP fournie par le FAI afin qu'elle corresponde au nom de domaine créé précédement.

Pour cela, il suffit d'installer le paquet ddclient.

$ sudo apt-get install ddclient

Ensuite, il faut configurer ddclient avec les paramètres de connexions de dyndns.

$ sudo dpkg-reconfigure ddclient

Le fichier de configuration se trouve dans /etc/ddclient.conf

Exemple de configuration

# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf
protocol=dyndns2
use=web, web=checkip.dyndns.com, web-skip='IP Address'
server=members.dyndns.org
login=user_compte_dyndns
password='password_compte_dyndns'
nom_de_domaine_dyndns

Ensuite, le processus ddclient se charge de vérifier et de mettre à jour l'adresse IP à intervalle régulière.


Ou alors, dans le cas où l'on dispose d'une adresse IP fixe et que l'on souhaite un nom de domaine un peu plus parlant que ce que propose Dyndns, il y a,  dans ce cas, la société OVH qui propose des noms de domaines en .fr (par exemple) à moins de 10 euros TTC par an.

RAID

Pour utiliser un système RAID, il faut obligatoirement au minimum 2 disques durs.

Les 3 types de systèmes RAID les plus couramment utilisés sont le RAID0, le RAID1 et le RAID5.

Ils ont tous les 3 une manière différente de fonctionner.

Le RAID0 réparti les données sur 2 disques au minimum ce qui permet d'améliorer les performances au niveau de la lecture et de l'écriture.

Le RAID1 duplique les données en temps réel sur 2 disques au minimum ce qui permet de sécuriser les données. Si 1 des disques durs tombe en panne, le suivant prend automatiquement le relais sans aucune perte de données.

Enfin, le RAID5 combine les techniques du RAID0 et du RAID1. Nécessite au minimum 4 disques durs.

Pour installer un système RAID :

$ sudo apt-get install MDADM

Pour l'exemple, je créé un RAID1 (toutes les données seront écrites simultanément sur les 2 disques)

Toutes les opérations se font via WEBMIN

Menu Matériel --> Partition sur Disque Local

  1. Cliquer sur le premier périphérique concerné
  2. Cliquer sur Ajouter une partition primaire
  3. Sélectionner Linux RAID puis cliquer sur créer
  4. Effectuer la même opération pour le second périphérique concerné par le RAID1
  5. Redémarrer le serveur afin qu'il reconnaisse parfaitement les nouvelles partitions

Menu Matériel --> Linux RAID

  1. Sélectionner Miroir (RAID1) puis cliquer sur Créer un dispositif de RAID du niveau
  2. Dans la liste Partitions dans le RAID, sélectionner les 2 partitions crééés précédement puis cliquer sur Créer
  3. Cliquer sur le dispositif RAID créé (dans la liste des RAID existant), par exemple /dev/md0
  4. Créer le système de fichier en sélectionnant New Linux Native (ext4) dans la liste puis cliquer sur le bouton Create Filesystem of type puis sur Créer
  5. Via SSH, créer le répertoire /volume1 (par exemple sudo mkdir /volume1)
  6. Cliquer à nouveau sur le dispositif RAID créé (dans la liste des RAID existant), par exemple /dev/md0
  7. Dans la section Mount RAID on, saisir /volume1 (par exemple) puis cliquer sur Mount RAID on puis sur Créer

L'installation du RAID est terminée...

Pour controler le déroulement de la création du RAID

$ cat /proc/mdstat

Samba

Documentation Ubuntu

Un serveur de fichiers avec Samba

 

Attention !!! Au moment où j'écris ce post, surtout ne pas installer le paquet samba4.

C'est une  version beta et elle fonctionne très mal.

Le serveur n'est pas visible sur le réseau Windows et le partage d'imprimantes est très instable.

 

Installer les paquets suivants

$ sudo apt-get install samba
$ sudo apt-get install samba-common
$ sudo apt-get install samba-common-bin

Le fichier de configuration de Samba

/etc/samba/smb.conf

Paramètres à modifier

[global]

load printers = yes

printing = cups

# le nom du domaine Windows

workgroup = MSHOME

 


[printers]

create mask = 0700

comment = All Printers

printable = yes

path = /var/spool/samba


[print$]

browseable = yes

comment = Printer Drivers

path = /var/lib/samba/printers


Pour partager des dossiers

[nom du partage]

# liste des utilisateurs ayant accès au partage

valid users = user1, user2, user3, user4

# autorise l'écriture (fichiers & dossiers)

writeable = yes

# liste des utilisateurs en lecture

read list = user2, user3, user4

# liste des utilisateurs en écriture

write list = user1

# chemin vers le répertoire à partager

path = /mon_repertoire_a_partager

# activation de la corbeille

vfs object = recycle

# conservation de l'arborescence

recycle:keeptree = yes

# conservation des différentes versions de fichiers

recycle:version = yes

# nom du dossier correspondant à la corbeille

# l'option /%U créera automatiquement un dossier du nom de l'utilisateur dans la corbeille

recycle:repository = #recycle/%U


Pour partager les dossiers personnels de chaque utilisateur

[homes]

writeable = yes

browseable = no


Pour arrêter Samba

$ sudo /etc/init.d/smbd stop

Pour démarrer Samba

$ sudo /etc/init.d/smbd start

Pour redémarrer Samba

$ sudo /etc/init.d/smbd restart


Pour ajouter un utilisateur Samba

Ajouter un utilisateur au système

Voir la rubrique  Trucs & Astuces > Linux > Commandes > Utilisateurs > Ajouter un utilisateur au système

Ajouter le nouvel utilisateur système à Samba

Voir la rubrique Trucs & Astuces > Linux > Commandes > Utilisateurs > Ajouter un utilisateur Samba

Serveur FTP

Documentation Ubuntu

Pour installer sur son serveur Ubuntu un serveur FTP, il suffit d'installer PROFTPD via une console

$ sudo apt-get install proftpd

Installer PROFTPD en mode Démon Autonome

Pour configurer PROFTPD, il suffit d'éditer le fichier /etc/proftpd/proftpd.conf

Pour relancer PROFTPD après une modification de sa configuration

$ sudo /etc/init.d/proftpd restart

Pour voir qui est connecté au serveur FTP

$ ftpwho

Pour voir les statistiques du serveur FTP

$ ftpstats

Pour paramétrer la liste des utilisateurs interdits, éditer le fichier /etc/ftpusers

Pour accéder au serveur de l'extérieur du réseau interne via un client FTP, créer une règle de routage au niveau du routeur afin de rediriger le port 20 et 21 de l'IP externe vers le port 20 et 21 de l'IP interne du serveur.

Seuls les utilisateurs existant sur le système sont autorisés à se connecter au serveur via FTP.

Serveur Web

Documentation Ubuntu

Installer un serveur Web sur son serveur Ubuntu

Il existe 2 méthodes pour procéder à son installation

1 - Installer un serveur LAMP (Linux Apache MySQL PHP)

$ sudo apt-get install lamp-server^

N'oubliez pas le caractère ^ en fin de ligne.

2 - Installer les paquets Apache, MySQL et PHP individuellement

Pour accéder au serveur de l'extérieur du réseau interne via un navigateur web, créer une règle de routage au niveau du routeur afin de rediriger le port 80 et 443 de l'IP externe vers le port 80 et 443 de l'IP interne du serveur.

Apache2

Documentation Ubuntu 

 

Pour installer Apache2

$ sudo apt-get install apache2

Pour gérer Apache2

$ sudo service apache2 start/stop/restart
$ sudo /etc/init.d/apache2 start/stop/restart

Tous les fichiers de configuration de Apache2 sont dans le dossier /etc/apache2

Activer l'URL rewriting

$ sudo a2enmod rewrite

Activer le mode userdir (pour que chaque utilisateur puisse avoir son propre site web perso)

$ sudo a2enmod userdir

les différents sites sont disponibles à l'adresse http://mondomaine.com/~nom_du_user

Comment rediriger certains domaines vers certaines machines

routeur :

  • renvoi du port 80 sur la machine 192.168.0.10

machine 192.168.0.10 :

  • virtualhosts renvoyant vers plusieurs dossiers

  • toto.mondomaine.com va vers /home/toto/www

  • titi.mondomaine.com va vers /home/titi/www

  • etc…

  • et 000-default va vers /var/www

machine 192.168.0.11 :

  • virtualhosts renvoyant vers plusieurs dossiers

  • tata.mondomaine.com va vers /home/tata/www

  • tutu.mondomaine.com va vers /home/tutu/www

  • etc…

  • et 000-default va vers /var/www

Sauf que si on met http://tata.mondomaine.com dans son navigateur on se retrouve avec le site par defaut de 192.168.0.10….

Donc, il faut appeller mod_proxy a la rescousse.

sur 192.168.0.10 : activer le module proxy avec :

$ sudo a2enmod proxy

créer un virtualhost /etc/apache2/sites-available/tata.mondomaine.com qui contient :

<VirtualHost 192.168.0.10:80>
ProxyRequests Off
ProxyPreservehost on
ServerName tata.mondomaine.com
ProxyPass / http://192.168.0.11/
ProxyPassReverse / http://192.168.0.11/
<Proxy>
Order Allow,Deny
Allow from all
</Proxy>
</VirtualHost>

Activer ce fichier :

$ sudo a2ensite tata.mondomaine.com

Pour la désactivation :

$ sudo a2dissite tata.mondomaine.com

Redémarrer apache

$ sudo service apache2 restart
ou
$ sudo /etc/init.d/apache2 restart

MySQL

Documentation Ubuntu

Installer le paquet mysql-server

$ sudo apt-get install mysql-server

Pour gérer MySQL

$ sudo /etc/init.d/mysql start/stop/restart

Pour savoir si MySQL est lancé

$ sudo /etc/init.d/mysql status

Pour recharger la configuration de MySQL

$ sudo /etc/init.d/mysql reload

Pour forcer la prise en compte de la nouvelle configuration

$ sudo /etc/init.d/mysql force-reload

Pour l'utilisation de MySQL, se reporter à la section Trucs & Astuces > MySQL

PHP

Documentation Ubuntu

Liste des différents paquets PHP5 à installer :

$ sudo apt-get install php5
$ sudo apt-get install php5-cgi
$ sudo apt-get install php5-cli
$ sudo apt-get install php5-gd
$ sudo apt-get install php5-mcrypt
$ sudo apt-get install php5-mysql
$ sudo apt-get install php5-sasl

Pour l'utilisation de PHP, voir la rubrique Trucs & Astuces > PHP

PHPMyAdmin

Documentation Ubuntu

phpMyAdmin permet de gérer le serveur MySQL via une interface web écrite en PHP.

Pour l'installer :

$ sudo apt-get install phpmyadmin

Pour se connecter à phpMyAdmin :

  • http://adresse_ip_du_serveur/phpmyadmin

Fail2ban

Documentation Ubuntu

fail2ban est un application qui permet de protéger le serveur contre les intrusions.

fail2ban lit les logs de divers serveurs (SSH, Apache, FTP…) à la recherche d'erreurs d'authentification répétées et ajoute une règle iptables pour bannir l'adresse IP de la source.

Pour l'installer :

$ sudo apt-get install fail2ban

Configuration :

Pour spécifier à fail2ban quels services il doit surveiller, éditez le fichier /etc/fail2ban/jail.conf

# Exemple de configuration

ignoreip = 127.0.0.1 192.168.1.20 192.168.1.21 # liste des adresses ip à ignorer

bantime = 86400 # temps en secondes

maxretry = 3 # nombre de tentative échouées

destemail = toto@serveur

Pour activer un service mettre à true la valeur enabled

Pour rajouter un service, par exemple pour webmin :

[webmin-auth]

enabled  = true
port     = https
filter   = webmin-auth
logpath  = /var/log/auth.log
maxretry = 3

Pour rajouter la règle anti-w00tw00t :

[apache-w00tw00t]
enabled = true
filter = apache-w00tw00t
action = iptables[name=Apache-w00tw00t,port=80,protocol=tcp]
logpath = /var/log/apache2/*access.log
maxretry = 1

Créer ensuite le fichier /etc/fail2ban/filter.d/apache-w00tw00t.conf et y ajouter :

[Definition]
failregex = ^<HOST> -.*"GET \/w00tw00t\.at\.ISC\.SANS\.DFind\:\).*".*
ignoreregex =

A chaque service est associé un fichier de configuration dans le dossier /etc/fail2ban/filter.d

Pour tester un filtre :

Par exemple le filtre anti-w00tw00t

$ fail2ban-regex /var/log/apache2/access.log /etc/fail2ban/filter.d/apache-w00tw00t.conf

Pour relancer la configuration :

$ sudo fail2ban-client reload

Pour vérifier si les prisons sont correctement lançées :

$ sudo fail2ban-client status

Pour voir la liste des adresses IP bloquées par fail2ban :

$ sudo iptables -L

ou pour un jail en particulier (postfix par exemple):

$ sudo iptables -L fail2ban-postfix

avec les lignes numérotées :

$ sudo iptables -L fail2ban-postfix --line-numbers

Pour supprimer une adresses IP de la liste des adresses bloquées par fail2ban

Par exemple, pour supprimer l'adresse IP 192.168.1.2 bloquée par le service fail2ban-ssh

$ sudo iptables -D fail2ban-ssh -s 192.168.1.2 -j DROP

ou avec son numéro obtenu grâce à la commande iptables -L --line-numbers

$ sudo iptables -D fail2ban-ssh 5

Pour ajouter une adresse IP à la liste des adresses bloquées (pour le jail postfix par exemple)

$ iptables -I fail2ban-postfix 1 -s 1.163.149.165 -j DROP

ou une plage d'adresses

$ iptables -I fail2ban-postfix 1 -s 118.160.0.0/16 -j DROP

Sauvegarde

La sauvegarde est une des parties la plus importante.

Rien n'est plus désastreux que de perdre ses données personnelles et/ou la configuration du serveur, surtout après y avoir passé des heures, voir des jours, voir des semaines ...

Mise en place des sauvegardes

Sauvegarder la liste des sources et des paquets

Restaurer la liste des sources et des paquets

Sauvegarder également les éléments suivants

  • Tous les fichiers de configuration se trouvant dans /etc (/etc/samba/smbd.conf par exemple)
  • Tous les fichiers variables se trouvant dans /var (/var/www /var/mail par exemple)
  • Tout le contenu du /home
  • Tous les répertoires créés spécifiquement (pour Samba par exemple)

2 types de sauvegardes peuvent être mis en place :

  1. La sauvegarde par synchronisation
  2. La sauvegarde différentielle

Créer une tâche cron (root) afin d'exécuter ces scripts de sauvegardes à intervalles régulières.

Pour plus de sécurité, les 2 types de sauvegarde peuvent être mis en place en parallèle

Serveur de messagerie (mail)

Documentation Ubuntu

L'installation et la configuration d'un serveur mail étant, à mon avis, très complexe, je conseil d'installler et d'utiliser un serveur de messagerie comme Zimbra.

Zimbra inclut tous les outils nécessaires au bon fonctionnement d'un serveur de messagerie comme l'anti spam, l'anti virus, serveur POP SMTP IMAP, système de filtrage, webmail etc etc ...

En effet, il faut être très prudent quand on désire installer un serveur de messagerie car s'il est mal configuré et/ou mal protégé, il peut servir de serveur relais pour l'envoi de spam en très grande quantité.

Mon propre serveur de messagerie Zimbra est régulièrement sollicité pour servir de serveur relais
et plus de 20 000 messages sont automatiquement supprimés chaque semaine grâce aux filtres intégrés à Zimbra.

Voir Trucs & Astuces > Zimbra

 

Postfix

Fetchmail

En cours

Procmail

Dovecot

Roundcube

Serveur de messagerie instantanée

Installation du serveur

Documentation Ubuntu

Installation d'une messagerie instantanée avec JABBERD2

 

Installation de jabberd2

$ sudo apt-get update
$ sudo apt-get install jabberd2

Pour l'utilisation de jabberd2, il faut obligatoirement un serveur de base de données (postgre, mysql, oracle ou sqlite) afin de conserver toutes les données utilisateurs.

Installation de la base de données MySQL

Le script d'installation de la base MySQL se trouve dans le répertoire /usr/share/doc/jabberd2

Pour l'installer :

Extraction du fichier

$ gzip -d /usr/share/doc/jabberd2/db-setup.mysql.gz

Connexion à MySQL

$ mysql -u root -p

Une fois connecté à MySQL

$ .
> \. db-setup.mysql
> GRANT select,insert,delete,update ON jabberd2.* to jabberd2@localhost IDENTIFIED by 'secret';

Remplacer secret par le mot de passe désiré

Configuration de jabberd2

Toutes les modifications sont à faire dans les fichiers sm.xml & c2s.xml dans /etc/jabberd2

Nom de domaine du serveur jabberd2

Renseigner le champ id de la section sm du fichier sm.xml

Renseigner le champ id de la section local du fichier c2s.xml

Paramètres de connexions à MySQL

Renseigner le champ dbname,    user et pass de la section mysql du fichier sm.xml

Renseigner le champ dbname, user et pass de la section mysql du fichier c2s.xml

Pour accéder au serveur de l'extérieur du réseau interne via un client de messagerie instantanée, créer une règle de routage au niveau du routeur afin de rediriger le port 5222 de l'IP externe vers le port 5222 de l'IP interne du serveur.

Installation du client

Logo Pidgin

Documentation Ubuntu

PIDGIN, client de messagerie universel

Le site de Pidgin

Installation pour Ubuntu :

$ sudo apt-get update
$ sudo apt-get install pidgin

Infos supplémentaires concernant l'installation de Pidgin sur Ubuntu

Installation pour Windows :

Télécharger Pidgin

Configuration de pidgin :

A l'ouverture de pidgin

ecran 1

Cliquer sur le bouton Ajouter

ecran 2

Dans la liste Protocole, sélectionner XMPP

ecran 3

Remplir les champs :

  1. Utilisateur
  2. Domaine
  3. Mot de passe
  4. Alias local

Cocher les cases :

  1. Mémoriser le mot de passe
  2. Avertir des nouveaux courriers
  3. Utiliser cette icone pour ce compte
  4. Créer ce nouveau compte sur le serveur

ecran 4

Dans l'onglet Avancé :

  1. Décocher Nécessite SSL/TLS
  2. Cocher Autoriser l'authentification en clair pour les flux cryptés
  3. Indiquer l'adresse du serveur de connexion
  4. Enfin, cliquer sur Ajouter

ecran 5

La configuration est terminée

Serveur d'impression

CUPS

Documentation Ubuntu

Un serveur d'impression est très utile pour pouvoir partager des imprimantes sur plusieurs postes clients.

Pour cela rien de plus simple.

Installer les paquets :

$ sudo apt-get install cupsys
$ sudo apt-get install cupsys-client

Pour pouvoir installer de nouvelles imprimantes, votre user doit faire partie du groupe lpadmin

$ sudo adduser $USER lpadmin

Redémarrer le serveur cups

$ sudo /etc/init.d/cupsys restart


Pour installer de nouvelles imprimantes, le serveur CUPS dispose d'une interface web accessible à l'adresse http://localhost:631

CUPS

Pour accéder à cette interface de n'importe quelle machine du réseau, il est indispensable de modifier le fichier /etc/cups/cupsd.conf

Commenter la ligne "Listen localhost:631" et ajouter "Port 631"

Entre les balises <Location /> </Location>, ajouter la ligne

  • Allow 192.168.1.* (pour autoriser toutes les machines ayant une adresse IP commencant par 192.168.1.)

$ nano /etc/cups/cupsd.conf
...
# Only listen for connections from the local machine.
# Listen localhost:631
Port 631

Listen /var/run/cups/cups.sock
...
# Restrict access to the server...
<Location />
  Order allow,deny
  Allow 192.168.1.0/24
</Location>
 
# Restrict access to the admin pages...
<Location /admin>
  Order allow,deny
  Allow 192.168.1.0/24
</Location>
...
^o (enregistrer)
^x (quitter)
$

Installation des imprimantes sur les postes clients

Sur les postes Windows :

  1. Choisir l'option d'installation d'une imprimante réseau
  2. Saisir l'adresse http de l'imprimante sans oublier de préciser le port 631 (http://adress-ip-du-serveur:631/printers/nom-de-l-imprimante)
  3. Valider puis choisir comme pilote d'impression le pilote générique MS Publisher Color Printer (ou le pilote de l'imprimante si disponible)

CUPS-PDF

Documentation Ubuntu

Pré-requis : avoir installé un serveur d'impression CUPS

Pour installer une imprimante virtuelle PDF :

$ sudo apt-get install cups-pdf (installation de l'imprimante PDF virtuelle)
$ sudo /etc/init.d/cups restart (redémarrage du serveur CUPS)
$ sudo aa-complain cupsd (donne les droits à l'imprimante PDF d'écrire les fichiers dans le réperoire PDF de chaque HOME)

Créer dans tous les répertoires "home" un dossier PDF

Pour tester le bon fonctionnement :

Si besoin :

$ sudo apt-get install lpr

Puis :

$ lpr -P PDF /nom_du_document_a_imprimer

Un document au format PDF devrait être généré dans ~/PDF

Ubuntu Server: Upgrade

Pour mettre à jour Ubuntu Server vers une version majeur, 14.04 vers 16.04 par exemple, il suffit d'exécuter les commandes suivantes:

warningNe pas oublier de faire des sauvegardes avant d'exécuter les commandes suivantes en cas d'erreurs pendant la procédure de mise à jour.

# sudo apt-get install update-manager-core
# sudo do-release-upgrade

infoPendant le procédure de mise à jour, bien faire attention aux différents messages.
Avant d'écraser les fichiers de configurations avec les nouveaux fichiers provenant des mises à jour, vérifier les modifications apportées à l'aide de la commande 'd' (difference).
De toute manière, une copie de l'ancien ou du nouveau fichier (en fonction du choix effectué - conserver l'ancien fichier ou l'écraser avec le nouveau), est automatiquement sauvegardée au même emplacement.

Après l'opération d'upgrade, il est peut-être nécessaire d'effectuer les mises à jour du nouvel OS:

# apt-get update
# apt-get -y dist-upgrade
# apt-get -y autoremove
# apt-get autoclean
# apt-get clean

Dans certains cas, il se peut que certaines mises à jour ne se fassent pas à cause d'un paquet corrompu, dans ce cas:

Exemple d'erreur: dpkg: error processing <file.deb> (–unpack):

# dpkg -i --force-overwrite <file.deb>
# apt-get -f install