ImageVerifierCode 换一换
格式:DOCX , 页数:38 ,大小:41.51KB ,
资源ID:11697507      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11697507.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(vsftpd配置详解.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

vsftpd配置详解.docx

1、vsftpd配置详解vsftpd配置详解(上)一、vsftpd 简介 Vsftpd是一个基于GPL发布的类UNIX系统的ftp服务器软件。其全称是Very Secure FTP Deamon,在安全性、速度和稳定性都有着不俗的表现。在安全性方面,vsftpd针对程序的权限来设计,以一般身份启动服务,对Linux系统的使用 权限较低;在千兆以太网上,vsftpd的速度可以达到86MB/s;在稳定性上更是优秀,资料表明,完全工作24小时,传输数据达2.6TB,平均并发 连接为1500用户,峰值达4000用户,而这些还是在单机上实现的。此外,vsftpd 还包括以下特性: 基于IP的虚拟服务器 虚拟

2、用户,结合数据库的用户验证 每个用户独立配置文件 速率限制 IPV6支持 支持SSL加密传输 哪些站点在使用vsftpd 以下站点一直在使用vsftpd(这仅仅是很少很少的一部分站点) ftp.debian.org ftp.openbsd.org ftp.freebsd.org ftp.gnu.org ftp.gnome.org ftp.kde.org ftp.kernel.org ftp.linux.org.uk ftp.gimp.org ftp-stud.fht-esslingen.de gd.tuwien.ac.at ftp.sunet.se ftp.engardelinux.org f

3、tp.sunsite.org.uk ftp.isc.org 以上内容摘自vsftpd官方网站http:/vsftpd.beasts.org/二、软件安装和卸载获得软件 vsftpd目前最新版本为2.0.5,下载地址:ftp:/vsftpd.beasts.org/users/cevans/vsftpd-2.0.5.tar.gz软件安装 解压软件,编辑builddefs.h文件 # tar zxvf vsftpd-2.0.5.tar.gz # cd vsftpd-2.0.5 # vi builddefs.h 找到下面三行,其含义如右所示 #undef VSF_BUILD_TCPWRAPPERS /

4、是否允许使用TCP Wrappers #define VSF_BUILD_PAM /是否允许使用PAM认证 #undef VSF_BUILD_SSL /是否允许使用SSL 如果要允许以上所示某项功能,使把undef改为define即可,注意每行前的“#“号不是注释,不能去掉(熟悉C语言的同志应该知道这个“#”是什么 意思)。其中TCP Wrappers是一个验证IP地址合法性的程序,PAM认证让vsftpd支持本地用户登陆服务器,使用SSL可以建立一个加密的数据传输。这里我们把 三项都启用。 编译安装。如果系统中安装有旧版vsftpd,请先卸载它。默认安装执行文件在/usr/local/sbi

5、n中,man page放在/usr/local/man/man5与/usr/local/man/man8中。 # make # make install 将默认配置文件考贝到/etc/vsftpd/ # mkdir /etc/vsftpd/ # cp vsftpd.conf /etc/vsftpd/ 为了认vsftpd支持本地用户登录,我们将身份认证模块文件考入系统中。 # cp RedHat/vsftpd.pam /etc/pam.d/vsftpd 建立ftp用户及主目录: # mkdir /var/ftp # useradd -d /var/ftp ftp 如果本来就已经存在ftp用户,则

6、执行下面两条命令: # chown root:root /var/ftp # chmod 755 /var/ftp 建立vsftpd需要的特殊目录: # mkdir /usr/share/empty/软件卸载 如果需要卸载,使用如下命令: # rm /usr/local/sbin/vsftpd # rm /usr/local/man/man5/vsftpd.conf.5 # rm /usr/local/man/man8/vsftpd.8 # rm /etc/xinetd.d/vsftpd # rm -rf /etc/vsftpd三、配置vsftpd服务服务的启动与停止 启动服务之前,我们先编辑

7、配置文件/etc/vsftpd/vsftpd.conf. 打开配置文件后可以看到许多以“#”开始的行,这些行都是注释行,大多是帮助信息,可以仔细阅读。vsftpd.conf文件的所有项目都是以“参数 值”来设置的,对格式要求比较严格,必须严格区分大小写,等号两边不能有空格,每行的最后也不能有空格。每个参数都有一个默认值,没有在配置文件中明确指 定的参数就会使用默认值。我们这里不理会配置文件本来的信息,把所有内容都删掉或注释掉,最后加上下面四行,每行右边的/及后的文字是含义说明,不要输 入到文件中: listen=yes /vsftpd工作在standalone 模式下 anonymous_en

8、able=yes /允许匿名用户登陆服务器 local_enable=yes /允许本地用户登录到服务器 pam_service_name=vsftpd /使用PAM认证 vsftpd有两种工作模式,standalone模式和xinetd守护进程模式,第1行就是让其工作在standalone模式下。此种模式中,每次 修改配置文件必须重新启动vsftpd服务才能生效,关于两种模式在后面有详细介绍。我们安装时还把 Redhat 目录下的 vsftpd.pam 文件复制成了/etc/pam.d/vsftpd 文件。这个文件就是本地用户登陆的 pam 验证配置文件。关于这个文件我们会在后面具体介绍。这

9、里我们要知道,必须得有这个配置文件,而且主配置文件里要加上pam_service_name= vsftpd语句,我们才能让本地用户登陆。用以下命令启动服务: # /usr/local/sbin/vsftpd /etc/vsftpd/vsftpd.conf & 为保证服务确实启动,我们用如下命令检测: # netstat -an |grep 21 tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 我们看到服务器已经打开了tcp21端口,表明ftp确实已经启动。再登录服务器: # ftp 127.0.0.1 Connected to 127.0.0.1. 220 (vsFTP

10、d 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 (127.0.0.1:root): ftp 331 Please specify the password. Password: 230 Login successful. 这时我们已经用匿名用户(用户名ftp或anonymous,密码任意)登录到服务器了,还可以用本地用户登录。我们做测试时建议使用如上所示的ftp命 令(win

11、dows、Linux及Unix都带这个命令,用法都是一样的)来登录服务器,这样可以看到更详细的信息,对于我们调试服务器是非常有帮助的。 最简单的ftp服务器就已经达建起来了。使用如下命令关闭ftp服务: # killall vsftpd服务启动脚本的制作 在standalone 模式中,经常用上面的命令启动服务比较麻烦,我们做一个脚本来启动和停止服务。建立一个新文件/etc/rc.d/init.d/vsftpd,把以下内容复制到文件中:#!/bin/bash# vsftpd This shell script takes care of starting and stopping# stand

12、alone vsftpd.# chkconfig: - 60 50# description: Vsftpd is a ftp daemon, which is the program # that answers incoming ftp service requests.# processname: vsftpd# config: /etc/vsftpd/vsftpd.conf# Source function library. /etc/rc.d/init.d/functions# Source networking configuration. /etc/sysconfig/netwo

13、rk# Check that networking is up. $NETWORKING = no & exit 0 -x /usr/local/sbin/vsftpd | exit 0RETVAL=0prog=vsftpdstart() # Start daemons. if -d /etc/vsftpd ; then for i in ls /etc/vsftpd/*.conf; do site=basename $i .conf echo -n $Starting $prog for $site: /usr/local/sbin/vsftpd $i & RETVAL=$? $RETVAL

14、 -eq 0 & touch /var/lock/subsys/$prog success $prog $site echo done else RETVAL=1 fi return $RETVALstop() # Stop daemons. echo -n $Shutting down $prog: killproc $prog RETVAL=$? echo $RETVAL -eq 0 & rm -f /var/lock/subsys/$prog return $RETVAL# See how we were called.case $1 in start) start ; stop) st

15、op ; restart|reload) stop start RETVAL=$? ; condrestart) if -f /var/lock/subsys/$prog ; then stop start RETVAL=$? fi ; status) status $prog RETVAL=$? ; *) echo $Usage: $0 start|stop|restart|condrestart|status exit 1esacexit $RETVAL 保存文件,再给该文件加上执行权限: # chmod 755 /etc/rc.d/init.d/vsftpd 这样我们就可以通过下面的方法

