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

linux系统搭建ftp服务器

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2022-5-13 21:58:03 | 显示全部楼层 |阅读模式
linux系统搭建tftp服务器- j2 p+ {( }7 P( j) \8 x& Z
检查vsftpd是否安装了:9 h$ g- C6 r* v6 a8 T; [6 W' U7 n/ s
rpm -qa |grep vsftpd9 a8 c1 U% h7 k+ i

1 \% ?6 e1 k0 @' y安装vsftpd服务: e  m: r  b7 b7 f1 Q
yum install -y vsftpd
ftp
1 ^: Y( M" z, W2 `1 a9 x1 F" @
5 x  m: ~; {1 a7 r
. ]; l0 p1 B! J$ h/ L) b

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


  y  i9 \3 ^$ G) D

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


  H; }# s  R) g  |

4 E2 o6 `4 O$ Y0 c6 L7 c

. X* k1 @+ p) u( b1 s8 [2 i$ Z0 e
9 Q$ K2 F- v: k9 B+ L

& i9 ^* p' _# T2 H- E1 ]! Q3 M2 r9 y! z" V. a8 D
以匿名用户登录
& ]9 f8 P% |% U0 t9 w我们去掉配置文件vsftpd.conf 里面以下
; E" ^0 z- t; Z5 [, e# Oanon_upload_enable=YES" n- b# f; {- x! \% s  O# I8 C
anon_mkdir_write_enable=YES
. b, K' B8 z* g" U$ t5 _0 {3 a两项前面的#号,就可以完成匿名用户的配置,此时匿名用户既可以登录上传、下载文件。记得修改配置文件后需要重启服务。
* D3 |7 m8 R1 }! j; F! |. T( e7 G9 a( T4 T5 l/ B5 `( @
非匿名账户的创建与使用  p2 }: Z! y- U3 L
vsftpd服务与系统用户是相互关联的,例如我们创建一个名为admin5 i. p- ~, y+ R: G* x
useradd -d /home/admin/ -s /sbin/nologin admin    : E- q/ F* t+ D/ \
chmod
755 /home/admin/
7 t# ~5 a$ E& |. s' j& p
chown -R admin.admin /home/admin/" y& }& w' {, S* o5 q! W
8 F' T& x% [6 P. r0 U5 o

