Linux --- 使用 Vsftpd 服务传输文件

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/C_huid/article/details/100160733

看完本篇文章可以学习到的内容:①理解FTP协议的作用,②安装 vsftpd 服务程序并了解配置文件参数,③完整演示vsftpd 服务匿名访问模式、本地用户模式、虚拟用户模式的配置方法,④了解 PMA可插拔式认证模块的原理与认证流程,⑤通过配置vsftpd 服务程序加强对 SELinux 服务策略、安全上下文的配置与排错能力。

FTP 文件传输协议:能够让用户在互联网中上传、下载文件的文件协议。

FTP 协议端口号:

21端口:命令控制,用于接收客户端执行的FTP命令。

20端口:数据传输,用于上传、下载文件数据。

FTP数据传输的类型:

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

被动模式:FTP服务端等待FTP客户端的连接请求。

安装 vdftpd 服务程序     yum install vsftpd -y

清空默认的防火墙默认规则

保存清空后的防火墙规则表

使用 cat 命令查看vsftpd 程序的主配置文件

备份 vsftpd 的主配置文件

# 号是注释行,可以使用 grep 过滤掉这些注释,让配置文件的内容看起来更加直观

Vsftpd 程序配置文件参数的作用:

        参数                                                                                                    作用

Listen=[YES/NO]                                                                      是否以独立运行的方式监听服务

Listen_address=IP地址                                                            设置要监听的IP地址

Listen_port=21                                                                         设置FTP 服务的监听端口

Download_enable=[YES/NO]                                                   是否允许下载文件

Userlist_enable=[YES/NO] (Userlist_deny=[YES/NO] )      是否启用“禁止登陆用户名单”                

Max_clients=[YES/NO]                                                             最大客户端连接数,0为不限制

Max_per_ip=0                                                                           通一IP地址最大连接数,0为不限制

Anomymous_enable=[YES/NO]                                                是否允许匿名用户访问

Anon_upload_enable=[YES/NO]                                               是否允许匿名用户上传文件

Anon_umask=220                                                                     匿名用户上传文件的umask值

Anon_root=/var/ftp                                                                    匿名用户的FTP根目录

Anon_mkdir_write_enable=[YES/NO]                                       是否允许匿名用户创建目录   

Anon_other_write_enable=[YES/NO]                                        是否开放匿名用户其他写入权限

Anon_max_rate=0                                                                     匿名用户最大传输速率(字节),0为不限制

Local_enable=[YES/NO]                                                           是否允许本地用户登录FTP

Local_umask=022                                                                     本地用户上传文件的umask值

Local_root=/var/ftp                                                                    本地用户的FTP根目录

Chroot_local_user=[YES/NO]                                                   是否将用户权限禁锢在FTP目录,更加的安全

Local_max_rate=0                                                                    本地用户最大传输速率(字节),0为不限制

vdftpd 的验证方式

vsftp 程序提供的FTP服务认证方式有:匿名访问、本地用户、虚拟用户

①匿名用户:任何人无需验证口令即可登入FTP客户端(用于存放公开的数据)

②本地用户:使用FTP服务器中的用户、密码和资料

③虚拟用户:创建独立的FTP账号资料

本地用户和虚拟用户需要用户提供账号和密码后才能登入FTP服务,更加的安全,而虚拟用户则是最安全的。

匿名访问模式   比较不安全的访问模式

使用 vim 打开vsftpd.conf 配置文件,填写下面方框内参数后保存退出

   

重启 vsftpd 服务程序并设置为开机启动

ftp 命令用于FTP服务, 格式为:ftp [参数] [FTP主机]

如果出现拒接连接,请在配置文件末尾添加下图指定用户的权限配置文件存放的目录

设置之后就可以使用匿名用户登入FTP服务了,可以切换目录但是不能创建目录

查看所有与 ftp 相关的SELinux 规则

设置SELinux 服务对 ftp 服务的访问规则策略为允许

因为FTP根目录所有者/组都是 root,匿名用户没有写入权限,所有还要将所有者改为 ftp 

经过上面的操作之后匿名用户登入FTP服务后就可以写入、修改和删除目录了。

本地用户模式      比匿名用户模式更安全

vsftpd 服务程序默认已经允许本地用户模式,我们要做的事添加设置本地用户模式权限的参数:

  

填写好参数之后保存退出 vsftpd.conf 文件,然后重启 vsftpd 服务程序并设置为开机自启动

查看本地用户:

在客户端登入FTP服务

虚拟用户模式      比本地用户模式更安全

虚拟用户模式的账号口令都不是真实系统中存在的,配置虚拟用户模式的操作步骤相对复杂一些:

①建立虚拟FTP用户数据库文件

②创建FTP根目录及虚拟用户映射的系统用户

③建立支持虚拟用户的PAM认证文件

④在 vsftpd.conf 文件中添加支持配置

⑤为虚拟用户设置不同的权限

⑥重启 vsftpd 服务,验证

第一步:建立虚拟 FTP 用户数据库文件

切换到 vsftpd 程序目录:

创建用于生成 FTP 用户数据库的原始账号和密码文件(奇数为账号,偶数为密码)

使用 db_load 命令用 HASH算法生成 FTP 用户数据库文件 vuser.db

第2步:创建 FTP根目录及虚拟用户映射的系统用户

为保证其他用户可以访问,给与 读取和可执行权限(rwxr-xr-x)

第3步:建立支持虚拟用户的 PAM 认证文件

第4步:在 vsftpd.conf 文件中添加支持的配置

   

第5步:创建空白的 chd 的配置文件,指定 chuid 用户的具体权限

第6步:重启 vsftpd 服务,验证

 

可插拔认证模块 PAM   

PAM 是一种认证安全机制的模块(插件),通过一些动态链接库和统一的 API 将系统提供的服务与认证方式分开,使得管理员可以根据需求灵活的调整服务程序的不同认证方式。

PAM采取了分层设计的思想:①应用程序层②应用接口层③鉴别模块层

PAM模块的重要目录:

/lib/security:pam 认证模块

/etc/pam.d:针对不同服务而定义好的 pam 配置文件

 例:vsftpd 程序会在主配置文件(/etc/vsftpd/vsftpd.conf)中写入下面的参数:

pam_service_name=vsftpd

表示登录FTP服务器时是根据 /etc/pam.d/vsftpd 的文件内容进行安全认证的。

猜你喜欢

转载自blog.csdn.net/C_huid/article/details/100160733
今日推荐