20、21号端口,其中端口 20(数据端口)用于进行数据传输,端口 21(命令端口)用于接受客户端发出的相关 FTP 命令与参数,原理大致如下图所示:

                                   

centos上传慢 centos7ftp上传_centos上传慢

本次要安装的ftp服务为vsftp(very secure ftp daemon,非常安全的 FTP),登陆该FTP服务有三种认证模式,分别为:

  • 匿名开放模式:该模式最不安全,任何人都可以无需密码验证而直接登录到 FTP 服务器。
  • 本地用户模式:该模式相对安全且配置简单;通过 Linux 系统本地账户密码信息进行认证登陆;不过如果被黑客破解账号信息,则黑客可能就畅通的登陆FTP了,所以如果用该模式,一般用本地普通账号登陆。
  • 虚拟用户模式:该模式最安全,但配置复杂;它需要为 FTP 服务单独建立用户数据库文件,虚拟出用来进行口令验证的账户信息,而这些账户信息在服务器系统中实际上是不存在的,仅供 FTP 服务程序进行认证使用。这样,即使黑客破解了账户信息也无法登录服务器,从而有效降低了破坏范围和影响。

 

安装和配置FTP

本地用户模式:

 1. 安装FTP客户端和服务端 ,其中vsftpd为服务端程序,ftp为客户端程序。

(1) [root@localhost ~]# yum install vsftpd -y
(2) [root@localhost ~]# yum install ftp -y
(3) [root@localhost ~]# systemctl start vsftpd        #启用vsftpd,安装完默认是不启用,需要手动开启,不然连不上,这点要注意。
(4) [root@localhost ~]# systemctl enable vsftpd.service     #将vsftpd加入开机启动项,下次开机时将自动启动。

/etc/vsftpd/vsftpd.conf

anonymous_enable=NO     #禁止匿名访问模式
local_enable=YES        #允许本地用户模式
write_enable=YES        #设置可写权限
local_umask=022         #本地用户模式创建文件的 umask 值

特别说明:vsftpd.conf配置文件中有个字段 userlist_enable ,用来控制是否启用“禁止用户名单”,名单文件为 ftpusers 和 user_list,在目录 /etc/vsftpd/ 下;若 userlist_enable=YES,则名单中的用户将不能登陆FTP,具体表现为:若用户名包含在文件user_list中,则在登陆验证账号时报错,若名单包含在文件 ftpusers 中,则在校验用户密码时报错。

 

3. 防火墙开通FTP端口(RHEL7/Centos7中防火墙firewall是默认启用的,如果不准备启用防火墙,那就不用再配置了)

(1) [root@localhost ~]# systemctl status firewalld.service            #查看防火墙状态,确保已启用。
(2) [root@localhost ~]# firewall-cmd --permanent --add-port=21/tcp    #开启ftp端口21
(3) [root@localhost ~]# firewall-cmd --reload    #重载防火墙配置,必须重载/重启 刚才得配置才生效
(4) [root@localhost ~]# firewall-cmd --list-all  #查看刚刚的配置,确保配置信息已生效,看ports字段那。
  public (default, active)
  interfaces: eno16777728
  sources: 
  services: dhcpv6-client ssh
  ports: 21/tcp
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 
	
[root@localhost ~]#

4. 创建本地用户ftpUser(此用户用来登陆FTP服务器)

[root@localhost ~]# adduser ftpUser   #添加用户
[root@localhost ~]# passwd ftpUser    #设置用户密码

5. 使用该用户通过Xshell或者Xftp软件登陆FTP服务器。默认进入ftpUser用户的家目录,此时该用户对此目录没有写权限,如下图所示:

centos上传慢 centos7ftp上传_虚拟用户_02

通过命令 getsebool -a | grep ftp 查询发现seLinux权限关闭,需要通过命令 setsebool -P ftpd_full_access=on

centos上传慢 centos7ftp上传_服务器_03

现在就可以登陆FTP且可以再里面修改文件了。

 

暂时先写到这吧,虚拟用户模式后面再写。。。。。。