FTP (文件传输协议)基于客户端/服务器模式,默认使用 20、21号端口,其中端口 20(数据端口)用于进行数据传输,端口
21(命令端口)用于接受客户端发出的相关 FTP 命令与参数.
本次要安装的ftp服务为vsftp(very secure ftp daemon,非常安全的 FTP),登陆该FTP服务有三种认证模式,分别为
匿名开放模式:该模式最不安全,任何人都可以无需密码验证而直接登录到 FTP 服务器。
本地用户模式:该模式相对安全且配置简单;通过 Linux 系统本地账户密码信息进行认证登陆;不过如果被黑客破解账号信息,则黑客可能就畅通的登陆FTP了,所以如果用该模式,一般用本地普通账号登陆。
虚拟用户模式:该模式最安全,但配置复杂;它需要为 FTP 服务单独建立用户数据库文件,虚拟出用来进行口令验证的账户信息,而这些账户信息在服务器系统中实际上是不存在的,仅供 FTP 服务程序进行认证使用。
这样,即使黑客破解了账户信息也无法登录服务器,从而有效降低了破坏范围和影响。
由于匿名开放模式不安全,在此不予配置,下面配置本地用户模式:
1.安装FTP客户端和服务端 ,其中vsftpd为服务端程序,ftp为客户端程序。
2、安装vsftpd,使用命令 yum install -y vsftpd
;
安装完毕后确认vsftpd服务已经正确安装上,可以使用命令: rpm -qa vsftpd
,
3、yum install -y vim
4、通过vim /etc/vsftpd/vsftpd.conf
,anonymous_enable=YES需要修改为NO,避免用户匿名访问;
去掉ascii_upload_enable=YES与ascii_download_enable=YES的注释#号,赋予文件上传与下载与下载的权限,否则即使能登陆服务器,也会因为权限的问题导致不能传输文件;
将默认的listen=NO改为YES
5、确保linux系统的selinux是disabled状态,使用vim /etc/sysconfig/selinux
命令,将SELINUX=enforcing改为SELINUX=disabled;
6、开启vsftp服务,service start vsftpd
;(Redhat7中需要使用systemctl start vsftpd
)
7、Redhat7中用 firewall-cmd --query-service=ftp
查看防火墙是否将ftp服务加进去,没有加进去的话就用命令加进去:firewall-cmd --add-service=ftp
然后将ftp对应的端口加进去:firewall-cmd --permanent --add-port=21/tcp
(不论是通过关闭防火墙还是通过开启防火墙而开启某个端口,都应该先将服务加入到防火墙中才行)
firewall-cmd --reload
#重载防火墙配置,必须重载/重启 刚才得配置才生效
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:
8、关闭防火墙(redhat 7中使用systemctl stop firewalld
,使用systemctl status firewalld
命令查看是否关闭成功)
9… 创建本地用户,用户名自定义(此用户用来登陆FTP服务器,要在服务端创建。)
[root@localhost ~]# useradd ...
#添加用户
[root@localhost ~]# passwd ...
#设置用户密码
使用该用户通过软件登陆FTP服务器,默认进入ftpUser用户的家目录。
10.在客户端上通过 ftp 192.169.1.0
命令登录vsftpd服务器,配置成功的话会提示你输入账户名和密码(这里的IP地址是指服务端IP地址)