Bonne et Heureuse Année 2010 !

Une nouvelle année commence, je vous la souhaite très belle, pleine de réussite avec beaucoup de joie. J’espère qu’elle sera bonne très bonne pour vous ainsi que tous vos proches…

BONNE ANNEE 2010

Categories: Nouvelles Tags:

Installer Openfire sur Debian Lenny

OpenFire est un serveur XMPP (cad. Jabber) écrit en Java. Il a de nombreux avantages, dont celui d’être facilement configurable et administrable via une interface Web. Pour ma part, je pense qu’il s’agit du meilleur serveur Jabber disponible dans le domaine libre. Cet article vous aidera à installer et à configurer OpenFire sur une Debian 5.0 Lenny

-Prérequis
Pour fonctionner Openfire exige au préalable d’avoir un serveur de base de donné sur votre machine. Je conseille l’installation de MySQL qui est installable facilement via cette commande :

apt-get install mysql-server mysql-client libmysqlclient15-dev

-Installation de OpenFire
En premier lieu, il nous faut installer la machine virtuelle Java de Sun :

apt-get install sun-java6-jre

Et nous la déclarons comme machine virtuelle par défaut :

update-java-alternatives –set java-6-sun

Nous renseignons la version que nous souhaitons installer:

VERSION=3.6.4

Remarque: Rendez vous sur le site officiel d’Openfire pour connaître la dernière version.

Nous téléchargeons ensuite le paquet Debian de OpenFire :

/usr/bin/wget http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_3.6.4_all.deb \
–output-document=/tmp/openfire.deb

Et nous installons OpenFire:

dpkg -i /tmp/openfire_3.6.4_all.deb

Démarrez OpenFire si nécessaire:

/etc/init.d/openfire start

-Configuration de votre pare-feu
Un certain nombre de ports doivent être ouvert pour que notre serveur Jabber soit joignable de l’extérieur. Je vous donne simplement la partie de mon fichier de configuration qui concerne Openfire

# Décommentez les lignes suivantes pour que le serveur Jabber éventuel
# soit joignable de l’extérieur.
-A INPUT -p tcp –dport 3478 -j ACCEPT
-A INPUT -p tcp –dport 3479 -j ACCEPT
-A INPUT -p tcp –dport 5222 -j ACCEPT
-A INPUT -p tcp –dport 5223 -j ACCEPT
-A INPUT -p tcp –dport 5229 -j ACCEPT
-A INPUT -p tcp –dport 7070 -j ACCEPT
-A INPUT -p tcp –dport 7443 -j ACCEPT
-A INPUT -p tcp –dport 7777 -j ACCEPT
-A INPUT -p tcp –dport 9090 -j ACCEPT
-A INPUT -p tcp –dport 9091 -j ACCEPT

-Configuration Openfire

Nous devons maintenant configurer OpenFire, pour ce faire, connectez vous en HTTP à votre serveur sur le port 9090. Par exemple :

* http://localhost:9090

Et lancez-vous dans les différentes étapes de configuration.

Remarque : La même URL vous permet d’accéder à votre interface d’administration.
Paramètres du serveur

* Domaine : Saisissez le domaine Jabber que vous comptez associer à votre serveur. Vos utilisateurs Jabber seront de la forme name@domaine

Problème de disparition de l’interface eth0

Lors d’un changement de matériel (que ce soit carte mère avec interface réseau, ou carte réseau), il peut arriver que l’interface réseau eth0 ne soit plus accessible. Voici comment résoudre ce problème.

La mésaventure m’est arrivé deux fois, la première fois lors d’une installation à partir de deux ordis identique en changeant le disque dur de l’un à l’autre, la seconde lors d’un changement de carte mère. Ce problème qui existait déjà sous Etch demeure aussi sous Lenny. Pour pallier à la perte de temps, je note la solution.

Udev, ce petit blagueur, gère un cache des adresses mac des cartes réseaux. Pour résoudre le problème de disparition de l’interface eth0, il suffit de vider le cache des adresses Mac de Udev.

Pour ce faire, vous disposez de 2 solutions.

1. Modifier manuellement le fichier /etc/udev/rules.d/z25_persistent-net.rules, et effacer les lignes qui posent problème.
2. Écraser à la sauvage ce même fichier:

/bin/echo “” > /etc/udev/rules.d/z25_persistent-net.rules

Categories: Debian, Logiciels Libres, Tutoriaux Tags:

Installer XCache sur Lenny

XCache est un outil permettant d’accélérer l’exécution de vos scripts PHP

Installation
En premier lieu, installez les dépendances nécessaire à la compilation du logiciel:

apt-get install php5-dev make

Renseignez le numéro de la version de XCache que vous souhaitez installer:

VERSION=1.3.0

