系统自带的ftp软件 vsftpd
安装:yum install -y vsftpd
所有的ftp服务监听21端口
启动: /etc/init.d/vsftpd start (确保21端口不被占用)
[root@Coohx ~]# netstat -lnp |grep vsftpd
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 2089/vsftpd
vsftpd 可以让系统用户远程登录到其家目录下,没有限定登录用户的家目录,并且可以cd到任意的目录(/root除外),这样非常不安全!
登陆工具: lftp (同pure-ftpd)
实现安全登陆的方法:
(1)做一个虚拟的用户去登陆,同pure-ftpd
(2)在配置文件中限制:
vim /etc/vsftpd/vsftpd.conf
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
chroot_local_user=YES //去掉前面的#号 限定在家目录下
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list
注:这里也可以做一个用户表, 针对一组用户限定chroot。
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list (用户名及密码存放文件)
错误总结:
登陆时报错:
[root@Coohx vsftpd]# lftp vftp1@127.0.0.1
口令:
lftp vftp1@127.0.0.1:~> ls
ls: 登录失败: 500 OOPS: bad bool value in config file for: anonymous_enable
原因:虚拟用户配置文件里面的 anonymous_enable后面多了个空格
补充:这个配置文件中任何一行中的任何位置都不能包含空格,否则变量名将不被识别,启动出错。
检查与vftp1同名的虚拟用户配置文件,哪一行的末尾有空格去掉就可以。
此两幅图均为vim一般模式下的显示,非编辑模式!
去掉空格前
去掉空格后
去掉空格后,wq保存退出,重启vsftpd,登陆成功:
[root@Localhuang ~]# lftp vftp1@192.168.1.118
口令:
lftp vftp1@192.168.1.118:~> ls
-rw-r--r-- 1 522 522 0 Apr 28 10:20 123
drwxr-xr-x 2 522 522 4096 Apr 28 10:30 vsftp123