9 s2 g' S' N/ C7 j
  • 注意:这个 ftpvuser 是 linux 系统用户,用于映射 ftp 虚拟用户,只需要创建一次. }+ U1 Q1 ]/ H( H& P! [2 C1 U
: @$ p4 n3 _% d! A& |
启动vsftpd服务:
4 R5 i9 }( ~4 J9 J/ S[root@controller ~]# systemctl start  vsftpd.service* K- x/ g1 [* J! X, M* `/ D
查看状态:
* [4 K1 L9 }3 Q" A[root@controller ~]# systemctl status  vsftpd.service
' t' q6 x" d7 L% c+ Y● vsftpd.service - Vsftpd ftp daemon- [3 O, l0 n& m- d5 n
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
4 G9 ~6 a0 P0 a) W" p& F8 }, K* ^   Active: active (running) since Wed 2022-04-13 05:48:41 CST; 22s ago" E7 `; _- w9 i$ I* b( L1 _0 V$ w
  Process: 1994 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)4 n3 J3 i9 p9 k! l
Main PID: 1995 (vsftpd): a5 C- A; ~! o2 E
   CGroup: /system.slice/vsftpd.service
% A1 H% A  I, W! S1 b. m           └─1995 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
3 d, w! y* [4 B0 l& S9 m/ T1 fApr 13 05:48:41 controller systemd[1]: Starting Vsftpd ftp daemon...' r- q# d7 U' K. J  `
Apr 13 05:48:41 controller systemd[1]: Started Vsftpd ftp daemon.5 u4 Q& P8 z, H* D$ r3 C

  o3 a3 q. F. [1 v* q) u# d# O
( Q" t; W% k/ }2 E) r, |8 i1 ^开始连接
( _+ L2 `; i6 U
: ^2 Y: s0 Q: k. N' O
8 a! \) x# A2 j' [& s9 ?
/ E: J2 v/ @7 ]" T/ v8 |' r7 ^! y
, N9 n% r* ^) K# @3 I0 g2 Q6 t7 P

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-5-13 22:22:10 | 显示全部楼层
配置 vsftpd 的操作日志
" d4 W1 F( H& o% T4 r/ S从xferlog可以查看到用户上传下载等的操作记录,删除不会显示
2 c0 _. I. V: @1 Bvim /etc/logrotate.d/vsftpd % F) {3 C/ q. q$ O
--------------------------------
+ C6 M6 J# l% V4 B+ W/var/log/vsftpd.log {
# L) u( i2 [; ^9 `    # ftpd doesn't handle SIGHUP properly
2 L. t/ L9 ~0 g8 E  c! n    nocompress
" U" W8 N2 t9 q* p7 L    missingok
; J  v3 Q9 Y$ c$ H. ~( E. H}
2 _. b2 n. H3 ~5 L, u, R0 T/var/log/xferlog {
% O. b  {" m: W! {1 s( j    # ftpd doesn't handle SIGHUP properly, M* z1 g8 j, W& y
    nocompress7 s) v  B' T" i' W
    missingok
/ P. l5 L: Z8 @- ^% E  T$ j2 s; T}4 T- O: O+ r7 P) _
--------------------------------" q; B1 k2 T  q6 b; G2 F
tail -f /var/log/xferlog

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-5-13 22:25:37 | 显示全部楼层
添加文件:
+ Y5 `' e7 j$ }5 r! a vim /etc/vsftpd/chroot_list
* t( Y7 P, x' r6 l5 [0 Badmin

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-5-14 09:05:45 | 显示全部楼层
3.使用系统用户访问 FTP 服务器
; E8 @* `8 l( L5 U. M! M: w9 C5 C3.1.修改配置文件并重启服务
- @% G8 G1 }0 v2 |  w3 tvim /etc/vsftpd/vsftpd.conf
5 b3 p: Y8 f4 ]-------------------------------: b8 w) k1 c* t
anonymous_enable=NO
0 t" p! M6 w, o( x4 |local_enable=YES+ M$ S& g( \+ t* t& b5 m1 C
write_enable=YES2 {& A* V( q5 d$ a
local_umask=022
5 J9 U' a/ G2 Y8 g1 gchroot_local_user=YES% x& [% S* K2 A, o" K7 N' a
userlist_enable=YES& R) [# ?' b0 s/ d% O, J( B
userlist_deny=NO                       
! O3 b* I2 f% C- Q# ~& @* tuserlist_file=/etc/vsftpd/user_list9 I! @7 N- {2 H7 W. G9 M6 C8 m( Z
pam_service_name=vsftpd7 ]/ Z+ W' ?0 g! D1 F
tcp_wrappers= YES4 ]; ?5 k( W5 W  }9 |
-------------------------------
, F$ O6 T; ~( h) U! n3 Isystemctl restart vsftpd
6 Y0 \6 C* a0 fsystemctl status vsftpd/ l. l$ H# _( ]  M% ]
配置注解:- L: c: h6 @" w5 O$ z9 {
anonymous_enable=NO                         # 修改,禁止匿名用户登录, ~8 K2 ^* S$ ]2 S
local_enable=YES                      # 默认启用,允许本地用户登录,虚拟用户需要映射到本地用户才可以使用; z, E  L# e) \
write_enable=YES                      # 默认启用,本地用户开放写权限
" R+ R. V2 {5 ?0 [4 {3 f( g$ u#local_umask=022                      # 注释掉,本地用户创建的文件的权限反码022,创建的文件为644
% W) C( j, E: n( I) G( n0 [chroot_local_user=YES                     # 默认启用,将本地用户锁定在自己的家目录中
: {* @7 r% \- [( f/ ^5 cuserlist_enable=YES                      # 是否启用用户控制列表,默认启用' U, b4 P% A" P
userlist_deny=NO                      # 指定用户控制列表的作用,默认为 YES,表示该文件内的用户列表禁止登录FTP服务器,这里修改为 NO,作为授权访问的用户列表使用
$ k  l' r/ G8 wuserlist_file=/etc/vsftpd/user_list         # 指定用户控制列表的文件名3 A" |  q6 T/ V2 k0 d
anon_umask=022                       # 增加,匿名用户新增文件的umask数值。默认值为077,需要修改为022,否则上传后的文件为600. Q' F9 B) B( a- _' K" _  T3 I/ b; m
dirmessage_enable=YES                     # 设置切换到目录时显 示message 隐含文件的内容
1 ]. o, D( G+ Qxferlog_enable= YES                      # 激活上传和下载日志* q' A$ @# n7 `3 B) o4 p7 E. m
connect_from_port_20= YES                 # 启用FTP数据端口连接
2 N9 T0 b- S5 ]1 U/ R( T7 kpam_service_name=vsftpd                     # 设置PAM认证服务的配置文件名称,  该文件存放在/etc/pam.d目录下
7 x* y8 q5 B  R! f3 H1 `3 d+ Llisten= YES                           # 是否使用独占启动方式' m& c9 [2 W+ n* J  @9 h
tcp_wrappers= YES                      # 使用防火墙! I; G" e0 n1 S5 a2 K5 I
#file_open_mode=0755
. ]& ?. Z) x  r/ f2 ^pasv_min_port=50000                         # 被动模式下的最小端口
) [2 Y& e1 i9 n1 o3 k9 rpasv_max_port=60000                         # 被动模式下的最大端口7 S2 ^' Q1 r+ D/ R! }3 R( l3 ^; U# f0 i
# 设置连接服务器后的欢迎信息
4 w$ P* }9 o2 Q, Q# |& yftpd_banner=welcome to ftp service./ }  s9 r" y6 b
banner_file=/etc/vsftpd/vsftpd_banner_file
5 l+ G% l0 h7 @5 l% [7 N5 `7 }9 m配置建议:$ `! a& S1 f% H! r' m# n* Q
userlist_deny=NO ,这里设置为NO,做为允许登陆的用户列表,可以手动指定允许登录 ftp 的用户,比较实用,如果设置为YES,作为禁止登录 ftp 的用户列表,与 ftpusers 功能重复,没有必要. K- \! p8 {+ u7 Q8 d
vsftpd 的配置文件列表' M7 z/ N4 @6 W. t' {- a7 B$ t
/etc/vsftpd/vsftpd.conf     # 主配置文件
* x8 c9 a4 Z0 }8 _. x0 C9 l  d. ^/etc/vsftpd/ftpusers  # FTP限制访问的用户,里面是一些系统用户,默认不允许访问,防止被入侵,一般不需要修改
" x7 Y7 d2 O3 I; I) @/etc/vsftpd/user_list      # 授权用户列表,可以控制哪些用户可以访问或者禁止访问,我一般配置为允许访问 ftp 的用户列表$ a0 @( h0 h, ]
特别注意:, T6 |; f- m1 E: F: A) o
1)vsftpd.conf 文件中每个选项设置为一行,格式为“option=value”,“=”号两边不能留空白符
! ^4 k, E6 F% c3.2.创建测试用的本地用户; L( v9 N( G& F( Q9 O
useradd zhaoshuai
' d+ a, H/ s* J. P: _4 r' Apasswd zhaoshuai
/ X' G$ Y7 F; p  V8 M4 e# J创建测试用的文件和目录
3 m* w8 ?) y" E: U# S1 _0 D* H. @[root@srv05-CT75 vsftpd]# touch /home/zhaoshuai/aaa.txt% d7 S" A% z6 W! l2 J5 M
[root@srv05-CT75 vsftpd]# mkdir -p /home/zhaoshuai/bbb
; v5 p8 f3 h1 A( N: u[root@srv05-CT75 vsftpd]# ll /home/zhaoshuai/          * K/ ~# g3 N3 _+ {+ E
total 4
7 A" k9 I( J: N2 p" |4 }( b& L; F6 U-rw-r--r-- 1 root root    0 Jun 19 02:18 aaa.txt
: b. W% k* u; xdrwxr-xr-x 2 root root 4096 Jun 19 02:18 bbb7 `; L- ]5 D/ M! O0 e2 [2 J* f3 q
3.3.修改授权的本地用户列表
1 y% C6 m: H/ e4 X; pftpusers 禁止登录 ftp 服务器的用户列表,一般是系统用户不需要修改,可以增加; X/ _$ W2 V; C. A
vim /etc/vsftpd/ftpusers
' o# y" P. b4 h; ^* ]9 O-------------------------------1 r! V! f$ ~# B' u5 G. [& L
root
% Q' J! l9 X# cbin
9 d8 i+ F1 q7 tdaemon! O" K( T: A  O6 ?
adm
. g' O$ m& H+ b6 B, w1 Plp  h4 j9 `4 s+ X8 q1 ~& a
sync' S2 C5 H0 h; C+ O& k6 n7 G3 z5 c
shutdown7 f" x9 U" A* S1 |* M1 z; G
halt
7 P  F5 q+ Y1 q+ G) B  Q% |mail$ d9 Q  i3 T  d- b% X5 l
news( }; }% ^# Y( ^/ H  R; x; y
uucp
! D/ K" D% t; p% joperator
- P* h- Z8 `5 b- {, Tgames% J# K# @: f* m5 y
nobody
0 Y; `  H# I% u$ }) S3 h- |-------------------------------0 W# i0 Y+ v  x; J
user_list 允许登陆 ftp 服务器的用户列表4 U- I/ ]* G0 ?8 U( F( T8 z
vim /etc/vsftpd/user_list
) F& V6 v! e& }: c* b-------------------------------6 J3 P; V# m( R
zhaoshuai1 Y+ U5 A6 A3 \) }7 E$ H+ B: i
-------------------------------, f6 Z9 S9 z3 a8 x) \) A
备注:以上两个文件修改完不需要重启 vsftpd 服务
$ q& ]6 v7 F1 J8 m# }5 X3.4.使用本地用户登陆测试; F7 S( K. r; p$ U
ftp 127.0.0.1
: T7 j3 |6 w  q1 b8 l. Z实例演示:5 H$ ~, r( z7 C( d
[root@srv05-CT75 pam.d]# ftp 127.0.0.1              ! X! k! U. E7 \& S: `2 K
Connected to 127.0.0.1 (127.0.0.1).0 \; U5 R% a; I3 ]( C
220 (vsFTPd 3.0.2)  M/ S! t2 q! t2 [
Name (127.0.0.1:root): zhaoshuai' h' z3 ~! J) v8 Q" @! h1 O
331 Please specify the password.6 N4 J+ z+ M" {2 P
Password:6 c# Q2 \$ |: c
230 Login successful.
) R6 I4 I3 z( C% URemote system type is UNIX.0 z+ t/ |! A$ }1 o' X
Using binary mode to transfer files./ ~2 H) J8 A4 z! K# d. S
ftp> " l. P# m. ?  F- R- E) R
ftp> 2 H5 e& |8 @" s) ^9 g! g
ftp> ls" H9 m1 W  x3 Z: Q0 @6 q* x) Q
227 Entering Passive Mode (127,0,0,1,94,91).
- b, z# c; I: m0 R& m150 Here comes the directory listing.
0 ?+ U# H" P4 E7 x4 e7 G-rw-r--r--    1 0        0               0 Jun 18 18:18 aaa.txt
7 D1 E9 Z# N& F5 k( V4 Y. ddrwxr-xr-x    2 0        0            4096 Jun 18 18:18 bbb* h$ Q9 g' [% w, o0 Y5 Y- M) L  D" D
226 Directory send OK.
- w5 s% R" K6 `" m0 w; U, Vftp> exit
. x$ e/ W' K. e* E6 U221 Goodbye.3 y9 Q, L  j0 A: u) y8 M
如果要使用 xftp 等图形工具,需要选择主动模式' p) B. ?" n2 X  x
对于阿里云,青云等云平台的虚拟机,需要考虑安全组:允许20,21端口的接入请求
" Y; N! e0 r2 T" h8 x4 ?8 ]: L- W# q阿里云配置nat网关的端口转发可以通过公网连接,或者直接绑定EIP,青云需要直接绑定EIP进行公网连接4 o2 v% L) }$ y. [4 p- I
阿里云和青云都无法通过负载均衡的端口转发提供ftp服务的访问,因为经过了他们内部的路由转发,无法直接找到对应的主机,总之ftp需要直连服务器才行8 U! H9 ?# m# P& Y- ]; F  y$ Y. K5 H
回到顶部2 `  E, ?. k4 ~9 u1 V, H; H5 s
4.使用虚拟用户访问 FTP 服务器. B$ l- A, G- z6 _* w& S) q; N
ftp配置为匿名访问显然是不安全也不便于管理的,另外,单纯使用系统用户的 ftp 也较难管理,通常情况下是使用一个系统用户作为ftp用户登陆ftp服务器的代理用户进行管理
1 |$ b9 t" z6 S% Y* g+ x4.1.修改vsftpd.conf 文件,重启服务0 k  U1 J( _2 m/ G0 ?9 {2 m# E! c! \
cd /etc/vsftpd/* |5 S2 q. y; T- n9 t
vim vsftpd.conf ; K3 s  i2 \; R2 O7 v" T  c2 @6 k
----------------------------------------  k, f5 z" q$ N* s! i5 G
anonymous_enable=NO- `, G+ F" Y3 t) {4 K6 Q5 |
local_enable=YES( e! _) D, w* ]/ ^' t  k+ k
write_enable=YES7 Y& y, \/ T+ _  j* ~
#local_umask=022/ `" w- o( m* s' B, k
chroot_local_user=YES& H3 {% r% O  q6 U: q4 x
userlist_enable=YES
8 k* B5 ^8 H2 i6 @8 Q7 Luserlist_deny=NO: K, a# A$ K. u& [( z
userlist_file=/etc/vsftpd/user_list
# C! a1 i( ]9 q. R+ z& U& l* ^; H- O" B* uchroot_local_user=YES
% t! |# P' D* k) _- z" G4 f# made for virtual user
* k! }$ S  \- E. p! ?guest_enable=YES, H' v. v$ _1 c) H, `) B& b& x! i
guest_username=ftpvuser
+ C0 w! b) G. I; M0 K# wpam_service_name=/etc/pam.d/ftpvuser.pam
3 V  s: t  E# }7 B. x# R8 Xuser_config_dir=/etc/vsftpd/vuser.d" M# _& ]4 f0 N8 i5 C# }' h
anon_umask=022
% A. Q8 i. O: X& v' d-------------------------------------
. {6 ^% w6 N1 T) vsystemctl restart vsftpd
7 r) Q9 k, o2 T/ v: J+ hsystemctl status vsftpd) c+ B2 S% X2 V3 v4 N9 ?) J
配置注解:
5 b5 x/ n* m) [+ t- mguest_enable=YES                   # 增加,启用虚拟用户模式8 d- K- B9 |" P3 c0 W  O7 ]
guest_username=ftpvuser                  # 增加,配置虚拟用户映射到的本地用户名
4 v0 z3 x4 y3 A7 K2 }pam_service_name=/etc/pam.d/ftpvuser.pam # 修改,配置虚拟用户的认证方式
# w1 f- Z* H# J0 @+ r5 h( puser_config_dir=/etc/vsftpd/vuser.d         # 增加,虚拟用户的配置文件目录" R& P- [1 X4 [: @2 N/ ?$ r& w. ]
注意:4 i4 [  q* C8 T! r& z7 |
1)除了主配置文件外,还可以给特定用户设定个人配置文件" K; v/ k& Y) c7 C
2)虚拟用户默认可以读写,访问时映射为本地用户,所以需要启用对本地用户的控制
  F% I% C& F* o$ e6 T# j2 r) Y" f3)实际的访问权限可由用户独立的配置文件进行单独控制  F  @% S$ o6 e