Une fois ceci fait, téléchargez les sources de XCache:

wget http://xcache.lighttpd.net/pub/Releases/$VERSION/xcache-$VERSION.tar.gz \
–output-document=/tmp/xcache-$VERSION.tar.gz

Décompressez l’archive obtenue:

tar –directory=/tmp -xzf /tmp/xcache-$VERSION.tar.gz

Et placez-vous dans le dossier créé:

cd /tmp/xcache-$VERSION

Lancez la compilation:

phpize –clean
/usr/bin/phpize
./configure –enable-xcache
/usr/bin/make
/usr/bin/make install

Une fois ceci fait, configurez PHP pour utiliser ce module:

cp /tmp/xcache-$VERSION/xcache.ini /etc/php5/conf.d/xcache.ini
/bin/sed -i -e ’s/^zend_extension_ts.*/; \0/’ \
-e “s|^\(zend_extension =\).*|\1 $(/usr/bin/find /usr/lib/php5 -name xcache.so | /usr/bin/head –lines=1)|” \
/etc/php5/conf.d/xcache.ini

Et configurez la quantité de mémoire que vous souhaitez utiliser pour le cache:

sed -i -e ’s/^\(xcache\.size[ ]*=\).*/\1 64M/’ \
-e ’s/^\(xcache\.var_size[ ]*=\).*/\1 64M/’ \
/etc/php5/conf.d/xcache.ini

Enfin, redémarrez votre serveur Web :

/etc/init.d/apache2 force-reload

Categories: Debian, Logiciels Libres, Serveur, Tutoriaux Tags:

Partager des fichiers via NFS sous Debian

NFS (Network File System) est un protocole standard de partage de répertoires sous Unix/Linux. Nous allons apprendre à partager un répertoire par NFS, puis à le monter sur un système client pour pouvoir l’utiliser. Vous le verrez, c’est extrèmement simple à mettre en œuvre.

1. NFS côté serveur

Configuration nécessaire

Il faut installer le paquet nfs-kernel-server :

# aptitude install nfs-kernel-server

Partager un répertoire

Éditez le fichier /etc/exports et rajoutez la ligne suivante pour partager le répertoire /home/test/ à la machine ordi2.exemple.org :

/home/test	ordi2.exemple.org(rw,root_squash)

L’option rw permet d’exporter en lecture-écriture (utiliser ro pour exporter en lecture seule). L’option root_squash spécifie que le root de la machine ordi2.exemple.org n’a pas les droits de root sur le répertoire partagé (l’option no_root_squash spécifie que le root de la machine sur laquelle le répertoire est monté a les droits de root sur le répertoire). L’option root_squash est l’option par défaut.

[Note] Note
L’option rw signifie en réalité que l’utilisateur dont l’ID est 1001 (par exemple…) sur le client NFS a les droits d’écriture sur les fichiers et les répertoires qui appartiennent à l’utilisateur dont l’ID est 1001 sur le serveur NFS. Attention, ces utilisateurs n’ont pas forcément le même nom de compte Unix et ne correspondent pas forcément aux mêmes personnes !

Enfin, demandez à nfs-kernel-server de relire sa configuration :

# /etc/init.d/nfs-kernel-server reload
* Re-exporting directories for NFS kernel daemon... [ OK ]

2. NFS côté client

Pour monter le répertoire /home/ftp/ partagé par la machine dont le nom DNS est ordi1.exemple.org dans le répertoire /mnt/test déjà crée, utilisez la commande mount :

# mount -t nfs ordi1.exemple.org:/home/ftp /media/test

Une fois que vous n’avez plus besoin de ce partage, vous pouvez le démonter :

# umount /media/test

Pour que ce répertoire soit monté à chaque démarrage, rajoutez la ligne suivante dans le fichier de configuration /etc/fstab :

ordi1.exemple.org:/home/ftp  /media/test   nfs    soft,timeo=5,intr,rsize=8192,wsize=8192  0  0

Pour comprendre les options, regardez leur description dans man mount

Categories: Debian, Serveur, Tutoriaux Tags:

Installer un serveur DHCP sous Debian Lenny

Topologie du réseau

Nous allons prendre une configuration simple, avec une machine GNU/Linux qui va cumuler plusieurs fonctions :

  • Passerelle entre le réseau local et l’internet (notre « box » ne sera ici qu’un simple modem ADSL) ;
  • firewall ;
  • serveur DHCP ;
  • Les clients peuvent être de tout type : Windows, Mac OS, GNU/Linux…
  • dans l’exemple, la passerelle est construite avec Debian Lenny.

Nous allons donc installer sur la passerelle un serveur DHCP. Le DNS est tout à fait optionnel, mais ce serait bien qu’il y soit, il peut même y être déjà, ça n’est absolument pas gênant. S’il n’y est pas encore, vous pourrez le rajouter par la suite.

