Transcript
Page 1: 第 2 讲  vsftpd 服务器配置与管理

第第 22 讲 讲 vsftpdvsftpd 服务器配置与服务器配置与管理管理

Page 2: 第 2 讲  vsftpd 服务器配置与管理

主要内容主要内容1.1. LinuxLinux 环境下的环境下的 FTPFTP 服务器服务器2.2. RHEL4RHEL4 中中 vsftpvsftp 的默认配置的默认配置3.3. 常用常用 vsftpdvsftpd 服务器的配置服务器的配置

Page 3: 第 2 讲  vsftpd 服务器配置与管理

1. Linux1. Linux 环境下的环境下的 FTPFTP服务器服务器 常用常用 FTPFTP 客户端和服务器客户端和服务器 vsftpdvsftpd 服务器的特点服务器的特点 谁在使用谁在使用 vsftpdvsftpd FTPFTP 用户用户

Page 4: 第 2 讲  vsftpd 服务器配置与管理

1.1 1.1 常用常用 FTPFTP客户端和服务器客户端和服务器LinuxLinux 环境环境 WindowsWindows 环境环境

FTPFTP 服务器服务器

vsftpdvsftpd IISIIS

proftpdproftpd Serv-UServ-U

wu-ftpdwu-ftpd

FTPFTP 客户端客户端

ftp/ncftp/lftpftp/ncftp/lftp 命令命令行工具行工具

ftpftp 命令行工具命令行工具

gftpgftp CuteFTPproCuteFTPpro浏览器浏览器 firefoxfirefox 浏览器浏览器 IEIE

Page 5: 第 2 讲  vsftpd 服务器配置与管理

1.2 vsftpd1.2 vsftpd 服务器的特点服务器的特点 安全、高速、稳定安全、高速、稳定 可设定多个基于可设定多个基于 IPIP 的虚拟的虚拟 FTP serverFTP server 匿名匿名 FTPFTP 服务非常容易服务非常容易 匿名匿名 FTPFTP 的根目录不需要任何特殊的目录结构,或的根目录不需要任何特殊的目录结构,或

系统程序或其他系统文件系统程序或其他系统文件 不执行任何外部程序,从而减少了安全隐患不执行任何外部程序,从而减少了安全隐患 支持虚拟用户支持虚拟用户 支持带宽限制支持带宽限制 支持支持 inetdinetd 启动和独立启动和独立 FTPFTP 服务器两种运行方式服务器两种运行方式

Page 6: 第 2 讲  vsftpd 服务器配置与管理

1.3 1.3 谁在使用谁在使用 vsftpdvsftpd

ftp.redhat.comftp.redhat.com ftp.suse.orgftp.suse.org ftp.debian.orgftp.debian.org ftp.gnu.orgftp.gnu.org ftp.kde.orgftp.kde.org ftp.gnome.orgftp.gnome.org ftp.openbsd.orgftp.openbsd.org

Page 7: 第 2 讲  vsftpd 服务器配置与管理

1.4 FTP1.4 FTP用户用户 本地用户本地用户

用户在用户在 FTPFTP 服务器上拥有账号,且该账号为为本地用服务器上拥有账号,且该账号为为本地用户的账号户的账号

可以通过输入自己的账号和口令进行授权登录可以通过输入自己的账号和口令进行授权登录 登录目录为自己的登录目录为自己的 homehome 目录目录 ($HOME)($HOME)

虚拟用户虚拟用户 用户在用户在 FTPFTP 服务器上拥有账号,但该账号只能用于文服务器上拥有账号,但该账号只能用于文

件传输服务件传输服务 登录目录为某一指定的目录登录目录为某一指定的目录 通常可以上传和下载通常可以上传和下载

匿名用户匿名用户 用户在用户在 FTPFTP 服务器上没有账号服务器上没有账号 登录目录为登录目录为 /var/ftp/var/ftp

Page 8: 第 2 讲  vsftpd 服务器配置与管理

