EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux, BSD, Solaris, HP-UX 以及 IRIX 上面。它支持很多其他的 FTP 服务器不支持的特征。比如: - 非常高的安全性需求
- 带宽限制
- 良好的可伸缩性
- 创建虚拟用户的可能性
- IPv6支持
- 中等偏上的性能
- 分配虚拟 IP 的可能性
- 高速
7 r4 U9 a0 A, S, V/ N" O4 n vsftpd 的名字代表"very secure FTP daemon", 安全是它的开发者 Chris Evans 考虑的首要问题之一。在这个 FTP 服务器设计开发的最开始的时候,高安全性就是一个目标。一个例子就是 vsftpd 是在 chroot 模式下工作的,chroot 模式就是为程序(这里就是 vsftpd 了)单独指定一个新的目录,它也就不能访问那个目录之外的程序和文件了 --- 所以这也称为“被锁上的”。一个可能被潜在的攻击者破坏的 FTP 服务器将被从系统的其他部分独立开来,从而避免了更大的损失。 由于有了如此多的特性,其中 FTP 服务的安全性应该是最重要的,vsftpd 比其他 FTP 服务器更加优越。 1.安装vsftpd . t# x7 P0 f, [( P$ y' D3 o
直接从源里面安装,easy * v$ d- R% E$ R" D) s. F
代码:
: m* T/ X+ [6 ^/ z, _; C, u# Usudo apt-get install vsftpd) p0 s( j$ @& \+ F' ^7 S
" Q; A- {+ `& H9 A' f2 D: _% T' C
: t; l9 R! I D6 m5 A安装完毕后或许会自动生成一个帐户"ftp",/home下也会增加一个文件夹。 `; E3 }0 K, T" M! Z- D/ d9 @
如果没有生成这个用户的话可以手动来,生成了就不用了:
1 ~1 L! ^: W! w; r! E. L代码:
% z( _7 v, B- y- I1 gsudo useradd -m ftp. D( w: P% D9 _ }- @
sudo passwd ftp6 l w8 i/ K$ ^8 n4 k7 |$ e! a
( U8 |, U9 _, c8 S) @1 y
7 v9 F {0 b. V5 G6 q' E1 n有"ftp"帐户后还要更改权限
, o6 p) Y# B' x, x代码:) d5 ?0 O* L' I. p" p
sudo chmod 777 /srv/ftp
+ i U7 J/ S' X* I W5 t2 d4 H! [& Q! c
在这个目录下我建立一个文件夹专门保存需要共享的内容# L }7 Q) C& J; C- P; z4 }# i) ?
/ `8 C; W9 B3 R4 s2 O: j2.配置文件/ @: X9 A: t, h7 n) _) J7 V! E
通过sudo gedit /etc/vsftpd.conf修改。7 M8 L5 H# g* f
配置文件如下:
R2 @ \4 O* _ ^! ^; u! s) S代码:4 e# V" m# d5 E. P0 t" A8 v
# cat /etc/vsftpd.conf
" ~% f) w+ ^! ], d# 服务器以 standalong 模式运行,如果以 root 用户直接启动 vsftpd 进程,则必须。
: l9 s( G. k. B( M& U& p9 k# 注销语句以 xinetd 方式运行
' Z& B( F/ ?/ k% \listen=YES
" J0 Q8 }8 v" Q! v: m4 C6 f, M# 上传总开关(全局控制)" j) ?4 z% d& c( O) Z
write_enable=YES
( r. K. `. Y1 d% E# 接受匿名用户,默认无密码请求
5 ^) w$ k6 T& Ranonymous_enable=YES8 H' O& ?- p- s; H( q4 w- V
# 接受本地用户4 U8 S, t- [$ W/ P) y2 A
local_enable=YES: g' d. w/ c/ c) w$ Z7 C, k
# 本地用户上传文件(包括目录)的 umask
. Q7 ~2 ]; Y6 |% P# ]4 O# h; F/ |' J# 注意 vsftp 版本,某些旧版的该选项会被 chown_uploads/chown_username 二选项覆盖& a& T4 _# w; Y7 K. a3 Y
local_umask=022
, \/ B+ p) Q* h- {0 A z3 R# 允许匿名用户上传文件,配合 anon_umask,否则文件权限皆为默认的 600,用户上传的文件不提供给任何匿名用户下载
( y- k" { I8 g5 }" Hanon_upload_enable=YES
" K! ^( T# w9 u$ Y4 p: _2 ~# 匿名用户上传文件(包括目录)的 umask
6 E5 e! f- _$ b5 D; B4 C* ?0 Y# 注意点同 local_umask& W, |2 o1 u0 L$ p% ]. }+ Y
anon_umask=022$ F4 B" [" z, ~+ r: r( U+ }4 p6 Y/ n
# 允许匿名用户创建目录,配合 anon_umask 实现目录可写,否则依我(aBiNg)看,实际用处很小
1 E3 X* q3 Z& h$ q7 t& H# q, [anon_mkdir_write_enable=YES
5 k" e# }) o/ C% J7 x# 允许匿名用户删除/重命名文件等操作
/ h- R' }/ n( V! ]4 U$ N$ p#anon_other_write_enable=YES$ \& E2 m9 R/ P" t
# 为 YES 则进入目录时显示此目录下由 message_file 选项指定的文本文件(默认为 .message)的内容' n8 y" t; {! o8 v9 Q" d1 A
dirmessage_enable=YES2 C9 Q2 x5 Y5 w7 T* W" k2 T- o8 W
# 使用上传/下载日志,日志文件默认为 /var/log/vsftpd.log,可以通过 xferlog_file 选项修改
' h: r0 M6 {- X; S4 m- C: M- u0 m- U, ~xferlog_enable=YES4 K6 V- f/ j/ t: M% w. ^7 K/ E) i5 u L$ n
# 使用 port 模式连接,并启用 20 端口
`* A( w5 s' O D( rconnect_from_port_20=YES
2 \/ v8 c4 P9 |# 改变用户上传文件的所有者
u( v# f! _ q$ N' g' t; n#chown_uploads=YES
! ?( {: v+ k/ u Z! q: F#chown_username=whoever
, b9 `% x+ {! w8 `6 n( ^2 {#xferlog_file=/var/log/vsftpd.log0 D, W* t* r0 D6 H7 R
# 日志使用标准 xferlog 格式
/ P2 e6 @" T% Q#xferlog_std_format=YES" g/ C' @) R7 r& ^1 L4 n" ~+ ]* S
# 用户登陆后 idle 时间,超过设置超则被踢出服务器
6 Y% X6 g# c4 _9 ^: [% s R- D d+ V! v#idle_session_timeout=600
" L4 I" }) Z0 O6 n% f( A+ x# login 时的欢迎信息& J# q0 V2 m5 ?% x/ R
ftpd_banner=Welcome to feifei FTP service.
, f; k* T! g, @1 Z6 y: F#deny_email_enable=YES
! A- N9 \' H3 D% J1 W3 a$ M#banned_email_file=/etc/vsftpd.banned_emails
8 l/ i- d# \, ^& M+ K: d7 q) a, n# 若为 NO,则记录在 chroot_list_file 选项所指定的文件(默认是 /etc/vsftpd.chroot_list)中的用户将被
5 g/ l, e6 V( J$ x) M1 Z' C# chroot 在登录后所在目录中,无法离开。如果为 YES,则所记录的用户将不被 chroot。. _" Z$ Q8 U" ?1 y9 B+ K( X5 f
chroot_local_user=YES7 q8 R7 g& ]. U2 p- f, K: `
# 设置为 YES 则下面的控制有效" n" D# X9 Y5 o& N
#chroot_list_enable=YES% y9 D+ v4 z! O2 M
#chroot_list_file=/etc/vsftpd.chroot_list; _; D( v- x9 l6 t
#ls_recurse_enable=YES0 p4 n9 _# |7 {# E9 L! O0 i
secure_chroot_dir=/var/run/vsftpd
1 W, B5 W5 d9 k, l3 k5 Jpam_service_name=vsftpd9 u! F$ B9 Q! B, P6 p. g# |$ A4 g" D
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem4 M4 X" B2 K# o+ E
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key$ L- C4 ]$ F6 z8 _& K
local_root=/srv/ftp
; K) d& d# r; Q8 i- A. [
o3 E5 Z/ @% T, X8 j# Q" s- T
1 w7 p' s1 h5 ]* [; D! b+ l对了,更改配置后不要忘了重启ftp服务 ! U& t# B1 q2 ^/ u( S
代码:
3 ]7 l& e% T1 tsudo /etc/init.d/vsftpd restart0 [: v* w4 x0 w3 i; d
% S _$ @8 u, k' s9 J" V$ }2 n" r0 u; A4 K) W
此外还有开启关闭服务的命令1 k4 t, \; J$ v, W9 R# b
代码:4 W- D* W" C2 F
sudo /etc/init.d/vsftpd start
2 d1 Q+ m+ @% P8 t# @sudo /etc/init.d/vsftpd stop( c: z4 G" K( c8 F8 j& i
这样,就可以使用电脑的IP地址登陆这个ftp服务器了。
$ m+ F. n, C. U2 o% d |