Les fonctions de passerelle et de firewall ne sont pas non plus fondamentales, nous pourrions nous contenter d’un serveur GNU/Linux, non connecté au Net (mais qui peut le plus peut le moins).

Nous pourrions même ajouter un autre serveur au réseau local, chargé du DNS et du DHCP et ne laisser à la passerelle que les fonctions de routage et de firewall.

Installation du serveur DHCP

Sur Debian, ceci se fait très simplement en installant les paquetages dhcp3-common et dhcp3-server. Dans la version Lenny de Debian, nous disposons de la version 3.1.1 du serveur. Il y a un seul fichier de configuration : /etc/dhcp3/dhcpd.conf, que nous pourrons configurer avec un éditeur de texte, où à travers l’interface Webmin. Ce que nous aurons à faire est suffisamment simple pour pouvoir le faire à la main

Configuration du serveur

Le principe

Comme nous l’avons vu plus haut, un serveur DHCP, en plus de fournir la configuration IP « de base » (Adresse et masque), peut aussi transmettre un nombre plus ou moins grand de paramètres supplémentaires. Nous aurons donc au moins deux choses à configurer :

  • la réserve d’adresses dont le serveur pourra disposer pour les attribuer aux clients ;
  • les paramètres optionnels à leur communiquer dans la foulée, comme l’adresse d’un DNS et de la passerelle par défaut. Dans le cas d’un réseau domestique; ce sera suffisant, mais il y a beaucoup d’autres options, plus ou moins spécifiques aux divers systèmes d’exploitation.

Nous avons vu qu’un seul serveur DHCP pouvait être utilisé pour plusieurs réseaux logiques interconnectés, pourvu que les interconnexions disposent d’un agent de relais DHCP. Dans un tel cas, le serveur DHCP devra disposer d’au moins une étendue d’adresses IP par réseau logique dont il aura la charge.

En ce qui concerne les options, nous disposons d’une architecture hiérarchique :

  • Nous pouvons définir des options globales, qui seront les mêmes pour tous les clients du DHCP, tous sous réseaux confondus ;
  • nous pouvons définir également des options propres à chaque sous réseau, celles-ci écrasant les options globales, en cas de conflit ;
  • si l’on veut aller encore plus loin, sachez que DHCP3-server peut créer des groupes distincts de machines dans un même sous réseau et même gérer des clients de façon individuelle. C’est un vrai serveur DHCP

Une configuration basique

Ce que nous voulons faire

Nous n’allons pas monter une usine à gaz, c’est inutile pour un petit réseau domestique et ça n’apporte rien de plus à la compréhension du protocole :

  • nous avons un seul réseau, avec des IP choisies dans la classe C privée 192.168.0.0, donc avec un masque 255.255.255.0 ;
  • nous avons donc une passerelle par défaut unique pour tous nos hôtes du réseau, dans l’exemple, ce sera 192.168.0.252 ;
  • nous disposons enfin d’un DNS, également unique pour tous les hôtes du réseau, il est sur la même machine, à savoir 192.168.0.252. Le domaine que nous avons construit sur notre réseau local s’appelle maison.mrs. Il n’a aucune réalité sur le Net, mais ça n’a pas d’importance, puisque c’est un domaine qui ne doit pas être visible depuis le Net ;
  • sur la totalité de la classe C disponible, nous allons réserver les adresses comprises entre 192.168.0.64 et 192.168.0.127 pour les clients du réseau. Cette plage constituera la réserve d’adresses que le DHCP pourra fournir aux clients. Bien entendu, nous aurions pu en mettre plus, mais il faut toujours se garder quelques adresses sous le coude, pour les machines configurées manuellement, comme les serveurs que l’on placerait sur le réseau ;
  • un dernier point important, c’est la durée de vie du bail que le DHCP va attribuer aux clients. L’un des avantages de DHCP, c’est de pouvoir attribuer une configuration IP qui ne sera valide que dans un laps de temps donné, à charge pour le client de demander le renouvèlement de ce bail avant chaque expiration. Ce temps de vie pourra aller de quelques minutes à l’infini, suivant les besoins. Sur un réseau qui évolue peu, le bail peut être sans problèmes de quelques jours, à quelques semaines, voire plusieurs mois. Sur un réseau où les hôtes vont et viennent, il sera plus sage de ne laisser vivre les configurations que quelques heures. Répétons-le, plus le bail est court, plus le trafic généré par DHCP devient important et plus la charge du serveur augmente. Ceci dit, ce n’est pas un argument très significatif sur un réseau ne dépassant pas une dizaine de clients. Dans l’exemple, nous utiliserons une heure (3600 secondes).