2. RHEL42. RHEL4 中中 vsftpvsftp 的默认配置的默认配置 安装并启动安装并启动 vsftpdvsftpd vsftpdvsftpd 的配置文件的配置文件 vsftpd.confvsftpd.conf 的一些默认配置选项的一些默认配置选项 测试测试 vsftpdvsftpd 的默认配置—的默认配置—匿名帐号匿名帐号 测试测试 vsftpdvsftpd 的默认配置—的默认配置—本地帐号本地帐号 关于关于 vsftpdvsftpd 默认配置的小结默认配置的小结

Page 9: 第 2 讲  vsftpd 服务器配置与管理

2.1 2.1 安装并启动安装并启动 vsftpdvsftpd 查看是否安装了查看是否安装了 vsftpdvsftpd

# rpm –qa | grep vsftpd# rpm –qa | grep vsftpd 启动启动 vsftpdvsftpd

# service vsftpd start# service vsftpd start或者或者

# /etc/init.d/vsftpd start# /etc/init.d/vsftpd start 检验检验 vsftpdvsftpd 是否已启动是否已启动

# pstree | grep vsftpd# pstree | grep vsftpd

Page 10: 第 2 讲  vsftpd 服务器配置与管理

2.2 vsftpd2.2 vsftpd 的配置文件的配置文件 /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf

主配置文件主配置文件 /etc/vsftpd.ftpusers/etc/vsftpd.ftpusers

指定哪些用户不能访问指定哪些用户不能访问 FTPFTP 服务器服务器 /etc/vsftpd.user_list/etc/vsftpd.user_list

当在当在 /etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf 中设置了中设置了 userlist_enauserlist_enable=YESble=YES ,且,且 userlist_deny=userlist_deny=YESYES 时,时, vsftpd.uservsftpd.user_list_list 中指定的用户中指定的用户不能访问不能访问 FTPFTP 服务器。服务器。

当在当在 /etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf 中设置了中设置了 userlist_enauserlist_enable=YESble=YES ,且,且 userlist_deny=userlist_deny=NONO 时,时,仅仅允许仅仅允许 vsftvsftpd.user_listpd.user_list 中指定的用户访问中指定的用户访问 FTPFTP 服务器。服务器。

Page 11: 第 2 讲  vsftpd 服务器配置与管理

2.3 vsftpd.conf2.3 vsftpd.conf 的一些默认配置选项的一些默认配置选项(1)(1)

首先备份首先备份 vsftpd.confvsftpd.conf 文件文件# # cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.cocp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.co

nf.baknf.bak 允许匿名登录允许匿名登录

anonymous_enable=YESanonymous_enable=YES 允许本地用户登录允许本地用户登录

local_enable=YESlocal_enable=YES 开放本地用户的写权限开放本地用户的写权限

write_enable=YESwrite_enable=YES 设置本地用户的文件生成掩码设置本地用户的文件生成掩码

local_umask=022local_umask=022

Page 12: 第 2 讲  vsftpd 服务器配置与管理

2.3 vsftpd.conf2.3 vsftpd.conf 的一些默认配置选项的一些默认配置选项(2)(2)

当切换目录时,显示该目录下的当切换目录时,显示该目录下的 .message.message 隐含文件隐含文件的内容的内容 dirmessage_enable=YESdirmessage_enable=YES

激活上传和下载日志激活上传和下载日志 xferlog_enable=YESxferlog_enable=YES

启用启用 FTPFTP 数据端口的连接请求数据端口的连接请求 connect_from_port_20=YESconnect_from_port_20=YES

使用标准的使用标准的 ftpd xferlogftpd xferlog 日志格式日志格式 xferlog_std_format=YESxferlog_std_format=YES

设置设置 PAMPAM 认证服务的配置文件名称,该文件存放在认证服务的配置文件名称,该文件存放在 //etc/pam.detc/pam.d 目录下目录下 pam_service_name=vsftpdpam_service_name=vsftpd

