如何安装以及使用vsftpd服务
一、ftp简介
ftp 是File Transfer Protocol(文件传输协议)的英文简称。用于Internet上的控制文件的双向传输。
ftp也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。
vsftpd(Very Secure FTP Daemon)是一个在 Linux/Unix 系统上运行的一款开源免费的 FTP 服务器软件。vsftpd 支持支持 匿名用户、本地用户、虚拟用户 3种登录方式。vsftpd 高速安全,支持带宽限制,支持IPv6,可分配虚拟IP,支持创建虚拟用户。
二、匿名登录ftp服务器
1.安装vsftpd软件,关闭核心防护,清空防火墙规则后开启服务
yum -y install vsftpd
setenforce 0
iptables -F
systemctl start firewalld
2.匿名登录ftp站点
3.在配置文件/etc/vsftpd/vsftpd.conf开启匿名用户的上传和创建目录功能(仅限于实验环境)
4.ftp站点的根目录不能放权到最大(777),这时任意用户都无法登录了,这是Linux安全性的体现。
5.可以将/var/ftp目录下的指定目录放权至777,这时就能上传文件至该指定目录中
三、创建本地用户登录ftp服务器
1.在ftp服务器中创建zhangsan和lisi用户,并设置密码
2.使用zhangsan本地用户登录
3.提高本地用户使用时的安全系数
4.本地用户无法切换目录了,但是有写入权限
5.试验用户列表配置文件,将zhangsan用户添加进去
6.再次用zhangsan用户进行登录时提示登录失败,如果还是能登录,可以去配置文件中查看用户列表参数是否生效。
7.在配置文件中加入这条参数后,代表仅允许用户列表中的用户登录
8.这时在用户列表中的zhangsan可以登录,不在列表中的lisi无法登录
四、创建虚拟用户登录ftp服务器
1.在vsftpd目录下创建vuser文件
2.将vuser转换成数据库文件,并降低文件读取权限
db_load -T -t hash -f vuser vuser.db ##转换成数据库文件
chmod 600 vuser
chmod 600 vuser.db ##不让其他用户看见里面的信息
3.创建一个用户为vuser 指定家目录/opt/vuser 并不使用shell登陆
useradd -d /opt/vuser -s /sbin/nologin vuser ##创建一个用户为vuser 指定家目录/opt/vuser 并不使用shell登陆
4.编辑pam认证模块支持虚拟用户的登录
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser ##此处两个文件vuser并不是普通文件而是刚才创建的vuser.db数据库文件,此处必须省略不写结尾的db
5.开启虚拟用户,使用pam认证登录,再重启服务
6.使用虚拟用户lisa登录,并上传文件,验证是否在/opt/vuser(虚拟用户的家目录)中
7.在配置文件中加入以下内容,给虚拟用户添加单独用户配置文件夹
user_config_dir=/etc/vsftpd/vu_dir
8.在配置文件夹里创建tom虚拟用户配置文件
mkdir vu_dir
vi /etc/vsftpd/vu_dir/tom
9.编辑tom虚拟用户的配置文件参数,指定上传文件的权限
anon_umask=022
10.这时再用tom用户登录后上传文件,发现文件的权限是644了(原来是600)