Note importante

Le « daemon » dhcpd écoute par défaut sur toutes les interfaces réseau actives sur le serveur. Ce n’est pas forcément souhaitable, c’est même assez souvent ennuyeux.

Fort heureusement, ce comportement par défaut peut être modifié, mais pas dans le fichier de configuration. Il faut utiliser un paramètre dans la ligne de commande qui va démarrer dhcpd.

Dans le cas de Debian Lenny, il faut éditer le fichier /etc/default/dhcp3-server. Il est bien documenté et vous trouverez aisément la variable INTERFACES qu’il faut initialiser avec le nom de la ou des interfaces qui doivent êtres écoutées. Dans notre exemple, nous aurons :

INTERFACES="eth0"

Ce que nous écrivons dans dhcpd.conf

# La ligne qui suit est nécessaire. Elle est en rapport avec
# la mise à jour dynamique du DNS, que nous n'utiliserons pas
# pour l'instant.
ddns-update-style none;

# Ce serveur fait autorité sur le réseau
authoritative;

# Les options globales
option time-servers 192.168.0.252;
option domain-name "maison.mrs";
max-lease-time 3600;
default-lease-time 3600;
option domain-name-servers 192.168.0.252;
option subnet-mask 255.255.255.0;
option routers 192.168.0.252;

# le réseau 192.168.0.0/24, avec la réserve d'adresses dynamiques
subnet 192.168.0.0 netmask 255.255.255.0 {
    range dynamic-bootp 192.168.0.64 192.168.0.127;
}

Cette configuration simplissime va suffire à nos besoins.

Dans ce fichier, il y a des directives, qui sont obligatoires :

  • la directive ddns-update-style servira plus tard, ce sera la cerise sur le gâteau, pour ceux qui utilisent BIND 9 (le serveur DNS). Elle indique pour l’instant que nous ne ferons pas de mise à jour dynamique de DNS ;
  • Il existe une subtile différence entre les directives max-lease-time et default-lease-time (DHCP est plein de subtilités, pas toujours nécessaires dans un fonctionnement basique), la page man dhcpd.conf vous indiquera quelle est cette différence. Contentons nous pour l’instant d’assigner la même valeur aux deux, ici 3600 secondes.

Et des options qui seront dans la pratique, des paramètres de configuration optionnels. Ici :

  • domain-name-servers
    qui attribuera aux hôtes une adresse de DNS. Dans l’exemple, notre DNS à nous. Si nous n’en avons pas, il faudra ici mettre l’IP du DNS de notre fournisseur d’accès. Eventuellement, nous pouvons spécifier plusieurs DNS ;
  • domain-name
    est vraiment optionnel, ça permettra aux clients de savoir dans quel domaine ils sont enregistrés ;
  • routers
    c’est la passerelle par défaut. Il pourrait y avoir plusieurs routeurs, mais tous les systèmes ne savent pas gérer de façon efficace une information contenant plusieurs passerelles.

Toutes les options qui figurent avant le paragraphe subnet 192.168.0.0 netmask 255.255.255.0 sont des options globales, il n’y a ici aucune option d’étendue (de sous-réseau) de définie.

Cette configuration doit nous permettre d’être efficient dans notre contexte. Il nous suffit de lancer ou de relancer le serveur :

/etc/init.d/dhcpd restart

Et ça devrait rouler tout seul :cool: :mrgreen:.

Categories: Debian, Serveur, Tutoriaux Tags:

Compléments d’installation d’un serveur sous Debian Lenny

En premier lieu, connectez vous en root :

su

Configuration minimale

Nous désactivons la source CDROM d’apt de façon à obtenir tous nos paquets depuis l’internet (si vous lisez cette page, c’est que vous avez l’internet ;)).

NB : Cette méthode n’est valable que si vous avez fait une installation via un jeu de DVD ou CD. Si l’installation s’est déroulée via netinstall passez au paquet suivant.

sed -i -e 's/^\(deb cdrom\)/#\1/' /etc/apt/sources.list

et nous mettons à jour :

apt-get update

Nous installons ensuite le support du temps internet pour garder notre système à l’heure:

apt-get install ntp

Nous installons openssh-server et fail2ban pour avoir un accès ssh sécurisé à notre ordinateur :

apt-get install openssh-server fail2ban

Nous activons la colorisation de la commande ls:

/bin/cp /etc/skel/.bashrc $HOME
/bin/sed -i -e 's/^# \(.*\(LS_OPTIONS\|dircolors\).*\)$/\1/' $HOME/.bashrc

Personnellement, étant un vimiste, il me faut mon outil de travail :

/usr/bin/apt-get install vim

Si vous le souhaitez, vous pouvez mettre en place une configuration par défaut pour Vim. Personnellement, j’utilise :

