文章来源:http://zhidao.baidu.com/link?url=LOfStD1kcxGhI_D5qC7oka3_4QZc1nn1SJwWaSd4onWoVl5WtYE4Hs2XsufXkeeaoOd-LR1ZQi4Pj5PQvA7EMa
FTP服务器配置
VSFTP
主配置文件路径:/etc/vsftpd/vsftpd.conf,重要参数:
anonymous_enable=yes/no 是否允许匿名用户访问
anon_upload_enable=yes/no 是否允许匿名用户上传文件
anon_mkdir_write_enable=yes/no 是否允许匿名用户创建目录
anon_other_write_enable=yes/no 匿名用户和虚拟用户是否拥有删除权限
local_enable=yes/no 是否允许本地用户登陆
write_enable=yes/no 设置全局是否可写
anon_root=/var 指定匿名用户目录
chroot_local_user=yes 锁定所有用户到用户主目录
chroot_list_enable=yes/no 锁定列表中的用户到主目录,需要配合下一参数使用
chroot_list_file=/etc/vsftpd/chroot_list 指定存储被锁定用户的列表文件位置
chown_uploads=yes/no 匿名用户上传所有者指定功能,需要与下一参数配合使用
chown_username=用户名 指定匿名用户上传文件的所有者
max_clients=300 最大客户端连接数为300
anon_max_rate=30000 匿名用户和虚拟用户限速为30K/S
local_max_rate=30000 本地用户限速为30K/S
max_per_ip=10 每个IP最大连接数
listen_port=22 更改监听端口
实现如下要求:允许匿名用户登陆,匿名用户限速为60K/S,只允许下载。监听端口为22,最大连接数为10。新建用户ftp1,限速为200K/S,允许上传下载删除新建文件夹。进入目录/etc/vsftpd,用vi编辑器打开vsftpd.conf主配置文件:
直接添加以下选项: [root@LidadeFedora vsftpd]# service vsftpd restart
添加用户ftp1,设置登录脚本为 /sbin/nologin:
vsftp默认目录为:/var/ftp,为方便测试,在/var/ftp下新建一个文件"testLocal",在"/var/ftp/pub"新建一个文件"testAnon"。
由于使用root用户新建文件,文件的所有者为root,所以需要把文件的权限设置为644其他用户才能读取该文件
设置/var/ftp/pub权限为777,表示所有用户均有读写权限.
由于端口22被ssh服务器占用,所以需要关闭ssh服务并重启vsftp服务。
客户端用Flashfxp测试:新建站点"VsftpTest",输入Vsftp服务器的IP地址,端口填22,用户名填ftp1,密码填你设置的密码,然后点击"连接"按钮:
由于没有使用选项:local_root,登陆本地用户时自动跳转到该用户的主目录.没有使用chroot_local_user=yes,所以本地用户可以浏览整个文件系统中他有权限读取的文件和文件夹:
切换到目录"/var/ftp/pub",该目录的权限为777,上传一个10M以上的文件,测试ftp1的上传速度:
新建文件夹和删除权限测试省略。下面测试匿名用户权限:勾选"匿名"选项并连接:
匿名用户登陆成功: 进入pub目录,尝试删除testAnon文件失败,说明这里是配置文件中的anon_other_write_enable=no生效了。最终权限等于配置文件中的权限和linux文件系统权限相或的结果。比如vsftp配置文件中允许匿名用户下载,但光这样是不够的,还需要被下载的文件或文件夹的能够被其他用户读取。
尝试上传文件失败,符合匿名用户只允许下载的要求:
最后测试匿名用户的下载速度:
vsftp的配置参数总共也就10来行,但是想要使用好它,绝没有单单理解这10来行这么简单,需要对每一行所定义的参数都理解透彻才可以.
匿名用户的配置:
anonymous_enable=YES //允许匿名用户登录
anon_root=/var/ftp/anonymous //设定匿名用户登录后的根目录
anon_upload_enable=YES //允许匿名用户上传文件
只需要打开如上的参数即可,不用做其他的设置.本地用户登录配置
首先说一下概念,什么是本地用户,本地用户就是你系统/home目录下的用户,当然有的用户建立时候使用-m命令,使用户在/home下没有目录,但是这个词的意思就是系统里面有的用户.
local_enable=YES //允许本地用户登录
local_root=/home //限制本地用户登录后的根目录
eg:
[root@centos ftp]# ftp 192.168.0.125
Connected to 192.168.0.125.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.0.125:root): xu
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,0,125,135,123)
150 Here comes the directory listing.
drwx------ 2 505 503 4096 Jun 26 09:42 chuan
drwx------ 2 507 507 4096 Jun 30 22:26 ftp
drwx------ 2 504 502 4096 Jun 26 09:42 joe
drwx------ 2 506 503 4096 Jun 26 09:43 laomeng
drwx------ 2 502 504 4096 Jun 26 09:42 master
drwx------ 2 503 502 4096 Jun 26 09:42 mike
drwx------ 2 500 500 4096 Jun 25 21:34 xiaochuan
drwxrwxrwx 2 508 508 4096 Jun 30 22:39 xu
drwx------ 2 501 501 4096 Jun 25 20:25 xujunchuan
226 Directory send OK.
ftp> pwd
257 "/home"
限制用户目录部分
chroot_local_use=YES|NO //是否将本地用户锁定在家目录
chroot_list_enable=YES|NO //是否锁定使用者在家目录中
chroot_list_file=/etc/vsftpd/chroot_list //一般情况下都将这个文件写在/etc/vsftpd目录下,这个文件就是设置锁定用户的一个列表文件,其中一行就代表一个用户
设置欢迎信息
dirmessage_enable=YES
message_file=.message
[root@centos ftp]# cd /home
[root@centos home]# vi .message
welcomt to VSFTP.............
C:\Documents and Settings\Administrator>ftp 192.168.0.125
Connected to 192.168.0.125.
220 (vsFTPd 2.0.5)
User (192.168.0.125:(none)): xu
331 Please specify the password.
Password:
230-welcomt to VSFTP.............
230 Login successful.
ftp>