45
centos7搭建FTP服务


1.     FTP协议占用的两个端口:

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

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

2.     FTP数据传输类型:

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

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

                                   安装 vsftpd服务

使用yum命令:yum install vsftpd -y

清空防火墙的默认规则:iptable -F

保存清空防火墙的规则:service iptables save

Vsftppd的程序与配置文件:

       主程序                         /usr/sbin/vsftpd

       用户禁止登陆列表       /etc/vsftpd/ftpusers

                                          /etc/vsftpd/user_list

       主配置文件                  /etc/vsftpd/vsftpd.conf

查看Vsftpd程序的主配置文件:

       cat /etc/vsftpd/vsftpd.conf

备份vsftpd的主配置文件:

       mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak

过滤掉所有包含#号的行,并将过滤结果写回到vsftpd.conf文件中:

       grep -v “#” /etc/vsftpd/vsftd.conf_bak > /etc/vsftpd/vsftp.conf

此时再分析下vsftpd程序的主配置文件:

       cat /etc/vsftpd/vsftpd.conf

anonymous_enable=YES

              local_enable=YES

              write_enable=YES

              local umask=022

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

参数                                          作用

listen=[YES|NO]                   是否以独立运行的方式监听服务。

listen_address=IP地址        设置要监听的IP地址。

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

Vstfpd的验证方式:

Vsftp程序提供的FTP五福可选认证方式,分别匿名访问、本地用户、虚拟用户。

匿名访问:任何人无需验证口令即可登入FTP服务器。(就是所有人均可以随意登入FTP服务,这样就会产生安全问题)。

本地用户:使用FTP服务器中用户、密码信息。

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

这两项需要用户账户和口令后才能登入ftp服务,更加的安全,就很安全。

参数                                          作用

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

userlist_enable=[YES|NO]

userlist_deny=[YES|NO]              是否启用“禁止登陆用户名单。”

max_clients=0                            最大客户端连接,0为不限制

作用                                                 作用

max_per_ip=0                                   同一IP地址最大连接数,0位为不限制

anonymous_enable=[YES|NO]           是否允许匿名用户访问。

anon_upload_enable=[YES|NO]         是否允许匿名用户上传文件。

anon_umask=022                             匿名用户上传文件的umask值。

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

anon_mkdir_write_enable=[YES|NO]  是否允许匿名用户创建目录。

anon_other_write_enable=[YES|NO]   是否开放匿名用户其他写入权限。

local_max_rate=0                              本地用户最低最大传输速率,0为不限制。

匿名访问模式

FTP匿名访问模式是比较不安全的服务模式,尤其在真实的工作环境不要放敏感的数据,以免泄露,vsftpd程序默认已经允许匿名访问模式,我们要开启匿名用户的上传和写入权限:

vim /etc/vsftpd/vsftpd.conf

参数                                                 作用

anonymous_enable=YES                   允许匿名访问模式。

anon_umask=022                             匿名用户上传文件umask值。

anon_upload_enable=YES                 允许匿名用户上传文件。

anon_mkdir_write_enable=YES          允许匿名用户创建目录。

anon_other_write_enable=YES           允许匿名用户修改目录名或删除目录。

保存并退出vsftpd.conf文件,再重启vsftpd服务并设置为开机自启动。

systemctl restart vsftpd

systemctl enable vsftpd

注意:日常工作中也要将服务加到启动项中。

 

Linux连接到FTP,格式:ftp [参数] [ip]

如果没有默认安装,请执行:yum install ftp -y即可

 

上面防火墙规则清空,也允许了匿名用户创建目录与写入权限,为什么会拒绝呢?

上面设置匿名访问的ftp根目录为/var/ftp/pub

       ls ld /var/ftp/pub

发现输出的匿名用户的FTP根目录所有者和组都是root,所以匿名用户没有权限,我们修改为ftp。

chown ftp /var/ftp/pub

再创建文件夹发现还是错误550,,这时候就想到SELinux服务。

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

getsebool -a | grep ftp

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

Setsebool – P ftpd_full_access=on

这样创建文件和文件夹就没问题了。


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!