echo "set list
set number
set expandtab
set tabstop=2
set softtabstop=2
set shiftwidth=2
set nobackup
set encoding=utf-8
set fileencoding=utf-8
syn on" >> $HOME/.vimrc

Une fois ceci fait, déconnectez-vous et reconnectez-vous.

Recevoir des rapports quotidiens sur le fonctionnement de votre serveur

Pour vous assurer que votre serveur fonctionne correctement, et qu’il ne subit ni attaque, ni disfonctionnement, il est important de le configurer pour envoyer régulièrement des rapports sur son fonctionnement. C’est ce que nous allons voir maintenant.

Redirection des emails du compte root

Un système Unix peut être assez bavard, et a tendance a envoyer tous les emails importants au compte Root. Il est très important de suivre ces emails. Pour ce faire, vous pouvez utiliser un lecteur d’e-mail en ligne de commande…. ou alors, rediriger les emails destinés au compte root de la machine vers votre email habituel.

Attention : Suivant la configuration du serveur SMTP de votre fournisseur de compte e-mail, les emails envoyés par votre machine peuvent être rejetés. Personnellement, je n’ai pas ces problèmes avec les comptes GMail.

En premier lieu, renseignez l’email que vous souhaitez utiliser :

ROOT_EMAIL=my-account@gmail.com

Et configurez la redirection des emails du compte Root vers cet email :

/bin/sed -i -e "s/^\\(root:\\).*\$/\\1 ${ROOT_EMAIL}/" \
         /etc/aliases

Surveillance des logs

Nous installons logwatch pour surveiller notre système. Le rapport fourni par ce logiciel nous renseigne sur les tentatives d’intrusions et les éventuels problèmes rencontrés par le système.

/usr/bin/apt-get install logwatch libdate-manip-perl

Vérification des mises à jour

Afin de recevoir des alertes lorsqu’il est nécessaire de mettre à jour votre Debian, installez cron-apt :

/usr/bin/apt-get install cron-apt

Et configurez le pour envoyer un e-mail au compte root lorsqu’une mise à jour est disponible :

/bin/sed -i -e 's/^#[ \t]*\(MAILTO="root"\)/\1/' \
       -e '/^#[ \t]*\(MAILON="error"\)/a\
MAILON="upgrade"' \
    /etc/cron-apt/config

Amélioration de la sécurité du serveur

Configuration de Fail2Ban

Depuis que j’ai découvert cet outil, il est devenu mon meilleur ami. Ce script surveille les fichiers journaux, et banni temporairement les IPs qui jouent un peu trop avec votre serveur. C’est un outil IN-DIS-PEN-SABLE si votre serveur est directement présent sur Internet. Si ce n’est déjà fait, installez-le :

/usr/bin/apt-get install fail2ban

Nous allons maintenant activer certaines configurations supplémentaires afin d’augmenter sa portée. En premier lieu, nous activons la protection contre les attaques en déni de service sur le SSH :

/bin/sed -i -e '/\[ssh-ddos\]/, /filter/ {0,/^enabled.*/ s//enabled = true/ }' /etc/fail2ban/jail.conf

Nous activons aussi la protection du système d’authentification PAM (vu que ce mécanisme est présent un peu partout dans un système UNIX, c’est quelquechose de très pratique XD):

/bin/sed -i -e '/\[pam-generic\]/, /filter/ {0,/^enabled.*/ s//enabled = true/ }' /etc/fail2ban/jail.conf

Enfin, nous redémarrons fail2ban pour prendre en compte les nouvelles configurations:

/etc/init.d/fail2ban restart

Rercherche de Root Kits avec RkHunter

Nous installons un outil de vérification de présence de root kits :

/usr/bin/apt-get install rkhunter libmd5-perl

Nous configurons rkhunter en fonction de notre système:

SSH_ROOT_ALLOWED=no
TEST_ROOT_ALLOWED=$(/bin/grep -i "PermitRootLogin.*yes" /etc/ssh/sshd_config)
if [ -n "$TEST_ROOT_ALLOWED" ]; then
  SSH_ROOT_ALLOWED=yes
fi
/bin/sed -i -e 's|^[#]*\(ALLOWHIDDENDIR=/dev/.udev\)$|\1|' \
            -e 's|^[#]*\(ALLOWHIDDENDIR=/dev/.static\)$|\1|' \
            -e 's|^[#]*\(ALLOWHIDDENDIR=/dev/.initramfs\)$|\1|' \
            -e "s|^[#]*\\(ALLOW_SSH_ROOT_USER=\\).*$|\\1${SSH_ROOT_ALLOWED}|" \
         /etc/rkhunter.conf

Au besoin, nous autorisons la présence de certains fichiers dans le dossier /dev :