Page 13: 第 2 讲  vsftpd 服务器配置与管理

2.3 vsftpd.conf2.3 vsftpd.conf 的一些默认配置选项的一些默认配置选项(3)(3)

激活激活 vsftpdvsftpd 检查检查 userlist_fileuserlist_file 指定的用户是指定的用户是否可以访问否可以访问 vsftpdvsftpd 服务器服务器 userlist_enable=YESuserlist_enable=YES

userlist_fileuserlist_file 的默认值是的默认值是 /etc/vsftpd.user_list/etc/vsftpd.user_list 文件。文件。 由于默认情况下,由于默认情况下, userlist_deny=YESuserlist_deny=YES ,所以,所以 /etc/vsft/etc/vsft

pd.user_listpd.user_list 文件中所列的用户均不能访问此文件中所列的用户均不能访问此 vsftpdvsftpd 服服务器。务器。

使使 vsftpdvsftpd 处于独立启动模式处于独立启动模式 listen=YESlisten=YES

使用使用 tcp_wrapperstcp_wrappers 作为主机的访问控制方式作为主机的访问控制方式 tcp_wrappers=YEStcp_wrappers=YES

Page 14: 第 2 讲  vsftpd 服务器配置与管理

2.4 2.4 测试测试 vsftpdvsftpd 的默认配置—匿名的默认配置—匿名帐号帐号

在匿名帐号的下载目录在匿名帐号的下载目录 /var/ftp/pub/var/ftp/pub 目录下,存目录下,存放一个测试文件放一个测试文件# # echo “This is a test file” > /var/ftp/pub/test_fileecho “This is a test file” > /var/ftp/pub/test_file

生成目录信息文件生成目录信息文件 /var/ftp/pub/.message/var/ftp/pub/.message# # echo “Welcome to this Directory.” > /var/ftp/pubecho “Welcome to this Directory.” > /var/ftp/pub

/.message/.message 使用使用 FTPFTP 客户端连接客户端连接 FTPFTP 服务器服务器

下载下载 test_file.txt ---- test_file.txt ---- 成功成功 上传一个文件,例如上传一个文件,例如 /root/install.log ---- /root/install.log ---- 失败失败

查看日志文件查看日志文件 /var/log/vsftpd.log/var/log/vsftpd.log 需要打开配置选项需要打开配置选项 xferlog_file=/var/log/vsftpd.logxferlog_file=/var/log/vsftpd.log

Page 15: 第 2 讲  vsftpd 服务器配置与管理

2.5 2.5 测试测试 vsftpdvsftpd 的默认配置—本地帐的默认配置—本地帐号号

以本地帐号以本地帐号 studentstudent 测试测试 vsftpdvsftpd 服务器服务器

使用使用 rootroot 不能登录不能登录 vsftpdvsftpd 服务器服务器 rootroot 用户被写在了用户被写在了 /etc/vsftpd.ftpusers/etc/vsftpd.ftpusers 文件文件

中中

Page 16: 第 2 讲  vsftpd 服务器配置与管理

2.6 2.6 关于关于 vsftpdvsftpd 默认配置的小默认配置的小结结

允许匿名用户和本地用户登录。允许匿名用户和本地用户登录。 匿名用户的登录名为匿名用户的登录名为 ftpftp 或或 anonymousanonymous 。。 匿名用户不能离开匿名服务器目录匿名用户不能离开匿名服务器目录 /var/ftp/var/ftp ,,

且只能下载不能上传。且只能下载不能上传。 本地用户本地用户 (vsftpd(vsftpd 服务器服务器 )) 的登录名为本地用的登录名为本地用

户名户名 (FC3)(FC3) ,口令为本地用户的口令,口令为本地用户的口令 (FC3)(FC3) 。。 本地用户可以离开其本地用户可以离开其 homehome 目录,切换到有权目录,切换到有权

访问的其他目录,并且在权限允许的情况下进访问的其他目录,并且在权限允许的情况下进行上传和下载。行上传和下载。

