Centos7.6利用vsftpd搭建FTP服务器详细教程
Centos7搭建FTP服务器
目录
Centos7搭建FTP服务器
一、关闭防火墙
二、安装vsftpd并启动服务
1、安装vsftpd
2、启动服务
三、编辑配置
四、新建用户并设置密码
1、新建用户:helloftp
2、设置用户helloftp密码
五、允许新建用户登录FTP
六、自定义用户主目录
1、新建主目录配置
2、给用户新建主目录并授权
七、防火墙配置
八、注意事项:
搭建环境:Centos7.6版本、生产服务器、计划默认端口6000、被动模式端口6001-6005
一、关闭防火墙
systemctl status firewalld.service #查看防火墙状态
systemctl stop firewalld.service #停止防火墙服务
systemctl disable firewalld.service #关闭防火墙开启自启动
vi /etc/selinux/config #把文件中的SELINUX=enforcing 改为SELINUX=disabled
等待搭建成功后再开启防火墙,再开端口。要不然会带来很多不必要的麻烦。
二、安装vsftpd并启动服务
1、安装vsftpd
yum install -y vsftpd
软件包 vsftpd.x86_64.0.3.0.2-22.el7
2、启动服务
systemctl start vsftpd.service 启动服务
systemctl enable vsftpd.service 设置开机自动启动服务
三、编辑配置
vi /etc/vsftpd/vsftpd.conf #编辑配置文件
anonymous_enable=NO #是否开启匿名用户,匿名都不安全,不要开
local_enable=YES #允许本机账号登录FTP
write_enable=YES #允许账号都有写操作
local_umask=022 #意思是指:文件目录权限:777-022=755,文件权限:666-022=644,这有点反人类了,并且没有人跟我说是减去的。注意理解!
dirmessage_enable=YES #进入某个目录的时候,是否在客户端提示一下
xferlog_enable=YES #日志记录
connect_from_port_20=YES #开放port模式的20端口的连接
xferlog_std_format=YES #日志成为std格式
chroot_local_user=YES #限制用户只能在自己的目录活动
chroot_list_file=/etc/vsftpd/chroot_list
ls_recurse_enable=NO #是否允许使用ls -R等命令
listen=YES #监听ipv4端口,开了这个就说明vsftpd可以独立运行,不用依赖其他服务
pam_service_name=vsftpd #pam模块的名称,放置在 /etc/pam.d/vsftpd ,认证用
userlist_enable=YES #使用允许登录的名单
userlist_deny=NO #限制允许登录的名单,前提是userlist_enable=YES,其实这里有点怪~!
allow_writeable_chroot=YES #允许限制在自己的目录活动的用户 拥有写权限
tcp_wrappers=YES #Tcp wrappers : Transmission Control Protocol (TCP) Wrappers 为由 inetd 生成的服务提供了增强的安全性。
pasv_min_port=6301 #被动模式起始端口,0为随机分配
pasv_max_port=6305 #被动模式结束端口,0为随机分配
user_config_dir=/etc/vsftpd/userconfig #主目录配置,修改后到这个目录中在修改用户配置
纯净版配置文件:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
chroot_list_file=/etc/vsftpd/chroot_list
ls_recurse_enable=NO
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO
allow_writeable_chroot=YES
tcp_wrappers=YES
pasv_min_port=6301
pasv_max_port=6305
user_config_dir=/etc/vsftpd/userconfig
修改完之后需要重启FTP服务刷新配置:
systemctl start vsftpd.service #重启FTP服务
建议:把默认21端口,最好和pasv端口改成连续的。
例如:FTP的默认监听端口为6000,pasv端口范围改为6001-6005 (5个就够了)
那么这样架设到公网的话,只需要在路由器里面端口映射一条就好了,一般的路由器端口映射的数量是有限制的。要不然你最少要设置两条。高端路由器可以不连续的设置一条。我这边是公司60条已经全部占满了,所以得省着点用。
四、新建用户并设置密码
1、新建用户:helloftp
我们如果直接使用useradd -d helloftp新建的用户是可以登录系统的。这样会给FTP服务器带来安全隐患。因此我们必须不能让FTP用户登录系统。但是如果把/etc/passwd中helloftp用户后面改成/sbin/nologin,FTP也就无法登录了。这好像是一个坑。所以我们一步一步来。
#为ftp用户统一创建一个不能登录系统的shell,这一行的命令只运行一次即可,后面新建用户就不需要执行了echo /usr/bin/nologin>>/etc/shells创建用户useradd -d /home/ftp_data/helloftp -m -s /usr/bin/nologin helloftp #创建并指定用户主目录和shell
把ftp用户的shell改为/usr/bin/nologin。注意这里的bin 不是sbin。这里需要注意的是千万不要删除用户,删除时会同时删除用户主目录,主目录内的资料也会同时删除
2、设置用户helloftp密码
passwd helloftp
五、允许新建用户登录FTP
vi /etc/vsftpd/user_list
编辑/etc/vsftpd/user_list ,这个是允许登录ftp的名单。一行一个用户,不能把多个写到一行。
到了这一步,FTP其实就可以登录了。
但是有个非常大的缺点就是,我们没有给用户指定主目录,这样的话默认每个用户的主目录都在自己的家目录。也就是说每个用户的主目录都是在不同目录中,这样的状况会给我们后期数据备份带来不便。所以我们必须想办法把用户主目录集中管理,最好能放到一个目录里面。
六、自定义用户主目录
在这里我们准备把用户主目集中放到/home/data/ftp下集中管理。之前我们在/etc/vsftpd/vsftpd.conf配置文件中写了这么一行:user_config_dir=/etc/vsftpd/userconfig ,那么这一行的作用是什么呢?就是定义用户的主目录。userconfig默认是没有的,必须新建。然后我们可以把,给每个用户定义的主目录配置文件放到这个目录里面下。就可以实现自定义主目录。
1、新建主目录配置
mkdir /etc/vsftpd/userconfig
vim /etc/vsftpd/userconfig/helloftp #新建主目录配置文件helloftp,配置文件名字必须要和用户名相同helloftp文件中写入下面一行保存:
local_root=/home/ftp_data/helloftp
注意:配置文件名字必须要和用户名相同。
2、给用户新建主目录并授权
mkdir -p /home/ftp_data/helloftp
chmod -R 777 /home/ftp_data/helloftp
七、防火墙配置
我们的监听端口是6000,被动模式端口范围是6001-6005
firewall-cmd --version #查看防火墙版本
0.6.3
firewall-cmd --zone=public --add-port=6000-6005/tcp --permanent #开启6000-6005 tcp端口
success
firewall-cmd --reload #刷新,重新载入
success
firewall-cmd --zone=public --query-port=6000-6005/tcp #检测端口是否开启
yes
至此搭建成功。
创建用户脚本:FTP服务器用户创建脚本_spokes的博客-CSDN博客
八、注意事项:
1、设置了 chroot_local_user=YES 后,用户不能登录,原因是没设置 allow_writeable_chroot=YES
2、重启服务器后无法连接FTP,原因是你防火墙没有关闭彻底。
3、不建议把用户主目录放在根目录,建议放到home目录。
4、如果你要架设到公网,端口映射的时候要把默认端口和pasv端口一起映射,单纯映射默认端口是访问不到的。
5、下面附vsftpd.conf配置文件的详细解析:
anonymous_enable=NO #是否开启匿名用户,匿名都不安全,不要开
local_enable=YES #允许本机账号登录FTP
write_enable=YES #允许账号都有写操作
local_umask=022 #意思是指:文件目录权限:777-022=755,文件权限:666-022=644,这有点反人类了,并且没有人跟我说是减去的。注意理解!
#anon_upload_enable=YES #匿名用户是否有上传文件的功能,不要开
#anon_mkdir_write_enable=YES #匿名用户是否有创建文件夹的功能,不要开
dirmessage_enable=YES #进入某个目录的时候,是否在客户端提示一下
xferlog_enable=YES #日志记录
connect_from_port_20=YES #开放port模式的20端口的连接
#chown_uploads=YES #允许没人认领的文件上传的时候,更改掉所属用chown_uploads=YES的前提下,所属的用户
#xferlog_file=/var/log/xferlog #日志存放的地方
xferlog_std_format=YES #日志成为std格式
#idle_session_timeout=600 #用户无操作服务器会主动断开连接,单位秒
#data_connection_timeout=120 #数据连接超时
#nopriv_user=ftpsecure #以 ftpsecure 作为此一服务执行者的权限。因为ftpsecure 的权限相当的低,因此即使被入侵,入侵者仅能取得nobody 的权限喔!
#async_abor_enable=YES #异步停用,由客户发起
#ascii_upload_enable=YES #使用ascii格式上传文件
#ascii_download_enable=YES #使用ascii格式下载文件
#ftpd_banner=Welcome to blah FTP service #欢迎词
#deny_email_enable=YES #以anonymous用户登录时候,是否禁止掉名单中的emaill密码。
#banned_email_file=/etc/vsftpd/banned_emails #以anonymous用户登录时候,所禁止emaill密码名单。
chroot_local_user=YES #限制用户只能在自己的目录活动
#chroot_list_enable=YES #例外名单,如果是YES的话,这个有点怪,不懂别乱开,上面的选项会跟这个名单反调(会被上面的选项影响)。
#chroot_list_file=/etc/vsftpd/chroot_list
ls_recurse_enable=NO #是否允许使用ls -R等命令
listen=YES #监听ipv4端口,开了这个就说明vsftpd可以独立运行,不用依赖其他服务。
#listen_ipv6=YES #监听ipv6端口,还没普及呢!
pam_service_name=vsftpd #pam模块的名称,放置在 /etc/pam.d/vsftpd ,认证用
userlist_enable=YES #使用允许登录的名单
userlist_deny=NO #限制允许登录的名单,前提是userlist_enable=YES,其实这里有点怪~!
allow_writeable_chroot=YES #允许限制在自己的目录活动的用户 拥有写权限
tcp_wrappers=YES #Tcp wrappers : Transmission Control Protocol (TCP) Wrappers 为由 inetd 生成的服务提供了增强的安全性。
user_config_dir=/etc/vsftpd/userconfig #主目录配置,修改后到这个目录中在修改用户配置pasv_min_port=6000 (0为随机分配)
pasv_max_port=6010(这两项定义了可以同时执行下载链接的数量。)
#被动模式端口范围:注意:linux客户端默认使用被动模式,windows 客户端默认使用主动模式。在ftp客户端中执行"passive"来切换数据通道的模式。也可以使用"ftp -A ip"直接使用主动模式。主动模式、被动模式是有客户端来指定的。
最后修正时间2021.2.23
Centos7.6利用vsftpd搭建FTP服务器详细教程相关推荐
- linux6 ftp配置,centos6.x vsftpd配置FTP服务器详细教程
centos6.x vsftpd配置FTP服务器详细教程 centos6.x中搭建FTP服务器步骤如下 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | grep vsftp ...
- Windows7搭建FTP服务器详细教程
Windows7搭建FTP服务器详细教程 启用FTP功能 选择控制面板->程序->程序和功能->打开或关闭Windows功能->点开Internet信息服务,将其所有子项都选中 ...
- Win10搭建FTP服务器详细教程-附操作截图
Win10搭建FTP服务器详细教程 1.设置电脑防火墙 1.打开"控制面板" →点击 "Windows Defender 防火墙" . 2.点击"允许 ...
- linux利用vsftpd 搭建FTP服务器
实验环境: centos 6.4 x86_64 实验目标: 实现在同一跟目录下对admin,upload,download三个虚拟用户的不同权限的控制.具体权限控制列表如下: 用户名 权限说明 adm ...
- FileZilla搭建FTP服务器图解教程
在日常办公当中,经常会需要一个共享文件夹来存放一些大家共享的资料,为了保证文件数据的安全,最佳的方式是公司内部服务器搭建FTP服务器,然后分配多个用户给相应的人员.今天给大家分享FileZilla搭建 ...
- FileZilla搭建FTP服务器图解教程,并允许外网访问NAT内网
FTP是用来在两台计算机之间传输文件,是Internet中应用非常广泛的服务之一.FTP服务是网络中经常采用的资源共享方式之一.FTP协议有PORT和PASV两种工作模式,即主动模式和被动模式 .今天 ...
- Linux搭建SVN服务器详细教程
前言 本文讲解Linux系统下如何搭建SVN服务器,详细说明各配置项的功能,最终实现可管控多个项目的复杂配置. SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统 ...
- 在阿里云主机上基于CentOS用vsftpd搭建FTP服务器
最近需要在一台阿里云的云服务器上搭建FTP服务器,在这篇博文中分享一下我们根据实际需求进行的一些配置. ftp软件用的是vsftpd. vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序 ...
- 使用vsftpd 搭建ftp 服务器
1. 简介: 使用vsftpd 在ubuntu环境中搭建ftp服务器..Vsftp 是一个专门为unix类型系统设计一个ftp服务器,如linux. Vsftpd 支持ipv6和ssl.支持expli ...
最新文章
- 前端不规则图像点击_css实现不规则图形的阴影(如对话框)
- 英国政府发布5G政策文件
- UNITY2018 真机开启deepprofiling的操作
- SQL查询存在一个表而不在另一个表中的数据
- SurfaceView 拍照功能
- python包接口,Typetalk聊天API的python接口包
- unity中实现简单对象池,附教程原理
- php post防止hash攻击,MyBB editpost.php脚本'posthash' 参数SQL注入漏洞
- OneNote使用说明
- php中函数参数个数问题
- Java8 新特性 Optional
- EasyUI界面显示中文格式(日期中文格式)
- Mob统计分析游戏类App详细埋点需求
- excel VLOOKUP函数的使用方法(入门级)
- OpenJudge计算概论-字符串最大跨距
- vue学习项目之去哪儿网笔记
- git 上传项目到github
- java毕业论文范文3_java毕业论文范文3篇
- 制作网页所需的一些简单ps技巧
- python - 文件打包发布流程
热门文章
- 2022年8月中国数据库排行榜:openGauss重夺榜眼,PolarDB反超人大金仓
- 【Sketch2Pose项目环境搭建】win10+Anoconda+VScode
- 2.1寸黑白电子标签【蓝牙版】
- 第8.27节 Python中__getattribute__与property的fget、@property装饰器getter关系深入解析
- 中国互联网综合实力100强:猿辅导第39
- 【尚硅谷】Vue2.x核心学习笔记--渐进式的JS框架
- windows iis 7 配置不 了https
- Mac OS Fabric环境搭建
- struts2表单验证里validato 的type值及其含义
- 复旦金融专硕和上财金融专硕