Archive pour mars 2009

OVH : Sécurisation du serveur Mandriva (SSH, firewall iptables, fail2ban…)

Avant d’aller plus loin dans l’ajout de services (mail par exemple), je vous propose un petit article sur la sécurisation d’un serveur.

Mon article est tiré du très bon site alsacration que nous connaissons tous !

  1. SSH
    Ce service est installé par défaut avec votre distribution Mandriva sur les serveurs OVH. Par mesure de sécurité, il est conseillé de changer le port d’écoute. Par défaut, on est sur le port 22. Pour la suite de ce tutoriel, je vais configurer ssh sur le port 2222. Ceci est modifiable dans le fichier etc/ssh/sshd_config . Rechercher le paramètre port et modifier 22 en 2222.
  2. vi /etc/ssh/sshd_config

    Port 2222 # Changer le port par défaut
    PermitRootLogin no # Ne pas permettre de login en root
    Protocol 2 # Protocole v2
    #AllowUsers MONUSER # N'autoriser qu'un utilisateur précis

    Redémarrez le service SSH après ces modifications :
    /etc/init.d/ssh restart

  3. IPtables / Netfilter
    Iptables est le module qui fournit à Linux les fonctions de pare-feu, de traduction d’adresse et d’historisation du trafic réseau. Netfilter fonctionne en mode noyau. Il intercepte et manipule les paquets IP avant et après le routage.

    iptables est la commande qui permet à un administrateur réseaux de configurer Netfilter en espace utilisateur. iptables configure la gestion des paquets réseaux IPv4. Pour la gestion des paquets réseaux IPv6, on utilise la commande ip6tables.

    Nous allons créer un script qui sera lancé à chaque démarrage pour mettre en place des règles de base.

    vi /etc/init.d/firewall

    #!/bin/sh

    # Vider les tables actuelles
    iptables -t filter -F

    # Vider les règles personnelles
    iptables -t filter -X

    # Interdire toute connexion entrante et sortante
    iptables -t filter -P INPUT DROP
    iptables -t filter -P FORWARD DROP
    iptables -t filter -P OUTPUT DROP

    # —

    # Ne pas casser les connexions etablies
    iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -m state –state RELATED,ESTABLISHED -j ACCEPT

    # Autoriser loopback
    iptables -t filter -A INPUT -i lo -j ACCEPT
    iptables -t filter -A OUTPUT -o lo -j ACCEPT

    # ICMP (Ping)
    iptables -t filter -A INPUT -p icmp -j ACCEPT
    iptables -t filter -A OUTPUT -p icmp -j ACCEPT

    # —

    # SSH In
    iptables -t filter -A INPUT -p tcp –dport 2222 -j ACCEPT

    # SSH Out
    iptables -t filter -A OUTPUT -p tcp –dport 2222 -j ACCEPT

    # DNS In/Out
    iptables -t filter -A OUTPUT -p tcp –dport 53 -j ACCEPT
    iptables -t filter -A OUTPUT -p udp –dport 53 -j ACCEPT
    iptables -t filter -A INPUT -p tcp –dport 53 -j ACCEPT
    iptables -t filter -A INPUT -p udp –dport 53 -j ACCEPT

    # NTP Out
    iptables -t filter -A OUTPUT -p udp –dport 123 -j ACCEPT

    # HTTP + HTTPS Out
    iptables -t filter -A OUTPUT -p tcp –dport 80 -j ACCEPT
    iptables -t filter -A OUTPUT -p tcp –dport 443 -j ACCEPT

    # SERVEUR Web
    # HTTP + HTTPS In
    iptables -t filter -A INPUT -p tcp –dport 80 -j ACCEPT
    iptables -t filter -A INPUT -p tcp –dport 443 -j ACCEPT
    iptables -t filter -A INPUT -p tcp –dport 8443 -j ACCEPT

    # FTP Out
    iptables -t filter -A OUTPUT -p tcp –dport 20:21 -j ACCEPT

    # serveur FTP
    # FTP In
    iptables -t filter -A INPUT -p tcp –dport 20:21 -j ACCEPT
    iptables -t filter -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

    # Mail SMTP:25
    iptables -t filter -A INPUT -p tcp –dport 25 -j ACCEPT
    iptables -t filter -A OUTPUT -p tcp –dport 25 -j ACCEPT

    # Mail POP3:110
    iptables -t filter -A INPUT -p tcp –dport 110 -j ACCEPT
    iptables -t filter -A OUTPUT -p tcp –dport 110 -j ACCEPT

    # Mail IMAP:143
    iptables -t filter -A INPUT -p tcp –dport 143 -j ACCEPT
    iptables -t filter -A OUTPUT -p tcp –dport 143 -j ACCEPT

    # Mail POP3S:995
    iptables -t filter -A INPUT -p tcp –dport 995 -j ACCEPT
    iptables -t filter -A OUTPUT -p tcp –dport 995 -j ACCEPT

    chmod +x /etc/init.d/firewall pour rendre ce fichier exécutable
    puis /etc/init.d/firewall pour le lancer.
    (au prochain reboot, toutes vos règles seront perdues…l’article de référence vous explique comment lancer ces règles au démarrage)

  4. Fail2ban
    Fail2ban est un script surveillant les accès réseau grâce aux logs des serveurs. Lorsqu’il détecte des erreurs d’authentification répétées, il prend des contre-mesures en bannissant l’adresse IP grâce à iptables. Cela permet d’éviter nombre d’attaques bruteforce et/ou par dictionnaire.

    Installation

    urpmi fail2ban

    Configuration

    vim /etc/fail2ban/fail2ban.conf
    vim /etc/fail2ban/jail.local

    Attention, si vous souhaitez surveiller ssh, attention à bien changer le port dans jail.local !
    Pour relancer le service /etc/init.d/fail2ban restart

  5. Rkhunter

    Rootkit Hunter est un programme de détection de rootkits. Vous pouvez l’installer grâce à :

    urpmi rkhunter

    Les 2 fichiers principaux de configuration sont /etc/default/rkhunter et /etc/rkhunter.conf

  6. Voilà…La suite au prochain épisode ;)

