20 janvier 2007
ClamAV : un anti-virus sous votre Debian
Clam AntiVirus est un anti-virus opensource. Il est principalement
utilisé sur des serveurs de mails afin notamment de scanner les
fichiers attachés. Nous allons récupérer deux packages :
- clamAV qui est donc l'anti-virus
- clamav-freshclam qui nous permettra de faire les mises à jour par internet de notre base d'antivirus.
1. Installation des paquets
Nous allons utliser le dépôt suivant :
http://ftp2.de.debian.org/debian-volatile sarge/volatile/main afin de
récupérer l'une des dernières versions de clamAV. Il faut donc éditer
votre fichier /etc/apt/sources.list et insérer la ligne suivante :
deb http://ftp2.de.debian.org/debian-volatile/ sarge/volatile main
Après ça, mettez à jour votre base :
#apt-get update
Ensuite, il faut installer les paquets clamAV et clamav-freshclam :
#apt-get install clamav
Au cours de l'installation, plusieurs questions vous sont posées :
- La méthode utilisée pour la mise à jour de la base des virus (deamon)
- Choix du mirroir que vous allez utiliser pour la mise à jour de la base des virus (db.clamav.fr.net)
- Information sur le proxy si vous en avez un (laissez vide dans le cas contraire)
- Should clamd be notified after updates? yes![]()
Maintenant nous pouvons vérifier si les différents paquets ont bien été installés :
$dpkg -l | grep -i clam
ii clamav 0.88.7-0volatile1 antivirus scanner for Unix
ii clamav-base 0.88.7-0volatile1 base package for clamav, an anti-virus utility for Unix
ii clamav-freshclam 0.88.7-0volatile1 downloads clamav virus databases from the Internet
ii libclamav1 0.88.7-0volatile1 virus scanner library
A la fin de l'installation du paquet, un nouvel utilisateur et un nouveau groupe auront été aussi créés :
$grep clamav /etc/passwd /etc/group
/etc/passwd:clamav:x:113:113::/var/lib/clamav:/bin/false
/etc/group:clamav:x:113:
2. Mise à jour de la base des virus
Pour
mettre la base des virus à jour, il faut utiliser l'utilitaire
freshclam. Il suffit simplement de lancer la commande suivante :
#freshclam
ClamAV update process started at Sat Jan 20 00:21:45 2007
Connecting via 127.0.0.1
main.cvd is up to date (version: 42, sigs: 83951, f-level: 10, builder: tkojm)
Connecting via 127.0.0.1
daily.cvd is up to date (version: 2466, sigs: 3307, f-level: 9, builder: sven)
Un
autre moyen est de lancer freshclam en mode démon (ce qui est le cas
lors de votre installation si vous avez choisie les options décrites
plus haut). Pour cela, vous pouvez vérifier que votre démon tourne bien
:
#ps -ef | grep freshclam
clamav 1619 1 0 Jan19 ? 00:00:00 /usr/bin/freshclam -d --quiet -p /var/run/clamav/freshclam.pid
Cet
paquet a aussi un fichier de configuration qui permet notamment de
définir la périodicité des mises à jour ainsi que le fichier de log.
Editons ce fichier /etc/clamav/freshclam.conf :
#emplacement du fichier de log
UpdateLogFile /var/log/clamav/freshclam.log
#Périodicité de la mise à jour : 5 fois par jour
Checks 5
3. A la recherche des virus
Pour rechercher un virus sur votre machine, il faut utiliser la commande clamscan -r <répertoire>. Le paramètre -r permet une recherche récursive donc dans les sous répertoires.
#clamscan -r /home/toto/DebSousDeb
/home/toto/DebSousDeb/logo1.jpg: OK
/home/toto/DebSousDeb/logo2.jpg: OK
/home/toto/DebSousDeb/logo3.jpg: OK
/home/toto/DebSousDeb/logo4.jpg: OK
/home/toto/DebSousDeb/clamAV/clamav.jpg: OK
/home/toto/DebSousDeb/clamAV/clamav1.jpg: OK
/home/toto/DebSousDeb/clamAV/clamav2.jpg: OK
/home/toto/DebSousDeb/clamAV/clamav3.jpg: OK
----------- SCAN SUMMARY -----------
Known viruses: 87257
Engine version: 0.88.7
Scanned directories: 2
Scanned files: 8
Infected files: 0
Data scanned: 6.21 MB
Time: 6.979 sec (1 m 6 s)
Maintenant, vous pouvez vouloir programmer un scan automatique de
vos fichiers tous les jours à 19H00 par exemple. Pour cela, il faut
utiliser cron (man -e 5 crontab) :
#crontab -e
00 19 * * * clamscan -r /home/toto
Ici, tous les jours à 19h00, nous vérifions l'intégrité des fichiers sous /home/toto
Que se passe-t-il si clamav trouve un virus ? Essayons un autre scan :
#clamscan -r /home/toto/OperaDownloads
/home/toto/OperaDownloads/virus: Worm.SomeFool.P FOUND
----------- SCAN SUMMARY -----------
Known viruses: 87258
Engine version: 0.88.7
Scanned directories: 1
Scanned files: 1
Infected files: 1
Data scanned: 0.03 MB
Time: 3.734 sec (0 m 3 s)
Ici,
clamAV a trouvé le virus Worm.SomeFool.P dans le fichier "virus".
Attention, clamAv ne répare pas les fichiers, il les détecte
simplement. Avous de prendre les mesures adéquates (en l'occurence moi
je vais supprimer ce fichier ... qui n'était qu'un test en définitive
...)
Voilà c'est fini. pour plus d'infos, n'hésitez pas à aller consulter le site officiel de clamav
25 février 2006
XLOGMASTER : outils de supervision des logs etc ...
Il est parfois utile pour un administrateur de superviser en
direct-live les logs de son serveur. Pour cela, il existe notamment le
paquet xlogmaster. Commençons par installer le paquet :
#apt-get install xlogmaster
Une fois le paquet installé, vous pouvez lancer le programme de la manière suivante :
$xlogmaster
Par contre, le fait de vouloir lire les fichiers de log comme
/var/log/messages n'est pas possible pour un utilisateur autre que root
puisque ce fichier n'est pas accessible par défaut en lecture pour tout
le monde. Une des méthodes simples pour contourner ce problème serait
de donner les droits de lecture pour tout le monde avec la commande
suivante :
$chmod 644 /var/log/messages
Cependant, cela n'est pas très secure ... Aussi, nous allons utiliser sudo afin de donner les privilèges root à notre utilisateur pour lancer la commande xlogmaster. Pour cela, nous devons modifier le fichier /etc/sudoers.
Editons le fichier /etc/sudoers avec la commande suivante :
#visudo
Voici comment le fichier se présente pour la première fois :
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL) ALL
A partir de là, nous allons ajouter plusieurs entrées :
- Dans la section Cmnd_Alias, nous allons créer un alias appelé LOG qui comportera la commande xlogmaster
-
Dans la section User_Alias, nous allons définir l'alias pour
l'utilisateur (en l'occurence vince) qui bénéficiera des privilèges
particuliers
Cela va donner cela :
Cmnd_Alias LISTLOG=/usr/bin/X11/xlogmaster
User_Alias OTHUSER=vince
Ensuite nous allons donner les privilèges :
OTHUSER ALL=NOPASSWD: LISTLOG
Ainsi
cela signifie que nous donnons les privièlges root à l'utilisateur
vince sur la commande xlogmatser et que vince n'aura pas besoin
de saisir de mot de passe.
Au final, nous avons le fichier suivant :
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
Cmnd_Alias LISTLOG=/usr/bin/X11/xlogmaster
User_Alias OTHUSER=vince
root ALL=(ALL) ALL
OTHUSER ALL=NOPASSWD: LISTLOG
Maintenant il nous suffit de lancer la commande suivante avec notre utilisateur vince :
$sudo xlogmaster
Voilà à quoi ressemble xlogmaster :
Vous pouvez ajouter vous même différents fichiers à contrôler. Pour cela je vous conseille d'aller sur le site du projet xlogmaster.
Regardons le panneau de configuration de xlogmatser (touche Alt + C ou click droit customize entries) :
Il existe 3 possibilités pour mettre en place une supervision :
le mode TAIL : en fait il s'agit tout simplement pour xlogmatser de réaliser un tail -f sur un fichier
le mode CAT : il s'agit de visualiser un fichier en faisant un cat avec un rafraichissement définit par l'interval de temps.
Le monde RUN : permet de lancer une commande unix ou un script shell et de voir sa sortie standard sur xlogmaster.
Enfin il est possible faire des filtres en utilisant utilisant des expressions régulières afin de parser les lignes sur la sorties standard et de compléter cela par une action.
Dans l'écran ci-dessous, nous parsons dans le fichier /var/log/auth.log toutes les nouvelles entrées qui contiennent la chaîne root et la chaîne ssh. 
il existe différents mode d'alerte que vous pouvez associer ensemble. Les deux principales sont :
- Alert : envoie un signal sonore
- Notice : ouvre une popup
Voilà c'est fini, je vous laisse maintenant faire vos propres manipulations.
08 janvier 2006
/etc/network/options ou comment mieux se protéger
Le fichier /etc/network/option comprend plusieurs options dont une que nous avons vu qui permet d'automatiser l'ip forwarding au démarrage. Regardons d'un peu plus près ce fichier :
# more /etc/network/options
ip_forward=yes
spoofprotect=yes
syncookies=yes
Nous voyons qu'il existe deux autres options : spoofprotect et syncookies.
- spoofprotect permet de se protéger contre le spoofing (/proc/sys/net/ipv4/conf/eth0/rp_filter possède la valeur 1 s'il est activé).
Grossièrement, l'IP spoofing consiste en usurpation d'adresse IP qui
permet de se connecter à des services (rlogin, rsh etc ...) qui
vérifient l'authentification par l'adresse IP.
- syncookies permet de se protéger contre l'envoi de paquets en masse de type TCP
SYN (attaque SYN-FLOOD). D'autre part si cette option est activée, elle
provoque le même type d'attaque mais vers l'agresseur par l'envoi de
paquets SYN également (c'est ce qu'on pourrait appeler un retour à
l'envoyeur).
30 novembre 2005
OpenSSH
Changer le port par défaut de SSH
Pour améliorer la sécurite de votre serveur, il peut être utile de modifier par défaut le port de SSH (port 22).
En
effet, même si sous linux, on a moins de chance de tomber sur un virus,
il existe des vers cependant qui testent les ports et tentent d'entrer sur
votre machine par brute de force. Voici un exemple de ce que j'ai trouvé
dans mon fichier /var/log/auth.log qui met en lumière mes propos.
#grep -i sshd[????]: Illegal user /var/log/auth.log
/var/log/auth.log:Oct 12 22:12:36 linux sshd[10230]: Illegal user dustin from 82.234.254.29
/var/log/auth.log:Oct 12 22:12:37 linux sshd[10232]: Illegal user dwight from 82.234.254.29
/var/log/auth.log:Oct 12 22:12:38 linux sshd[10234]: Illegal user dylan from 82.234.254.29
/var/log/auth.log:Oct 12 22:12:39 linux sshd[10236]: Illegal user earl from 82.234.254.29
/var/log/auth.log:Oct 12 22:12:40 linux sshd[10238]: Illegal user earleen from 82.234.254.29
/var/log/auth.log:Oct 12 22:12:42 linux sshd[10240]: Illegal user earnest from 82.234.254.29
/var/log/auth.log:Oct 12 22:12:43 linux sshd[10242]: Illegal user easter from 82.234.254.29
/var/log/auth.log:Oct 12 22:12:44 linux sshd[10244]: Illegal user ed from 82.234.254.29
/var/log/auth.log:Oct 12 22:12:45 linux sshd[10246]: Illegal user eddie from 82.234.254.29
/var/log/auth.log:Oct 12 22:12:46 linux sshd[10248]: Illegal user eden from 82.234.254.29
Nous allons donc modifier le fichier /etc/ssh/sshd_config et
modifier la ligne port 22 et mettre par exemple le port 9999. Voici le
résultat du fichier :
# Package generated configuration file
# See the sshd(8) manpage for details
# What ports, IPs and protocols we listen for
#Port 22
Port 9999
Puis relancer le service SSH pour la prise en compte de votre modification :
<p><p><p><p>Configuration des serveurs NT – TSE sur site</p></p></p></p>
#
/etc/init.d/ssh restart
Interdire l'accès root pour SSH
Nous
allons en profiter pour ne pas autoriser root à se connecter
directement en ssh. Il faut donc modifier à nouveau le fichier de
configuration /etc/ssh/sshd_config et mettre la valeur no à
PermitRootLogin. Extrait du fichier :
<p><p><p><p>Configuration des serveurs NT – TSE sur site</p></p></p></p>
#Ici on autorise pas root a se logguer en ssh
#PermitRootLogin yes
PermitRootLogin no
Se connecter sur ssh quand on a modifié le port par défaut
Il faut ajouter le paramètre du port -p n°_de_port, le nom de la machine et en option le user -l nom_user. Ici on se connecte sur le port 9999 avec l'utilisateur toto
<p><p><p><p>Configuration des serveurs NT – TSE sur site</p></p></p></p>
# ssh -p 9999 linux -l toto
<p><p><p><p>onfiguration des serveurs NT – TSE sur site</p></p></p></p>

