RSS Feed

Archives de la catégorie ‘Tutoriels’

Création d’un serveur FTP sécurisé sous ubuntu-debian VSFTPD

29 mars 2011 par la rédac Pas de commentaire »

logo_vsftpdLa création d’un serveur FTP est une étape importante pour qui veut faire du web, il existe bien d’autre système pour faire du transfert de fichier mais celui-ci est le plus simple.

Ce n’est pas le plus sécurisé tout de même. En effet un serveur FTP classique comme proftpd envoie les informations de connexion en clair! Donc si vous utiliser un réseau public, réfléchissez bien avant de vous connecter à votre serveur FTP quelqu’un de mal intentionné pourrait sniffer le réseau pour récupérer vos identifiants de connexion.

Il existe tout de même un logiciel capable d’encrypter la phase d’authentification c’est vsftpd pour Very Secure FTPD.  Il fait se que l’on appelle du FTPS ou encore SFTP c’est-à-dire qu’il utilise le protocole SSL/TLS .

Si vous êtes sous debian ou ubuntu:

(sudo pour les ubuntiens)

#apt-get clean && apt-get update && apt-get install vsftpd

Maintenant que vsftpd est installer il reste à le configurer, sa configuration est simple tout se passe dans le fichier /etc/vsftpd.conf.

Décryptons ensemble ce qu’il contient:

Représente le STANDALONE donc le fait qu’il tourne comme un service à part entière
listen=YES

Représente le STANDALONE en IPV6 donc le fait qu’il tourne comme un service à part entière
#listen_ipv6=YES

Acceptez-vous les connexions en mode anonyme
anonymous_enable=YES

Acceptez-vous que les utilisateurs locaux du système se connecte avec leur accès respectifs
#local_enable=YES

Laissez-vous la possibilité d’exécuter des commandes sur le serveur FTP
#write_enable=YES

Acceptez-vous que les utilisateurs anonymes dépose des fichiers sur le serveur
#anon_upload_enable=YES

Acceptez-vous que les utilisateurs anonymes créés des dossiers sur le serveur
#anon_mkdir_write_enable=YES
#
Voulez-vous activer les messages pour chaque dossiers
dirmessage_enable=YES

Activation des log sur upload et le download
xferlog_enable=YES

Autorisez-vous la connexion active entre le serveur et le client sur le port 20
connect_from_port_20=YES

Pour les upload anonymes vous pouvez utiliser un user système différent. NE PAS UTILISER ROOT
#chown_uploads=YES
#chown_username=whoever
Fichier de log
#xferlog_file=/var/log/vsftpd.log
Utilisation du format par défaut des log
#xferlog_std_format=YES
Temps avant déconnexion sur une session inactive
#idle_session_timeout=600
Temps avant déconnexion sur une session active
#data_connection_timeout=120
Définition recommendé d’un user unique pour le compte ftp n’ayant aucun privilège sur le système
#nopriv_user=ftpsecure 

Message d’accueil
#ftpd_banner=Welcome to blah FTP service.

Voulez-vous chrooter les users
#chroot_local_user=YES

Liste des users chrooter
#chroot_list_file=/etc/vsftpd.chroot_list 

Voulez-vous autoriser le listage des sous répertoire de manière recursive
#ls_recurse_enable=YES

Chrooter le service
secure_chroot_dir=/var/run/vsftpd 

Nom du service PAM
pam_service_name=vsftpd

Path du certificat RSA
rsa_cert_file=/etc/ssl/certs/vsftpd.pem

VSFTPD est un outil extrêmement sécurisé et pratique pour des besoins FTP classiques. Il est robuste et ne nécessite pas de grosse ressource système.
Pour un petit serveur perso il est très pratique surtout pour les personnes utilisant un réseau wifi.

 

 

 

Denyhosts: la fin des attaques en brute de force

28 mars 2011 par la rédac Pas de commentaire »

Le logiciel d’aujourd’hui est denyhosts logiciel OpenSource permettant de bloquer des utilisateurs un peu trop curieux.

Il lit les log du fichier auth.log afin de voir qi un petit malin tente une attaque par brute de force sur vos services. Surtout sur SSH, au bout de quelques connexions ratées, l’IP du visiteur est ajoutée au fichier /etc/deny.hosts.

Pour les log de FEDORA
#SECURE_LOG = /var/log/secure# Pour les log de Mandrake, FreeBSD or OpenBSD:
#SECURE_LOG = /var/log/auth.log 

Pour les log de SuSE
#SECURE_LOG = /var/log/messages

