CentOS自带的ftp软件:vsftpd

yum install -y vsftpd

启动前需要停止pure-ftpd的服务,关闭它所占用的21端口:killall pure-ftpd

启动vsftpd: /etc/init.d/vsftpd start


默认的配置文件是可以让客户端用服务端的系统用户去登录的:

客户端:lftp [email protected]; 输入密码即可登录服务端


用系统用户去登录是不安全的,因为不限定家目录,谁都可以看到很多目录;所以使用系统用户登录FTP是不安全的,因为这


样的话别人可以通过ssh远程登录整个服务器

如果不使用系统映射的用户,也可以在服务端的/etc/vsftpd/vsftpd.conf里进行设置,打开chroot_local_user=YES



创建一个虚拟的用户,来映射系统用户:

服务端:

创建一个系统用户:

useradd virftp -s /sbin/nologin


创建虚拟用户的用户名和密码文件:

vim /etc/vsftpd/vsftpd_login

写入虚拟用户名和密码:

修改权限:chmod 600 /etc/vsftpd/vsftpd_login


创建vsftpd服务能够识别的密码库文件:

db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db


创建虚拟用户的配置文件所在的目录:

mkdir /etc/vsftpd/vsftpd_user_conf

创建test1用户的配置文件:

#cd /etc/vsftpd/vsftpd_user_conf

#vim test1

local_root=/home/virftp/test1

anonymous_enable=NO

write_enable=YES

local_umask=022

anon_upload_enable=NO

anon_mkdir_write_enable=NO

idle_session_timeout=600

data_connection_timeout=120

#max_client=10

max_per_ip=5

local_max_rate=50000


创建test1用户的家目录/home/virftp/test1

修改属主和属组:chown -R virftp:virftp /home/virftp/test1


编辑认证相关的配置文件,用来告诉vsftpd不要用系统默认的用户名和密码,而是虚拟用户:

vim /etc/pam.d/vsftpd

添加下面两行:

auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login


如果是32位,认证模块路径为/lib/security/pam_userdb.so

如果是64位,认证模块路径为/lib64/security/pam_userdb.so


配置完成后重启vsftpd: /etc/init.d/vsftpd restart


登录:lftp [email protected]