Hoang-Quang Dao

Donner une énergie plus positive : vouloir proposer, partager, créer du lien… mon blog.

Posts Tagged ‘Debian’

Sécurisation de vsftpd avec fail2ban

Posted by hoangquangdao sur 1 décembre 2012

Après avoir installer vsftpd, il est bien utile de le sécuriser car un serveur FTP est une porte ouverte sur Internet.

Fail2Ban va sécuriser l’accès en vérifiant les connexions et bannir les IP qui échouent un peu trop. Pour ça on édite le fichier /etc/fail2ban/jail.conf ou jail.local suivant votre configuration :

[vsftpd]
enabled = true 
port = ftp,ftp-data,ftps,ftps-data 
filter = vsftpd 
logpath = /var/log/vsftpd.log 
# or overwrite it in jails.local to be 
# logpath = /var/log/auth.log 
# if you want to rely on PAM failed login attempts 
# vsftpd's failregex should match both of those formats 
maxretry = 5

Voila.

Publicités

Posted in debian, Opensource | Tagué: , , , | Leave a Comment »

Configurer des comptes utilisateurs virtuels dans vsftpd

Posted by hoangquangdao sur 1 décembre 2012

Utilisateur virtuel vsftpd (debian)

L’utilité des utilisateurs virtuels peut répondre à un problème de sécurité lorsque le serveur héberge plusieurs sites web. Par exemple si les webmasters ne peuvent accéder qu’à leurs propres fichiers seulement. Une des meilleures façons est de leur donner un accès FTP en configurant vsftpd avec des utilisateurs virtuels. Cet article explique comment vous pouvez le faire facilement.

Installation de vsftpd

Il faut avant tout installer le serveur FTP vsftpd :

Pour Red Hat, CentOS et Fedora, vous pouvez installer vsftpd par la commande :

> yum install vsftpd

Pour Debian et Ubuntu :

> apt-get install vsftpd

Mieux expliqué dans l’article : Installer vsftpd

Configurer les utilisateurs virtuels

Nous allons utiliser pam_userdb pour authentifier les utilisateurs virtuels. Nous aurons besoin d’un fichier de base de données identifiant / mot de passe . Nous avons besoin de l’outils « db_load » en installant le paquet « db4-utils » :

> apt-get install db4.2-util (sous debian, ubuntu)
> yum install db4-utils (sous Fedora, RedHat)

Pour créer un fichier de base données il faut d’abord créer un fichier texte « virtual-users.txt » »avec les noms d’utilisateur et mots de passe sur les lignes en alternance (en terminant par un retour à la ligne) :

user1
password1
user2
password2

Ensuite, exécutez la commande suivante pour créer la base de données :

> db_load -T -t hash -f virtual-users.txt /etc/vsftpd/virtual-users.db

On va aussi restreindre les droits sur ce fichier pour éviter que la base soit récupérée et exploitée.

> chmod 600 /etc/vsftpd/virtual-users.db

Pour ajouter, modifier ou supprimer un utilisateur il faut éditer le fichier virtual-users.txt puis relancer la création de la base avec la commande ci-dessus.

Plus haut, on a créé la base des utilisateurs, mais encore faut-il dire à vsftpd de l‘utiliser. Cela se passe dans le fichier /etc /pam.d/vsftpd Il suffit de remplacer son contenu par ses lignes :

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/virtual-users
account required /lib/security/pam_userdb.so db=/etc/vsftpd/virtual-users

Maintenant il faut configurer le serveur lui-même. Le fichier de config à éditer est /etc/vsftpd.conf. Voici les paramètres qu’il faut au moins changer (mieux expliquer dans Installer vsftpd) :

# pas d’utilisateur anonyme 
anonymous_enable=NO 
anon_upload_enable=NO 
anon_mkdir_write_enable=NO 
# par default pas de droit d’écriture, on spécifiera les droits par utilisateur plus tard 
write_enable=NO 
# on n’autorise pas les utilisateurs à se faire passer pour d’autre 
chown_uploads=NO 
chown_username=nobody 
# on restreint les utilisateur à leur home 
chroot_local_user=YES 
# on autorise les utilisateurs locaux 
local_enable=YES 
#Ajout de quelques paramètres manquant : 
#active les utilisateurs virtuels et spécifie le chemin des configs 
guest_enable=YES 
guest_username=www-data 
user_config_dir=/etc/vsftpd/user_conf 
#quelques restrictions sur le serveur : 
max_clients=20 
max_per_ip=5

Pour chaque utilisateur il faut créer un fichier de configuration spécifiant ses droits et le dossier de partage.