Pour les log de Mac OS X (v10.4 or greater -
#SECURE_LOG = /private/var/log/asl.log

Pour les log de  Mac OS X (v10.3 or earlier):
#SECURE_LOG=/private/var/log/system.log

Pour les log de Debian:
SECURE_LOG = /var/log/auth.log

Inscription des IP bannies dansle fichier suivant
HOSTS_DENY = /etc/hosts.deny
Parfois le fichier /etc/deny n’existe pas, le système utilise celui-ci pour BSD (FreeBSD)
#HOSTS_DENY = /etc/hosts.allow 

Et parfois pour d’autre
#HOSTS_DENY = /etc/hosts.evil

Le fichier n’est jamais purgé
PURGE_DENY =
Le fichier sera purgé au bout d’une semaine
#PURGE_DENY = 1w
Le fichier sera purgé tous les 5  jours
#PURGE_DENY = 5d
L’IP bannie pourra être purgée indéfiniement
#PURGE_THRESHOLD = 0
L’IP ne sera purgée que 2 fois après celle-ci sera bannie pour toujours
#PURGE_THRESHOLD = 2
 

Interdit l’accès à tous les services accessibles (pas seulement celui-ci attaqué)
BLOCK_SERVICE = ALL
Bloque uniquement pour SSH
#BLOCK_SERVICE  = sshd

Bannie l’IP au bout de 5 tentatives infructueuses de login sur un compte non existant
DENY_THRESHOLD_INVALID = 5
Bannie l’IP au bout de 10 tentatives infructueuses sur un compte existant sauf root
DENY_THRESHOLD_VALID = 10
Bannie l’IP au bout d’une seule erreur sur le compte root
DENY_THRESHOLD_ROOT = 1
Permet de vérifier si un domaine est associé à l’IP attaquante
HOSTNAME_LOOKUP=YES
Comme tout bon logiciel des fichier de lock sont généré pendant le traitement du soft
Pour FEDORA ou Redhat
#LOCK_FILE = /var/lock/subsys/denyhosts
Pour Debian/Ubuntu
LOCK_FILE = /var/run/denyhosts.pid
Pour les autres
#LOCK_FILE = /tmp/denyhosts.lock
 

E-mail qui doit recevoir les alertes
ADMIN_EMAIL = toto@toto.com
Configuration du serveur smtp
SMTP_HOST = localhost
SMTP_PORT = 25
A utiliser si le serveur requiert une authentification avant l’envoi
#SMTP_USERNAME=foo
#SMTP_PASSWORD=bar
Configuration de l’expediteur
SMTP_FROM = DenyHosts <nobody@localhost>
Sujet du mail
SMTP_SUBJECT = DenyHosts Report
Format de la date
#SMTP_DATE_FORMAT = %a, %d %b %Y %H:%M:%S %z
Inscription dans le fichier du log
#SYSLOG_REPORT=YES

Période après laquelle un user autre que root existant pourra tenter de se reconnecter après son bannissement temporaire
AGE_RESET_VALID=5d
Période après laquelle  root pourra tenter de se reconnecter après son bannissement temporaire
AGE_RESET_ROOT=25d

Réinitiliase ou pas après une connexion réussie, je vous conseille fortement de ne pas changer la valeur de ce paramètre.
#RESET_ON_SUCCESS = yes

Cette option permet d’appeler un script après un bannissement d’IP
#PLUGIN_DENY=/usr/bin/true
Cette option permet d’appeler un script après une purge d’IP bannie
#PLUGIN_PURGE=/usr/bin/true 

Log les actions de  DenyHost dans /var/log/denyhosts
DAEMON_LOG = /var/log/denyhosts

Désactive le loggage des actions
#DAEMON_LOG =
Format des dates des log
#DAEMON_LOG_TIME_FORMAT = %b %d %H:%M:%S
Période pendant laquelle DenyHost ne met pas à jour ses fichiers suite à un clean des IP bannies
DAEMON_SLEEP = 30s
 

Temps entre chaque clean des IP bannies
DAEMON_PURGE = 1h
Permet de synchroniser son daemon DenyHost avec un autre ici celui de chez denyhost.net en protocole XML RPC
#SYNC_SERVER = http://xmlrpc.denyhosts.net:9911
Interval entre 2 synchonisations
#SYNC_INTERVAL = 1h

Voulez-vous transmettre les IP bannies au serveur précisez au-dessus (pensez à vérifier les droits du serveur distant)
#SYNC_UPLOAD = yes
Pouvez-vous télécharger son fichier pour l’ajouter au votre
#SYNC_DOWNLOAD = no
Maintenant votre sshd est protégé contre les attaques brutes de force mais par contre le social enginneering ou autre récupération de mot de passe.
PS: Si vous souhaitez votre nouveau logiciel, un conseil ne le faite pas de votre IP vous seriez bannie…
 

Tutoriels

24 mars 2011 par la rédac Pas de commentaire »

Beaucoup de tuto existent et sur tous les logiciels alors pourquoi encore un autre blog ?

Parce que j’en ai envie… et aussi parce que je pense pouvoir expliquer différemment certaines choses.

(Premier article et déjà modeste)