Principe
Créer un mirroir ftp pour télécharger des signatures de l’antivirus eTrust Inoculate.
Prérequis
Wget : Logiciel de téléchargement en ligne de commande.
yum -y install wget
Proftpd : Serveur FTP
yum -y install proftpd
chkconfig proftpd on
service proftpd start
Mise en uvre
J’ai choisi de faire un mirroir du ftp de eTrust afin de faire pointer mes serveurs vers un dossier d’un serveur local.
Ce mirroir sera actualisé tous les soirs à 0h15.
Le dossier de stockage sera créé par la commande mkdir /var/ftp/mirroir/
Pour commencer il faut savoir où récupérer les mises à jour.
Cela est résolu en vérifiant tout simplement comment est configuré le logiciel d’origine.
Il faut ensuite trouver la commande qui va récupérer les fichiers signatures.
wget --mirror --directory-prefix=/var/ftp/mirroir/ ftp://ftpav.ca.com/pub/inoculan/scaneng
Cette commande va stocker ses fichiers dans le dossier /var/ftp/mirroir/ et créer une arborescence commençant par le nom du serveur ftp lui-même, soit ftpav.ca.com.
On la lance une fois pour avoir une copie de base des fichiers.
Une fois cette copie récupérée, il faut la publier via le serveur ftp.
On modifie le fichier de configuration de proftpd ( /etc/proftpd.conf ) et on ajoute le code suivant au fichier d’origine.
Cela crée une connexion anomyme qui pointe sur le dossier que l’on utilise pour mirrorer le site eTrust.
User ftp
Group ftp
AccessGrantMsg "Anonymous login ok, restrictions apply."
# We want clients to be able to login with "anonymous" as well as "ftp"
UserAlias anonymous ftp
# # Limit the maximum number of anonymous logins
MaxClients 10 "Sorry, max %m users -- try again later"
# # Put the user into /pub right after login
DefaultChdir /mirroir/ftpav.ca.com/
#
# # We want 'welcome.msg' displayed at login, '.message' displayed in
# # each newly chdired directory and tell users to read README* files.
# DisplayLogin /welcome.msg
# DisplayFirstChdir .message
# DisplayReadme README*
#
# # Some more cosmetic and not vital stuff
# DirFakeUser on ftp
# DirFakeGroup on ftp
#
# # Limit WRITE everywhere in the anonymous chroot
DenyAll
# Don't write anonymous accesses to the system wtmp file (good idea!)
WtmpLog off
# # Logging for the anonymous transfers
ExtendedLog /var/log/proftpd/access.log WRITE,READ default
Une fois la configuration modifiée, il faut redémarrer proftpd pour qu’il prenne en compte les modifications.
/etc/init.d/proftpd restart
On teste le fonctionnement du service ftp.
[root@monserveurftp etc]# ftp localhost
Connected to localhost.localdomain.
220 FTP Server ready.
500 AUTH not understood
500 AUTH not understood
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): anonymous
331 Anonymous login ok, send your complete email address as your password.
Password: monadresse@monfai.fr
230 Anonymous login ok, restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (127,0,0,1,149,226).
150 Opening ASCII mode data connection for file list
drwxr-xr-x 3 root root 4096 Mar 6 07:48 .
drwxr-xr-x 3 root root 4096 Mar 6 08:15 ..
drwxr-xr-x 3 root root 4096 Mar 6 07:48 pub
226 Transfer complete.
ftp> ls pub/inoculan/scaneng/
227 Entering Passive Mode (127,0,0,1,149,241).
150 Opening ASCII mode data connection for file list
drwxr-xr-x 2 root root 4096 Mar 6 08:11 .
drwxr-xr-x 3 root root 4096 Mar 6 07:48 ..
-rw-r--r-- 1 root root 3150 Mar 6 07:48 .listing
-rw-r--r-- 1 root root 1182 Mar 6 03:57 MANIFEST
... listing tronqué
-rw-r--r-- 1 root root 10 Mar 6 03:57 version.txt
226 Transfer complete.
ftp> bye
221 Goodbye.
Bien, tout semble Ok du coté ftp. Il faut maintenant tenir à jour le dossier mirroir.
Pour cela, je crée une tâche cron.
mkdir /root/scripts
vi /root/scripts/mirroir.sh
Contenu du script :
#!/bin/bash
echo `date`
/usr/bin/wget --mirror --directory-prefix=/var/ftp/mirroir/ ftp://ftpav.ca.com/pub/inoculan/scaneng
Affectation des droits
chmod +x mirroir.sh
Création de la tâche plannifiée
crontab -e
Ajouter les lignes suivantes
# Synchro mirroir ftp
15 0 * * * /root/scripts/mirroir.sh > /tmp/rapport_mirroir.txt 2>&1
Ceci lancera le script que nous venons de créer et cela écrira un fichier de log qui sera remplacé tous les soirs.
Sur le serveur devant se mettre à jour, il faut modifier la configuration du ftp comme ceci :
Remplacez ADRESSE.IP.DU.SERVEUR par son ip ou son nom DNS.
Remplacez adresse@email.fr par votre adresse email.
Le dossier du ftp est /mirroir/ftpav.ca.com/pub/inoculan/scaneng/.
Attention, la capture ne permet pas de voir le chemin complet.
Validez les modifications, votre serveur devrait se mettre à jour correctement via ce mirroir eTrust privé.