vsftpd 安装以及三种登陆方式

joshua-earle-4UexhWLVcnY-unsplash.jpg

(图片来自bing壁纸)

vsftpd服务安装及使用

1.安装

yum -y install vsftpd

2.启动

systemctl start vsftpd

3.登陆

1) 匿名用户登陆

主配置文件路径: /etc/vsftpd/vsftpd.conf

a.首先要在配置文件将 anonymous_enable=YES 打开

首先另外开启一台Linxu服务器作为客户端,或者在Windows安装ftp软件,这里我们用前者,下载安装ftp客户端软件: yum -y install ftp

b.在客户端输入: ftp ftp 服务器的 ip

账号:ftp或者anonymous 密码:空(直接回车)

默认家目录是: /var/ftp ,下面有一个pub文件夹,不建议在此目录下操作,最好新建一个。默认是可以下载文件的,但不能上传。

修改主配置文件,将anon_upload_enable=YES注释去掉。将我们新建的目录为其他人添加w权限。重启服务即可生效。

但此时上传过的文件是无法下载的,因为其文件的权限为:
image.png

当我们下载时候显示:

image.png

提示我们没有权限去打开文件,因此我们对于其他用户而言没有r权限,因此修改主配置文件:

我们还可以修改配置文件是的匿名用户可以创建目录,删除,覆盖等操作。

anon_mkdir_write_enable=YES  
anon_other_write_enable=YES

2) 本地用户登陆

a.首先要添加一个用户用作登陆,为了安全,建议添加一个系统用户。

useradd -s /sbin/nologin ftpuser

passwd ftpuser

b.修改主配置文件,,如果不取消注释,用户登陆到服务器后,可随意切换目录,后果不可控。

此时用新创建的ftpuser用户登陆,输如正确密码后不能登陆,将 /etc/pam.d/vsftpd 中 auth required pam_shells.so 注释掉(原因目前还不知....),但是注释掉之后登陆还是会有错误,显示:500 OOPS: vsftpd: refusing to run with writable root inside chroot() ,是因为 从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。 解决方法:

1.将 /home/ftpuser 用户家目录的写权限去除 chmod -w /home/ftpuser,但这样就不能上传文件了,因此推荐第二种方法。

2.在主配置文件中添加 allow_writeable_chroot=YES .

3.登陆ftp服务器。

若是想要禁止某些本地用户登陆到ftp服务器:

userlist_enable=YES

userlist_deny=YES

只允许名单中的用户登陆,将上述配置第二条改为NO即可。

在 /etc/vsftpd/ftpusers 中的用户,也是无法登陆到服务器的,该文件优先级比配置文件中的要高,无需重启,立即生效。

对于有些用户,我们允许其在登陆到ftp服务器后允许其能够随意切换目录:

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

由于是本地用户,因此在登陆到服务器后,可以上传下载,以及创建目录....都不需要在配置文件中配置了。

3)虚拟用户登陆

上述登陆方式,不能实现个性化配置,比如有几个用户,想要让每个用户的权限都不同,因此需要用到虚拟用户。

在虚拟用户登陆之前,要先将之前的匿名用户的配置要注释掉,因为虚拟用户默认使用的是匿名用户的配置,如果不注释,那么使用的是全局配置,每个用户自己的配置便不生效.

a.建立虚拟用户文件(vuser.txt),奇数行为用户,偶数行为密码

zhangsan

123456

...........

b.将上述 vuser.txt 转换成数据库文件: db_load -T -t hash -f vuser.txt vuser.db,并将文件权限改为600(必须)

c.由于是虚拟用户,我们要建立一个真正的Linux的用户来提供登陆的目录给虚拟用户,该用户仅仅提供登陆目录,因此不需要设置密码:useradd -d /var/ftproot -s /sbin/nologin virtual , 同样设置为系统用户。

d.在配置文件中添加支持虚拟用户的条目:

guest_enable=YES

guest_username=virtual

user_config_dir=/etc/vsftpd/dir

e.由于 ftp 服务器支持只支持本地和匿名用户的pam认证方式,不支持虚拟用户,因此需要手动添加 pam 认证:vim /etc/pam.d/vsftpd

auth  sufficient  pam_userdb.so db=/etc/vsftpd/vuser

account  sufficient  pam_userdb.so  db=/etc/vsftpd/vuser (之前编写的数据库文件,不需要加db后缀,自动识别)注意: sufficient 本来是required,但如果这样写本地和虚拟用户不能共存了,具体原因目前不清楚.....

f.最后配置每个用户的单独的配置文件,在 /etc/vsftpd/dir 下分别建立以虚拟用户为名字的文件,里面写入各自的权限(跟匿名用户一样)。

g. 重启服务,分别用不同的用户登陆验证。

记得将匿名用户的家目录其他人给与相应权限

你可能感兴趣的:(vsftpd 安装以及三种登陆方式)