一、vsftpd
1、vsftpd is a Very Secure FTP daemon. It was written completely from
2、URL:
a、SCHEME://username:password@HOST:PORT/PATH/TO/FILE
b、路径映射:
(1)、用户家目录:每个用户的URL的/映射到当前用户的家目录
3、vsftpd以ftp用户的身份运行进程,默认用户即为ftp用户,匿名用户的默认路径即ftp用户的家目录/var/ftp
a、ftp,anonymous
[root@www ~]# cat /etc/passwd|grep ftp ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
b、注意:一个用户通过文件共享服务访问文件系统上的文件的生效权限为此二者的交集
4、程序环境
a、主程序:/usr/sbin/vsftpd
b、主配置文件:/etc/vsftpd/vsftpd.conf
c、数据根目录:/var/ftp
d、Systemd Unit File:/usr/lib/systemd/system/vsftpd.service
5、配置vsftpd:
a、用户类别:
(1)、匿名用户:anonyous --> ftp,/var/ftp
(2)、系统用户:至少禁止系统用户访问ftp服务,/etc/vsftpd/ftpusers,PAM(/etc/pam.d/vsftpd)
[root@www ~]# cat /etc/pam.d/vsftpd #%PAM-1.0 session optional pam_keyinit.so force revoke auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed auth required pam_shells.so auth include password-auth #认证时使用password-auth这个文件来进行认证 account include password-auth session required pam_loginuid.so session include password-auth
[root@www ~]# cat /etc/pam.d/password-auth #%PAM-1.0 # This file is auto-generated. # User changes will be destroyed the next time authconfig is run. auth required pam_env.so auth required pam_faildelay.so delay=2000000 auth sufficient pam_unix.so nullok try_first_pass #使用此模块来提供功能 auth requisite pam_succeed_if.so uid >= 1000 quiet_success auth required pam_deny.so account required pam_unix.so account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 1000 quiet account required pam_permit.so password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok password required pam_deny.so session optional pam_keyinit.so revoke session required pam_limits.so -session optional pam_systemd.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so
1)、我们在192.168.10.13上创建用户fedora,并且设置密码为123456
[root@www ~]# useradd fedora [root@www ~]# echo "123456"|passwd --stdin fedora
2)、现在我们在192.168.10.14上通过fedora账号登陆
[root@node2 ~]# lftp -u fedora 192.168.10.13 Password: lftp fedora@192.168.10.13:~>
3)、然后我们在192.168.10.13 /home/fedora目录下创建一个文件,可以看到在192.168.10.14上能够看到
[root@www ~]# finger fedora Login: fedora Name: Directory: /home/fedora Shell: /bin/bash Never logged in. No mail. No Plan. [root@www ~]# touch /home/fedora/test.txt
lftp fedora@192.168.10.13:~> ls -rw-r--r-- 1 0 0 0 May 27 01:43 test.txt
4)、因此我们可以看到我们通过fedora登录时其路径映射为/home/fedora。其实匿名用户登录也是系统用户,只是其是默认的ftp用户。
(3)、虚拟用户:非系统用户,用户账号非为可登录操作系统的用户账号(非/etc/passwd);
(4)、用户通过vsftpd服务访问到的默认路径,是用户自己的家目录;默认可用自己有权限访问的所有路径间切换;禁锢用户于其家目录中
b、配置文件:
(1)、/etc/vsftpd/vsftpd.conf
directive value
(2)、注意:directive之前不能有多余字符