16、来管理服务了: # service vsftpd start|stop|restart|condrestart|status 例如重新启动服务: # service vsftpd restart Shutting down vsftpd: OK Starting vsftpd for vsftpd: OK 四、配置文件详解 vsftpd配置文件只有一个,就是/etc/vsftpd/vsftpd.conf,上一小节我们就已经加入了两行参数了。在修改了配置文件之后,需要重新启动服务才能生效。下面我们就来详细解释其中的参数。1. 匿名及本地用户共同参数 write_enable=yes/no /是否

17、允许全局可写 download_enable=yes/no /是否允许所有用户可以下载 dirlist_enable=yes/no /是否允许所有用户可以浏览(列出文件列表) 我们将write_enable=no、download_enable=yes两行加入配置文件,再测试: # ftp 127.0.0.1 ftp ls 227 Entering Passive Mode (127,0,0,1,230,192) 150 Here comes the directory listing. -rw-r-r- 1 0 0 4 May 13 11:43 ioo_file 226 Directory

18、send OK. ftp get ioo_file local: ioo_file remote: ioo_file 227 Entering Passive Mode (127,0,0,1,160,26) 150 Opening BINARY mode data connection for ioo_file (4 bytes). 226 File send OK. 4 bytes received in 0.062 seconds (0.063 Kbytes/s) ftp put scsrun.log local: scsrun.log remote: scsrun.log 227 Ent

