如何使用 VSFTPD 在 CentOS 7 上安装 FTP 服务器2 M3 x( c# z+ @# L& w# m
介绍
, g# X$ {2 ~7 m: W, w如果您正在寻找安装 FTP 服务器,那么您将无法超越 VSFTPD 的简单性。
7 _: }4 w) s9 H* X" a* EFTP 代表文件传输协议。几十年来,它一直是在计算机之间传输文件的标准方法。
2 I8 |$ x6 m6 p; I虽然增加了安全措施,但 FTP 本质上是一种不安全的文件传输方法。但是,当文件可供多个用户使用时,或者在安全和专用网络中工作时,它会很有用。
% T4 m8 `$ ?% X, w! e) E4 y本指南将向您展示如何 在 CentOS 7 上使用 VSFTPD 配置和安装 FTP 服务器。
6 R' ~! e1 y9 `' ~ $ N+ R' B8 n9 Q9 u
先决条件
* @% }- J0 ]# c& J6 W7 O" }• 访问具有 sudo权限的用户帐户6 z& J8 X, y a9 Z4 p1 L
• yum包管理器,默认安装8 } ~ c9 |" r
• 您选择的文本编辑器
9 s0 ?+ j* Q4 a8 g! L3 L( x. N在 CentOS 7 上安装 FTP 服务器( ?! U( P+ W S+ N6 ]8 e
第 1 步:使用 VSFTPD 安装 FTP 服务/ |+ a: ]9 C5 v$ g, x. S' X" R$ J
1.首先更新包管理器:
# G8 o' y; n6 T3 u7 D3 ]$ }sudo yum update2 a! X. p- M/ L7 w W6 N4 p
允许该过程完成。( p, q8 z7 M' R0 R' I6 M
本指南使用VSFTPD (VSFTPD 代表“非常安全的 FTP 守护程序软件包”)。这是一个用于创建FTP 服务器的相对简单的软件实用程序。
% `6 {) j8 T( W% c3 e! ~2.使用以下命令安装VSFTPD软件:& b, g8 p5 \# z- }2 V) R) K
sudo yum install vsftpd( m1 \& W5 K6 P! d# }+ d
出现提示时,键入Y以允许操作完成。
& b; c3 c3 V5 k; Q# P
( N! U8 d! r, T+ H |3.启动服务并将其设置为在系统启动时启动,如下所示:
% q9 n2 a) o7 K- ~) C% C$ A) bsudo systemctl start vsftpd
0 d4 u2 C/ x' Y( r) V# C! zsudo systemctl enable vsftpd
+ f" _8 v' j8 D* c7 }: @/ l
# z1 w! U+ _1 f; f2 m. n; p4. 接下来,为您的防火墙创建一个规则以允许端口 21 上的 FTP 流量:
6 Z* N& q( c: ?sudo firewall-cmd --zone=public --permanent --add-port=21/tcp
* E7 O4 j4 U4 L/ W, N' lsudo firewall-cmd --zone=public --permanent --add-service=ftp8 E& ]" ~) d+ E
sudo firewall-cmd –-reload/ Q; Y" }$ V! b" V2 U, _% b
+ f% s- R5 y9 B: T注意:如果您使用不同的防火墙应用程序,请参阅文档为端口 21 正确配置它。此外,一些 FTP 客户端使用端口 20,因此您可能希望也包括该规则。只需复制第一行,并将 21 替换为 20。
% K/ _# Q5 B H4 h第 2 步:配置 VSFTPD
8 D, _2 j7 [7 f0 `! Y* J服务器上 FTP 服务的行为由/etc/vsftpd/vsftpd.conf配置文件决定。
: A2 _ k# ^* i3 H3 F3 j# X1.开始之前,创建一个默认配置文件的副本:
. D4 R' i6 `) ^+ \1 z5 Bsudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.default- i, c& h( \- Y1 m4 I' z# T
这可确保您有办法返回到默认配置,以防您更改可能导致问题的设置。
0 V5 ^1 @( {% o7 A: }3 T1 d2. 接下来,使用以下命令编辑配置文件:; ]( @, b }& L+ ~- k
sudo nano /etc/vsftpd/vsftpd.conf& W( g7 D }" P0 N( p4 g% r& r) m
3. 将您的 FTP 服务器设置为禁用匿名用户并允许本地用户。
) m4 D9 i+ `. f% X+ Z- D在配置文件中找到以下条目,并编辑它们以匹配以下内容:8 { m2 e& {# C; E$ X7 |
anonymous_enable=NO
+ G( J. V% `# F8 U# [! Vlocal_enable=YES0 y& n. t" O6 h+ f3 u9 t
, y2 _. i$ l7 U# @$ L
这是重要的一步。匿名访问是有风险的——除非您了解风险,否则您应该避免使用它。. n* u) c5 V( g
4. 接下来,允许登录用户将文件上传到您的 FTP 服务器。
. ?* Q- u% {# M, T9 }$ K找到以下条目,并编辑以匹配如下:
8 F) R8 M8 K9 z7 Y/ ?2 swrite_enable=YES$ Z0 E* B" L) Z' p2 N3 |. K7 q
注意:默认情况下,此行以# 符号开头,表示它是注释。注释是打开和关闭命令的有用方法。# 符号也可以用来在文件中做注释,而不需要系统将它们解释为指令。% L N& y. d5 R2 N! X
5. 限制 FTP 用户到他们自己的主目录。这通常称为jail 或chroot jail。查找并调整条目以匹配以下内容:
% _: n6 t8 Q4 G* Uchroot_local_user=YES; S. N/ ^7 l U; V# ?
allow_writeable_chroot=YES
9 `# {4 t z1 n. Q% s注意:出于测试目的,allow_writeable_chroot=YES选项将创建一个可运行的 FTP 服务器,您可以对其进行测试和使用。一些管理员提倡使用user_sub_token选项以获得更好的安全性。
0 b) Z/ \6 o- J( e* T# a1 o1 z有关此选项的更多信息,请参阅vsftpd 文档。
$ l% R ~6 @+ Z! g6.vsftpd实用程序提供了一种创建批准用户列表的方法。要以这种方式管理用户,请找到该userlist_enable条目,然后将文件编辑为如下所示:' X T( @3 j4 E p' X2 U: `
userlist_enable=YES
: n& k: J4 A( ^( Q' ^userlist_file=/etc/vsftpd/user_list
: i1 o7 M, K7 M/ auserlist_deny=NO
$ k% [, a. f2 y您现在可以编辑/etc/vsftpd/user_list文件,并添加您的用户列表。(每行列出一个。)该userlist_deny选项允许您指定要包含的用户;将其设置为yes会将列表更改为被阻止的用户。
5 e" s! L9 q. s6 x7. 完成编辑配置文件后,保存更改。重新启动vsftpd服务以应用更改:' E! A8 @1 x3 t2 K. k- {
sudo systemctl restart vsftpd
0 \% @- w; t0 f4 ]7 U2 K5 Q注意:通过访问文章如何使用 Linux ftp 命令了解有关 FTP 的更多信息。9 n1 U7 I# p! P
第 3 步:创建新的 FTP 用户9 C% r) W+ w* E
1. 要创建新的 FTP 用户,请输入以下内容:* H5 q8 G8 h" I6 V
sudo adduser testuser+ L' ]( w" _2 @2 p0 h/ y
sudo passwd testuser
; L, X2 o' b$ L7 f' Y5 |; O/ E! F5 |! O系统应提示您输入并确认新用户的密码。; b# j C9 Z% h0 P' x
2. 将新用户添加到用户列表:' R( i8 x6 X) f- z
echo “testuser” | sudo tee –a /etc/vsftpd/user_list
4 ] _3 ~. w% M: b" P w3.为新用户创建目录,并调整权限:# T. O) d8 I3 k; }
sudo mkdir –p /home/testuser/ftp/upload7 O2 s+ d) G0 _! G$ P) D; I
sudo chmod 550 /home/testuser/ftp; _. V; [" [ `
sudo chmod 750 /home/testuser/ftp/upload
0 l3 V6 S3 n; }8 K' \# Ssudo chown –R testuser: /home/testuser/ftp+ h( l2 q0 ?8 ?3 [5 f
3 U1 s$ g2 ?: g$ ^5 F# L这将为新用户创建一个home/testuser目录,其中包含一个用于上传的特殊目录。它仅将上传权限设置到 /uploads 目录。2 |( V- {# G3 N
4. 现在,您可以使用您创建的用户登录到您的 FTP 服务器:
" p& g" X9 R. m( Uftp 192.168.01+ L, |' Q% ]6 E) z
将此 IP 地址替换为您系统中的 IP 地址。您可以使用该 命令在 Linux 中找到您的 IP 地址。ip addr9 B' ~! w* E; g+ Y7 B; u1 f
系统应提示您输入用户名 - 输入您之前创建的任何用户名。输入密码,系统应该让您登录。
1 L% I; T9 X1 {4 G/ F注意: phoenixNAP 知识库还提供以下使用 VSFTPD 的 FTP 服务器设置指南:
. S7 s5 u- `, E# k& E3 C: j. C• 如何使用 Vsftpd 在 Ubuntu 上安装 FTP 服务器: g X* q: c( |4 H/ E4 n- K
• 如何在 Raspberry Pi 上设置 FTP 服务器
6 I5 f) v. ^* h7 U4 k) ~第 4 步:测试 FTP 服务器- ]* B! D8 g4 B
要在本地测试 FTP 服务器,请使用以下命令:
5 V/ ~1 c# p" Iftp localhost1 y* }) x b1 P- J
( c! P3 m. m5 `% e要远程测试,请使用以下命令: V% s7 M% l7 U0 y- a( w6 J
ftp your.ftp.server.com
# K Q" b2 f! e1 l9 G t1 ^6 a6 ?4 J5 r/ q& H$ F) I/ M" z
注意:虽然本指南中包含了一些安全措施,但强烈建议您在生产环境中实施 FTP 服务器之前熟悉最新的安全协议。如果您正在创建一个对 Internet 开放的 FTP 服务器,这一点尤其重要——许多安全漏洞都源于 FTP 协议。
: y$ V* p) c; [1 \ ?( U6 r结论; A# [- e ~, W7 @0 I2 J
现在您知道如何使用 VSFTPD 在 Centos 7 上设置和安装 FTP 服务器。您应该能够通过 FTP 登录到您的服务器并开始传输文件。
$ Z* \, r; d* V: S5 w* T; ]' S. n
6 q# P) C, O! u# U S, H
* Z7 V2 F ?2 s$ Ihttps://phoenixnap.com/kb/how-to ... all-vsftpd-centos-7
$ A1 X' \# }5 t' ^, |7 v |