写在文件写在文件 /etc/vsftpd.ftpusers/etc/vsftpd.ftpusers 中的本地用户中的本地用户禁止登录。禁止登录。

Page 17: 第 2 讲  vsftpd 服务器配置与管理

3. 3. 常用常用 vsftpdvsftpd 服务器的配置服务器的配置 允许匿名用户上传允许匿名用户上传 配置基本的性能和安全选项配置基本的性能和安全选项 配置基于本地用户的访问控制配置基于本地用户的访问控制 配置基于主机的访问控制配置基于主机的访问控制 配置配置 vsftpdvsftpd 在非标准端口下提供服务在非标准端口下提供服务 配置基于配置基于 IPIP 的虚拟的虚拟 FTPFTP 服务器服务器 配置虚拟用户的配置虚拟用户的 FTPFTP 服务器服务器

Page 18: 第 2 讲  vsftpd 服务器配置与管理

3.1 3.1 允许匿名用户上传(允许匿名用户上传( 11)) 创建匿名上传目录创建匿名上传目录

# # mkdir /var/ftp/imcommingmkdir /var/ftp/imcomming 修改上传目录的权限修改上传目录的权限

# # chmod 777 /var/ftp/imcommingchmod 777 /var/ftp/imcomming 在在 /etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf 中激活如下配置选项中激活如下配置选项

允许匿名用户上传(选项允许匿名用户上传(选项 write_enablewrite_enable 需要为需要为 YESYES))anon_upload_enable=YESanon_upload_enable=YES

anon_umask=022anon_umask=022 允许匿名用户创建目录(选项允许匿名用户创建目录(选项 write_enablewrite_enable 需要为需要为 YEYE

SS))anon_mkdir_write_enable=YESanon_mkdir_write_enable=YES

允许匿名用户进行写操作(如删除和重命名文件或目录)允许匿名用户进行写操作(如删除和重命名文件或目录) anon_other_write_enable=YESanon_other_write_enable=YES

匿名用户仅被允许下载对于它可读的文件匿名用户仅被允许下载对于它可读的文件anon_world_readable_only=YESanon_world_readable_only=YES

Page 19: 第 2 讲  vsftpd 服务器配置与管理

3.1 3.1 允许匿名用户上传(允许匿名用户上传( 22)) 检查配置文件检查配置文件

vsftpd /etc/vsftpd/vsftpd.confvsftpd /etc/vsftpd/vsftpd.conf 重新启动重新启动 vsftpdvsftpd

# # service vsftpd restartservice vsftpd restart

Page 20: 第 2 讲  vsftpd 服务器配置与管理

3.2 3.2 配置基本的性能和安全选项配置基本的性能和安全选项(1)(1)

设置空闲用户会话的中断时间设置空闲用户会话的中断时间 (s)(s) idle_session_timeout=600idle_session_timeout=600

设置空闲的数据连接的中断时间设置空闲的数据连接的中断时间 (s)(s) data_connection_timeout=120data_connection_timeout=120

限制客户连接数限制客户连接数 max_clients=200max_clients=200 max_per_ip=3max_per_ip=3

设置最大传输速率限制设置最大传输速率限制 (B/s)(B/s) local_max_rate=50000local_max_rate=50000 anon_max_rate=30000anon_max_rate=30000

Page 21: 第 2 讲  vsftpd 服务器配置与管理

3.2 3.2 配置基本的性能和安全选项配置基本的性能和安全选项(2)(2)

不允许不允许某些用户某些用户切换到其切换到其 homehome 目录以外的其他目录目录以外的其他目录 chroot_list_enable=YESchroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_listchroot_list_file=/etc/vsftpd.chroot_list/etc/vsftpd.chroot_list/etc/vsftpd.chroot_list 文件中指定的用户文件中指定的用户不能访问不能访问其其 homehome

目录以外的其他目录目录以外的其他目录 不允许不允许所有用户所有用户切换到其切换到其 homehome 目录以外的其他目录目录以外的其他目录