> mkdir /etc/vsftpd/user1_conf
> cd /etc/vsftpd/user1_conf
> vim user1

On définit les paramètres suivant pour l’utilisateur :

# droits de lecture de l’utilisateur 
download_enable=YES 
anon_world_readable_only=NO 
# droits d'écriture de l’utilisateur 
write_enable=YES 
anon_upload_enable=YES 
anon_mkdir_write_enable=YES 
# droit de renommer et de supprimer 
anon_other_write_enable=YES 
# droit de faire des chmod 
chmod_enable=YES 
virtual_use_local_privs=YES 
#affiche les fichiers cachés (important pour l’utilisation des fichiers htaccess) 
force_dot_files=YES 
# Définis le dossier du FTP 
local_root=/home/user1/public_html 
# Définis a qui appartiendront les fichiers uploader 
guest_username=user1

Il faut redémarrer le serveur pour les modifications :

> /etc/init.d/vsftpd restart

Posted in debian, Opensource | Tagué: , , | Leave a Comment »

Installer vsftpd (debian)

Posted by hoangquangdao sur 1 décembre 2012

Installation du serveur FTP vsftpd (debian)

Partager un espace disque sur Internet ou en réseau local, peut être réalisé avec un serveur FTP (File transfert Protocol). Voici comment installer le bien connu vsftpd sous la distribution debian.

Mise à jour de la dsitribution debian

Tout d’abord et comme avant chaque installation d’un nouveau package sous Linux, il est bien conseillé de mettre à jour sa distribution.

Voici comment mettre à jour la distribution debian avec le gestionnaire de paquets aptitude.

  • Avant tout, paramétrer le fichier de la source des paquets à consulter et à installer :
ouvrir le fichier /etc/apt/sources.list
renseigner la source (par exemple) :
http://ftp.fr.debian.org/debian stable main contrib non-free
  • Exécuter les mises à jour
>aptitude update
suivi de
>aptitude dist-upgrade

Installer vsftpd

Il ne vous reste donc plus qu’à installer le paquet du vsftpd :

>apt-get install vsftpd

Pour configurer le serveur vsftpd, il faut modifier le fichier /etc/vsftpd.conf :

# Nous voulons que le serveur fonctionne en mode standalone
listen=YES
#
# On ne veut surtout pas de connexions en mode anonymous
anonymous_enable=NO
#
# On active les utilisateurs virtuels
guest_enable=YES
#
# Nom de l'utilisateur virtuel
guest_username=ftp
user_config_dir=/etc/vsftpd_user
#
# On veut que les utilisateurs locaux puissent se connecter
local_enable=YES#
# On veut que les utilisateurs puissent remonter des fichiers sur le serveur
write_enable=YES
#
# On fixe le masque local a 022 (les fichiers remontés auront des droits en 755)
local_umask=022
#
# On interdit l’upload anonyme
anon_upload_enable=NO
#
# Idem pour la creation de repertoires
anon_mkdir_write_enable=NO
#
# On demande a ce que les actions des utilisateurs soient loggees
xferlog_enable=YES
#
# On verifie que la commande PORT provienne bien du port 20 de la machine cliente
connect_from_port_20=YES
#
# Les logs seront enregistres dans le fichier /var/log/vsftpd.log
xferlog_file=/var/log/vsftpd.log
#
# On declare les valeurs de timeout. Celles fournies par defaut sont ok pour notre utilisation
idle_session_timeout=300
data_connection_timeout=120
connect_timeout=60
accept_timeout=60
#
# Par securite, on interdit la commande ABOR
async_abor_enable=NO
#
# Les transferts en ASCII sont souvent source de confusions
ascii_upload_enable=NO
ascii_download_enable=NO
#
# Par securite, on change la banniere
ftpd_banner=Bienvenue sur le serveur Debian
#
# On veut limiter les utilisateurs a leur repertoire
chroot_local_user=YES
chroot_list_enable=NO
ls_recurse_enable=NO
secure_chroot_dir=/var/run/vsftpd
#
# Les heures d’enregistrement des fichiers seront affichees a l’heure locale
use_localtime=YES
#
# Montrer les fichiers et répertoire comme appartenant a FTP virtuel
hide_ids=YES

Il faut relancer le service FTP pour prendre en compte les modifications :

>/etc/init.d/vsftpd restart

Il ne vous reste plus qu’à créer des comptes utilisateurs, mais mieux encore des comptes utilisateurs virtuels.

Posted in debian, IT, Opensource | Tagué: , , , | Leave a Comment »