在CentOS7.4中使用Vsftpd搭建FTP服务器

一、安装并启动FTP服务

1.查询是否系统已经自带了vsftpd :rpm -q vsftpd

2.使用 yum 安装vsftpd:yum -y install vsftpd (或者使用rpm安装vsftpd:rpm -ivh vsftpd-3.0.2-22.el7.x86_64)

3.启动vsftpd服务:service vsftpd start  (设置开机启动:systemctl enable vsftpd.service)

检查vsftpd是否开启:ps -e|grep vsftpd 或者 查看21端口是否被监听,netstat -an | grep 21

可以使用netstat -ntpl | grep vsftpd命令查看到系统现在监听的vsftpd的端口为 21

4.开启防火墙

放开21端口:firewall-cmd --zone=public --add-port=21/tcp --permanent

永久开放 ftp 服務:firewall-cmd --add-service=ftp --permanent (关闭ftp服务:firewall-cmd --remove-service=ftp --permanent)

在不改变状态的条件下重新加载防火墙:firewall-cmd --reload

可能用到的命令:

systemctl start firewalld     启动防火墙服务

firewall-cmd --add-service=ftp     暂时开放ftp服务

firewall-cmd --add-service=ftp --permanent    永久开放ftp服務

firewall-cmd --remove-service=ftp --permanent    永久关闭ftp服務

systemctl restart firewalld    重启firewalld服务

firewall-cmd --reload    重载配置文件

firewall-cmd --query-service ftp    查看服务的启动状态

firewall-cmd --list-all    显示防火墙应用列表

firewall-cmd --add-port=8001/tcp    添加自定义的开放端口

iptables -L -n | grep 21    查看设定是否生效

firewall-cmd --state    检测防火墙状态

firewall-cmd --permanent --list-port    查看端口列表

 

二、配置 FTP 权限

1、了解 VSFTP 配置

vsftpd 的配置目录为 /etc/vsftpd,包含下列的配置文件:

vsftpd.conf 为主要配置文件

ftpusers 配置禁止访问 FTP 服务器的用户列表

user_list 配置用户访问控制------这里的用户默认情况(即在/etc/vsftpd/vsftpd.conf中设置了userlist_deny=YES)下也不能访问FTP服务器 

2、阻止匿名访问和切换根目录

匿名访问和切换根目录都会给服务器带来安全风险,我们把这两个功能关闭。编辑 /etc/vsftpd/vsftpd.conf,找到下面两处配置并修改:

# 禁用匿名用户  YES 改为NO anonymous_enable=NO

# 禁止切换根目录 删除# chroot_local_user=YES

编辑完成后保存配置,重新启动 FTP 服务 service vsftpd restart

其它配置项说明:

anonymous_enable=YES #允许匿名登陆 

local_enable=YES #启动home目录 

write_enable=YES #ftp写的权限 

local_umask=022 

dirmessage_enable=YES #连接打印的消息 

connect_from_port_20=YES #20端口 

xferlog_std_format=YES 

idle_session_timeout=600 

data_connection_timeout=300 

accept_timeout=60 

connect_timeout=60 

ascii_upload_enable=YES #上传 

ascii_download_enable=YES #下载 

chroot_local_user=NO #是否限制用户在主目录活动 

chroot_list_enable=YES #启动限制用户的列表 

chroot_list_file=/etc/vsftpd/chroot_list #每行一个用户名 

allow_writeable_chroot=YES #允许写 

listen=NO 

listen_ipv6=YES 

pasv_min_port=50000 允许ftp工具访问的端口起止端口 

pasv_max_port=60000 

pam_service_name=vsftpd #配置虚拟用户需要的 

userlist_enable=NO #配置yes之后,user_list的用户不能访问ftp 

tcp_wrappers=YES 

chroot_list 文件需要自己建,内容一行一个用户名字 

anon_root=/data/ftp/public #修改匿名用户的访问路径

3 创建 FTP 用户

新建一个不能登录系统用户. 只用来登录ftp服务 ,这里如果没设置用户目录。默认是在home下:

useradd ftpuser -s /sbin/nologin

为ftpuser用户设置密码:passwd ftpuser

可能用到:

设置用户的主目录:usermod -d /data/ftp ftpuser

彻底删除用户:#userdel -rf Fuser   //强制删除用户及相关目录文件 

变更用户属性:#usermod -s /sbin/nologinftpuser (/bin/bash:可以登录shell,/bin/false:禁止登录shell )

查看当前服务:#netstat -lntp

 

三、访问FTP

通过 FTP 客户端工具访问

FTP 客户端工具众多,下面推荐两个常用的:

WinSCP- Windows 下的 FTP 和 SFTP 连接客户端 

FileZilla - 跨平台的 FTP 客户端,支持 Windows 和 Mac

本人测试时使用的是Xftp

打开Xftp软件,新建一个会话,输入对应的信息,点击确定(查看ip地址:ip addr)

选中我们新建的会话,点击连接

连接成功后就可以使用Xftp上传文件了

 

四、要使用Xshell连接,则需要安装openssh-service

查看是否安装ssh安装包,CentOS是被访问者,所以需要安装ssh-server安装包(如果没任何输出显示表示没有安装 openssh-server,可以通过输入 

yum install openssh-serve进行安装),查看命令为:rpm -qa | grep ssh,如下图所示,已经安装:找到/etc/ssh目录下的sshd_config文件,修改一些参数。去掉端口和监听地址的注释;然后允许远程登录;再开启使用用户名密码作为连接验证

开启sshd服务,service sshd start

检查sshd是否开启,ps -e|grep sshd

或者查看22端口是否被监听,netstat -an | grep 22

使用Xshell进行连接,打开Xshell软件,新建一个会话,输入对应的信息,点击确定(查看ip地址:ip addr)

选中我们新建的会话,点击连接

连接成功后就可以使用Xshell执行命令了

 

 

参考文章:

http://www.linuxidc.com/Linux/2017-08/146085.htm

http://www.linuxidc.com/Linux/2017-11/148518.htm

https://jingyan.baidu.com/article/adc81513944addf723bf73af.html

http://blog.csdn.net/u013410747/article/details/60964943

 

 

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页