Installation et configuration de ProFTPD en SFTP – FTP over SSH

OS utilisé: Debian 6.0.6 Squeeze

But: utiliser ProFTPD en SFTP (ftp over ssh) et non pas ftp avec TLS/SSL

Pré requis

Pour utiliser ProFTPD sur le port 22, il ne faut pas oublier de changer le paramètre du port d’accès en SSH dans le fichier de conf « /etc/ssh/sshd_config »

remplacer « Port 22″ par « Port xxx » avec xxx le numéro de port souhaité, et ne pas oublier d’ouvrir les ports sur le FW si besoin.

redémarrage du service ssh…

service ssh restart

Installation des paquets

apt-get install proftpd-basic

Configuration du système

Ajout d’un groupe « download » qui sera utilisé pour limiter l’accès à un répertoire

groupadd -g 20000 download

Ajouter les utilisateurs dans le groupe « download »

usermod -G download <user>

créer un répertoire pour le ftp:

mkdir /usr/local/download

modifier les droits pour permettre l’accès aux users.

Configuration de ProFTPD

Editer le fichier de conf « /etc/proftpd/proftpd.conf »

Ajouter les lignes suivantes au fichier de configuration existant

##########################################################
# CONFIG SFTP
##########################################################
#
# Liste des directives ProFTPD
# http://www.proftpd.org/docs/directives/configuration_full.html
#
##########################################################
# Activer SFTP
SFTPEngine On

# Definition du port
Port 22

# Methode d'Auth
SFTPAuthMethods password

# Verification du shell de l'utilisateur - /etc/shells
RequireValidShell off

# Chemin du Chroot et definition du groupe qui s'applique
DefaultRoot /usr/local/download download

# umask et limitation du CHMOD
Umask 007
<Limit SITE_CHMOD>
 AllowUser username
 AllowUser username
 AllowGroup groupname
 DenyAll
</Limit>

# Permet d'ecraser des fichier existant lors de transfert
AllowOverwrite on

# Autoriser le login root - configurer aussi le fichier /etc/ftpusers
#RootLogin on

# Verifier l'identite de l'hote qui se connecte
IdentLookups off

# Log SFTP
SFTPLog /var/log/proftpd-sftp.log

# Utiliser tous les moteurs de crypto openSSL
SFTPCryptoDevice all

# Desactiver la compression (trop d'utilisation CPU!)
SFTPCompression off

# Keep Alive 4x 30s - Compatibilité: 1.3.4rc1 et +
#SFTPClientAlive 4 30

# Fichier de bienvenue (facultatif)
SFTPDisplayBanner /etc/ftpbanner

# Fichier certificat
SFTPHostKey /etc/ssh/ssh_host_dsa_key
SFTPHostKey /etc/ssh/ssh_host_rsa_key

##########################################################
# FIN CONFIGURATION SFTP
##########################################################

 

redémarrer le service proftpd

service proftpd restart

ou

/etc/init.d/proftpd restart

Se connecter à l’aide d’un client FTP en choisissant le protocole « SFTP »

Afficher le logical volume LV associé au DM-x

NMON affiche les stats d’utilisation des disk, avec des partitions configurées avec lvm on ne voit que les disques sous la forme « dm-X »:nmon-rw

Pour connaitre quel FS est impacté il suffit de récupérer la valeur du « block device » affichée par « lvdisplay »lvdisplay

Pour formatter l’affichage, on peut utiliser awk et récupérer la valeur du LV Name associée au block device:

lvdisplay | awk  '/LV Name/{n=$3} /Block device/{d=$3; sub(".*:","dm-",d); print d,n;}'

lvdisplay-awk

Script de suppression de vieux dossiers et fichiers

Le script est en shell, il permet de supprimer des fichiers et des dossiers d’un répertoire selon une date d’ancienneté.

Un seul paramètre est passé en argument au lancement du script: le nombre de jours (60 jours par défaut)

#!/bin/sh
date=`date +%d.%m.%Y`
log=delete_incoming_error.$date.log
dir=/fs/incoming

if [ $1 ]
then
 day=$1
else
 day=60
fi
find $dir -name "*" -mtime +$day -exec rm -rf "{}" 2>/var/log/ $log \;

Ce script est utilisé en cron tous les jours, il faut le placer dans le répertoire:

/etc/cron.daily

Le nom du fichier doit suivre le standart LSB

Pour vérifier que le fichier sera bien exécute utiliser « run-parts »

run-parts --test /etc/cron.daily

VM Debian Ajout de disque à chaud avec LVM

Etape 1 – Ajout du disque ou augmentation de la taille d’un disque

Extension de la taille d’un disque sous Vpshere Client.

OU

Ajout d’un nouveau disque, soit via le vSphere Client ou soit par script (en PowerCli) par exemple:

$vm = get-VM <vm_name>
New-HardDisk -VM $vm -CapacityKB 10000

Etape 2 – Rescanner le disque ou Rescanner le bus SCSI pour ajouter le disque sans redémarrer la VM

echo 1 > /sys/block/sdx/device/rescan

OU

echo "- - -" > /sys/class/scsi_host/host#/scan
fdisk -l
tail -f /var/log/message (pour vérifier le nom disk)

il faut remplacer host# par la valeur que vous trouverez avec la commande:

ls /sys/class/scsi_host

Par exemple:

echo "- - -" > /sys/class/scsi_host/host0/scan
tail /var/log/messages

Le disk est reconnu et se nomme sdb

Etape 3 – Vérifier et créer le volume

Editer avec fdisk:

fdisk /dev/sdb (où b est la lettre du disque trouver via tail -f /var/log/messages)
p (liste la table de partition du disk)
l (lister le type de partition pour la création) --> 8e Linux LVM dans notre cas
n p 1 <enter> <enter>
p (pour vérifier la table de partition créé)
t 8e (Changed system type of partition 1 to 8e (Linux LVM))
w (pour écrire les modifications)

La nouvelle partition se nomme /dev/sdb1

utiliser la commande suivante pour relire la partion (si necessaire)

partprobe /dev/sdb

Créer une nouvelle partition de type lvm (le disque se nomme sdb)

pvcreate /dev/sdb1
vgextend rootvg /dev/sdb1
# rootvg est le nom du volume group, # utiliser vgdisplay pour les lister
lvextend -L+1G /dev/PROTON6/root
# /devPROTON6/root est le nom du logical volume, # utiliser lvdisplay pour les lister
resize2fs /dev/PROTON6/root