4.2.设置 ftp 虚拟用户的验证授权方式1 V' w5 @' W/ Q* P! \6 O$ {
1)创建虚拟用户的秘钥文件" z9 D, d- m& [; _  r
mkdir -p /etc/vsftpd/vuser.d' @5 B5 h' _1 u" f, O
cd /etc/vsftpd/vuser.d6 X2 U( Q7 M) r2 `# y0 y( j! ~" ?# y
touch vuser.list
  k) d( ]  g$ T) G% G9 h2)加密虚拟用户的秘钥文件
% v$ Z2 E2 m- _# 使用 db_load 工具生成加密文件$ u$ d# U  a, d  z' G; K
yum install db4-utils -y
8 f8 a7 i" ^  Mdb_load -T -t hash -f vuser.list vuser.db
4 d4 W8 c* z. ^0 K0 g- Z/ Hfile vuser.list
" W' t' W/ ]% i3 Lfile vuser.db
! ]  G: ?* ]& B* I  c2 J3 G% z# 为了安全,修改虚拟用户文件的访问权限' h% }6 i: H$ w+ ]9 Y
chmod 600 /etc/vsftpd/vuser.*
, P2 R7 g0 S: q; p4 n6 Zll /etc/vsftpd/vuser.*' |. X, \% k' U8 z9 J% Z& C
3)创建虚拟用户的授权认证文件
6 m9 @7 \/ A2 rcd /etc/pam.d/
% i) N8 }; s1 H, x# g+ }4 B  ?/ d! ]* vmv vsftpd vsftpd.ori  # 备份原有的ftp的pam认证文件
/ Y. H9 P3 s% Dvim ftpvuser.pam      # 创建新的ftp虚拟用户认证文件
/ N9 |# L( b4 g( }$ d3 j) y' I% n-----------------------------------
1 V& c- J( @7 E" c2 H9 Y) `#%PAM-1.00 t: r/ H/ O8 X5 e# W2 C; }" d6 S
auth       required     pam_userdb.so db=/etc/vsftpd/vuser.d/vuser! W9 L& e1 L# r; Y3 L% G
account    required     pam_userdb.so db=/etc/vsftpd/vuser.d/vuser
" y/ q" E6 U: F& M3 P-----------------------------------: R1 h6 h* R/ ^- ?
注意:db=/etc/vsftpd/vuser.d/vuser 不可以加.db的扩展名,否则认证不成功
2 U: d) Q" V% w  G4.3.实例演示:配置一个虚拟用户; a' L+ p# S0 j2 Q" ?
1)创建 ftp 虚拟用户 test1 的数据目录和秘钥文件
! g7 j; [* |0 ~8 Qmkdir -p /data/ftpdata/zhaoshuai5 e* Q6 b, F1 w2 N* I
touch /data/ftpdata/zhaoshuai/ccc.txt               # 创建测试文件
. [* @6 D$ j3 C- Umkdir -p /data/ftpdata/zhaoshuai/ddd
2 _  v3 X5 Y5 T* d8 O" t! p4 @chown -R ftpvuser.ftpvuser /data/ftpdata; s; n: C  h9 ?! U  l+ i
chmod 755 /data/ftpdata/
7 r/ @7 Q, C4 q& B; ~ls -lhd /data/ftpdata/6 d0 k; j" R2 X6 C$ N
ls -lh /data/ftpdata/* x( N, V4 H2 h: ^0 b! X4 |1 H
2)把该虚拟用户 test1 添加到 user_list 文件中* c+ \. g. ?) K5 v8 I# G5 z( J
vim /etc/vsftpd/user_list   ~$ l4 T! m  h
---------------------% O6 |# `. ?. a& f* D% s0 x
zhaoshuai- X" ]# D1 c' V) d* G* K4 B
----------------------
# T) t' p2 O  w1 y& w" G备注:4 r" t$ b: C" r2 I
1)注释掉其他本地用户认证的内容,因为启用了 guest_enable 后,本地用户将失效,所有非匿名用户变成虚拟用户2 N% q9 o, g: ^8 l! i' v
2)因为需要授权访问的用户比较少,所以user_list设置为可以访问ftp服务的用户( f1 g  A* H( t7 K. ^' A# E' T
3)创建或修改虚拟用户秘钥信息0 _/ S# d6 e" K, B' c: D& p
cd /etc/vsftpd/vuser.d
: n+ b8 A3 F; ~1 }vim  vuser.list, R; [% U1 K( l' M; z9 t: K
--------------------0 D3 Q& g- a3 `6 y* E2 f. S
zhaoshuai! z, ^2 d3 e) }' a( C3 u/ k( M
zhaoshuai               # 这里的密码和系统用户 zhaoshuai 的密码不同用以区分- B" O9 d: v% g* o* A( {8 F
--------------------; _9 U7 N9 a. c+ Z
db_load -T -t hash -f vuser.list vuser.db
6 ~+ S/ I$ f$ @: o. `" ?) j. B, {" O该文件的格式为:一行用户名一行密码
: n) o: u8 o: H6 O4 R4)为用户创建授权配置文件(文件名必须为虚拟用户名)
$ m: I6 e: t" j6 z$ xcd /etc/vsftpd/vuser.d, }' N2 k5 p2 U. z3 e, @
vim zhaoshuai
# P6 G3 {4 U/ \9 O5 X6 X  C! g" l---------------------------
: T* T) o: J$ U! T# 指定宿主目录,配置访问权限
8 m& }5 c) ~$ X6 M' Q6 Flocal_root=/data/ftpdata/zhaoshuai  # 虚拟用户的宿主目录
$ f  R+ Q0 r9 ^, w7 ]& fwrite_enable=YES* F5 `% F2 P1 B3 l* u6 W  U7 o; L
anon_upload_enable=YES       # 上传
2 z7 d' B% d( j9 [& h' g5 banon_mkdir_write_enable=YES      # 创建目录写权限/ E$ ~2 u) _- M) T3 U
anon_other_write_enable=YES      # 其他写入权限
8 Y( i7 i6 Y& K3 B' g4 o8 |) J---------------------------
7 A+ u% @  a+ J6 g$ p5)配置完成刷新配置信息4 f( x3 R3 \' f! `$ l5 ~
systemctl restart vsftpd* u& o1 d1 Q1 c. ?; v/ f. o
systemctl status vsftpd
. l- y( b; Y% C$ b6)登陆测试4 m# B% q" i$ f+ C' D+ g
[root@srv05-CT75 vuser.d]# ftp 127.0.0.1
: ^* c' d! n1 o8 eConnected to 127.0.0.1 (127.0.0.1).
% e* n4 u4 s$ @3 d' N2 i7 w1 e220 (vsFTPd 3.0.2)5 A5 [9 l4 J/ u6 m
Name (127.0.0.1:root): zhaoshuai  W' [! _/ r. n0 G/ S
331 Please specify the password.0 u" N8 G& A4 \8 Y
Password:                                       # 在这里使用系统用户zhaoshuai的密码无法登陆2 M& h$ K0 |  Y3 f! S: v
530 Login incorrect.
$ N+ M7 b; l7 [7 Y& h' {) n; pLogin failed.
' S! N# C' b$ x/ G2 _ftp> exit
2 e& X; r' B- @. y' g; j& ?6 z# ^221 Goodbye.
" `. h+ g) O% ?4 f! g! s! U3 I[root@srv05-CT75 vuser.d]# ftp 127.0.0.11 C; g  t' A6 Y9 Q; \
Connected to 127.0.0.1 (127.0.0.1).7 a/ Q9 x9 x/ V) P
220 (vsFTPd 3.0.2), t$ P; m& X8 }4 [5 J
Name (127.0.0.1:root): zhaoshuai
  C$ m6 Z# x6 h1 f331 Please specify the password.
; W  x: q8 @3 U! p7 WPassword:                                       # 使用虚拟用户zhaoshuai的密码可以正常登录3 o6 `& z, j: E7 i+ i
230 Login successful.- t' L  i8 N9 g) {
Remote system type is UNIX.$ Z# l* m% X7 {+ n* G0 y/ p/ d
Using binary mode to transfer files.
) i: V- z1 M! |( ~! v1 Lftp>
7 r% u  E; }" dftp> ls                                         # 可以查看到上面创建的测试文件7 s8 S% m  F. D$ T4 q9 a
227 Entering Passive Mode (127,0,0,1,226,175).
" Y. m9 a7 E. I- c# F7 H5 E! j150 Here comes the directory listing.# r' o; d" h, n. O
drwxr-xr-x    3 1000     1000         4096 Jun 12 07:59 ccc.txt
2 }# Q- a* P. O' r( Hdrwxr-xr-x    6 1000     1000         4096 Jun 12 07:45 ddd
9 m4 h% l: _+ D# h226 Directory send OK., E7 l/ t0 f( v" F# c5 y/ y
ftp> exit: J7 c) _9 ^4 J6 Z% _
221 Goodbye.* j& a( Z: A# f3 p
回到顶部5 v' n' T1 h7 ]$ @+ w( o
拓展1:ftp 的防火墙配置2 h. m  o. P* r; Q
iptables -I INPUT -p tcp --dport 21 -j ACCEPT        # FTP连接端口4 ~; A- E1 S2 ~2 j
iptables -I INPUT -p tcp --dport 33000:34000 -j ACCEPT   # pasv模式下的随机端口5 j) C% M( G& H1 k
iptables-save >/etc/sysconfig/iptables             # 保存防火墙配置2 z5 _, e& ~2 d- b! {% F5 b
systemctl restart iptables.service+ g5 I6 u2 S7 R0 C* {9 m, h, A6 M
systemctl restart vsftpd.service0 L- ^0 W/ c0 I6 ^2 [9 K2 o& v
回到顶部
$ E' h! F- f- X. a3 D拓展2:CentOS6安装vsftpd7 [7 [& J" s0 D+ v/ v0 n# b2 _
方法相同,区别在于服务的启动命令是
+ K7 B9 c% {' D' p1 T% I: `8 J2 T' ~service vsftpd restart+ q( d0 l) m# ^* S  M0 A
service vsftpd status0 j! b& A4 r0 z9 E1 T& C+ m
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 01:55 , Processed in 0.025018 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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