Centos7 搭建FTP服务器本地用户上传下载

Centos7 搭建ftp服务器

安装了几次 遇到了N多坑 终于是安装好了 ,下文为我的正确安装步骤…

1.先查询本机是否安装ftp服务器

rpm -qa |grep vsftpd

如果安装过会出现版本信息

[root@localhost etc]# rpm -qa |grep vsftp
vsftpd-3.0.2-25.el7.x86_64

卸载命令:

rpm -e vsftpd-3.0.2-25.el7.x86_64

2.yum 安装

yum -y install vsftpd
2.1查看安装位置 whereis vsftpd

配置文件所在位置: /etc/vsftpd/

-rw-------  1 root root 126 Jan 20 14:08 ftpusers
-rw-------  1 root root 361 Oct 31  2018 user_list
-rw-r--r--  1 root root 667 Jan 20 14:35 vsftpd.conf
-rwxr--r--  1 root root 338 Oct 31  2018 vsftpd_conf_migrate.sh
2.2文件解释
#ftp服务器黑名单 用于指定哪些用户不能访问FTP 服务器
ftpusers

#指定允许使用vsftpd 的用户列表文件。  白名单
user_list

#vsftpd 的核心配置文件
vsftpd.conf
# 脚本文件 不用管,也别动...
vsftpd_conf_migrate.sh

3.启动 ftp 服务:

systemctl start vsftpd
3.1查看监听的端口号: 默认为21
netstat -antup | grep vsftpd
3.2查看防火墙的状态:
firewall-cmd --state

内网可以直接关闭防火墙 外网只要开放对应端口号以及在安全组中配置对应端口即可

3.3关闭防火墙命令
sytemctl disable firewalld

exmaple:防火墙常见命令

安装Firewall命令:
yum install firewalld firewalld-config

Firewall开启常见端口命令:

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --zone=public --add-port=53/udp --permanent

Firewall关闭常见端口命令:

firewall-cmd --zone=public --remove-port=80/tcp --permanent
firewall-cmd --zone=public --remove-port=443/tcp --permanent
firewall-cmd --zone=public --remove-port=22/tcp --permanent
firewall-cmd --zone=public --remove-port=21/tcp --permanent
firewall-cmd --zone=public --remove-port=53/udp --permanent

批量添加区间端口

firewall-cmd --zone=public --add-port=4400-4600/udp --permanent
firewall-cmd --zone=public --add-port=4400-4600/tcp --permanent

开启防火墙命令:

systemctl start firewalld.service

重启防火墙命令:

firewall-cmd --reload  或者   service firewalld restart

查看端口列表:

firewall-cmd --permanent --list-port

禁用防火墙

systemctl stop firewalld

设置开机启动

systemctl enable firewalld

停止并禁用开机启动

sytemctl disable firewalld

查看状态

systemctl status firewalld或者 firewall-cmd --state
3.4检查关闭Selinux

根据需求选择临时或者永久关闭

临时关闭:
[root@localhost ~]# getenforce
Enforcing

[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce
Permissive


永久关闭:
[root@localhost ~]# vim /etc/sysconfig/selinux
SELINUX=enforcing 改为 SELINUX=disabled

重启服务reboot

4.修改Vsftpd.conf 配置文件

4.1配置本地用户访问 vsftpd 服务 以及用户家目录(可直接copy我的)

如果觉得不放心可备份之前的配置文件

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpbak.conf

我的配置文件如下:
阿里云中安装FTP

# Example config file /etc/vsftpd/vsftpd.conf
#关闭远程连接
anonymous_enable=NO
#本地用户登录开启
local_enable=YES
#读写权限开启
write_enable=YES
local_umask=022
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
dirmessage_enable=YES
#日志开启
xferlog_enable=YES
connect_from_port_20=YES
#YES,允许数据传输时使用PASV模式
#设定在PASV模式下,建立数据传输所可以使用port范围的下界和上界,0 表示任意。默认值为0。
#把端口范围设在比较高的一段范围内,6000-7000,将有助于安全性的提高
pasv_enable=YES
pasv_min_port=6000 
pasv_max_port=7000
#chown_uploads=YES
#chown_username=whoever
#日志路径
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
#客户端连接时间
idle_session_timeout=6000
#数据连接时间 针对上传下载
data_connection_timeout=1200
#这四个为权限模块 这样配置当chroot_list中的用户可以离开ftp家目录
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
#白名单开启
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
local_root=/var/ftp/pub
listen=YES
listen_ipv6=NO

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

注意的是防火墙以及安全组需要开启pasv所需要的端口

公司中内网安装FTP

# Example config file /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
#chown_uploads=YES
#chown_username=whoever
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
idle_session_timeout=6000
data_connection_timeout=1200

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES

userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
local_root=/ftp
listen=YES
listen_ipv6=NO

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
4.2详细解释以及对应操作

chroot_list 在安装时是没有的,这个需要自己创建

配置文件COPY我的则在 /etc/vsftpd/下使用以下命令

touch chroot_list

并编辑chroot_list 文件 将 root添加到其中

:wq保存退出

当搭配我上边配置文件时标识着 此文件中的用户 例如 我在chroot_list中添加了root 那么root用户则可离开家目录在系统中任何地方可使用ftp进行上传下载

编辑黑名单ftpusers 注释掉root用户

重启vsftp

systemctl restart vsftpd

用FileZilla Client 链接测试

发现** 登录不了…

5.最后一步

那是因为还少一个命令

yum install ftp

安装好后 重启ftp ,本地测试一波 ftp localhost

[root@localhost vsftpd]# ftp localhost
Trying ::1...
ftp: connect to address ::1Connection refused
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
220 (vsFTPd 3.0.2)
Name (localhost:root):

根据提示输入账户和密码

Name (localhost:root): root
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

能够进来则说明成功了!!!!!!!!!!

现在用FileZilla Client 链接测试


普通用户使用ftp

#创建目录
mkdir -p /var/ftp/html
#添加系统用户
useradd -g root -M -d /var/ftp/html -s /sbin/nologin ftptest
#配置权限
chown -R ftptest:root /var/ftp/html
#设置密码
passwd ftptest
#添加测试文件
cd /var/ftp/html && echo "this is ftptest" >ftptest.txt
#使用FileZilla Client 测试
#此用户则只能操作 /var/ftp/html如果需要设置其离开根目录 则在chroot_list中添加用户名
user_list中添加用户名

exmaple:ftp 操作命令

#开机启动
systemctl enable vsftpd

#启动服务
systemctl start vsftpd 

#重启服务
systemctl restart vsftpd 

#停止服务
systemctl stop vsftpd 

#查看服务器状态
systemctl status vsftpd
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值