CentOS und FTP
Linux ist so eine Sache. Entweder man kann es oder man kann es nicht. Ich würde mich nicht gerade als Crack in Sachen Linux bezeichnen, denn sonst hätte ich nicht 7 Std. gebraucht, um einen vsftpd einzurichten.
Es geht nämlich ganz einfach, es sind nicht allzu viele Schritte notwendig um den vsftpd zum laufen zu bekommen.
Mit 8. Schritten zum Erfolg.
- Packages downloaden von http://mirror.centos.org/centos/4/os/i386/
CentOS/RPMS/vsftpd-2.0.1-5.EL4.5.i386.rpm
CentOS/RPMS/compat-db-4.1.25-9.i386.rpm
CentOS/RPMS/db4-4.2.52-7.1.i386.rpm
CentOS/RPMS/pam-0.77-66.21.i386.rpm
- Packages installieren
rpm -Uhv pam-0.77-66.21.i386.rpm
rpm -Uhv compat-db-4.1.25-9.i386.rpm
rpm -Uhv db4-4.2.52-7.1.i386.rpm
rpm -Uhv vsftpd-2.0.1-5.EL4.5.i386.rpm
- PAM konfigurieren
vi /etc/pam.d/vsftpd
#%PAM-1.0
session optional pam_keyinit.so force revoke
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_users
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_users
#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth required pam_shells.so
#auth include system-auth
#account include system-auth
#session include system-auth
#session required pam_loginuid.so
- Systeuser anlegen
adduser -d /home/virtualftp/ virtualftp
- vsftpd konfigurieren
cd /etc/vsftpd
vi vsftpd.conf
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_local_user=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES# Virtual users will be logged into /home/virtualftp/[username]/
user_sub_token=$USER
local_root=/home/virtualftp/$USER
guest_enable=YES
guest_username=virtualftp
# Umask applied for virtual users and anon
anon_umask=0022
# Allows uploading by virtual users
anon_upload_enable=YES
# Allows creation of directories by virtual users
anon_mkdir_write_enable=YES
# Allows deletion of files and directories by virtual users
anon_other_write_enable=YES
vsftpd starten mit dem Befehl
vsftpd & - Virtuelle FTP User anlegen
vi /etc/vsftpd/vsftpd_users.txt
username1
passwordforusername1
username2
passwordforusername2
username3
passwordforusername3
Dieses File ist in clear text.rm /etc/vsftpd/vsftpd_users.db
db41_load -T -t hash -f /etc/vsftpd/vsftpd_users.txt /etc/vsftpd/vsftpd_users.db
chmod 600 /etc/vsftpd/vsftpd_users.db /etc/vsftpd/vsftpd_users.txt
- Virtuelle Verzeichnisse anlegen
mkdir -p /home/virtualftp/username1
Für jeden einzelnen Benutzer. - Testen
ftp localhost
Connected to localhost.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): username1
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX
Using binary mode to transfer files.
ftp>