CentOS 离线安装Ftp
1、下载、安装ftp
下载ftp安装包,可以从rpm下载站搜索合适的版本,使用wget命令下载。
wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/vsftpd-3.0.2-28.el7.x86_64.rpm
安装:
rpm -ivh vsftpd-3.0.2-28.el7.x86_64.rpm
2、配置ftp
2.1、创建用户、授权目录
# 创建目录
mkdir -p /home/vsftpd_files
# 创建用户
useradd -g ftp ftp_root
# 修改密码
passwd ftp_root
EP7fXKdniOvRfI3p
# 授权目录给用户
chown -R ftp_root:ftp /home/vsftpd_files
2.2、配置修改
常见配置介绍
2.2.1、修改配置如下
# 备份配置
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
# 添加新配置
vi /etc/vsftpd/vsftpd.conf
# 修改为NO,关闭匿名用户访问
anonymous_enable=NO
#允许本地用户登录FTP服务器
local_enable=YES
# 本地用户是否允许上传
write_enable=YES
# 设置系统用户FTP主目录
local_root=/home/vsftpd_files
# 本地用户上传的权限默认是022,则目录的权限是755(777-022=755),文件权限是644(666-022=644)
local_umask=022
#用户登陆成功后是否显示欢迎消息或者警告消息。
dirmessage_enable=YES
# 激活记录日志,对于一个服务来说,日志是肯定且必须的。
xferlog_enable=YES
# 主动模式数据传输接口时是否开启。如果是主动模式,则为YES,不需要更改。
connect_from_port_20=YES
# 是否使用标准的FTP日志格式。
xferlog_std_format=YES
#监听IPv4 sockets。
listen=YES
#关闭ipv6监听
listen_ipv6=NO
# Linux的用户名与密码默认采用的是PAM验证,这里ftp默认采用的就是PAM验证
pam_service_name=vsftpd
# 用户限制或者说黑名单是否开启,单写这个没有任何的意义。
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
#一个tcp简单的防火墙。
tcp_wrappers=YES
#开启被动模式。
pasv_enable=YES
# 配置FTP被动模式的端口
pasv_min_port=30000
pasv_max_port=30000
2.2.2、授权ftp白名单
# 编辑白名单
vi /etc/vsftpd/user_list
将允许访问ftp的用户(即2.1创建的用户)添加至文件内:
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
ftpuser
ftp
root
ftp_root
修改好所有配置后,重启vsftpd
systemctl restart vsftpd
2.2.3、授权ftp黑名单
# 编辑黑名单
vi /etc/vsftpd/ftpusers
将用户添加到此文件标识不允许访问
当用户同时在白名单和黑名单,则不允许访问。
2.3、常用命令
重启FTP服务
systemctl restart vsftpd
常用命令:
# 查看状态
systemctl status vsftpd
# 启动
systemctl start vsftpd
# 重启
systemctl restart vsftpd
# 开机自启
systemctl enable vsftpd
# 关闭开机自启
systemctl disable vsftpd
# 停止
systemctl stop vsftpd
2.4、关闭防火墙
如果你的ftp不能正常访问, 你需要注意两个东西:防火墙和Selinux。这两个会对很多服务造成影响,在Test时,需要关闭。
关闭Selinux:用sestatus命令查看Selinux的状态,永久关闭就去配置文件中修改SELINUX=disabled,然后重启。
关闭Selinux:
setenforce 0
vi /etc/selinux/config
SELINUX值改为disabled
关闭防火墙:
#开启21端口
firewall-cmd --zone=public --add-port=21/tcp --permanent
#开启30000端口
firewall-cmd --zone=public --add-port=30000/tcp --permanent
#刷新配置
firewall-cmd --reload