在本文我们要介绍的是在 Centos 7 (RedHat 7)下安装及配置 FTP 服务。
一、介绍
1、Linux系统中FTP服务
Linux系统中FTP服务器的服务是通过安装和配置vsftpd来实现文件的共享。
2、vsftpd
vsftpd是“very secure TTP daemon”的缩写,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。同时vsftpd支持本地用户及匿名访问两种访问方式。
二、vsftpd的安装及配置
1、通过yum安装vsftpd
yum install -y vsftpd
2、离线版安装vsftpd
1)、下载所需要vsftpd的rpm包: http://rpmfind.net/linux/rpm2html/search.php?query=vsftpd(x86-64)
2)、rpm -qa | grep vsftpd #检查是否安装了vsftpd
3)、rpm -ivh vsftpd-3.0.2-28.el7.x86_64.rpm #安装
4)、rpm -qa | grep vsftpd #检查是否安装成功
3、修改vsftpd的配置文件
vim /etc/vsftpd/vsftpd.conf
修改配置文件如下:
1)、不允许匿名访问
anonymous_enable=NO
2)、允许使用本地帐户进行FTP用户登录验证
local_enable=YES
3)、使用户不能离开主目录
当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd/chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
如果/etc/vsftpd/chroot_list不存在,则需要创建该文件vim /etc/vsftpd/chroot_list
需添加及修改
allow_writeable_chroot=YES
write_enable=YES
4)、设定支持ASCII模式的上传和下载功能。
ascii_upload_enable=YES
ascii_download_enable=YES
:wq保存
4、新建FTP用户
adduser 用户名
修改该FTP用户密码
passwd 用户名
5、重启vsftpd
systemctl restart vsftpd.service
6、ftp服务端安装(可选)
1)、下载所需要的ftp服务端rpm包:
http://rpmfind.net/linux/rpm2html/search.php?query=ftp&submit=Search+…&system=&arch=
2)、rpm -qa | grep ftp #检查是否安装了ftp
3)、上传 ftp-0.17-67.el7.x86_64.rpm 到/usr/local/src/目录
4)、rpm -ivh ftp-0.17-67.el7.x86_64.rpm #安装
4)、rpm -qa | grep ftp #检查是否安装成功
7、登录验证FTP
浏览器:ftp://ip或者使用filezilla工具连接
8、添加vsftpd开机自启动
systemctl enable vsftpd.service
9、防火墙(选用)
firewall-cmd --list-services后发现缺失ftp
增加:firewall-cmd --permanent --add-service=ftp
重启:firewall-cmd --reload
防火墙端口配置
systemctl start firewalld #启动防火墙
systemctl stop firewalld #禁用防火墙(防火墙全部关闭)
systemctl restart firewalld.service #重启防火墙
firewall-cmd --reload #重启载入防火配置
systemctl enable firewalld.service #将防火墙加入开机自启动
firewall-cmd --zone=public --add-port=80/tcp --permanent #添加开启80端口
firewall-cmd --zone=public --add-port=4000-4010/tcp --permanent #添加开启4000-4010端口
firewall-cmd --zone=public --remove-port=21/tcp --permanent #禁用21端口
firewall-cmd --query-port=80/tcp #查询80端口是否开启
netstat -tunlp |grep ftp #查看ftp端口使用端口情况
netstat -ntlp #查看监听(Listen)的端口
netstat -antp #查看所有建立的TCP连接
iptables -L #查看防火墙规则
10、530 Login incorrect 的错误
需要关闭selinux服务:
临时关闭:setenforce 0
永久关闭:vi /etc/selinux/config ,然后将SELINUX的值改为 disabled ,最后保存退出即可。