Linux 在 linux 中搭建 FTP 服务

本文涉及的产品
运维安全中心(堡垒机),免费版 6个月
简介: Linux 在 linux 中搭建 FTP 服务

概述

在本篇博文中,我将会介绍如何搭建你自己的FTP服务

20170117202252212.jpg

FTP是什么


FTP 是文件传输协议File Transfer Protocol的缩写。顾名思义,FTP用于计算机之间通过网络进行文件传输。你可以通过FTP在计算机账户间进行文件传输,也可以在账户和桌面计算机之间传输文件,或者访问在线软件归档。但是,需要注意的是多数的FTP站点的使用率非常高,可能需要多次重连才能连接上。


FTP地址和HTTP地址(即网页地址)非常相似,只是FTP地址使用ftp://前缀而不是http://


FTP服务器是什么


通常,拥有FTP地址的计算机是专用于接收FTP连接请求的。一台专用于接收FTP连接请求的计算机即为FTP服务器或者FTP站点。


现在,我们来开始搭建一个FTP服务文件共享。在本博文,我们将以vsftpd作为ftp服务。


VSFTPD是一个自称为最安全的FTP服务端软件。事实上VSFTPD的前两个字母表示“非常安全的very secure”。该软件的构建绕开了FTP协议的漏洞。


尽管如此,你应该知道还有更安全的方法进行文件管理和传输,如:SFTP(使用OpenSSH)。FTP协议对于共享非敏感数据是非常有用和可靠的。


安装VSFTPD


CentOS

# 安装vsftpd
yum -y install vsftpd
# 启动
service vsftpd start
# 开启启动
chkconfig vsftpd on


VSFTPD相关命令

# 启动ftp服务
service vsftpd start
# 查看ftp服务状态
service vsftpd status 
# 重启ftp服务
service vsftpd restart
# 关闭ftp服务
service vsftpd stop


配置FTP服务


多数的VSFTPD配置项都在/etc/vsftpd.conf配置文件中。这个文件本身已经有非常良好的文档说明了,因此,在本节中,我只强调一些你可能进行修改的重要选项。使用man页面查看所有可用的选项和基本的 文档说明:

man vsftpd.conf


根据文件系统层级标准,FTP共享文件默认位于/srv/ftp目录中。


允许上传:


为了允许ftp用户可以修改文件系统的内容,如上传文件等,“write_enable”标志必须设置为 YES。

write_enable=YES


允许本地(系统)用户登录:


为了允许文件/etc/passwd中记录的用户可以登录ftp服务,“local_enable”标记必须设置为YES。

local_enable=YES


匿名用户登录


下面配置内容控制匿名用户是否允许登录:


允许匿名用户登录

anonymous_enable=YES

匿名登录不需要密码(可选)

no_anon_password=YES


匿名登录的最大传输速率,Bytes/second(可选)

anon_max_rate=30000


匿名登录的目录(可选)

anon_root=/example/directory/


根目录限制(Chroot Jail)


( chroot jail是类unix系统中的一种安全机制,用于修改进程运行的根目录环境,限制该线程不能感知到其根目录树以外的其他目录结构和文件的存在。详情参看chroot jail)


有时我们需要设置根目录(chroot)环境来禁止用户离开他们的家(home)目录。在配置文件中增加/修改下面配置开启根目录限制(Chroot Jail):

chroot_list_enable=YES 
chroot_list_file=/etc/vsftpd.chroot_list

“chroot_list_file”变量指定根目录限制所包含的文件/目录( 即用户只能访问这些文件/目录)

最后你必须重启ftp服务,在命令行中输入以下命令:

sudo systemctl restart vsftpd

到此为止,你的ftp服务已经搭建完成并且启动了。


配置文件vsftpd.conf


#进入vsftpd配置文件
vim /etc/vsftpd/vsftpd.conf 
# 禁止匿名用户anonymous登录
anonymous_enable=NO
# 允许本地用户登录
local_enable=YES
# 让登录的用户有写权限(上传,删除)
write_enable=YES
# 默认umask
local_umask=022
# 把传输记录的日志保存到/var/log/vsftpd.log
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=NO
# 允许ASCII模式上传
ascii_upload_enable=YES 
# 允许ASCII模式下载
ascii_download_enable=YES
# 使用20号端口传输数据
connect_from_port_20=YES
# 欢迎标语
ftpd_banner=Welcome to use my test ftp server.
# 接下来的三条配置很重要
# chroot_local_user设置了YES,那么所有的用户默认将被chroot,
# 也就用户目录被限制在了自己的home下,无法向上改变目录。
# chroot_list_enable设置了YES,即让chroot用户列表有效。
# ★超重要:如果chroot_local_user设置了YES,那么chroot_list_file
# 设置的文件里,是不被chroot的用户(可以向上改变目录)
# ★超重要:如果chroot_local_user设置了NO,那么chroot_list_file
# 设置的文件里,是被chroot的用户(无法向上改变目录)
chroot_list_enable=YES
# touch /etc/vsftpd/chroot_list 新建
chroot_list_file=/etc/vsftpd/chroot_list
use_localtime=YES
# 以standalone模式在ipv4上运行
listen=YES
# PAM认证服务名,这里默认是vsftpd,在安装vsftpd的时候已经创建了这个pam文件,
# 在/etc/pam.d/vsftpd,根据这个pam文件里的设置,/etc/vsftpd/ftpusers
# 文件里的用户将禁止登录ftp服务器,比如root这样敏感的用户,所以你要禁止别的用户
# 登录的时候,也可以把该用户追加到/etc/vsftpd/ftpusers里。
pam_service_name=vsftpd
# 重启 vsftpd
service vsftpd restart
相关文章
|
5天前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
22 5
linux系统服务二!
|
5天前
|
Linux 应用服务中间件 Shell
linux系统服务!!!
本文详细介绍了Linux系统(以CentOS7为例)的启动流程,包括BIOS自检、读取MBR信息、加载Grub菜单、加载内核及驱动程序、启动systemd程序加载必要文件等五个主要步骤。同时,文章还对比了CentOS6和CentOS7的启动流程图,并分析了启动流程的耗时。此外,文中还讲解了Linux的运行级别、systemd的基本概念及其优势,以及如何使用systemd管理服务。最后,文章提供了单用户模式和救援模式的实战案例,帮助读者理解如何在系统启动出现问题时进行修复。
23 3
linux系统服务!!!
|
3月前
|
Linux
在Linux中,怎么把脚本添加到系统服务里,即用 service 来调用?
在Linux中,怎么把脚本添加到系统服务里,即用 service 来调用?
|
2月前
|
网络协议 安全 Linux
如何配置Linux端的ftp?
如何配置Linux端的ftp?
142 64
|
10天前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
55 3
|
10天前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
55 3
|
28天前
|
Ubuntu Linux 网络安全
Linux中服务管理问题
【10月更文挑战第4天】
20 2
|
23天前
|
网络安全 数据安全/隐私保护
FTP服务搭建
FTP服务搭建
24 0
|
30天前
|
弹性计算 关系型数据库 网络安全
阿里云国际版无法连接和访问Windows服务器中的FTP服务
阿里云国际版无法连接和访问Windows服务器中的FTP服务
|
1月前
|
应用服务中间件 Linux Shell
Linux 配置 Nginx 服务的详细步骤,绝对干货
Linux 配置 Nginx 服务的详细步骤,绝对干货
67 0