if [ -e /dev/shm/network/ifstate ]; then
  /bin/sed -i -e '0,/ALLOWDEVFILE/{//a\
ALLOWDEVFILE=/dev/shm/network/ifstate
;}' \
           /etc/rkhunter.conf
fi

La version de RkHunter présente dans Debian 5.0 Lenny permet de maintenir une base de signature des fichiers importants basée sur les informations fournies par le gestionnaire de paquets Debian. Cette fonctionnalité est importante car elle permet de détecter plus rapidement les modifications du contenu de certains logiciels (ps, ls, etc…). Pour activer cette fonctionnalité, utilisez la ligne de commande suivante :

/bin/sed -i -e 's|^[#]*\(HASH_FUNC=\).*$|\1md5sum|' \
            -e 's|^[#]*\(PKGMGR=\).*$|\1DPKG|' \
    /etc/rkhunter.conf

Mettez à jour la base des menaces de RkHunter pour la première fois (par la suite elle est mise à jour chaque semaine):

/usr/bin/rkhunter --update

Si vous avez activé la fonctionnalité de vérification de la signature des fichiers, utilisez cette commande pour mettre à jour la base des signatures :

/usr/bin/rkhunter --propupdate

Afin de ne pas être forcé d’exécuter cette commande après chaque utilisation d’apt-get, faites en sorte qu’elle soit exécutée automatiquement :

/bin/echo '// Update rkhunter file signatures databases after running dpkg.
DPkg::Post-Invoke {
  "if [ -x /usr/bin/rkhunter ]; then if [ $(/usr/bin/rkhunter --help | /bin/grep "propupd" | /usr/bin/wc -l) -gt 0 ]; then /usr/bin/rkhunter --propupd; fi; fi";
};' | /usr/bin/tee /etc/apt/apt.conf.d/90rkhunter

Remarque: Pour connaître les informations que vous renverra RkHunter chaque jour, vous pouvez utiliser la commande:

/usr/bin/rkhunter --configfile /etc/rkhunter.conf --report-warnings-only --checkall

Remarque : il existe d’autres outils de recherches de root kits similaires à RkHunter. J’ai longtemps utilisé chkrootkit, mais comme il est impossible de le configurer proprement pour ignorer les faux positifs, j’ai fini par l’abandonner.

Accès SSH (optionnel, mais recommandé)

Si vous souhaitez améliorer encore la sécurité de votre serveur SSH, vous pouvez créé un utilisateur dédié pour l’accès SSH et interdire l’accès SSH au compte root. Une fois identifié sur le serveur, il vous suffira d’utiliser la commande “su” pour vous identifier avec le compte root.

Nous installons un outil de génération de mot de passes:

/usr/bin/apt-get install apg

Choisissez un mot de passe sécurisé. Pour créer un tel mot de passe, vous pouvez utiliser la commande suivante:

/usr/bin/apg -q -a  0 -n 1 -M NCL

Nous créons un compte utilisateur sans privilèges (remplacez “myuser” par le login de votre choix):

/usr/sbin/adduser myuser

Configurez le serveur SSH de façon à ce qu’il n’accepte pas les connexions avec l’utilisateur root. Utilisez pour ce faire les lignes de commande suivantes:

/bin/sed -i -e 's/PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
/etc/init.d/ssh restart

Attention: Ne faites ceci que si vous disposez d’un autre compte que le compte root sur la machine. Si vous ne disposez pas d’un compte utilisateur normal, votre machine ne sera plus accessible par SSH (La création d’un tel utilisateur est faite par la commande “adduser” ci-dessus).

Autres outils

Détection des intrusions

Nous installons snort pour surveiller les tentatives d’intrusion sur notre système. Vous recevrez alors un résumé quotidien des alertes de sécurité.

/usr/bin/apt-get install snort

Protection contre les recherches de ports ouverts (port scanning)

PortSentry permet de se protéger contre les scanners de ports. En premier lieu, il vous l’installer :

DEBIAN_FRONTEND='noninteractive' apt-get install portsentry iptables

Une fois ceci fait, il est nécessaire de configurer proprement portsentry avant de l’activer. La première chose à faire est de faire en sorte que PortSentry ignore votre adresse IP. Cela vous évitera d’être banni de votre propre serveur. En premier lieu, il vous faut entrer votre adresse IP (fixe de préférence):

  • Si vous êtes identifé en SSH avec le compte root, il vous suffit d’utiliser la commande suivante :
    PROTECTED_IP=$(/usr/bin/who --ips | /bin/grep root | /usr/bin/cut --characters=40-)
    /bin/echo "Votre adresse IP est : ${PROTECTED_IP}."
  • Dans tous les autres cas, rentrez votre adresse IP manuellement :
    PROTECTED_IP=83.243.21.40

