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]