Pas de commentaire

OVH : Installation d’un serveur FTP sous Mandriva 2009

Voici un mini tutoriel sur la configuration d’un serveur ftp.
En préambule, je vais créer un utilisation ohan avec les privilèges sudo ( si sudo ne vous intéresse pas, toutes ces manips peuvent se faire en tant que root.

  • urpmi sudo
  • adduser ohan
  • passwd ohan
  • echo “ohan ALL=(ALL) ALL” >> /etc/sudoers
  • Voilà, mon utilisateur ohan peut avoir les droits root.

  • Pour lister les paquetages relatifs à proftpd (c’est le serveur que je veux installer
  • urpmq -y proftpd
    gadmin-proftpd
    proftpd
    proftpd-debug
    proftpd-devel
    proftpd-mod_autohost
    proftpd-mod_ban
    proftpd-mod_case
    proftpd-mod_clamav
    proftpd-mod_ctrls_admin
    proftpd-mod_gss
    proftpd-mod_ifsession
    proftpd-mod_ldap
    proftpd-mod_load
    proftpd-mod_quotatab
    proftpd-mod_quotatab_file
    proftpd-mod_quotatab_ldap
    proftpd-mod_quotatab_radius
    proftpd-mod_quotatab_sql
    proftpd-mod_radius
    proftpd-mod_ratio
    proftpd-mod_rewrite
    proftpd-mod_shaper
    proftpd-mod_site_misc
    proftpd-mod_sql
    proftpd-mod_sql_mysql
    proftpd-mod_sql_postgres
    proftpd-mod_time
    proftpd-mod_tls
    proftpd-mod_vroot
    proftpd-mod_wrap
    proftpd-mod_wrap_file
    proftpd-mod_wrap_sql

    Pour cet article, je vais juste installer proftpd mais gardons au chaud celui ci : proftpd-mod_sql

  • urpmi proftp pour lancer l’installation
  • /etc/init.d/proftpd start pour le démarrer
  • Et voilà, c’est installé. Pour obtenir des détails sur la configuration de ce serveur, je vous conseille le site officiel.

    Pour tester :

  • ftp “URL du Serveur”
  • Répondre au question de login et password (pour éviter de taper ces informations, vous pouvez compléter le fichier ~/.netrc (Ce fichier contient des séquences de connexions automatiques à des sites distants pour transfert de fichiers)

  • machine ftp.mandrivakimsufi.com
    login ohan
    password cestsecret

    Et voilà…alors, Mandriva sur votre serveur, c’est pour bientôt ?

    (Prochaine leçon, le serveur de mail)

    Pas de commentaire

    [mis à jour] OVH : The perfect Mandriva LAMP server

    J’ai recu ce soir un kimsufi 2XL 64 bits (Merci Germain) fraîchement installé avec Mandriva 2009.0 Free.
    J’ai bien envie, si le temps me le permet, de vous proposer une série de mini tutoriels sur l’installation de divers stacks serveur.
    Le premier est sur Apache/Php et Mysql…

    Le serveur est configuré avec les sources Mandriva par défaut. Il n’y a donc rien à faire de plus pour commencer l’installation de ma brique LAMP.

    Occupons nous de mysql (car le méta-package task-lamp ne semble pas installer mysqld comme le confirme ce bug ouvert depuis mai 2008 ou le svn ) :

    urpmi MySQL MySQL-client libmysql15-devel

    Après quelques secondes, mysql est installé. N’oublions pas d’ajouter un mot de passe pour le compte root :

    /usr/bin/mysqladmin -u root password 'NEW_PASSWORD'

    On peut maintenant démarrer son serveur mysql

    /etc/init.d/mysqld start

    et tester si ca fonctionne :
    mysql -uroot -p -hlocalhost

    et voilà, mysql-server est installé.

    Occupons nous de apache et php

    Je profite de ce billet pour un petit rappel sur urpmi et ses dérivées…

    [root@serv ~]# urpmq -y php | grep task
    task-lamp-php

    Cette commande nous permet de savoir quel meta paquet contient php !
    Il ne nous reste plus qu’à l’installer
    # urpmi task-lamp-php

    Une fois installé, on démarre apache

    /etc/init.d/httpd start

    Je vais terminer par l’installation de phpmyadmin et de wordpress (moteur de blog)

    urpmi phpmyadmin
    installé vers http://IPserveur/phpmyadmin
    L’installation et la première connexion se déroulent sans aucun problème. Passons à wordpress

    urpmi wordpress
    installé vers http://IPserveur/wordpress

    Et là, c’est le drame !

    Sorry, I can’t write to the directory. You’ll have to either change the permissions on your WordPress directory or create your wp-config.php manually.

    Pas de panique, il faut juste changer des droits du répertoire d’install de WP ! Mais où sont installés les fichiers ???
    La commande rpm -ql wordpress nous permet d’identifier les fichiers installés contenu dans le paquet wordpress.

    En peut voir que WP est copié dans

    /var/www/wordpress

    Donc chown -R apache /var/www/wordpress pour changer le proprio du dossier et le tour est joué…

    Vos commentaires sont les bienvenus !

    La prochaine leçon : Le serveur de mails et un webmail !

    (Edit : explication du pourquoi de l’installation du serveur mysql en plus de task-lamp)

    , ,

    Pas de commentaire

    Un serveur dédié (dédié ou kimsufi) chez OVH avec Mandriva 2009 à partir de 19 Euros/mois

    Vous en avez rêvé, OVH l’a fait !
    Depuis peu, vous pouvez commander vos dédiés avec Mandriva 2009 pré-installé.

    Les peintures sont encore un peu fraîche (marketing/communication autour de cette nouvelle offre en cours de rédaction) comme l’indique cette page:

    On attend tous vos retours sur http://forum.ovh.com/showthread.php?t=45116

    2 commentaires