Personal tools
You are here: Home GNU / Linux Debian 4.0 Etch Compléments à l'installation d'une Debian 4.0 Etch ou 5.0 Lenny
Document Actions
  • Send this page to somebody
  • Print this page
  • Add Bookmarklet

Compléments à l'installation d'une Debian 4.0 Etch ou 5.0 Lenny

by admin last modified 2012-12-19 21:03

Vous trouverez dans cet article la liste des paquets que j'installe en plus de l'installation par défaut de Etch et Lenny.

Ce guide est obsolète. Reportez-vous à la nouvelle version disponible sur le Biapy Help Desk.

 Compléments à l'installation de Debian GNU/Linux

 

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 ;)

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

Reportez vous à mon guide Installer Rootkit Hunter sur Debian.

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

Sources:

Encore un peu plus loin :)

Enfin, je vous conseille de suivre les guides suivants pour compléter et améliorer votre système:

Pour aller plus loin

Afin d'améliorer de manière encore plus poussée votre système, je vous conseille ces deux lectures :

Cette dernière est vraiment importante pour protéger votre système des attaques des pirates.

PortSentry + snort

Posted by Jérôme at 2009-06-15 08:57
Salut,

N'ayant pas d'ip fixe (numéricable :( ) Puis-je remplacer l'ip (pour PortSentry) par un nom de domaine DDNS? Étant donné que mon routeur met tout seul à jour le ddns lorsque mon ip change (tout les deux mois~, ça sert à rien mais c'est numéricable :/ ) je pourrais utiliser cet outil sans risque.
Si oui il y a t il une méthode? Et si non, il y a t il une méthode pour bidouiller?
J'ai maintenant plusieurs serveurs, et ils sont tous soumis aux attaques incessantes, et un outils en plus ne sera pas de trop....

Quand à snort, je l'avais déjà testé, ne fournit pas t il plus d'infos qu'il faudrait? (en fait il surveille tout le réseau...)
Toi même l'utilises tu sur toutes tes installations? Que me conseils tu?

Merci d'avance ;)

portsentry

Posted by lwolf at 2009-06-15 09:36
Salut,

j'ai laissé tombé l'utilisation de portsentry et snort car trop contraignant. De plus, c'est assez inutile chez moi, car mes serveurs sont tous dans des machines virtuelles, et j'utilise iptables pour ouvrir ou non les ports adéquats :) Xen powa !.

Si ton serveur subit beaucoup d'attaques, il existe des regles netfilter / iptables pour protéger ton serveur.

Bon courrage

serveur mail

Posted by Gonzague at 2009-07-31 22:52
tiens à aucun moment dans cette affaire tu ne nous fais installer un serveur mail .. :-D

donc ... le serveur ne pourra jamais rien envoyer ?

Exim est installé par défaut

Posted by Lone Wolf at 2009-08-01 05:36
Normalement Exim est installé par défaut sur Debian. Je fait juste mettre en place une redirection des mails root vers un email externe. D'après mon expérience, ca marche souvent tout seul.

besoin d'aide pour mettre en pratique ce magnifique tuto...

Posted by Bobby at 2010-11-26 06:42
Salut !
ton tuto est super intéressant, mon problème c'est que je suis SUPER-Débutant en serveur et je ne comprends pas comment reproduire ton tuto, en particulier les bouts de codes (en gris) ... C'est à dire, quand c'est tout simple genre justee une commande à lancer dans un terminal ça va, j'arrive à suivre. Mais quand y a des scripts compliqués sur plusieurs lignes (compliqué pour moi = autre chose que echo "hello world"; ;)) bref je ne comprends pas si je dois copier à partir de mon prompt dans le terminal toutes les lignes à la suite ? ou mettre ça dans des fichiers (je ne sais pas lesquels du coup).
Donc en fait y a des trucs que je comprends (par exemple la config de vim avec le >> , ça veut dire que je vais coller les lignes avant le >> dans le fichier de conf de vim à savoir le fichier .vimrc de mon home. Bon. Ok. Mais très vite je suis perdu.
Genre la config de rkhunter ... sos ... comprends rien à ce que ça veut dire, mais même simplement reproduire je sais pas faire :S
Need help...
Merci d'avance
Bob

Copier / coller

Posted by Pierre-Yves Landuré at 2010-11-26 11:03
Mes guides sont prévus pour être utilisés en copier coller. les textes en gras sont les textes nécessitant une personnalisation.

Vous trouverez une explication concise dans l'article : http://howto.landure.fr/gnu-linux/ubuntu-edgy-eft/gnu-linux/comment-utiliser-mes-manuels

Bonne continuation.

BlogBang
Navigation
 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards:

Wikio