`
yangle926
  • 浏览: 56376 次
  • 性别: Icon_minigender_1
  • 来自: 洛阳
社区版块
存档分类
最新评论

CentOS7下使用vsftpd服务传输文件

阅读更多

《Linux就该这么学》第11章 使用vsftpd服务传输文件

vsftpd服务程序三种认证模式:匿名开放模式、本地用户模式、虚拟用户模式。

FTP协议默认使用了20、21号端口,其中端口20(数据端口)用于传输数据,端口21(命令端口)用于接受客户端发出的相关FTP命令与参数。

FTP协议有两种工作模式:

▶主动模式:FTP服务器主动向客户端发起连接请求。

▶被动模式:FTP服务器等待客户端发起连接请求(FTP的默认工作模式)。

# yum -y install vsftpd

# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

# grep -v "#" /etc/vsftpd/vsftpd.conf.bak > /etc/vsftpd/vsftpd.conf

# cat /etc/vsftpd/vsftpd.conf

anonymous_enable=YES

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

listen=NO

listen_ipv6=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

ftp 是 Linux 系统中以命令行界面的方式来管理 FTP 传输服务的客户端工具。

# yum -y install ftp

匿名开放模式

vsftpd 服务程序默认开启了匿名开放模式,我们需要做的就是开放匿名用户的上传、下载文件的权限,以及让匿名用户创建、删除、更名文件的权限。

# vim /etc/vsftpd/vsftpd.conf

anonymous_enable=YES

anon_umask=022

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

# systemctl restart vsftpd

# systemctl enable vsftpd

在 vsftpd 服务程序的匿名开放认证模式下,其账户统一为 anonymous,密码为空。

另一台Linux主机登录测试:

       # ftp 192.168.1.200

       anonymous | cd pub | mkdir mydir1 =>550 Create directory operation failed.

因为默认/var/ftp/pub的权限为 # ls -ld /var/ftp/pub

drwxr-xr-x. 2 root root 6 8月   3 2017 /var/ftp/pub

# chown -Rf ftp /var/ftp/pub

# getsebool -a | grep ftp  ==查看与FTP 相关的SELinux 域策略都有哪些

# setsebool -P ftpd_full_access=on  ==-P 参数让修改过的策略永久生效

本地用户模式

# vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

# systemctl restart vsftpd

ftpusers 和 user_list文件中存在的用户是被禁掉的用户。

此时其他普通用户可以正常使用ftp功能,默认访问的是该用户的家目录。

虚拟用户模式

第1步:创建用于进行 FTP 认证的用户数据库文件,其中奇数行为账户名,偶数行为密码。

       # cd /etc/vsftpd/

       # vim vuser.list

              zhangsan

              redhat

              list

              redhat

       # db_load -T -t hash -f vuser.list vuser.db  ==使用db_load 命令用哈希(hash)算法将原始的明文信息文件转换成数据库文件

         # chmod 600 vuser.db

         # rm -rf vuser.list

第2步:创建 vsftpd 服务程序用于存储文件的根目录以及虚拟用户映射的系统本地用户。

       # useradd -d /var/ftproot -s /sbin/nologin virtual

       # chmod –Rf 755 /var/ftproot/

第3步:建立用于支持虚拟用户的 PAM(可插拔认证模块 )文件。

新建一个用于虚拟用户认证的PAM 文件vsftpd.vu,其中PAM 文件内的“db=”参数为使用db_load 命令生成的账户密码数据库文件的路径,但不用写数据库文件的后缀:

         # vim /etc/pam.d/vsftpd.vu

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

account    required pam_userdb.so db=/etc/vsftpd/vuser

第4步:在vsftpd 服务程序的主配置文件中通过pam_service_name 参数将PAM 认证文件的名称修改为vsftpd.vu,PAM 作为应用程序层与鉴别模块层的连接纽带,可以让应用程序根据需求灵活地在自身插入所需的鉴别功能模块。当应用程序需要PAM 认证时,则需要在应用程序中定义负责认证的PAM 配置文件,实现所需的认证功能。

         #vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO

local_enable=YES

guest_enable=YES

guest_username=virtual

allow_writeable_chroot=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

listen=NO

listen_ipv6=YES

pam_service_name=vsftpd.vu

userlist_enable=YES

tcp_wrappers=YES

第5步:为虚拟用户设置不同的权限。

         # mkdir /etc/vsftpd/vusers_dir/

         # cd /etc/vsftpd/vusers_dir/

         # touch lisi

         # vim zhangsan

             anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

         # vim /etc/vsftpd/vsftpd.conf

                   user_config_dir=/etc/vsftpd/vusers_dir     ==在最后面添加此行内容

         # systemctl restart vsftpd

第6步:设置 SELinux 域允许策略,然后使用虚拟用户模式登录 FTP 服务器。

         # getsebool -a | grep ftp

                   ftpd_full_access --> on

         # setsebool -P ftpd_full_access=on

 

…测试OK

 

分享到:
评论

相关推荐

    CentOS 7.0 使用Vsftpd服务传输文件.zip

    vsftp能够让用户在互联网中上传、下载文件的文件协议;

    centos FTP服务器的架设和配置

    3.与vsftpd服务器有关的文件和文件夹 4.添加FTP本地用户 5.匿名上传下载 6.定制进入FTP服务器的欢迎信息 7.实现虚拟路径 8.打开vsFTPd的日志功能 9.限制链接数,以及每个IP最大的链接数 10.限制传输速度 11.将用户...

    LINUX Centos7搭建vsftpd服务

    前言:在数据传输安全方面,被动模式安全性更高,且ftp连接工具都是默认被动模式;在网络安全方面,则是主动模式安全性更高。 安装vsftpd和ftp连接工具 yum -y install vsftpd ftp 修改vsftpd的配置文件 vim /etc...

    详解CentOS7 FTP服务搭建(虚拟用户访问FTP服务)

    Liunx外部文件的传输,避免不了使用FTP服务,所以现在就整理下,CentOS7环境下,FTP服务的搭建。FTP服务器需要安装vsftp服务端软件。我们知道,在建立vsftpd用户时,我们一般是在linux下建立用户useradd的方式来访问...

    linux vsftpd搭建步骤 亲测可用

    7 传输时间 传送文件所用时间,单位为秒 192.168.57.1 远程主机名称/IP 远程主机名称/IP 4323279 文件大小 传送文件的大小,单位为byte /home/student/phpMyadmin- 2.11.0-all-languages.tar.gz 文件名 传输文件名,...

    docker-vsftpd:一个支持 SSL 的 vsftpd 服务器 Docker 镜像

    Docker 镜像文件来创建一个支持 SSL 的 Centos7 vsftpd 服务器。 它使用虚拟用户进行数据传输并禁用匿名登录。 上传也被禁用。 该图像主要用作共享现有文件的快速方式,以防通过其他方法(https、ssh 等)共享不容易...

    Linux FTP服务配置

    chroot_list_file=/etc/vsftpd/chroot_list //一般情况下都将这个文件写在/etc/vsftpd目录下,这个文件就是设置锁定用户的一个列表文件,其中一行就代表一个用户 设置欢迎信息 dirmessage_enable=YES message_file=....

    CentOS7搭设FTP服务器的方法步骤

    FTP 主要用于文件传输,在 Linux 上一般用 vsftpd 来实现,通过搭设 FTP 服务器,可以实现文件的共享,至少比坑爹的某度网盘强多了。 搭设 FTP 服务器有三种可选的认证方式:匿名认证、本地用户认证、虚拟用户认证,...

    CentOS7.0下安装FTP服务的方法

    一个小插曲,安装一个FTP服务,便于和远程服务器的文件沟通。后续我们会讲到如何使用Capistrano配合git完成服务器的代码部署以及发布流程。现在,代码先走FTP吧,挺稳。 FTP简介 FTP 是File Transfer Protocol(文件...

    Linux-Ftp服务

    FTP是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用20、21号端口,其中端口20(数据端口)用于进行数据传输,端口21(命令端口)用于接受客户端发出的相关FTP命令与参数。 FTP协议有以下面两...

Global site tag (gtag.js) - Google Analytics