19、ering Passive Mode (127,0,0,1,176,84) 550 Permission denied. 如上所示,我们看到了ftp上的文件,可以下载文件,但不可以上传文件。如果把dirlist_enable=no 也加上,便无法看到ftp上的文件(无法列出文件列表),但是如果你知道具体的文件名及路径,仍然可以下载文件的。实验结果就不贴上来了。 再看下一组: ftpd_banner=欢迎语字符串 banner_file=文件 dirmessage_enable=yes/no message_file=文件 (这个的使用方法) 参数ftpd_banner设置的欢迎语字符串将在登录

20、时看到,如果想做出多行欢迎语,就要把内容单独存为banner_file参数指定的文件,应用中 这两个参数二选一即可。dirmessage_enable和message_file参数是进入某个目录后显示的欢迎信息,用法与前两个参数一样。2. 本地用户管理2.1 本地用户常规配置参数 local_root=/path /本地用户登陆服务器后直接进入的目录 local_umask=八进制数 /本地用户上传档案权限的 umask值 local_max_rate=数字 /本地用户传输速率单位为 bps chmod_enable=yes/no / 是否允许本地用户改变ftp 服务器上档案的权限 我们知道使

21、用本地用户登录ftp后进入的是用户的主目录,locla_root这个参数允许我们登录服务器后直接进入其它的目录。此功能结合Apache 的userdir模块来实现网站内容更新上传是非常方便的。Linux系统中的任何文件都是有权限值的,上传的文件也不例外,这个默认的权限值就由 local_umask参数指定。其计算方法为: 默认建立文件的权限local_umask 0666 默认建立目录的权限local_umask 0777 由此我们可以看出,上传的文件无论如何都不可能有执行权限的。这也是vsftp安全性的体现啊! local_max_rate参数限定了数据传输速率,包括上传和下载。chmod_

22、enable参数限制用户是否可以改变档案权限(使用chmod, site命令)。 我们可能想让为每个用户进行单独的配置,或者想配置个别用户的权限。这样就得为每个本地用户配置一个文件。这些配置文件必须是在同一个目录下,所以我们可以设置本地用户单独配置文件所在的目录: user_config_dir=/path /用户单独配置文件所在目录 我们在配置文件中加入以下几行: local_umask=077 local_max_rate=20000 user_config_dir=/etc/vsftpd/vsftpd_user_dir 给予用户上传权限: write_enable=yes 新建一个普通用