Vous pouvez maintenant ajouter l’adresse IP à la liste des adresses IP ignorées par PortSentry :

/bin/echo "
# Ignoring root account owner IP:
${PROTECTED_IP}" \
    | /usr/bin/tee -a /etc/portsentry/portsentry.ignore.static

A présent, activez le bloquage des scans de ports TCP et UDP :

/bin/sed -i -e 's/^BLOCK_UDP=.*/BLOCK_UDP="1"/' \
            -e 's/^BLOCK_TCP=.*/BLOCK_TCP="1"/' \
         /etc/portsentry/portsentry.conf

Configurez PortSentry pour utiliser “iptables” plutôt que “route” pour bloquer les attaques :

/bin/sed -i -e 's/^KILL_ROUTE=.*$/#\0/' \
            -e '0,/^[\t #]*\(KILL_ROUTE=.*iptables[^\&]*\)$/s//\1/' \
         /etc/portsentry/portsentry.conf

Activez le mode de détection avancé de PortSentry :

/bin/sed -i -e 's/^TCP_MODE.*$/TCP_MODE="atcp"/' \
            -e 's/^UDP_MODE.*$/UDP_MODE="audp"/' \
         /etc/default/portsentry

Enfin, redémarrez PortSentry :

/etc/init.d/portsentry restart

:cool: :razz:

Categories: Debian, Serveur, Tutoriaux Tags:

Radio et TV en direct sur internet

Je suis un fan de musique surtout pendant que je travaille sur un logiciel ou que j’administre l’un de mes serveurs :eek:. Je cherchais une solution simple, ne consommant pas beaucoup de ressources. Comme souvent avec les logiciels libres, j’ai fini par trouver cette perle rare. C’est avec une grande joie que je vous partage cette découverte. A consommer sans modération……..:cool:.

Nous allons d’abord nous assurer que vous disposez des packages nécessaires pour le faire tourner…

- Avec Synaptic, assurez vous que vous avez les packages suivants d’installés :

  • ffmpeg
  • mplayer
  • mimms
  • w32codecs
  • wget

- vous pouvez télécharger dans votre répertoire le script à cette adresse.

Pour lancer le script :

Suite à de passionnants échanges dans ce forum, différentes pistes ont été trouvées :

- tout d’abord :

  • Rendre le fichier exécutable
  • Faire un clic droit sur le fichier
  • Sélectionner Propriétés
  • Avec Ubuntu, allez dans l’onglet “Permissions” est cochez “Exécution”
  • Avec Kubuntu, allez dans l’onglet “Droits d’accès” et cocher “est exécutable”

Ouvrir une console (terminal gnome ou Konsole) et tapez à l’invite :

ls

si le fichier radios.sh est dans votre répertoire perso, vous devriez le voir dans la liste :)

on va le mettre dans /usr/local, prêts ?

sudo mv radios.sh /usr/local

La commande mv (move) sert à déplacer (entre autres).

Nous allons maintenant créer un lien symbolique pour démarrer le script plus rapidement :

sudo ln -s /usr/local/radios.sh /usr/local/bin/radios

Enfin, lancer la première fois le script pour récupérer la liste des radios :

radios

et accepter de télécharger la liste des radios en saisissant “o”.

La liste des radios est alors disponible dans le fichier “radios.csv” du dossier “.radios” de votre compte utilisateur, vous pouvez modifier cette liste à votre guise avec une des commandes ci-dessous :

- kedit ~/.radios/radios.csv
- gedit ~/.radios/radios.csv
- pico ~/.radios/radios.csv

Categories: Logiciels Libres, Musique, Tutoriaux, Ubuntu Tags:

Installation de Spamassassin et Clamav avec Postfix sous Debian Lenny (5.0)

Ce document est basé sur la dernière version Debian (5.0 / Lenny), ce qui devrait lui assurer une bonne durée de vie ;-) . Toutes les applications utilisées sont disponibles sous forme de packages officiels (c’est plus simple pour les mises à jour).

logo_debian1

Les pré-requis sont les suivants :

  • Une distribution Linux Debian 5.0 fonctionnelle ;
  • Un serveur Postfix en état de fonctionnement et configuré selon vos besoins (ce document ne traitera pas de la configuration de Postfix – mais si vous avez des questions je pourrais peut être vous aider …).

Petit rappel sur les différents éléments utilisés :

  • ClamAV : anti-virus Open Source (plus d’infos ICI)
  • SpamAssassin : anti-spam Open Source (plus d’infos ICI)
  • Amavisd-New : module réalisant l’interface entre Postfix les modules de filtrage SpamAssassin et ClamAV (plus d’infos ICI)

C’est parti …

  • Installation Amavisd-New et ClamAV

