网络文件共享服务主流----FTP文件传输协议

网络文件共享服务主流—-FTP文件传输协议

ftp定义

文件传输协议(File Transfer Protocol)的简称,用于internet上的控制文件的双向传输。

ftp数据连接模式

命令连接:是指文件管理类命令,始终在线的持久性连接,直到用户退出登录为止

数据连接:是指数据传输,按需创建及关闭的连接。
数据传输格式:文件传输、二进制传输
数据传输模式:
主动模式:由服务器端创建数据连接
被动模式:由客户端创建数据连接

ftp应用程序—vsftpd

vsftpd虚拟用户配置

vsftpd虚拟用户的配置步骤如下:

准备环境

[root@yxr ~]# setenforce 0
[root@yxr ftproot]# sed -ri "s/^SELINUX\=enforcing/SELINUX\=disabled/g" /etc/selinux/config
[root@yxr ~]# systemctl stop firewalld
[root@yxr ftproot]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
安装依赖的程序:
[root@yxr ~]# cd /etc/yum.repos.d/
[root@yxr yum.repos.d]# yum -y install wget
[root@yxr yum.repos.d]# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
[root@yxr yum.repos.d]# yum clean all
[root@yxr yum.repos.d]# yum -y install epel-release
[root@yxr yum.repos.d]# yum -y install vsftpd

创建文本格式的用户名、密码列表,例如若要添加两个用户tom、yy,密码分别为123、456

/etc/vsftpd/配置文件目录
[root@yxr ~]# echo 'tom' >> /etc/vsftpd/vu.list
[root@yxr ~]# echo '123' >> /etc/vsftpd/vu.list
[root@yxr ~]# echo 'yy' >> /etc/vsftpd/vu.list
[root@yxr ~]# echo '456' >> /etc/vsftpd/vu.list
[root@yxr ~]# cat /etc/vsftpd/vu.list 
tom
123
yy
456

安装db4工具

[root@yxr ~]# yum -y install db4*

将刚创建的文本格式用户名、密码文件使用db4工具转换成数据库文件(-T表示转换,-t表示加密方式使用hash算法加密)

[root@yxr ~]#  db_load -T -t hash -f /etc/vsftpd/vu.list /etc/vsftpd/vu.db

设置文件权限(600是为了提高虚拟用户账号文件的安全性,避免数据外泄)

[root@yxr ~]# chmod 600 /etc/vsftpd/vu.*
[root@yxr ~]# ll /etc/vsftpd/vu.*
-rw-------. 1 root root 12288 Sep  2 18:43 /etc/vsftpd/vu.db
-rw-------. 1 root root    15 Sep  2 18:38 /etc/vsftpd/vu.list

添加虚拟用户的映射账号、创建ftp根目录。此处是吧ftp根目录设置为/var/ftproot,映射账号的名称为vftp.

[root@yxr ~]# useradd -d /var/ftproot -s /sbin/nologin vftp
[root@yxr ~]# chmod 755 /var/ftproot/
[root@yxr ~]# ll -d /var/ftproot/
drwxr-xr-x. 3 vftp vftp 78 Sep  2 18:48 /var/ftproot/

虚拟用户建立PAM认证

[root@yxr ~]# cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
[root@yxr ~]# vim /etc/pam.d/vsftpd
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vu
account required pam_userdb.so db=/etc/vsftpd/vu

修改vsftpd配置文件,添加虚拟用户支持

[root@yxr ~]# echo 'guest_enable=YES' >> /etc/vsftpd/vsftpd.conf
[root@yxr ~]# echo 'guest_username=vftp' >> /etc/vsftpd/vsftpd.conf

为不同的虚拟用户建立独立的配置文件

[root@yxr ~]# echo 'user_config_dir=/etc/vsftpd/vusers_dir' >> /etc/vsftpd/vsftpd.conf
[root@yxr ~]# echo 'allow_writeable_chroot=YES' >> /etc/vsftpd/vsftpd.conf

创建目录/etc/vsftpd/vusers_dir与前面建立对应关系

[root@yxr ~]# mkdir /etc/vsftpd/vusers_dir
[root@yxr ~]# ll /etc/vsftpd/
total 36
-rw-------. 1 root root   125 Aug  3  2017 ftpusers
-rw-------. 1 root root   361 Aug  3  2017 user_list
-rw-------. 1 root root  5133 Sep  2 18:53 vsftpd.conf
-rwxr--r--. 1 root root   338 Aug  3  2017 vsftpd_conf_migrate.sh
-rw-------. 1 root root 12288 Sep  2 18:43 vu.db
-rw-------. 1 root root    15 Sep  2 18:38 vu.list
drwxr-xr-x. 2 root root     6 Sep  2 18:56 vusers_dir

设置用户tom可上传和创建目录,设置yy用户只有默认下载权限,只需创建一个名为yy的空文件即可

[root@yxr ~]# echo 'anon_upload_enable=YES' >> /etc/vsftpd/vusers_dir/tom 
[root@yxr ~]# echo 'anon_mkdir_write_enable=YES' >> /etc/vsftpd/vusers_dir/tom

[root@yxr ~]# touch /etc/vsftpd/vusers_dir/yy

启动ftp服务,检查端口是否开启

[root@yxr ~]# systemctl start vsftpd
[root@yxr ~]# ss -antl
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN      0      128     *:22                  *:*                  
LISTEN      0      100    127.0.0.1:25                  *:*                  
LISTEN      0      32     :::21                 :::*                  
LISTEN      0      128    :::22                 :::*                  
LISTEN      0      100       ::1:25                 :::*                  

在ftp客户端登录tom用户创建,在服务端验证:
这里写图片描述

验证

[root@yxr ~]# cd /var/ftproot/
[root@yxr ftproot]# ls
a  b

猜你喜欢

转载自blog.csdn.net/zzs183yxr_zzs/article/details/82318102