找回密码
 注册
查看: 796|回复: 3

linux系统搭建ftp服务器

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2022-5-13 21:58:03 | 显示全部楼层 |阅读模式
linux系统搭建tftp服务器+ B4 \( {2 B/ P& z- j
检查vsftpd是否安装了:3 q) h+ V6 D# Q0 e
rpm -qa |grep vsftpd
+ `! ~+ J1 J! V, w- ?1 J' U% a5 s1 L' \1 v( E/ g
安装vsftpd服务, P& s: B5 L/ N) ?& x' I6 c6 n# g: [  u
yum install -y vsftpd
ftp
3 ?2 |' z2 H* R6 `

8 q7 i; v* Z7 J2 K7 @6 e' X' y3 I: R6 r% j% v% r" [

ftp的配置文件主要有三个,位于/etc/vsftpd/目录下,分别是:


2 c* g# \- c  m! _- {2 U( _

ftpusers 该文件用来指定哪些用户不能访问ftp服务器。user_list 该文件用来指示的默认账户在默认情况下也不能访问ftpvsftpd.conf vsftpd的主配置文件


0 j$ V( `7 H2 w4 v. R2 u

# a/ w; r/ `+ B) C% c3 M( J: J

( Q- |! V2 c: H9 g  S6 J- d

$ z/ n4 [5 y" k9 G& O! S9 |

6 P# b0 }  x1 `* K  C! W4 A8 k
! `# a+ M- N) N) V+ i以匿名用户登录9 z2 p! K5 t2 k7 Y+ T/ \, e9 y) ^3 \
我们去掉配置文件vsftpd.conf 里面以下
. U+ g; B$ s# }8 t5 Ranon_upload_enable=YES
- o$ C. h/ U: ~7 V6 d$ kanon_mkdir_write_enable=YES- D5 c: v# k7 G9 {
两项前面的#号,就可以完成匿名用户的配置,此时匿名用户既可以登录上传、下载文件。记得修改配置文件后需要重启服务。
  W1 Y* w9 n% q, v; b# t5 y1 H
$ R1 K" g9 A0 m3 N. X+ Z- w+ u( @; P非匿名账户的创建与使用: s, M5 W/ Y" M$ S0 [# V0 [
vsftpd服务与系统用户是相互关联的,例如我们创建一个名为admin
# ?2 i: d: O: b  A/ e/ h
useradd -d /home/admin/ -s /sbin/nologin admin    . J% k$ o7 a9 Y- e
chmod
755 /home/admin/
6 q6 E2 G* E0 f& @2 l
chown -R admin.admin /home/admin/% b9 o% G$ K( e$ }8 w6 L; U
  k" @) N# W# s
1 z% g* \/ ?7 @" d% Y3 e! {* J
  • 注意:这个 ftpvuser 是 linux 系统用户,用于映射 ftp 虚拟用户,只需要创建一次
    % ^. n' M1 p# B1 C6 {
* ^- r( k. W+ A/ x! |# D
启动vsftpd服务:# g9 }2 H4 i1 x/ h# U1 M- g
[root@controller ~]# systemctl start  vsftpd.service
8 W: u3 T9 `% j3 K8 s查看状态:# ~5 w: `! c( u4 t
[root@controller ~]# systemctl status  vsftpd.service
! T4 L2 _# W7 U: J4 v9 ^& h● vsftpd.service - Vsftpd ftp daemon
/ Z4 O$ ~5 d5 q$ o, \8 O   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
" W5 q0 w3 [' o   Active: active (running) since Wed 2022-04-13 05:48:41 CST; 22s ago
$ r+ z- ~: {( _& {% r% k  Process: 1994 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)/ E# g7 v- J* @
Main PID: 1995 (vsftpd)
3 j5 p0 |7 j8 b& \   CGroup: /system.slice/vsftpd.service
- l$ [+ w! U9 f% D! K           └─1995 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
0 ^- @9 D/ a& H5 m" }Apr 13 05:48:41 controller systemd[1]: Starting Vsftpd ftp daemon...0 I. k; K# x4 [( f% A" @6 ?
Apr 13 05:48:41 controller systemd[1]: Started Vsftpd ftp daemon.. I- V, J! v* p9 |6 t% Z3 y
) {# I9 |  d5 p4 C
) m! G  Q/ l( C7 E& |( ~5 b' \
开始连接* a+ k9 b! f% Q( i
$ m% g# A: C7 C7 _8 l- U" F

% X2 |9 b$ N. k6 Z- ^+ o! m$ P, W

0 h/ i( h! g2 y# Y7 a; K; o. U# l& B" U$ F5 l

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-5-13 22:22:10 | 显示全部楼层
配置 vsftpd 的操作日志
: z; h9 j* g4 ?4 o6 k" N; B从xferlog可以查看到用户上传下载等的操作记录,删除不会显示
4 H, F3 ?- I" c$ _0 Y- W5 w* bvim /etc/logrotate.d/vsftpd
( t/ l6 ~" Z# A4 S" q3 l" W--------------------------------1 y8 c) s' T, P6 ?0 r
/var/log/vsftpd.log {
4 L! y. ?- x* P3 D    # ftpd doesn't handle SIGHUP properly
* y* Q( E( @) a/ ~* y* Q    nocompress/ l1 V# U' j9 W1 |0 u$ t1 H/ C
    missingok
# h; x8 {& o0 L7 n- v}8 a- S# p5 W4 u3 d2 K! f5 W6 T
/var/log/xferlog {
% N% c1 F' }) H' s: k    # ftpd doesn't handle SIGHUP properly
1 ?  e# h0 B7 u2 `* G    nocompress
% }# a$ t9 b9 E    missingok/ S/ y/ I( |) C, w, j( f
}
" B; |% \) x4 y$ a--------------------------------4 E4 X+ l1 z( H1 |
tail -f /var/log/xferlog

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-5-13 22:25:37 | 显示全部楼层
添加文件:
- B$ ^4 O9 f- ~- ^; Y vim /etc/vsftpd/chroot_list
( ^" m/ g# z, k  N/ Yadmin

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-5-14 09:05:45 | 显示全部楼层
3.使用系统用户访问 FTP 服务器
7 W, n8 \; V, ?. Q7 J3.1.修改配置文件并重启服务0 n( L* r. c+ v( p% C
vim /etc/vsftpd/vsftpd.conf9 m, @! Q5 \* l* H: Q& w6 d. c  k! d0 c
-------------------------------
/ @- x. E, Y2 O7 J. kanonymous_enable=NO
( I5 a- ]" @9 q/ z) Alocal_enable=YES0 b) ]' n# G6 [4 k
write_enable=YES* Z; D. g- W( K2 j
local_umask=022
' z- N* x6 }5 p5 s  Lchroot_local_user=YES
3 r/ C0 Z0 A- W8 puserlist_enable=YES1 W/ i% N( ~+ O) ]/ `, Y
userlist_deny=NO                       
" }9 i* m' _# Vuserlist_file=/etc/vsftpd/user_list
" m; x' n; f  r* u6 O2 p. T$ ^: |pam_service_name=vsftpd
$ i8 o! Y  E/ ntcp_wrappers= YES9 u& j( ?1 M) k3 F1 V* Z
-------------------------------
* S: s; k, k, u6 Vsystemctl restart vsftpd& X' V1 T2 Y( Y5 J. S* S
systemctl status vsftpd
2 E) U5 Q$ {+ @4 e配置注解:: p( N3 @+ B6 p/ S9 \- p3 ?" d
anonymous_enable=NO                         # 修改,禁止匿名用户登录
. |, `, Z( ]4 E" Glocal_enable=YES                      # 默认启用,允许本地用户登录,虚拟用户需要映射到本地用户才可以使用8 K7 f- T1 @% q
write_enable=YES                      # 默认启用,本地用户开放写权限5 C. c3 P, q4 _8 B7 [5 ?
#local_umask=022                      # 注释掉,本地用户创建的文件的权限反码022,创建的文件为644
) D- v8 ?( ]+ @% xchroot_local_user=YES                     # 默认启用,将本地用户锁定在自己的家目录中
8 M; t9 _* ^7 Z% G* d  Ruserlist_enable=YES                      # 是否启用用户控制列表,默认启用9 j" m) j9 `' @, c# j
userlist_deny=NO                      # 指定用户控制列表的作用,默认为 YES,表示该文件内的用户列表禁止登录FTP服务器,这里修改为 NO,作为授权访问的用户列表使用 ( {, n, i( S' [7 G8 p: C
userlist_file=/etc/vsftpd/user_list         # 指定用户控制列表的文件名
! q) G8 S3 p, T& d! I% u$ Zanon_umask=022                       # 增加,匿名用户新增文件的umask数值。默认值为077,需要修改为022,否则上传后的文件为600$ f  [$ ^2 S0 [/ s4 l; H) N
dirmessage_enable=YES                     # 设置切换到目录时显 示message 隐含文件的内容
: Q3 @/ K5 g. }) b" Cxferlog_enable= YES                      # 激活上传和下载日志
5 ]: P: r6 \/ rconnect_from_port_20= YES                 # 启用FTP数据端口连接
2 |- n. a, P# p% i" _0 m4 gpam_service_name=vsftpd                     # 设置PAM认证服务的配置文件名称,  该文件存放在/etc/pam.d目录下
  L) c/ B9 i  E' Z; slisten= YES                           # 是否使用独占启动方式
2 k% \& D2 b9 k$ Ntcp_wrappers= YES                      # 使用防火墙
% S& P% b9 I6 E+ q% `#file_open_mode=0755
( v5 }- x9 `/ J8 ?& Jpasv_min_port=50000                         # 被动模式下的最小端口9 y) I2 `8 ]1 V& v( W7 |
pasv_max_port=60000                         # 被动模式下的最大端口$ n  Z$ `. S$ V7 n7 w: C
# 设置连接服务器后的欢迎信息
+ q6 X4 ?$ u8 Tftpd_banner=welcome to ftp service.9 e4 }$ J0 A1 O
banner_file=/etc/vsftpd/vsftpd_banner_file
2 Y7 k; _6 Y0 V" w$ U' ?* y配置建议:
, w, {6 Q6 V% E. y) x/ huserlist_deny=NO ,这里设置为NO,做为允许登陆的用户列表,可以手动指定允许登录 ftp 的用户,比较实用,如果设置为YES,作为禁止登录 ftp 的用户列表,与 ftpusers 功能重复,没有必要3 ^; V( a7 S* D# B0 Y. ?- s
vsftpd 的配置文件列表
* ]4 P8 ~8 p- i; m; x4 @/ v/etc/vsftpd/vsftpd.conf     # 主配置文件
6 G9 ^0 O, X; @; `% l2 e/etc/vsftpd/ftpusers  # FTP限制访问的用户,里面是一些系统用户,默认不允许访问,防止被入侵,一般不需要修改, U* m3 ?! ^) G1 `) I; v1 F' ~0 b
/etc/vsftpd/user_list      # 授权用户列表,可以控制哪些用户可以访问或者禁止访问,我一般配置为允许访问 ftp 的用户列表
  j7 B- d. G9 C* ~$ j特别注意:( s# u- Y' `  N# w1 P, O8 R( M
1)vsftpd.conf 文件中每个选项设置为一行,格式为“option=value”,“=”号两边不能留空白符4 a$ d; J$ L, |8 [' q
3.2.创建测试用的本地用户
1 }' x8 N+ B6 k# ouseradd zhaoshuai( X5 R2 ?; L5 M
passwd zhaoshuai
+ O" a7 o/ h" ^5 h# u创建测试用的文件和目录/ O! b4 |% B" o5 Z' Z& ^- G6 b/ O
[root@srv05-CT75 vsftpd]# touch /home/zhaoshuai/aaa.txt! Y- U+ h4 y& a$ u- {
[root@srv05-CT75 vsftpd]# mkdir -p /home/zhaoshuai/bbb 3 g7 N& q# r) k& o* o, {
[root@srv05-CT75 vsftpd]# ll /home/zhaoshuai/         
* i0 ?0 m" \; h$ ttotal 4
3 d4 y; j3 Z+ W; p: t1 d3 e-rw-r--r-- 1 root root    0 Jun 19 02:18 aaa.txt+ s6 P4 h, e+ e$ Q  l2 O
drwxr-xr-x 2 root root 4096 Jun 19 02:18 bbb9 A0 W9 X2 m" P
3.3.修改授权的本地用户列表" H8 l! m9 H+ ^- V6 V7 ^. D
ftpusers 禁止登录 ftp 服务器的用户列表,一般是系统用户不需要修改,可以增加; \8 q8 d- E* i# b. r
vim /etc/vsftpd/ftpusers
9 K$ Z  T' o0 v2 n) \4 j-------------------------------4 {) T4 m# |( O6 U
root
3 L2 U# t, d) C8 vbin
( u- w5 ?; w$ R  q, W, Ydaemon3 `" P" |4 E; b$ h8 i9 i
adm
, ~6 \5 W+ G# _& w/ n! zlp
8 X2 I6 F9 @4 R' q* l; P7 esync
4 s5 d7 Y5 p- u) L5 bshutdown
9 i1 x, ?+ w+ z$ [halt, i5 _8 p+ ~, O$ d
mail
1 ~6 A0 a' q- {% J  e9 D5 z0 Z  Znews
) [2 x; a7 b" a! z# R" c5 g9 ouucp; ]% P$ g. [4 c! H" U/ F
operator
9 D3 t& g- E% J6 Egames! V" ~: S1 }; c5 M' E
nobody
6 J4 h! b8 ^2 [. J& a# L: s/ [-------------------------------
# L  D7 Q8 u2 Y/ ouser_list 允许登陆 ftp 服务器的用户列表
$ o3 |4 C/ g- I# r$ Lvim /etc/vsftpd/user_list
6 J) h2 D( H4 b5 c9 h- N$ y2 b2 l-------------------------------. U/ y' ~* J! K# s# {5 K
zhaoshuai, |: }1 O5 W( S$ O
-------------------------------
: r$ n4 b1 [  X  ]/ D+ v. I  m备注:以上两个文件修改完不需要重启 vsftpd 服务
; [# P4 q# i& I3.4.使用本地用户登陆测试
" e5 \+ Z8 [& v% B% O9 Vftp 127.0.0.1
. ?2 [) c( k! I" n- v实例演示:1 P' o# G6 X, ?1 e, U, y+ c% S
[root@srv05-CT75 pam.d]# ftp 127.0.0.1              
& E2 a$ w7 F: y3 x/ |0 cConnected to 127.0.0.1 (127.0.0.1).
% D. o7 \- e/ C3 |+ Q220 (vsFTPd 3.0.2)
) P5 n- K1 Z. G4 G! H) IName (127.0.0.1:root): zhaoshuai
0 D# M( S8 q  V* P& T331 Please specify the password.# }( I/ W1 a+ K
Password:. }/ \$ |/ ^1 |" S$ C
230 Login successful.
* D' }8 v, \% {" C' x" S" KRemote system type is UNIX.& b# {( [" d3 @* j; V
Using binary mode to transfer files.$ a& G/ M. f6 G2 K
ftp> 1 n& Y  k% t8 z" `, B: \
ftp>   T/ s8 U, i) b) @" r0 [' h/ a2 n" \
ftp> ls* O5 V  J: z) Z8 P+ I9 r
227 Entering Passive Mode (127,0,0,1,94,91).
, z5 ^1 A8 q0 Z( A3 F4 J  \150 Here comes the directory listing.
3 K* a& M; y5 _. F-rw-r--r--    1 0        0               0 Jun 18 18:18 aaa.txt
0 H; G1 M0 H/ c; udrwxr-xr-x    2 0        0            4096 Jun 18 18:18 bbb" z: X, O8 E& |
226 Directory send OK.
0 g5 u- @; n1 A. l) B9 t5 `ftp> exit
; |0 U) m# n  l221 Goodbye.6 |8 L1 {9 W0 y5 R/ ?2 C
如果要使用 xftp 等图形工具,需要选择主动模式
/ {+ z0 C$ r' p. _& l: g8 F  D对于阿里云,青云等云平台的虚拟机,需要考虑安全组:允许20,21端口的接入请求5 d3 j4 f, W7 q2 t2 l, p
阿里云配置nat网关的端口转发可以通过公网连接,或者直接绑定EIP,青云需要直接绑定EIP进行公网连接/ }& r+ D, U# ~# _
阿里云和青云都无法通过负载均衡的端口转发提供ftp服务的访问,因为经过了他们内部的路由转发,无法直接找到对应的主机,总之ftp需要直连服务器才行
" U3 t  _/ \5 L8 h  n: w回到顶部
2 T% o9 @0 k$ P. j4.使用虚拟用户访问 FTP 服务器
# L0 E7 c7 M+ R4 Qftp配置为匿名访问显然是不安全也不便于管理的,另外,单纯使用系统用户的 ftp 也较难管理,通常情况下是使用一个系统用户作为ftp用户登陆ftp服务器的代理用户进行管理
/ |+ I, ?) ]# {8 ~7 {* J. x4.1.修改vsftpd.conf 文件,重启服务
: m! [3 b' {+ E6 }. L7 a) xcd /etc/vsftpd/
% p  u" z7 x, `6 ]0 ivim vsftpd.conf 1 l( E7 g2 U4 K. G8 k  e
----------------------------------------9 O3 D1 {  U3 W
anonymous_enable=NO
5 j  Y9 R; h7 E) o2 blocal_enable=YES* t8 v% Y; q+ c
write_enable=YES
* \( g" e5 q; q0 J#local_umask=0220 s- m/ j6 w1 f& n4 x6 I: v8 w. B
chroot_local_user=YES
3 f& i* R/ {) [userlist_enable=YES
9 ~" _3 h0 z9 z0 c& _/ Guserlist_deny=NO% K( H3 {" H! o
userlist_file=/etc/vsftpd/user_list- w* e$ d6 e3 `1 e+ E9 @) [
chroot_local_user=YES: N( I5 A/ ^# l
# made for virtual user
; o  v+ Z3 d  r6 gguest_enable=YES
9 ^9 r0 U9 G" _. @guest_username=ftpvuser
. |. ~- p" M+ ^- D; C2 cpam_service_name=/etc/pam.d/ftpvuser.pam! I# h# @+ T8 E- e, T- ?
user_config_dir=/etc/vsftpd/vuser.d
' I; F9 N' u1 Y! m( g9 m" ^anon_umask=0226 i1 q9 ]. w3 h
-------------------------------------7 n3 ~! b- |3 q0 q# ^
systemctl restart vsftpd5 B6 m. H" ?8 O# K7 l
systemctl status vsftpd2 C3 X: m  {- b: h- G# L& R+ l; _8 E
配置注解:
3 f9 o9 g$ m* v$ u' }1 n& ?guest_enable=YES                   # 增加,启用虚拟用户模式+ j! L' E5 y: M0 Y& ?/ N
guest_username=ftpvuser                  # 增加,配置虚拟用户映射到的本地用户名
; B* s4 `! U: Z1 G& P8 h- C. Q: Zpam_service_name=/etc/pam.d/ftpvuser.pam # 修改,配置虚拟用户的认证方式7 m* _6 U6 k! V- d' R1 t& M
user_config_dir=/etc/vsftpd/vuser.d         # 增加,虚拟用户的配置文件目录4 g, W4 N$ V) _! A) K
注意:
+ O( d: f! Q8 `& T1)除了主配置文件外,还可以给特定用户设定个人配置文件
: F9 ^- ]: H: J/ `$ w2)虚拟用户默认可以读写,访问时映射为本地用户,所以需要启用对本地用户的控制/ P; C9 a1 l+ Y2 U; F
3)实际的访问权限可由用户独立的配置文件进行单独控制# ~0 G1 y  w3 T3 P. @. W( J* v
4.2.设置 ftp 虚拟用户的验证授权方式# a+ I0 F' F) L* U6 B/ B
1)创建虚拟用户的秘钥文件
6 X" A  \" O" L* n/ n" nmkdir -p /etc/vsftpd/vuser.d
/ x' H3 o8 f. Z6 e7 m- V) Qcd /etc/vsftpd/vuser.d
! ?5 |8 x+ j( w( i- mtouch vuser.list5 d5 n- ?7 u! U0 m6 V( ^
2)加密虚拟用户的秘钥文件
9 I: b+ N$ @* J8 M# 使用 db_load 工具生成加密文件( R4 f# [* Y2 Z0 V
yum install db4-utils -y  ~5 ^6 S/ Y) s+ L3 ^( P
db_load -T -t hash -f vuser.list vuser.db
$ ^9 I& g& p! G5 D* h1 n9 rfile vuser.list
5 C) `8 o9 j: l& u8 c( Zfile vuser.db " |  T+ y# p& @6 y
# 为了安全,修改虚拟用户文件的访问权限
1 v' x; q1 K4 ^$ a+ Dchmod 600 /etc/vsftpd/vuser.*
+ K( b1 O; x* Y  b1 xll /etc/vsftpd/vuser.*
& F- y3 k. Z" F( W) |7 L" G3)创建虚拟用户的授权认证文件1 L, w; M' k# Q! t
cd /etc/pam.d/& N$ H* j- m+ q& W+ \+ z% |
mv vsftpd vsftpd.ori  # 备份原有的ftp的pam认证文件1 |" c: g$ Z7 _2 I. e% t# ^: g6 Y) T
vim ftpvuser.pam      # 创建新的ftp虚拟用户认证文件
& E; v! V# Z  w- w-----------------------------------
9 U% E$ g5 Z6 `( Y! e" b#%PAM-1.0
8 @% ~& [7 p5 Z2 [auth       required     pam_userdb.so db=/etc/vsftpd/vuser.d/vuser0 L9 _" ~  ]; X0 x5 d3 p2 z( b8 O
account    required     pam_userdb.so db=/etc/vsftpd/vuser.d/vuser9 _/ |: c& X' ?$ t' h$ k
-----------------------------------0 V6 L9 t  R# f- D( L
注意:db=/etc/vsftpd/vuser.d/vuser 不可以加.db的扩展名,否则认证不成功
6 E# o) F! C9 L4 t7 f- \4.3.实例演示:配置一个虚拟用户8 n8 m) Y& t5 }. T4 J
1)创建 ftp 虚拟用户 test1 的数据目录和秘钥文件
  Q8 \  v$ c4 T- f" o/ J* zmkdir -p /data/ftpdata/zhaoshuai2 W( K3 {$ f( [( R  ]. L
touch /data/ftpdata/zhaoshuai/ccc.txt               # 创建测试文件
' e1 Z  D6 J, Cmkdir -p /data/ftpdata/zhaoshuai/ddd8 w0 y2 D& m' h+ |& \
chown -R ftpvuser.ftpvuser /data/ftpdata
3 o. K+ v2 T1 _) H: N; Ychmod 755 /data/ftpdata/) L7 x7 `: w+ E6 L& J5 p
ls -lhd /data/ftpdata/5 L1 K: s9 L  M9 N9 g
ls -lh /data/ftpdata/
& @- i: p" {% }- A8 ?. q2)把该虚拟用户 test1 添加到 user_list 文件中
8 i0 a+ A0 Z5 \/ d7 d* C2 kvim /etc/vsftpd/user_list
( c5 h. z" C1 f- E---------------------
* d+ M+ C2 t7 |9 m2 `zhaoshuai
+ j" J0 i  J$ f7 X* p8 H----------------------
5 r7 @8 C5 ?8 o- n$ j2 I, b' [: ^% r备注:
0 H% C/ T0 L- s4 D1 X1)注释掉其他本地用户认证的内容,因为启用了 guest_enable 后,本地用户将失效,所有非匿名用户变成虚拟用户! c  K9 j3 b  |4 ^
2)因为需要授权访问的用户比较少,所以user_list设置为可以访问ftp服务的用户' J5 _6 a) {7 v3 @7 Z4 K7 f
3)创建或修改虚拟用户秘钥信息
1 u: R# C  n4 V  P. f$ _1 q  Ccd /etc/vsftpd/vuser.d1 {, X$ O5 Z2 G% |4 V6 X
vim  vuser.list
4 O2 s: }( p+ X: }; a$ l--------------------5 L( h1 \% X/ t3 x- j' q
zhaoshuai
3 P2 t9 L& Y, T3 q$ Hzhaoshuai               # 这里的密码和系统用户 zhaoshuai 的密码不同用以区分  u* i+ {+ d5 j0 j2 x8 R; F. Y
--------------------. |: b/ i/ C2 t
db_load -T -t hash -f vuser.list vuser.db
( f0 k. R4 i1 H2 u: T0 ?: [4 B: I该文件的格式为:一行用户名一行密码9 X% y7 u: K$ O: a
4)为用户创建授权配置文件(文件名必须为虚拟用户名)7 D$ e  n2 Z+ a4 s
cd /etc/vsftpd/vuser.d
* N% F8 x* a) L6 o& gvim zhaoshuai* o0 v1 R4 D! B+ E
---------------------------
7 g& ^# P  n2 z8 N2 O# 指定宿主目录,配置访问权限
2 V  D% x& s( B  c# ~local_root=/data/ftpdata/zhaoshuai  # 虚拟用户的宿主目录  T1 Q; V6 X0 _6 T( r; h6 k
write_enable=YES. s' J2 \- @2 K
anon_upload_enable=YES       # 上传  g  M( h; ~1 m0 r0 Y" _. v2 B) Z
anon_mkdir_write_enable=YES      # 创建目录写权限. O" Q5 A" Y' \
anon_other_write_enable=YES      # 其他写入权限" d+ e2 B7 e9 V* y
---------------------------3 L, m8 i' L+ Z; C: A) P2 S: _
5)配置完成刷新配置信息
4 O  g3 i6 P7 l6 }$ H$ zsystemctl restart vsftpd$ Q. }+ `3 R& v% l+ p% M! v
systemctl status vsftpd
# ~! p9 _/ r( X1 D# D7 q6)登陆测试' H$ m$ x7 F$ @
[root@srv05-CT75 vuser.d]# ftp 127.0.0.1
- c4 g' f3 x" O9 v2 @8 YConnected to 127.0.0.1 (127.0.0.1).- x6 n" Y" {8 _0 r$ \' H" ^& e
220 (vsFTPd 3.0.2)
0 t' @; [( k4 H9 SName (127.0.0.1:root): zhaoshuai! F! b+ _! M0 ~
331 Please specify the password.
5 j  \( i% C% Z% k6 h4 UPassword:                                       # 在这里使用系统用户zhaoshuai的密码无法登陆
; x' H% `' h7 c$ q! L/ [4 u: R530 Login incorrect.' t* \# T3 m8 j3 R3 Y; U
Login failed.) C" A4 c  ~% I8 u+ s
ftp> exit' m* R& s) s3 F0 |, K5 M
221 Goodbye.+ {0 [7 |6 h" S+ Z$ Z0 V. W8 L
[root@srv05-CT75 vuser.d]# ftp 127.0.0.13 p1 f: i+ g  F, |
Connected to 127.0.0.1 (127.0.0.1).9 P( A6 E% E# U) n1 _& i8 l8 }
220 (vsFTPd 3.0.2)
; o* `" h" {! y3 U5 t/ vName (127.0.0.1:root): zhaoshuai* U0 o" r; g; f2 g. U; d8 H
331 Please specify the password.
* [1 V+ i, }+ T8 FPassword:                                       # 使用虚拟用户zhaoshuai的密码可以正常登录
% f6 z  n+ q# w230 Login successful.
) ]+ j0 M% |) G8 G8 uRemote system type is UNIX.
( ^+ h" z# y+ o9 sUsing binary mode to transfer files.
4 q. p. e' m& J0 L1 {6 hftp> $ j, _! v. p: N5 w
ftp> ls                                         # 可以查看到上面创建的测试文件! T: Q) X( X6 b/ ?/ V& G" E/ M
227 Entering Passive Mode (127,0,0,1,226,175).
6 h/ v5 W% d# I9 S# T! S' m, A150 Here comes the directory listing.+ U4 |) g9 z6 ?! a
drwxr-xr-x    3 1000     1000         4096 Jun 12 07:59 ccc.txt" r) Q8 S- F' M! l+ q  J- f7 U
drwxr-xr-x    6 1000     1000         4096 Jun 12 07:45 ddd: R" l# ^( e/ d
226 Directory send OK.
6 H& m+ d- [: y' C+ O: {) rftp> exit, ]5 B9 A7 o, }
221 Goodbye.
( \8 K. B( h, X% I* |- r0 L# j回到顶部  `0 `; U2 j" _3 V0 J3 k, ^
拓展1:ftp 的防火墙配置1 |3 ]# f- x; d: s1 Y( {- W7 h
iptables -I INPUT -p tcp --dport 21 -j ACCEPT        # FTP连接端口- n2 N$ K6 @0 b
iptables -I INPUT -p tcp --dport 33000:34000 -j ACCEPT   # pasv模式下的随机端口/ y' R  T0 C) C' f0 I
iptables-save >/etc/sysconfig/iptables             # 保存防火墙配置: t6 K4 O& }# D
systemctl restart iptables.service. Z- I# G. c# S; _2 s3 ^; C
systemctl restart vsftpd.service
6 F* Z* \# F9 b7 N  ?2 V回到顶部6 l$ r* ]$ Q8 L% n! G
拓展2:CentOS6安装vsftpd
* K6 ^. x: z; g1 @4 q2 s7 w方法相同,区别在于服务的启动命令是
; S: j! v$ x" I. q( fservice vsftpd restart
9 {5 Q& O: `* c. Dservice vsftpd status2 Q. U7 w! l' Q% w
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 01:59 , Processed in 0.017549 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表