# Mise en oeuvre de l'espace documentaire L'espace documentaire est hébergé dans le répertoire /var/lib/tftpboot du serveur 10.13.254.143. Il héberge : - les fichiers de configuration des switchs déposés par tftp - les tables de brassage déposées par ftp Les fichiers déposés dans ce répertoire sont automatiquement versionnés dans le serveur GOGS https://10.13.254.73 L'automatisme de versionning est le suivant: #### Vsftpd Les fichiers sont déposés par ftp dans le répertoire upload en anonymous L'upload est autorisé uniquement sur le répertoire `/var/ftp/upload` (pour des raisons de sécurité `vsftpd` ne permet pas les upload dans le répertoire root (`/var/ftp`) de la connexion anonymous) ``` mkdir -p /var/ftp/upload chmod 777 /var/ftp/upload chown ftp:ftp /var/ftp/upload ``` **vsftpd** est configuré pour autoriser les uploads anonymes et permettre le chroot() de l'utilisateur FTP anonyme dans `/var/ftp`: ``` # /etc/vsftpd/vsftpd.conf listen=yes #Les directives suivantes empêchent les utilisateurs locaux de se connecter et permettent respectivement un accès anonyme. local_enable=NO anonymous_enable=yes #La directive suivante permet l'accès en écriture au système de fichiers du serveur ftp. write_enable=yes anon_upload_enable=yes # Définit le répertoire racine des connexions anonymes. anon_root=/var/ftp ``` #### Icrontab Des évènements **inotify** provoquent l'exécution des scripts: - `/usr/bin/incron_automove.sh` lorsqu'un fichier est déposé dans `/var/ftp/upload` - `/usr/bin/incron_autogit.sh` lorsqu'un fichier est déposé ou déplacé dans `/var/lib/tftpboot` ``` /var/ftp/upload/ IN_CLOSE_WRITE /usr/bin/incron_automove.sh $@ $# /var/lib/tftpboot/ IN_MOVED_TO,IN_MODIFY,IN_CLOSE_WRITE /usr/bin/incron_autogit.sh $@ $# ``` #### Script incron_automove.sh Le script **incron\_automove.sh** provoque le déplacement des fichiers reçus dans `/var/ftp/upload` dans le répertoire `/var/lib/tftpboot`. ``` #!/bin/bash ############################## # /usr/bin/incron_automove.sh # script gérant les fichiers téléchargés dans le répertoire surveillé # recoit en paramêtre = $1 : le répertoire / $2 :le nom du fichier # événement IN_CLOSE ############################### # # Déplacement répertoire surveillé cd "$1" # Déplacement du fichier reçut en paramètre # vers le répertoire /var/lib/tftpboot/ mv $2 /var/lib/tftpboot/ -f ``` #### Script incron_autogit.sh Le script **incron\_autogit.sh** Gère le versionnage des fichiers reçus (IN\_CLOSE) ou déplacés (IN\_MOVED\_TO) dans le répertoire `/var/lib/tftpboot`, et l'envoi d'un mail dans la boite générique. ``` #!/bin/bash ############################## # /usr/bin/incron_autogit.sh # script générant le transfert des fichiers dans GIT # recoit en paramêtre = $1 : le répertoire / $2 :le nom du fichier # événements IN_MOVED_TO,IN_MODIFY,IN_CLOSE ############################### # # Déplacement répertoire surveillé cd "$1" # 1 - add -> git add git add $2 # 2 - commit -> git commit -m '' git commit -m $(date +%A-%d%m%Y-%H%M) # 3 - push -> git push [| git push origin master # Envoi d'un mail dans la boite générique echo "dépôt du fichier $2 le $(date +%A-%d/%m/%Y) à $(date +%Hh%M) " | mail -r "esi.marseille.snsreseau@dgfip.finances.gouv.fr" -s "NESSUS: dépôt d'un fichier dans tftpboot" jacques.nougat@dgfip.finances.gouv.fr echo "dépôt du fichier $2 le $(date +%A-%d/%m/%Y) à $(date +%Hh%M) " | mail -r "esi.marseille.snsreseau@dgfip.finances.gouv.fr" -s "NESSUS: dépôt d'un fichier dans tftpboot" esi.marseille.snsreseau@dgfip.finances.gouv.fr ``` #### Sendmail Configuration de **sendmail** en relay SMTP dans `/etc/mail/sendmail.cf` ``` # "Smart" relay host (may be null) DSsmtp.oc.dgfip ```