chroot_local_user=YESchroot_local_user=YES 仅仅允许允许某些用户切换到其某些用户切换到其 homehome 目录以外的其他目录目录以外的其他目录

chroot_local_user=YESchroot_local_user=YES chroot_list_enable=YESchroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_listchroot_list_file=/etc/vsftpd.chroot_list/etc/vsftpd.chroot_list/etc/vsftpd.chroot_list 文件中指定的用户文件中指定的用户能够访问能够访问其其 homehome

目录外的其他目录目录外的其他目录

Page 22: 第 2 讲  vsftpd 服务器配置与管理

3.3 3.3 配置基于本地用户的访问控制配置基于本地用户的访问控制 使选项使选项 userlist_fileuserlist_file对应的文件(默认值为对应的文件(默认值为 /etc//etc/

vsftpd.user_listvsftpd.user_list)中指定的本地用户)中指定的本地用户不能不能访问,访问,而其他用户而其他用户可以可以访问访问 userlist_enable=YESuserlist_enable=YES userlist_deny=YESuserlist_deny=YES

使选项使选项 userlist_fileuserlist_file对应的文件(默认值为对应的文件(默认值为 /etc//etc/vsftpd.user_listvsftpd.user_list)中指定的本地用户)中指定的本地用户可以可以访问,访问,而其他用户而其他用户不可以不可以访问访问 userlist_enable=YESuserlist_enable=YES userlist_deny=NOuserlist_deny=NO

Page 23: 第 2 讲  vsftpd 服务器配置与管理

3.4 3.4 配置基于主机的访问控制配置基于主机的访问控制 ((独立模式独立模式 ) ) (1)(1)

TCP_wrappersTCP_wrappers 使用使用 /etc/hosts.allow/etc/hosts.allow 和和/etc/hosts.deny/etc/hosts.deny 两个配置文件实现访问控两个配置文件实现访问控制。制。 在在 hosts.allowhosts.allow 可以使用可以使用 DENYDENY ,通常使用它,通常使用它来实现访问控制。来实现访问控制。

对于对于 vsftpdvsftpd ,, hosts.allowhosts.allow 中每条记录的中每条记录的语法格式如下语法格式如下vsftpd: vsftpd: 主机表主机表 : setenv VSFTPD_LOAD_CONF : setenv VSFTPD_LOAD_CONF 配配

置文件名置文件名

Page 24: 第 2 讲  vsftpd 服务器配置与管理

配置配置 vsftpdvsftpd访问控制时主机表的书写访问控制时主机表的书写语法语法选现值选现值 含义含义

HostnameHostname 可解析的主机名可解析的主机名

IP AddressIP Address 点分十进制表示的点分十进制表示的 IPIP 地址地址

.domain.domain 匹配一个域中的所有主机匹配一个域中的所有主机

Network-numberNetwork-number 匹配匹配 IPIP 地址的开始部分,地址的开始部分,不管使用的网络掩码如何不管使用的网络掩码如何

IPAddress/netmaskIPAddress/netmask 定义要匹配的网络或子网定义要匹配的网络或子网

Page 25: 第 2 讲  vsftpd 服务器配置与管理

配置主机访问控制的例子配置主机访问控制的例子 (1)(1) 要求要求

拒绝拒绝 192.168.2.0/24192.168.2.0/24 访问访问 对域对域 smartraining.comsmartraining.com 和和 192.168.1.0/24192.168.1.0/24 内的所内的所

有主机不作连接数和最大传输速率限制有主机不作连接数和最大传输速率限制 对其他主机的访问控制限制每对其他主机的访问控制限制每 IPIP 地址的连接数为地址的连接数为 11 ,,最大传输速率限制为最大传输速率限制为 10kb/s10kb/s

步骤步骤 修改修改 /etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf 文件,设置如下选项文件,设置如下选项

tcp_wrappers=YES (tcp_wrappers=YES ( 默认情况默认情况 )) local_max_rate=10000local_max_rate=10000 anon_max_rate=10000anon_max_rate=10000 max_per_ip=1max_per_ip=1

Page 26: 第 2 讲  vsftpd 服务器配置与管理

配置主机访问控制的例子配置主机访问控制的例子 (2)(2) 修改修改 /etc/hosts.allow/etc/hosts.allow ,加入如下配置选项,加入如下配置选项

vsftpd: .smartraining.com, 192.168.1.0/24: setenv vsftpd: .smartraining.com, 192.168.1.0/24: setenv VSFTPD_LOAD_CONF /etc/vsftpd/vsftpd_tcp_wraVSFTPD_LOAD_CONF /etc/vsftpd/vsftpd_tcp_wrap.confp.conf

vsftpd: 192.168.2.0/24: DENYvsftpd: 192.168.2.0/24: DENY 编辑编辑 /etc/vsftpd/vsftpd_tcp_wrap.conf/etc/vsftpd/vsftpd_tcp_wrap.conf

local_max_rate=0local_max_rate=0 anon_max_rate=0anon_max_rate=0 max_per_ip=0max_per_ip=0

重新启动重新启动 vsftpdvsftpd

Page 27: 第 2 讲  vsftpd 服务器配置与管理

3.5 3.5 配置配置 vsftpdvsftpd 在非标准端口下提供服在非标准端口下提供服务务

vsftpdvsftpd 必须工作在必须工作在独立启动独立启动方式下,才能方式下,才能在非标准端口提供服务在非标准端口提供服务

例子:在例子:在 1002110021 端口提供服务端口提供服务 修改修改 /etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf 文件,添加如下文件,添加如下

一行一行 listen_port=10021listen_port=10021 重启重启 vsftpdvsftpd 服务服务

Page 28: 第 2 讲  vsftpd 服务器配置与管理

3.6 3.6 配置基于配置基于 IPIP的虚拟的虚拟 FTPFTP服务服务器器 (1)(1) 配置虚拟配置虚拟 IPIP 地址地址

设本机现有的设本机现有的 IPIP 地址为地址为 192.168.1.222192.168.1.222 配置一个虚拟网络接口配置一个虚拟网络接口 eth0:1eth0:1

# # ifconfig eth0:1 192.168.1.234 upifconfig eth0:1 192.168.1.234 up 建立虚拟建立虚拟 FTPFTP 的服务器目录并设置适当的权限的服务器目录并设置适当的权限

建立虚拟建立虚拟 FTPFTP 的服务器目录的服务器目录# # mkdir –d /var/ftp2/pubmkdir –d /var/ftp2/pub# # chmod 755 –R /var/ftp2chmod 755 –R /var/ftp2

在下载目录下生成测试文件在下载目录下生成测试文件# # echo “hello” > /var/ftp2/pub/test_file.txtecho “hello” > /var/ftp2/pub/test_file.txt

Page 29: 第 2 讲  vsftpd 服务器配置与管理

3.6 3.6 配置基于配置基于 IPIP的虚拟的虚拟 FTPFTP服务服务器器 (2)(2) 创建虚拟服务器的匿名用户所映射的本地用户创建虚拟服务器的匿名用户所映射的本地用户 ftp2ftp2

# # useradd –d /var/ftp2 –M ftp2useradd –d /var/ftp2 –M ftp2 在在 /etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf 中添加如下一行,将中添加如下一行,将原原 FTPFTP 服务绑定到服务绑定到 eth0eth0 接口接口 listen_address=192.168.1.222 listen_address=192.168.1.222

建立虚拟建立虚拟 FTPFTP 服务器的主配置文件服务器的主配置文件 用用备份备份的的 vsftpdvsftpd 的默认主配置文件生成虚拟的默认主配置文件生成虚拟 FTPFTP

服务器的主配置文件服务器的主配置文件 ## cp /etc/vsftpd/vsftpd.conf.fc3 /etc/vsftpd/vsftpd_site cp /etc/vsftpd/vsftpd.conf.fc3 /etc/vsftpd/vsftpd_site2.conf2.conf

Page 30: 第 2 讲  vsftpd 服务器配置与管理

3.6 3.6 配置基于配置基于 IPIP的虚拟的虚拟 FTPFTP服务服务器器 (3)(3) 修改虚拟修改虚拟 FTPFTP 服务器的主配置文件,添加如下一服务器的主配置文件,添加如下一

行行 listen_address=192.168.1.234listen_address=192.168.1.234

ftp_username=ftp2ftp_username=ftp2 ftpd_banner=This is the alternative FTP site ftpd_banner=This is the alternative FTP site

重新启动重新启动 vsftpdvsftpd # service vsftpd restart# service vsftpd restart

Page 31: 第 2 讲  vsftpd 服务器配置与管理

测试:基于测试:基于 IPIP的虚拟的虚拟 FTPFTP服务器服务器(1)(1)

Page 32: 第 2 讲  vsftpd 服务器配置与管理

测试:基于测试:基于 IPIP的虚拟的虚拟 FTPFTP服务器服务器(2)(2)

Page 33: 第 2 讲  vsftpd 服务器配置与管理

3.7 3.7 配置虚拟用户的配置虚拟用户的 FTPFTP服务服务器器 (1)(1) 生成虚拟用户口令库文件生成虚拟用户口令库文件

建立一个文本文件,存储虚拟用户名和口令建立一个文本文件,存储虚拟用户名和口令# # cd /rootcd /root# # vi logins.txtvi logins.txtlogin.txtlogin.txt 文件的格式为:奇数行为用户名,偶数行文件的格式为:奇数行为用户名,偶数行

为口令。为口令。 使用使用 db_loaddb_load 生成口令库文件生成口令库文件

# # db_load –T –t hash –f ~/logins.txt /etc/vsftpddb_load –T –t hash –f ~/logins.txt /etc/vsftpd_logins.db_logins.db

修改口令库文件的权限修改口令库文件的权限# # chmod 600 /etc/vsftpd/vsftpd_logins.dbchmod 600 /etc/vsftpd/vsftpd_logins.db

Page 34: 第 2 讲  vsftpd 服务器配置与管理

3.7 3.7 配置虚拟用户的配置虚拟用户的 FTPFTP服务服务器器 (1)(1) 生成虚拟用户口令库文件生成虚拟用户口令库文件

建立一个文本文件,存储虚拟用户名和口令建立一个文本文件,存储虚拟用户名和口令# # cd /rootcd /root# # vi logins.txtvi logins.txtlogin.txtlogin.txt 文件的格式为:奇数行为用户名,偶数行文件的格式为:奇数行为用户名,偶数行

为口令为口令 使用使用 db_loaddb_load 生成口令库文件生成口令库文件

# # db_load –T –t hash –f ~/logins.txt /etc/vsftpddb_load –T –t hash –f ~/logins.txt /etc/vsftpd/vsftpd_login.db/vsftpd_login.db

修改口令库文件的权限修改口令库文件的权限# # chmod 600 /etc/vsftpd/vsftpd_login.dbchmod 600 /etc/vsftpd/vsftpd_login.db

Page 35: 第 2 讲  vsftpd 服务器配置与管理

logins.txtlogins.txt

Page 36: 第 2 讲  vsftpd 服务器配置与管理

3.7 3.7 配置虚拟用户的配置虚拟用户的 FTPFTP服务服务器器 (2)(2) 配置生成配置生成 vsftpdvsftpd 的认证文件的认证文件

编辑生成虚拟用户所需的编辑生成虚拟用户所需的 PAMPAM 配置文件配置文件# # vi /etc/pam.d/vsftp.vuvi /etc/pam.d/vsftp.vu

插入如下的两行插入如下的两行auth required /lib/security/pam_userdb.so auth required /lib/security/pam_userdb.so

db=/etc/vsftpd/vsftpd_logindb=/etc/vsftpd/vsftpd_loginaccount required /lib/security/pam_userdb.so account required /lib/security/pam_userdb.so db=db=/etc/vsftpd/vsftpd_login/etc/vsftpd/vsftpd_login

Page 37: 第 2 讲  vsftpd 服务器配置与管理

vsftp.vuvsftp.vu

Page 38: 第 2 讲  vsftpd 服务器配置与管理

3.7 3.7 配置虚拟用户的配置虚拟用户的 FTPFTP服务服务器器 (3)(3) 建立虚拟用户所要访问的目录并设置相应建立虚拟用户所要访问的目录并设置相应

权限权限 建立虚拟用户要访问的目录,并设置仅建立虚拟用户要访问的目录,并设置仅 viruviru

taltal 用户访问的权限用户访问的权限# # useradd –d /home/ftpsite virtualuseradd –d /home/ftpsite virtual# # chmod 700 /home/ftpsitechmod 700 /home/ftpsite

建立测试文件建立测试文件## su – virtual –c “echo hello, I am virtu su – virtual –c “echo hello, I am virtual > /home/ftpsite/test_file”al > /home/ftpsite/test_file”

Page 39: 第 2 讲  vsftpd 服务器配置与管理

3.7 3.7 配置虚拟用户的配置虚拟用户的 FTPFTP服务服务器器 (4)(4) 建立配置文件建立配置文件

由备份的配置文件由备份的配置文件 /etc/vsftpd/vsftpd.conf.bak/etc/vsftpd/vsftpd.conf.bak生成新的主配置文件 ––– 独立运行且匿名下载生成新的主配置文件 ––– 独立运行且匿名下载

# # cp /etc/vsftpd/vsftpd.conf.bak /etc/vsftpd/vsftcp /etc/vsftpd/vsftpd.conf.bak /etc/vsftpd/vsftpd.confpd.conf

修改主配置文件,保证其中有下面的配置语句修改主配置文件,保证其中有下面的配置语句anonymouns_enable=anonymouns_enable=NONO local_enable=YESlocal_enable=YESwrite_enable=write_enable=NONOanon_upload_enable=NOanon_upload_enable=NOanon_mkdir_write_enable=NOanon_mkdir_write_enable=NOanon_other_write_enable=NOanon_other_write_enable=NO

Page 40: 第 2 讲  vsftpd 服务器配置与管理

3.7 3.7 配置虚拟用户的配置虚拟用户的 FTPFTP服务服务器器 (5)(5)chroot_local_user=YESchroot_local_user=YES

listen=YESlisten=YESlisten_port=10021listen_port=10021ftpd_banner=This FTP server is virtual user only.ftpd_banner=This FTP server is virtual user only.guest_enable=YESguest_enable=YES 启用虚拟用户启用虚拟用户guest_username=virtualguest_username=virtual 将虚拟用户映射为本地将虚拟用户映射为本地

virtualvirtual 用户,这样虚拟用户登录后才能进入本地用用户,这样虚拟用户登录后才能进入本地用户户 virtualvirtual 的目录的目录 /home/ftpsite/home/ftpsite

pam_service_name=vsftp.vupam_service_name=vsftp.vu 指定指定 PAMPAM 配置文配置文件为件为 vsftp.vuvsftp.vu

重新启动重新启动 vsftpdvsftpd# service vsftpd restart# service vsftpd restart

Page 41: 第 2 讲  vsftpd 服务器配置与管理

虚拟用户时的虚拟用户时的 vsftpd.confvsftpd.conf

Page 42: 第 2 讲  vsftpd 服务器配置与管理

测试:虚拟用户测试:虚拟用户

Page 43: 第 2 讲  vsftpd 服务器配置与管理

查看谁登陆了查看谁登陆了 FTP,FTP, 并杀死它的进程并杀死它的进程 ps –xf |grep ftpps –xf |grep ftp kill kill 进程号进程号