Mise en place d’un Serveur Ubuntu 16.04 LTS

Voici une série de procédures permettant de mettre en production un serveur sous la distribution Ubuntu Server 16.04.
Tout a été testé plutôt deux fois qu’une !

La préparation du système

Le serveur SSH

Les certificats

LAMP

Fail2ban

NTP Serveur

Certificats

Pour sécuriser une connexion web en utilisant le protocole https, il faut un certificat.
Nous allons voir comment les générer sans trop de fatigue !

Recommandations

L’ANSSI déconseille fortement de générer des certificats sur un serveur fraîchement installé ou pire sur une machine virtuelle, car il n’y a pas suffisamment d’entropie. cf p8/21 Anssi – Note technique Recommandations pour un usage sécurisé d’OpenSSH

Quelques règles permettent de s’assurer que le réservoir d’entropie est correctement rempli :

  • la machine de génération de clés doit être une machine physique ;
  • elle doit disposer de plusieurs sources d’entropie indépendantes ;
  • l’aléa ne doit être obtenu qu’après une période d’activité suffisamment importante (plusieurs minutes voire heures).

Il parait donc nécessaire de générer les clefs et certificats sur son poste de travail, qui a de nombreuses applications en service, générant de l’entropie.

L’autorité de certification

Il est possible de faire signer ses certificats par une autorité de certification, qui vous facturera l’opération.

Sinon il est possible de créer sa propre autorité de certification.
Continue reading

qGIS/OpenLayers Plugin

OpenLayers Plugin est une librairie python qui fournie des couches de fond de plan à qGIS.
Il permet d’utiliser des couches Google Maps, Bing, OSM, …
Il n’y a pas de configuration nécessaire, l’utilisation se fait par simple ajout de la couche.
L’usage est donc assez simple.
En revanche, dans mon cas, si l’on possède son propre serveur OpenStreetMap, il est intéressant et utile de changer l’URI du serveur de tuiles OSM public par le sien.
Pour ce faire, rien de plus simple, il suffit d’éditer le fichier html relatif à la couche en question.
Prenons l’exemple de « OpenStreetMap », il faut éditer le fichier ./.qgis2/python/plugins/openlayers_plugin/weblayers/html/osm.html
Il suffit de modifier la ligne 34 :

"OpenStreetMap",
          "http://tile.openstreetmap.org/${z}/${x}/${y}.png",

avec votre URI personnalisée, par exemple :

"OpenStreetMap",
          "http://carto.rmaziere.fr/${z}/${x}/${y}.png",

Cette modification est prise en compte lors de l’ajout des nouvelles couches dans des projets qGIS.
Si des projets qGIS sont déjà existants, il faut supprimer les couches en question et les recharger.

Serveur/OpenStreetMap sous Ubuntu 14.04

Pour certains besoins, il est parfois nécessaire de mettre en place son propre serveur OpenStreetMap, comme par exemple pour des applications métiers, afin d’avoir le serveur en local, ne pas surcharger les serveurs OSM publiques, réduire le temps de latence, travailler sur des emprises définies (continent, pays, région, et même zone personnalisée).
Mon serveur étant sous ubuntu server, je ne m’intéresserai ici qu’à ce cas de figure, mais il y a fort à parier que les paquets soient accessibles sous d’autres distributions.

Présentation

Le but est de mettre en place un architecture permettant d’intégrer les exports d’OSM (dumps & diffs), afin de fournir un service de cartographie.
Le service devra mettre à disposition de leaflet des tuiles cartographiques.

Voici le schéma complet de l’infrastructure d’OpenStreetMap :

Schéma Infrastructure OSM
Les principaux services nécessaires sont les suivants :
Osmosis permet la gestion des données, import/export/comparaison des dumps et diffs des données OSM.
Osm2pgsql permet la conversion des données OSM afin de les importer dans la base PostgreSQL.
Mapnik permet de faire le rendu des tuiles en utilisant des styles personnalisables.
Mod_tile effectue la gestion des tuiles et du cache. Si elle existe et est à jour, il la sert au serveur web, si elle est obsolète ou n’existe pas, il va la demander à Mapnik.
Renderd gère la priorisation des demandes de tuiles de Mod_tile à Mapnik en prenant en compte la charge serveur.

OSM Bright permet de gérer les styles des cartes.

Recommandations matérielles

Pour un rendu important, comme au niveau planète, il faut prévoir une infrastructure matérielle conséquente :

  • au moins 24 GB de RAM,
  • avoir la DB sur des disques SSD,
  • 512 GB d’espace disque si les données OSM sont mises à jour,
  • 256 GB d’espace disque si les données OSM ne sont pas mises à jour, mais réimportées via l’option -drop,
  • Concernant le processeur, je n’ai pas trouvé d’info.

Ceci sans faire allusion au RAID et besoins de sauvegardes.

Installations

Les commandes sont données pour un système avec ubuntu server 14.04

Installation des dépendances

sudo apt-get install libboost-all-dev subversion git-core tar unzip wget bzip2 build-essential autoconf libtool libxml2-dev libgeos-dev libgeos++-dev libpq-dev libbz2-dev libproj-dev munin-node munin libprotobuf-c0-dev protobuf-c-compiler libfreetype6-dev libpng12-dev libtiff4-dev libicu-dev libgdal-dev libcairo-dev libcairomm-1.0-dev apache2 apache2-dev libagg-dev liblua5.2-dev ttf-unifont lua5.1 liblua5.1-dev node-carto

 

Installation de PostgreSQL & PostGIS

sudo apt-get install postgresql postgresql-contrib postgis postgresql-9.3-postgis-2.1

 

Installation d’osm2pgsql

mkdir ~/src
cd ~/src
git clone git://github.com/openstreetmap/osm2pgsql.git
cd osm2pgsql
./autogen.sh
./configure
make
sudo make install

 

Installation de Mapnik

cd ~/src
git clone git://github.com/mapnik/mapnik
cd mapnik
git branch 2.2 origin/2.2.x
git checkout 2.2

python scons/scons.py configure INPUT_PLUGINS=all OPTIMIZATION=3 SYSTEM_FONTS=/usr/share/fonts/truetype/
make
sudo make install
sudo ldconfig

 

Installation de mod_tile & renderd

cd ~/src
git clone git://github.com/openstreetmap/mod_tile.git
cd mod_tile
./autogen.sh
./configure
make
sudo make install
sudo make install-mod_tile
sudo ldconfig

 

Notes

Si les mises à jour de la base de données ne sont pas très fréquentes (<2/mois), il semble préférable d’utiliser le dump complet plutôt que les diffs.

Téléchargements:
Planet OSM – Pour télécharger les données au niveau global
Geofabrik – Pour télécharger les données au niveau désiré (Continent, Pays, Région)
Dernier fichier OSM – France (3 GB)
 
Sources :
Switch2OSM.org
Pages persos d’Adrien/Créer son propre miroir des données OpenStreetMap et un serveur de rendu des tuiles, avec Debian Wheezy
Makina Corpus/Un serveur OpenStreetMap pour votre ville
Wiki OSM/Automatiser la mise à jour quotidienne

Serveur/Webmin

Afin de faciliter l’administration d’un serveur, il peut être sympa d’avoir une interface web.
Je vais donc installer Webmin.
Dans un premier temps, il faut télécharger le paquet sur le serveur :

#wget http://prdownloads.sourceforge.net/webadmin/webmin_1.770_all.deb

Puis lancer son installation :

#dpkg -i webmin_1.770_all.deb

L’installation est automatique, il n’y a pas de paramètre à renseigner.
Une fois terminée, vous avez dans la console le retour suivant :

Webmin install complete. You can now login to https://serveur:10000/
as root with your root password, or as any user who can use sudo
to run commands as root.

Donc l’utilisateur root a accès à l’interface, ainsi que les utilisateurs du groupe sudo.
Mon conseil, pour la gestion des autorisations d’accès à webmin est de créer un groupe webmin et d’y ajouter des utilisateurs, afin de savoir facilement et rapidement qui y a accès.

DManager

Après avoir regardé quelques vidéos des dernières RMLL de 2010, qui ont eu lieu à Bordeaux, j’ai découvert une solution de porte-documents en ligne.

Je me suis empressé de la télécharger et de la mettre en service pour mon sous-domaine sciens.rmaziere.fr

C’est une solution très légère (1 Mo), qui permet le partage et la collaboration simplifiée en ligne.

Vidéo de la conférence

Téléchargement

Zentyal : The Linux Small Business Server

Description de Wikipédia

Il s’agit donc d’une distribution basée sur Ubuntu et fournissant quantité de services nécessaires au PMI PME.

On trouve :

> Infrastructure :

  • DHCP
  • DNS
  • Serveur Web
  • FTP
  • Autorité de certification

> Gateway :

  • Proxy HTTP
  • Traffice shaping
  • Serveur Radius

> UTM (Unified threat management) :

  • FireWall
  • IDS
  • RPV (VPN)
  • Anti-virus
  • Filtre courrier

> Office :

  • Utilisateurs et Groupes
  • Espace Utilisateur
  • Partage de fichiers
  • Partage d’imprimantes
  • Groupware

> Communications :

  • Courrier
  • Jabber
  • VoIP
  • Webmail

Webmin : Administration distante

Je viens d’installer Webmin 1.520 sur mon serveur.

Je faisais déjà de l’administration distante via ssh, mais là c’est différent. L’accès se fait via https.

Cette interface est plus pratique et permet de gérer les services, les mises à jour, accéder aux journaux et bon nombre de paramètres.

Il peux contrôler les serveurs logiciels : apache, mysql, ftp, mail, samba, …

Il permet de configurer les cartes réseau, gérer les groupes et utilisateurs, …

Site officiel de Webmin