Vsftpd enjaulado con usuarios virtuales


Esta es una forma rápida de ajustar la istalación de un Vsftpd enjaulado para que utilice usuarios virtuales. Donde MY_FTP_User sería el directorio home para su propia cuenta personal de usuario no root y My_FTP_Password="Su_Contraseña_FTP".

yum -y install vsftpd db4-utils

#!/bin/sh
# LSN VSFTPD chroot install
# Version 1.0
# August 1, 2005
# Fire Eater <LinuxRockz@gmail.com>
# Released under the GPL License- http://www.fsf.org/licensing/licenses/gpl.txt
##############################################################################
#
IP_Address="`( /sbin/ifconfig | head -2 | tail -1 | awk '{ print $2; }' | tr --delete [a-z]:)`"
My_FTP_User="My_Users_HomeDIR"
My_FTP_Password="Your_FTP_Password"

echo ""
echo "Setting up Vsftpd with non-system user logins"
echo ""
#
#
mv  /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig
cat <<EOFVSFTPD> /etc/vsftpd/vsftpd.conf
anon_world_readable_only=NO
anonymous_enable=NO
chroot_local_user=YES
guest_enable=NO
guest_username=ftp
hide_ids=YES
listen=YES
listen_address=$IP_Address
local_enable=YES
max_clients=100
max_per_ip=2
nopriv_user=ftp
pam_service_name=ftp
pasv_max_port=65535
pasv_min_port=64000
session_support=NO
use_localtime=YES
user_config_dir=/etc/vsftpd/users
userlist_enable=YES
userlist_file=/etc/vsftpd/denied_users
xferlog_enable=YES
anon_umask=0027
local_umask=022
async_abor_enable=YES
connect_from_port_20=YES
dirlist_enable=NO
download_enable=NO
EOFVSFTPD

cat /etc/passwd | cut -d ":" -f 1 | sort > /etc/vsftpd/denied_users; mkdir /etc/vsftpd/users
sed -e '/'$My_FTP_User'/d' < /etc/vsftpd/denied_users > /etc/vsftpd/denied_users.tmp
mv /etc/vsftpd/denied_users.tmp /etc/vsftpd/denied_users
chmod 644 /etc/vsftpd/denied_users

cat <<EOFPAMFTP> /etc/pam.d/ftp
auth    required /lib/security/pam_userdb.so db=/etc/vsftpd/accounts
account required /lib/security/pam_userdb.so db=/etc/vsftpd/accounts
EOFPAMFTP

cat <<EOFVSFTPU> /etc/vsftpd/users/$My_FTP_User
dirlist_enable=YES
download_enable=YES
local_root=/home/$My_FTP_User/public_html
write_enable=YES
EOFVSFTPU

echo $My_FTP_User > /etc/vsftpd/accounts.tmp
echo $My_FTP_Password >> /etc/vsftpd/accounts.tmp
/usr/bin/db_load -T -t hash -f  /etc/vsftpd/accounts.tmp /etc/vsftpd/accounts.db
chmod 600 /etc/vsftpd/accounts.db
#
echo "Done....."
#

Adicione nuevas cuentas de ftp:

#!/bin/sh
# Vsftpd adduser
# Fire Eater <LinuxRockz@gmail.com>
# August 1, 2005
# Requires Server installation using the LSN Installer
# Released under the GPL License- http://www.fsf.org/licensing/licenses/gpl.txt
###############################################################################
Template_Dir="/etc/Templates"
###############################################################################

# This option adds a ftp user
    clear
        echo "Now Adding FTP User"
        echo -n "Username (lowercase): "
        read FTP_USER_NAME
        echo -n "Password (case sensitive): "
        read FTP_USER_Password

cp $Template_Dir/FTP_User.tpl $Template_Dir/FTP_User.tpl.1
perl -pi -e "s/FTP_USER_NAME/$FTP_USER_NAME/g;" $Template_Dir/FTP_User.tpl.1
cat $Template_Dir/FTP_User.tpl.1 >> /etc/vsftpd/users/$FTP_USER_NAME
rm -f $Template_Dir/FTP_User.tpl.1
echo $FTP_USER_NAME >> /etc/vsftpd/accounts.tmp; echo $FTP_USER_Password >>/etc/vsftpd/accounts.tmp
rm -f /etc/vsftpd/accounts.db
db_load -T -t hash -f  /etc/vsftpd/accounts.tmp /etc/vsftpd/accounts.db
chmod 600 /etc/vsftpd/accounts.db

Plantilla FTP_User.tpl

dirlist_enable=YES
download_enable=YES
local_root=/home/FTP_USER_NAME/public_html
write_enable=YES

es/HowTos/Chroot Vsftpd with non-system users (last edited 2007-10-07 04:55:57 by AlainRegueraDelgado)