23、户ioo,再新建一个目录/etc/vsftpd/vsftpd_user_dir,其下建一个文件ioo,里面加入下面几行: local_root=/var/www/html local_umask=022 local_max_rate=50000 把/var/www/html的所有者改为ioo: chown ioo:ioo /var/www/html 测试之后我们发现,使用ioo用户登录后就直接进入var/www/html了,上传的文件(夹)权限为644(755),传输速率为50k,自定义的设置覆盖了主配置文件中的设置。2.2 本地用户登录限制参数 在我们的服务器上本来就有很多的本地用户,这些本

24、地用户应该都是可以登陆 ftp 服务器的。但是 ftp 服务是以明文传输的,如果允许管理员登陆的话,这种机制显然不好。又或者我们想让一些本地用户可以登陆,或者一些不能登陆我们的 ftp 服务器,这样我们可以怎么设置呢? Vsftpd 提供了 userlist 功能。它使用一个文件来保存一些用户名,然后根据配置来决定是文件中的用户可以登录还是文件中没有列出的用户可以登陆 ftp 服务器,这样就对本地用户的登陆起到了限制作用。其配置参数有如下几个: userlist_enable=yes/no /是否启用 userlist 功能模块 userlist_deny=yes/no /是否拒绝 userl

25、ist 文件中用户登陆 ftp 服务 userlist_file=/path/to/file /指定的 userlist 文件名 当第1个参数值为yes时,第2、3行才起作用。我们将配置文件加上如下3行: userlist_enable=yes userlist_deny=yes userlist_file=/etc/vsftpd/vsftpd.userlist 然后再新建一个文件/etc/vsftpd/vsftpd.userlist,在里面加入用户名,每个用户名一行,比如我这里加入用户root, 息: # ftp 127.0.0.1 Connected to 127.0.0.1. Name

26、(127.0.0.1:root): root 530 Permission denied. Login failed. root用户已经不能登录了,在输入密码之前就被拒绝,但其它用户还可以登录的。如果把userlist_deny的值改为no,则只有文件中的用户才可以登录服务器。2.3 本地用户的根目录参数 大家再来看下面这一段: # ftp 127.0.0.1 Name (127.0.0.1:root): ioo 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX

27、. Using binary mode to transfer files. ftp pwd 257 /home/ioo ftp cd / 250 Directory successfully changed. ftp ls 227 Entering Passive Mode (127,0,0,1,163,193) 150 Here comes the directory listing. drwxr-xr-x 2 0 0 4096 May 12 21:22 bin drwxr-xr-x 3 0 0 4096 Apr 30 19:57 boot drwxr-xr-x 12 0 0 3840 M

28、ay 13 10:29 dev 是不是感到吃惊了!我们用本地用户登录ftp服务器,却可以看到整个服务器的目录和文件,甚至还可以把/etc/passwd文件下载下来,这是非常不安全的,我们应该禁止这个功能,限制用户只能在自己的目录里浏览,这就要用到chroot功能。看下面三个参数: chroot_list_enable=yes/no /是否启用 chroot_list 文件 chroot_local_user=yes/no /是否限制本地用户的根目录为自己的主目录 chroot_list_file=/path/to/file /设置 chrootlist 文件名 我们新建一个用户woo,再新建一

29、个文件/etc/vsftpd/vsftpd.chroot_list,其中加入woo。然后在配置文件中添加以下几行: chroot_list_enable=yes chroot_local_user=yes chroot_list_file=/etc/vsftpd/vsftpd.chroot_list 登录服务器测试: # ftp 127.0.0.1 Name (127.0.0.1:root): woo 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Usin

30、g binary mode to transfer files. ftp pwd 257 /home/woo Name (127.0.0.1:root): ioo 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp pwd 257 / 我们看到,在文件中的用户woo根目录仍然是系统根目录,但文件外的用户根目录已经变成了“/”,就是说列在文件外的用户已经不能在自己主目录范围外浏览了。 更改chroot_list_enable和chroot_local_user的值,得到以下几种组合:参数 取值 取值 取值 取值 chroot_list_enable yes yes no no chroot_local_user yes no yes no 意义 文件中列出

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1