apt-get install amavisd-new clamav clamav-daemon

L’installeur va vous poser des questions, normalement les réponses par défaut devraient convenir.

  • Il faut ajouter l’utilisateur clamav au groupe amavis

addgroup clamav amavis

  • Il faut modifier le fichier /etc/amavis/conf.d/15-content_filter_mode
  • Décommentez les deux lignes suivantes (pour autoriser le filtrage anti-virus) :

@bypass_virus_checks_maps = (
\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);

  • Et celles-ci (pour autoriser le filtrage anti-spam) :

@bypass_spam_checks_maps = (
\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);

  • Téléchargez et installez “spamassassin

apt-get install spamassassin

  • Dans “/etc/default/spamassassin

modifiez “ENABLED=1″
modifiez “OPTIONS=”–max-children 5 –helper-home-dir” (remplacez 5 par le nombre de process de “spamd” devant fonctionner simultanéement)

  • Ajoutez la ligne suivante dans le fichier “/etc/postfix/main.cf

content_filter = smtp-amavis:[127.0.0.1]:10024

  • Ajoutez les lignes suivantes dans le fichier “/etc/postfix/master.cf

(attention à bien conserver un espace avant chaque “-o”)

smtp-amavis unix - - y - 2 smtp
      -o smtp_data_done_timeout=1200
      -o disable_dns_lookups=yes

127.0.0.1:10025 inet    n       -       y       -       -       smtpd
      -o content_filter=
      -o local_recipient_maps=
      -o relay_recipient_maps=
      -o smtpd_restriction_classes=
      -o smtpd_client_restrictions=
      -o smtpd_helo_restrictions=
      -o smtpd_sender_restrictions=
      -o smtpd_recipient_restrictions=permit_mynetworks,reject
      -o mynetworks=127.0.0.0/8
      -o strict_rfc821_envelopes=yes
  • Et enfin pour bénéficier de toutes les fonctionnalités d’Amavis, il faut lui indiquer le (ou les) domaines gérés sur ce serveur (en terme de courrier bien sûr)
  • Ajouter dans le fichier “/etc/amavis/conf.d/05-domain_id” :

@local_domains_maps = ( [ '.domain1.com', '.domain2.com', '.domain3.com' ] );

  • On relance tout le bazar :

/etc/init.d/spamassassin restart
/etc/init.d/clamav-daemon restart
/etc/init.d/amavis restart
postfix reload

  • Pour s’assurer qu’Amavis prenne bien en charge ClamAV et Spamassassin, aprés avoir relancé Amavis (étape précédente) on doit retrouver les lignes suivantes dans les logs du serveur de mail (normalement /var/log/mail.info)

Jul 15 11:44:37 hostname amavis[26709]: ANTI-VIRUS code loaded
Jul 15 11:44:37 hostname amavis[26709]: ANTI-SPAM-SA code loaded
Jul 15 11:44:37 hostname amavis[26709]: Using internal av scanner code for (primary) ClamAV-clamd
Jul 15 11:44:37 hostname amavis[26709]: Found secondary av scanner ClamAV-clamscan at /usr/bin/clamscan

  • Il est également plus prudent de tester un envoi de mail avec la chaîne de test “EICAR” (allez faire un tour sur www.eicar.com), puis allez jeter un oeil sur les logs de Postfix :

Jul 15 14:02:41 hostname amavis[13251]: (13251-01) Blocked INFECTED (Eicar-Test-Signature), [192.168.0.1] <nom@domaine.fr> -> <test@testmail.fr>, quarantine: virus-lFDtkSo0b4vz, Message-ID: <20070509120235.D8AF02AA74@hostname>, mail_id: lFDtkSo0b4vz, Hits: -, 125 ms

  • On peut également tester l’anti-spam avec l’envoi d’un message contenant la chaine de test suivante : XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

On doit retrouver un truc comme ça dans les logs de Postfix :

Jul 15 14:24:45 hostname amavis[6446]: (06446-02) Blocked SPAM, [192.168.0.1] <nom@domaine.fr> -> <test@testmail.fr>, quarantine: spam-atCf69YINh+q.gz, Message-ID: <20070509122435.87ED32AA74@hostname>, mail_id: atCf69YINh+q, Hits: 1004.184, 2128 ms

Vous disposez désormais d’une solution de filtrage anti-virus et anti-spam fonctionnelle :cool:!

Categories: Debian, Logiciels Libres, Serveur, Tutoriaux Tags:

Bienvenue sur ce blog

C’est un blog, vous l’avez constaté. Il est simple. Il est là pour me servir d’aide-mémoire notamment pour les tutoriaux et aussi pour partager mes modestes connaissances sur les logiciels libres et notre OS favoris Debian avec vous.

Categories: Nouvelles Tags: