Informations générales de développement numérique.

Informations MEZOTICAM - Activités générales : Plus de masque, mais restons vigilants. Les contraintes sanitaires obligent à un ralentissement des développements. | Guerre en Ukraine : Un conflit qui mène à une pénurie alimentaire et informatique. | Cybersécurité : La guerre en Ukraine nous montre combien il est important de renforcer la sécurité informatique.
Chiffre 2Chiffre 1Chiffre 5Chiffre 4Chiffre 1Chiffre 8
depuis le 15/05/2009
Vendredi 19 Avril 2024 | Sainte Emma

Intallation d'un Serveur

1 - Le Serveur

1.1 Installation du serveur (UBUNTU 9.04 Serveur)

Une fois que l'ordinateur a démarré à partir du CD, apparaît une page d'accueil demandant le type d'installation souhaité. Pour utiliser le mode serveur, il faut donc saisir "server" et valider avec la touche "Entrée".

1.2 Configurer les adresses IP

Dans le cadre d'un nouveau réseau de peu de machines, il est possible d'utiliser les adresses 192.168.1.X. La 2ème fenêtre demandera le masque de sous réseaux (ici 255.255.255.0). Pour terminer la passerelle par défaut peut rester nulle si le serveur est directement connecté à internet (sinon adresse de la passerelle).

Ensuite donner un nom à la machine (exemple: mezoticam).

1.3 Partitionner le Disque

L'avant dernière étape consiste à partitionner le disque dure. Diviser le disque en plusieurs partie et faire une installation plus avancée c'est ici qu'il faut le faire. Pour le serveur le choix sera d'utiliser l'installation par défaut et donc de prendre tout l'espace disque.

1.4 Créer l'Utilisateur

Pour terminer Il faut créer un premier utilisateur afin de pouvoir ouvrir une session sur la machine une fois l'installation terminée. Pour se faire il faut saisir le nom complet de l'utilisateur par exemple « FRONTON Camille », puis le login qui sera celui qui sera demandé pour ouvrir la session. Une autre fenêtre demandera le mot de passe de l'utilisateur.

Note

Attention : Ubuntu ne possède pas de super utilisateur root (correspondant l'administrateur de Windows) c'est ce dernier qui à tous les droits sur la machine.
Donc pour pouvoir installer des programmes il suffit d'utiliser la commande :

sudo su

Après cette phase d'installation, il faut pouvoir maintenant installer les programmes nécessaires pour transformer le serveur afin qu'il puisse répondre aux besoins fixés.



2 - L'APT

L'avantage d'ubuntu réside dans l'APT (Advance Package Tool) installé par défaut. Cet outil installe automatiquement les programmes nécessaires, après avoir téléchargés sur Internet les packages désirés.

Pour plus de détail consulter :
http://wiki.ubuntu-fr.org/depots
http://wiki.ubuntu-fr.org/apt-get?s[]=apt&s[]=get

2.1 Configuration de l'APT

Pour le serveur il faudra des programmes qui ne sont pas installés par défaut. Afin d'avoir un bref aperçu de la configuration et de l?utilisation de l'APT, il faut tout d'abord connaître le fichier de configuration /etc/apt/source.list qui contient les sites sur lequel l'APT se connecte pour installer un programme.

Remarque : Durant toute l'installation l'éditeur de texte nano sera utilisé.

nano /etc/apt/source.list

Il contiendra des sites configurés à l'avance :

#Ubuntu Jauntry Jackalope
deb http://fr.archive.ubuntu.com/ubuntu/ jauntry main restricted
deb-src http://fr.archive.ubuntu.com/ubuntu/ jauntry main restricted

deb http://fr.archive.ubuntu.com/ubuntu/ jauntry universe
deb-src http://fr.archive.ubuntu.com/ubuntu/ jauntry universe
deb http://fr.archive.ubuntu.com/ubuntu/ jauntry-updates universe
deb-src http://fr.archive.ubuntu.com/ubuntu/ jauntry-updates universe

deb http://fr.archive.ubuntu.com/ubuntu/ jauntry multiverse
deb-src http://fr.archive.ubuntu.com/ubuntu/ jauntry multiverse
deb http://fr.archive.ubuntu.com/ubuntu/ jauntry-updates multiverse
deb-src http://fr.archive.ubuntu.com/ubuntu/ jauntry-updates multiverse
...

La majorité des fichiers de configuration utilise le caractère «#» pour désigner une ligne en commentaire. Ce qui signifie que toutes les lignes commencent par «#» ne sont pas pris en compte. Il est donc possible soit les supprimer, soit d'enlever le commentaire pour activer la ligne en question. Exemple il faut donc enlever le «#» devant les lignes des sites suivants :

deb http://fr.archive.ubuntu.com/ubuntu/ jauntry-backports ../..
main restricted universe multiverse deb-src http://fr.archive.ubuntu.com/ubuntu/ jauntry-backports ../..
main restricted universe multiverse

2.2 Utilisation APT

Commandes essentielles nécessaires :

apt-get update
apt-get install nom_du_programme

La première actualise la liste les programmes que l'apt peut installer à partir des sites.
Et la seconde installe le programme passé en paramètre (nom_du_programme).



3 - Dsnmasq (DHCP & DNS)

3.1 Installation de Dnsmasq

L'opération d'installation du logiciel nommé dnsmasq se fait grâce à l'APT. Une seule ligne de commande est nécessaire:

apt-get install dnsmasq

Attention : si le logiciel n'est pas trouvé c'est qu'il y a eu un oubli à propos des lignes du fichier /etc/apt/source.list.

deb http://acm.cs.umn.edu/ubp jauntry-backports main universe multiverse restricted
deb http://acm.cs.umn.edu/ubp jauntry-extras main universe multiverse restricted

3.2 Configuration de Dnsmasq

Comme la plupart des logiciels, dnsmasq utilise un fichier de configuration, s'il est déjà présent, il est possible de le modifier ou le supprimer et en crée un nouveau.
Pour le supprimer :

rm /etc/dnsmasq.conf

Ou alors le renommer :

mv /etc/dnsmasq.conf /etc/dnsmasq.conf.defaut

Le fichier permettra de configurer le serveur DNS et DHCP en même temps, pour le créer :

nano /etc/dnsmasq.conf

Il contiendra les informations suivantes

#Á laisser par défaut
domain-needed
expand-hosts
bogus-priv
#définie sur quelle carte réseau sera rattaché le serveur DHCP
interface=eth1
#Le nom du domaine
domain=mezoticam
#Plage d?adresse ip qui va être attribuer aux clients 12h/baie ip
dhcp-range= 192.168.1.50,192.168.1.150,12h

Pour relancer le serveur afin que les paramètres soit pris en compte.

. /etc/init.d/dnsmasq restart


4 - VSFTPD

4.1 Installation des paquets nécessaires

Mise en place d'un serveur ftp en utilisant le programme vsftpd. Pour cela rien de plus simple. Il faut être super utilisateur pour pouvoir installer un logiciel (sudo su).

apt-get install vsftpd

En parallèle du serveur ftp, il est nécessaire d'avoir un service qui gérera les authentifications (PAM). Pour l'installer une seconde commande est nécessaire :

apt-get install libdb3-util

4.2 Configuration de VSFTPD

Mise en place des utilisateurs virtuels qui seront répertoriés dans une base de données gérée par PAM.
Dans une première partie, un fichier sera généré, contenant les logins et mots de passe des utilisateurs qui auront le droit de se connecter au serveur ftp.

#Création
vi users

Celui-ci aura le format suivant :

camille <- login
fronton <- mot de passe
Utilisateur2 <- login
Mot_de_pass_de_utilisateur2 <- mot de passe
etc...

Ainsi est défini le couple login et mot de passe de chaque utilisateur. (login=camille, mot de passe=fronton)...

Puis il faut générer la base de donnée des utilisateurs à l'aide du fichier précédent. Pour se faire la commande suivante est exécutée :

db3_load -T -t hash -f users /etc/vsftpd/login.db

Puis attribution des droits nécessaires à ce fichier généré :

chmod 600 /etc/vsftpd/login.db

La base de donnée étant générée il faut indiquer au service PAM où se situe le fichier, à l'aide d'un fichier nommé vsftpd.

vi /etc/pam.d/vsftpd

Contenu du fichier :

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/login

Malgré la création des utilisateurs qui seront authentifiés par vsftpds, une seconde étape consiste à créer un utilisateur virtuel reconnu par le system d'exploitation.
Pour réaliser cette étape il faut utiliser les commandes suivantes :

groupadd ftp
useradd -g ftp -d /home/ftp/virtual/ virtual
mkdir -p /home/ftp/virtual
chown root.ftp ~virtual/
chmod 2750 ~virtual/

La troisième étape sera la configuration de vsftpd. Il faut créer un fichier nommée vsftpd.conf qui va définir le comportement global du serveur ftp.

Création du fichier de configuration :

vi /etc/vsftpd/vsftpd.conf

Qui contiendra les lignes suivantes :

#serveur ftp en mode standalone
listen=YES
#Interdiction des connexion anonyme
anonymous_enable=NO
#Autorisation des utilisateurs virtuel de la machine
local_enable=YES
guest_enable=YES
guest_username=virtual
#Interdiction d'écriture et d'upload sur le répertoire pour les utilisateurs par défaut
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
anon_world_readable_only=NO
#Restriction des utilisateurs à leur home directory
chroot_local_user=YES
#Définition du nombre maximum de connexion
max_clients=20
#Définition du nombre de session par adresse ip
max_per_ip=4
#Sécurité du ftp
secure_chroot_dir=/var/run/vsftpd
#utilisation de l'authentification par le service pam
pam_service_name=vsftpd
#Permet d'attribuer des droits supplémentaires spécifiques à chaque utilisateur
user_config_dir=/etc/vsftpd/users

Dès maintenant le serveur est configuré pour fonctionner de façon très restrictive. Il suffit de le démarrer afin qu'il prenne on compte la configuration :

 
. /etc/init.d/vsftpd restart

Il est possible maintenant de se connecter en utilisant un client ftp avec comme login et mot de passe (ceux saisie dans le fichier users).

La phase finale consiste à personnaliser les comptes des utilisateurs ftp (Exemple : Pour que l'utilisateur camille aie des droits supplémentaires, il suffit de créer un fichier nommée « camille » avec les droits correspondants). Pour exemple, le droit d'écrire dans un sous répertoire upload.

Il faut créer le répertoire avec les droits appropriés :

mkdir ~virtual/upload/
chmod 770 ~virtual/upload/

Puis il faut créer le fichier camille :

vi etc/vsftpd/users/camille

Contenant les lignes suivantes :

#Autorise l'écriture
write_enable=YES
#Autorise l'upload de donnée
anon_upload_enable=YES

Cela indique au serveur vsftpd que l'utilisateur camille aura le droit d'écrire et d'uploader dans le sous répertoire upload (Néanmoins, il ne peut pas uploader n'importe où, car les droit d'écriture n'ont été mis que sur le répertoire upload (chmod 770 ~virtual/upload/)).



5 - Serveur SAMBA

5.1 Installation de SAMBA

Comme pour l'installation des logiciels précédents la commande est la suivante :

apt-get install samba

De même le fichier de configuration du serveur samba sera situé dans le répertoire /etc/samba sous le nom de smb.conf :

vi /etc/samba/smb.conf

5.2 Configuration de Samba

Le fichier smb.conf par défaut permet aux utilisateurs d'accéder à leur home dès qu'il se "log" sur le serveur samba. C'est aussi dans ce fichier que l?on ajoute les répertoires partagés, ainsi que leurs droits.

Fichier par défaut :

[global]
workgroup = MSHOME
server string = %h server (Samba, Ubuntu)
dns proxy = no
etc...

Voici un exemple qui ajoutera un répertoire compta qui sera ainsi accessible via les postes clients Windows. Pour se faire, il faut ajouter ces lignes à la fin du fichier :

#Définition du répertoire de partage
[compta]
#chemin du répertoire
path=/usr/compta
#Commentaire associé au répertoire partagé
comment=compta
#Autorise la navigation des sous répertoire.
browseable=yes
#Autorise l'écriture dans le répertoire.
writable=yes

Pour notre exemple nous allons ajouter un utilisateur et lui attribuer un mot de passe. Sachant qu'il faut que l'utilisateur existe sur le serveur:

smbpasswd -a camille
Saisir le mot de passe : ******

Pour plus d'information :
http://wiki.ubuntu-fr.org/applications/samba/outils

Si l'utilisateur n'existe pas encore il faut le créer. Pour se faire utiliser la commande :

adduser login

Une série de questions guidera pour la création de l'utilisateur tel que le nom, le mot de passe, etc...

Pour relancer le serveur afin que les paramètres soient pris en compte:

. /etc/init.d/samba restart


6 - Sécurisation du réseau à l'aide d'IPTABLES

6.1 Configuration du partage de connexion

Il faut savoir qu'Iptables est déjà installé par défaut sur ubuntu. Iptables permet de gérer le routage des paquets. Il peut donc être utilisé comme firewall pour protéger notre réseau des attaques provenant de l'extérieur tout en partageant la connexion Internet.

Dans un premier temps nous allons éditer le fichier /etc/network/options pour que la transmission d?information se fasse aussi entre les cartes réseaux.
On met la valeur ip_forward à yes pour que les trames soient forwarder d'une carte réseau à l'autre :

Original

ip_forward=no
spoofprotect=yes
syncookies=no

Personnalisé

#yes pour forwarder les informations d'une carte à l'autre
ip_forward=yes
spoofprotect=yes
syncookies=no

6.2 Script d'IPTABLES

Puis il faut créer un script qui définira les règles du firewall.

vi /etc/init.d/iptables

Contenu du fichier iptables

#!/bin/sh
#Réinitialisation des règles
iptables -F
iptables -X
#Définition de la stratégie par défaut
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
#Autorisation de toutes les connexions locales
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#Création d?une règle personnelle
iptables -N MAregle
#Mise en place d?une règle qui acceptera les connexions selon les requêtes
iptables -A MAregle -m state --state NEW -i! eth0 -j ACCEPT
iptables -A MAregle -m state --state ESTABLISHED,RELATED -j ACCEPT
#Application de la règle à tous les ordinateurs du réseau
iptables -A INPUT -j MAregle
iptables -A FORWARD -j MAregle
#Partage de la connexion Internet
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

Attention : eth0 correspond à la carte réseau qui est directement connectée à Internet. Si ce n'est pas le cas, adapter le script et remplacer eth0 par la connexion Internet, de même pour l'adresse réseau 192.168.1.0.

Pour ne pas exécuter manuellement IPTABLES à chaque redémarrage du pc, une commande démarre automatiquement le script.

sudo update-rc.d iptables start 99 2 . stop 00 2 0 1 6 .


7 - Gestion des Sauvegardes de fichiers

Dans le cas de petites quantités de données à sauvegarder, il est possible d'effectuer une copie en local ou encore sur un serveur ftp. Comment automatiser ces taches ?

7.1 Script de backup avec tar

Tout d'abord il faut créer un script qui se chargera de sauvegarder les données :

vi backup-compta

Contenu du script backup-compta :

#!/bin/sh
DATE=$(date +%d-%m-%Y)
Tar zcf /usr/backup/compta${DATE}.tar.gz /usr/compta/* 

Le script crée un fichier compressé comprenant toutes les informations du répertoire /usr/compta.
[Fichier nommé avec la date de sauvegarde (exemple compta10-10-2009.tar.gz) afin de distinguer chaque sauvegarde].

7.2 Script de backup avec ftp

Autre façon de sauvegarder les données: uploader sur un serveur ftp.

Création du script

vi ftp-script

Contenu :

#!/bin/sh
HOST='ftp.backup'
USER='backup'
PASSWD='backup'
REP='/usr/compta'

ftp -n $HOST <END_SCRIPT
quote USER $USER
quote PASS $PASSWD
prompt
verbose
lcd $REP
mput *
quit
END_SCRIPT
exit 0

Ce script va envoyer toutes les données du répertoire /usr/compta vers un ftp (ftp.backup). Avec pour login et mot de passe 'backup'.

Pour se faire, création d'un fichier de paramètres pour CRONTAB (définition de la commande, du jour et de l'heure de ce travail) :

vi jobs

Contenu possible :

30 12,18 * * * . /etc/init.d/backup-compta
0 22 * * 5 . /etc/init.d/ftp-script

Format d'entrée des informations pour CRONTAB

m h j Mois J comande_a_effectuer


m représente les minutes compris entre 0 et 59
h représente l'heure compris entre 0 et 23
j représente le numéro du jour du mois compris entre 1 et31
Mois représente le numéro du mois compris entre 1 et 12
J représente le jour de la semaine compris entre 1 et 7

Entrer de la liste des tâches dans CRONTAB

crontab jobs

Crontab garde en mémoire les tâches à effectuer. Il n'est donc pas nécessaire de le lancer au démarrage.
Dans l'exemple le script se lance deux fois par jours à 12h30 et 18h30,
la deuxième tâche (l'exécution de ftp-script) s'effectue tous les vendredi à 22h00.

Note

La mise en place d'un système de sauvegarde automatisé pourra se faire selon les besoins.