EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux, BSD, Solaris, HP-UX 以及 IRIX 上面。它支持很多其他的 FTP 服务器不支持的特征。比如: - 非常高的安全性需求
- 带宽限制
- 良好的可伸缩性
- 创建虚拟用户的可能性
- IPv6支持
- 中等偏上的性能
- 分配虚拟 IP 的可能性
- 高速
& @/ [( T l$ w {6 L; M: E vsftpd 的名字代表"very secure FTP daemon", 安全是它的开发者 Chris Evans 考虑的首要问题之一。在这个 FTP 服务器设计开发的最开始的时候,高安全性就是一个目标。一个例子就是 vsftpd 是在 chroot 模式下工作的,chroot 模式就是为程序(这里就是 vsftpd 了)单独指定一个新的目录,它也就不能访问那个目录之外的程序和文件了 --- 所以这也称为“被锁上的”。一个可能被潜在的攻击者破坏的 FTP 服务器将被从系统的其他部分独立开来,从而避免了更大的损失。 由于有了如此多的特性,其中 FTP 服务的安全性应该是最重要的,vsftpd 比其他 FTP 服务器更加优越。 1.安装vsftpd
1 A; ~, u3 t7 A6 P, w直接从源里面安装,easy
. H* f5 [* ?- h" \" \ 代码:
) u' @ J7 K' F1 n8 A/ Q9 fsudo apt-get install vsftpd
/ y7 Z6 U0 o) I$ N0 O
; {: C$ v. ]+ _6 C- }
+ `( `% s) [8 t安装完毕后或许会自动生成一个帐户"ftp",/home下也会增加一个文件夹。/ G( S) C! F4 R1 f4 d
如果没有生成这个用户的话可以手动来,生成了就不用了:# g, N0 Z8 D/ k. _
代码:, m: g6 F: c' C9 K
sudo useradd -m ftp- A: ?: Z/ r. ]0 f) Q# @
sudo passwd ftp8 z6 w b, o$ v9 o* ^
+ }" ]# F2 a3 D5 J! O
8 r* }- s: `1 l( r* M# i" [有"ftp"帐户后还要更改权限
. S ~ P. T7 G9 r; F$ {$ W代码:* H! a* [- ]) S8 p: F2 {4 d
sudo chmod 777 /srv/ftp" | O/ A( f. }" {0 q- s2 b V# o
/ ^0 \: _) R: `, Z% e/ G
在这个目录下我建立一个文件夹专门保存需要共享的内容6 @" P4 K4 m4 g: \6 a
; W, x$ H: x1 c1 \2.配置文件9 C6 T) j' i/ |8 N/ j) a1 W
通过sudo gedit /etc/vsftpd.conf修改。0 ^% J* q3 T/ q6 _
配置文件如下:6 }- U* i: ~7 I# N7 z; G
代码:
! \* ?! o+ |8 j1 c) J |; j) v# cat /etc/vsftpd.conf
7 P+ s2 ~" h7 ^# A# 服务器以 standalong 模式运行,如果以 root 用户直接启动 vsftpd 进程,则必须。1 n" \& p# V2 d4 H: Q! A8 F
# 注销语句以 xinetd 方式运行0 ]( [: @( s/ w+ a$ u' e: e7 u) s& l
listen=YES
, w8 l. C6 ?2 M- n3 m# 上传总开关(全局控制)
% l) C5 K' O3 z0 l: ]write_enable=YES
4 G. a6 M4 ]' R* B4 d& u# 接受匿名用户,默认无密码请求' s9 [2 {9 J- q) C' I- U( U
anonymous_enable=YES/ g" P. i x7 i) w7 a
# 接受本地用户
; o8 k& e$ ^* r2 m9 O2 G" O" ?local_enable=YES
. O+ s0 Z- w* T1 H0 ~3 W# 本地用户上传文件(包括目录)的 umask
; P1 [+ e! t8 ]. A# 注意 vsftp 版本,某些旧版的该选项会被 chown_uploads/chown_username 二选项覆盖: D" N: e [$ }+ _# _
local_umask=0220 y7 J2 g. F& G, z6 {
# 允许匿名用户上传文件,配合 anon_umask,否则文件权限皆为默认的 600,用户上传的文件不提供给任何匿名用户下载
& p$ o. {: W) G% {! Qanon_upload_enable=YES2 i1 w( ?: w) R& P
# 匿名用户上传文件(包括目录)的 umask9 |/ A6 o1 y$ O. A3 w6 G, X
# 注意点同 local_umask
* m6 U, o+ l panon_umask=022' c' M2 b# M3 b7 c
# 允许匿名用户创建目录,配合 anon_umask 实现目录可写,否则依我(aBiNg)看,实际用处很小
7 F2 R1 a1 V1 h* N5 |. Danon_mkdir_write_enable=YES4 B+ I# L3 v& M- _9 e! O% W/ W
# 允许匿名用户删除/重命名文件等操作$ T& c2 E) o, r" q) A! t7 S
#anon_other_write_enable=YES I0 a7 {4 r) n8 m! U
# 为 YES 则进入目录时显示此目录下由 message_file 选项指定的文本文件(默认为 .message)的内容* H1 a `" c- w" L
dirmessage_enable=YES
9 I w+ ?" v5 W9 |) P% _) a# 使用上传/下载日志,日志文件默认为 /var/log/vsftpd.log,可以通过 xferlog_file 选项修改- `: d0 T. Y6 x' F4 S& Z* r
xferlog_enable=YES+ _6 Q0 \' b7 e. ^! ]
# 使用 port 模式连接,并启用 20 端口
5 h: B" h$ k% b: s3 jconnect_from_port_20=YES0 }4 J$ t1 L% u7 S
# 改变用户上传文件的所有者
! J% p' w2 F, g) z" L#chown_uploads=YES4 \, y l. }) n: M7 }
#chown_username=whoever
y5 W; W+ x( W# {" n: t#xferlog_file=/var/log/vsftpd.log4 i: ^! l7 z& }7 T6 I7 s/ i
# 日志使用标准 xferlog 格式
1 T0 a4 H0 U. _2 ]5 w% f$ p#xferlog_std_format=YES, i4 G; h0 m: O& o: k2 \. _% c A% m
# 用户登陆后 idle 时间,超过设置超则被踢出服务器
- Y: e# U! k% J F#idle_session_timeout=6000 T4 m7 g$ B! |$ Q, ?
# login 时的欢迎信息
6 s$ M" r# E, e% x1 R: P. ?ftpd_banner=Welcome to feifei FTP service.
8 ]% q% g2 M) _" y#deny_email_enable=YES" l$ \) r1 v+ i4 g: A: W: i
#banned_email_file=/etc/vsftpd.banned_emails
& P4 T& q8 z+ h a2 V4 J# 若为 NO,则记录在 chroot_list_file 选项所指定的文件(默认是 /etc/vsftpd.chroot_list)中的用户将被
! H! q% l* y6 O) I) }# chroot 在登录后所在目录中,无法离开。如果为 YES,则所记录的用户将不被 chroot。
9 s) E& \# J6 D0 ?6 K3 kchroot_local_user=YES
& n' o( J; J% R# O- I; {: b3 [4 _# 设置为 YES 则下面的控制有效
% q& ]0 \0 B8 m6 y+ l* a$ t#chroot_list_enable=YES
$ P% N, j) ]* ~* L4 V( ^#chroot_list_file=/etc/vsftpd.chroot_list
2 U8 P9 n1 k2 u0 [#ls_recurse_enable=YES
- ^* f& }/ N* z+ b3 G0 Isecure_chroot_dir=/var/run/vsftpd4 L4 _3 D5 Y) f& c3 m) l8 i6 z
pam_service_name=vsftpd
- o: D( y3 z: Yrsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem1 @. N6 Y" N# J8 U# v
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key8 h1 l* ?1 E9 V% C3 O% x& p
local_root=/srv/ftp
: C! s. e8 d: U2 r! T: J/ o9 e l; f
0 N( W- k2 ?/ K- \
对了,更改配置后不要忘了重启ftp服务
$ }& F3 \: } W代码:
$ g: a( G% X: n" T- V8 m$ ~# nsudo /etc/init.d/vsftpd restart
+ O. C# a6 J [* V/ o& R H: l) W! ^% J9 M# ^
5 C2 t B$ A% R' |# A
此外还有开启关闭服务的命令5 [9 T# M9 a) f4 J5 j6 U
代码:1 S6 I( z7 o5 ^7 p! o
sudo /etc/init.d/vsftpd start
- l1 |0 v2 f! {# Z/ w! M0 Asudo /etc/init.d/vsftpd stop
/ i: {0 H* g7 Y这样,就可以使用电脑的IP地址登陆这个ftp服务器了。
0 }% z7 {2 w. L- `- G3 Y* Y |