1 / 43

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

第 2 讲 vsftpd 服务器配置与管理. 主要内容. Linux 环境下的 FTP 服务器 RHEL4 中 vsftp 的默认配置 常用 vsftpd 服务器的配置. 1. Linux 环境下的 FTP 服务器. 常用 FTP 客户端和服务器 vsftpd 服务器的特点 谁在使用 vsftpd FTP 用户. 1.1 常用 FTP 客户端和服务器. 1.2 vsftpd 服务器的特点. 安全、高速、稳定 可设定多个基于 IP 的虚拟 FTP server 匿名 FTP 服务非常容易

makala
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第2讲 vsftpd服务器配置与管理

  2. 主要内容 • Linux环境下的FTP服务器 • RHEL4中vsftp的默认配置 • 常用vsftpd服务器的配置

  3. 1. Linux环境下的FTP服务器 • 常用FTP客户端和服务器 • vsftpd服务器的特点 • 谁在使用vsftpd • FTP用户

  4. 1.1 常用FTP客户端和服务器

  5. 1.2 vsftpd服务器的特点 • 安全、高速、稳定 • 可设定多个基于IP的虚拟FTP server • 匿名FTP服务非常容易 • 匿名FTP的根目录不需要任何特殊的目录结构,或系统程序或其他系统文件 • 不执行任何外部程序,从而减少了安全隐患 • 支持虚拟用户 • 支持带宽限制 • 支持inetd启动和独立FTP服务器两种运行方式

  6. 1.3 谁在使用vsftpd • ftp.redhat.com • ftp.suse.org • ftp.debian.org • ftp.gnu.org • ftp.kde.org • ftp.gnome.org • ftp.openbsd.org

  7. 1.4 FTP用户 • 本地用户 • 用户在FTP服务器上拥有账号,且该账号为为本地用户的账号 • 可以通过输入自己的账号和口令进行授权登录 • 登录目录为自己的home目录($HOME) • 虚拟用户 • 用户在FTP服务器上拥有账号,但该账号只能用于文件传输服务 • 登录目录为某一指定的目录 • 通常可以上传和下载 • 匿名用户 • 用户在FTP服务器上没有账号 • 登录目录为/var/ftp

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

  9. 2.1 安装并启动vsftpd • 查看是否安装了vsftpd # rpm –qa | grep vsftpd • 启动vsftpd # service vsftpd start 或者 # /etc/init.d/vsftpd start • 检验vsftpd是否已启动 # pstree | grep vsftpd

  10. 2.2 vsftpd的配置文件 • /etc/vsftpd/vsftpd.conf • 主配置文件 • /etc/vsftpd.ftpusers • 指定哪些用户不能访问FTP服务器 • /etc/vsftpd.user_list • 当在/etc/vsftpd/vsftpd.conf中设置了userlist_enable=YES,且userlist_deny=YES时,vsftpd.user_list中指定的用户不能访问FTP服务器。 • 当在/etc/vsftpd/vsftpd.conf中设置了userlist_enable=YES,且userlist_deny=NO时,仅仅允许vsftpd.user_list中指定的用户访问FTP服务器。

  11. 2.3 vsftpd.conf的一些默认配置选项(1) • 首先备份vsftpd.conf文件 # cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak • 允许匿名登录 • anonymous_enable=YES • 允许本地用户登录 • local_enable=YES • 开放本地用户的写权限 • write_enable=YES • 设置本地用户的文件生成掩码 • local_umask=022

  12. 2.3 vsftpd.conf的一些默认配置选项(2) • 当切换目录时,显示该目录下的.message隐含文件的内容 • dirmessage_enable=YES • 激活上传和下载日志 • xferlog_enable=YES • 启用FTP数据端口的连接请求 • connect_from_port_20=YES • 使用标准的ftpd xferlog日志格式 • xferlog_std_format=YES • 设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d目录下 • pam_service_name=vsftpd

  13. 2.3 vsftpd.conf的一些默认配置选项(3) • 激活vsftpd检查userlist_file指定的用户是否可以访问vsftpd服务器 • userlist_enable=YES • userlist_file的默认值是/etc/vsftpd.user_list文件。 • 由于默认情况下,userlist_deny=YES,所以/etc/vsftpd.user_list文件中所列的用户均不能访问此vsftpd服务器。 • 使vsftpd处于独立启动模式 • listen=YES • 使用tcp_wrappers作为主机的访问控制方式 • tcp_wrappers=YES

  14. 2.4 测试vsftpd的默认配置—匿名帐号 • 在匿名帐号的下载目录/var/ftp/pub目录下,存放一个测试文件 # echo “This is a test file” > /var/ftp/pub/test_file • 生成目录信息文件/var/ftp/pub/.message # echo “Welcome to this Directory.” > /var/ftp/pub/.message • 使用FTP客户端连接FTP服务器 • 下载test_file.txt ---- 成功 • 上传一个文件,例如/root/install.log ---- 失败 • 查看日志文件/var/log/vsftpd.log • 需要打开配置选项xferlog_file=/var/log/vsftpd.log

  15. 2.5 测试vsftpd的默认配置—本地帐号 • 以本地帐号student测试vsftpd服务器 • 使用root不能登录vsftpd服务器 • root用户被写在了/etc/vsftpd.ftpusers文件中

  16. 2.6 关于vsftpd默认配置的小结 • 允许匿名用户和本地用户登录。 • 匿名用户的登录名为ftp或anonymous。 • 匿名用户不能离开匿名服务器目录/var/ftp,且只能下载不能上传。 • 本地用户(vsftpd服务器)的登录名为本地用户名(FC3),口令为本地用户的口令(FC3)。 • 本地用户可以离开其home目录,切换到有权访问的其他目录,并且在权限允许的情况下进行上传和下载。 • 写在文件/etc/vsftpd.ftpusers中的本地用户禁止登录。

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

  18. 3.1 允许匿名用户上传(1) • 创建匿名上传目录 # mkdir /var/ftp/imcomming • 修改上传目录的权限 # chmod 777 /var/ftp/imcomming • 在/etc/vsftpd/vsftpd.conf中激活如下配置选项 • 允许匿名用户上传(选项write_enable需要为YES) anon_upload_enable=YES anon_umask=022 • 允许匿名用户创建目录(选项write_enable需要为YES) anon_mkdir_write_enable=YES • 允许匿名用户进行写操作(如删除和重命名文件或目录) anon_other_write_enable=YES • 匿名用户仅被允许下载对于它可读的文件 anon_world_readable_only=YES

  19. 3.1 允许匿名用户上传(2) • 检查配置文件 • vsftpd /etc/vsftpd/vsftpd.conf • 重新启动vsftpd # service vsftpd restart

  20. 3.2 配置基本的性能和安全选项(1) • 设置空闲用户会话的中断时间(s) • idle_session_timeout=600 • 设置空闲的数据连接的中断时间(s) • data_connection_timeout=120 • 限制客户连接数 • max_clients=200 • max_per_ip=3 • 设置最大传输速率限制(B/s) • local_max_rate=50000 • anon_max_rate=30000

  21. 3.2 配置基本的性能和安全选项(2) • 不允许某些用户切换到其home目录以外的其他目录 • chroot_list_enable=YES • chroot_list_file=/etc/vsftpd.chroot_list /etc/vsftpd.chroot_list文件中指定的用户不能访问其home目录以外的其他目录 • 不允许所有用户切换到其home目录以外的其他目录 • chroot_local_user=YES • 仅允许某些用户切换到其home目录以外的其他目录 • chroot_local_user=YES • chroot_list_enable=YES • chroot_list_file=/etc/vsftpd.chroot_list /etc/vsftpd.chroot_list文件中指定的用户能够访问其home目录外的其他目录

  22. 3.3 配置基于本地用户的访问控制 • 使选项userlist_file对应的文件(默认值为/etc/vsftpd.user_list)中指定的本地用户不能访问,而其他用户可以访问 • userlist_enable=YES • userlist_deny=YES • 使选项userlist_file对应的文件(默认值为/etc/vsftpd.user_list)中指定的本地用户可以访问,而其他用户不可以访问 • userlist_enable=YES • userlist_deny=NO

  23. 3.4 配置基于主机的访问控制(独立模式) (1) • TCP_wrappers使用/etc/hosts.allow和/etc/hosts.deny两个配置文件实现访问控制。 • 在hosts.allow可以使用DENY,通常使用它来实现访问控制。 • 对于vsftpd,hosts.allow中每条记录的语法格式如下 vsftpd: 主机表: setenv VSFTPD_LOAD_CONF 配置文件名

  24. 配置vsftpd访问控制时主机表的书写语法

  25. 配置主机访问控制的例子(1) • 要求 • 拒绝192.168.2.0/24访问 • 对域smartraining.com和192.168.1.0/24内的所有主机不作连接数和最大传输速率限制 • 对其他主机的访问控制限制每IP地址的连接数为1,最大传输速率限制为10kb/s • 步骤 • 修改/etc/vsftpd/vsftpd.conf文件,设置如下选项 • tcp_wrappers=YES (默认情况) • local_max_rate=10000 • anon_max_rate=10000 • max_per_ip=1

  26. 配置主机访问控制的例子(2) • 修改/etc/hosts.allow,加入如下配置选项 • vsftpd: .smartraining.com, 192.168.1.0/24: setenv VSFTPD_LOAD_CONF /etc/vsftpd/vsftpd_tcp_wrap.conf • vsftpd: 192.168.2.0/24: DENY • 编辑/etc/vsftpd/vsftpd_tcp_wrap.conf • local_max_rate=0 • anon_max_rate=0 • max_per_ip=0 • 重新启动vsftpd

  27. 3.5 配置vsftpd在非标准端口下提供服务 • vsftpd必须工作在独立启动方式下,才能在非标准端口提供服务 • 例子:在10021端口提供服务 • 修改/etc/vsftpd/vsftpd.conf文件,添加如下一行 listen_port=10021 • 重启vsftpd服务

  28. 3.6 配置基于IP的虚拟FTP服务器(1) • 配置虚拟IP地址 • 设本机现有的IP地址为192.168.1.222 • 配置一个虚拟网络接口eth0:1 # ifconfig eth0:1 192.168.1.234 up • 建立虚拟FTP的服务器目录并设置适当的权限 • 建立虚拟FTP的服务器目录 # mkdir –d /var/ftp2/pub # chmod 755 –R /var/ftp2 • 在下载目录下生成测试文件 # echo “hello” > /var/ftp2/pub/test_file.txt

  29. 3.6 配置基于IP的虚拟FTP服务器(2) • 创建虚拟服务器的匿名用户所映射的本地用户ftp2 # useradd –d /var/ftp2 –M ftp2 • 在/etc/vsftpd/vsftpd.conf中添加如下一行,将原FTP服务绑定到eth0接口 listen_address=192.168.1.222 • 建立虚拟FTP服务器的主配置文件 • 用备份的vsftpd的默认主配置文件生成虚拟FTP服务器的主配置文件 # cp /etc/vsftpd/vsftpd.conf.fc3 /etc/vsftpd/vsftpd_site2.conf

  30. 3.6 配置基于IP的虚拟FTP服务器(3) • 修改虚拟FTP服务器的主配置文件,添加如下一行 listen_address=192.168.1.234 ftp_username=ftp2 ftpd_banner=This is the alternative FTP site • 重新启动vsftpd # service vsftpd restart

  31. 测试:基于IP的虚拟FTP服务器(1)

  32. 测试:基于IP的虚拟FTP服务器(2)

  33. 3.7 配置虚拟用户的FTP服务器(1) • 生成虚拟用户口令库文件 • 建立一个文本文件,存储虚拟用户名和口令 # cd /root # vi logins.txt login.txt文件的格式为:奇数行为用户名,偶数行为口令。 • 使用db_load生成口令库文件 # db_load –T –t hash –f ~/logins.txt /etc/vsftpd_logins.db • 修改口令库文件的权限 # chmod 600 /etc/vsftpd/vsftpd_logins.db

  34. 3.7 配置虚拟用户的FTP服务器(1) • 生成虚拟用户口令库文件 • 建立一个文本文件,存储虚拟用户名和口令 # cd /root # vi logins.txt login.txt文件的格式为:奇数行为用户名,偶数行为口令 • 使用db_load生成口令库文件 # db_load –T –t hash –f ~/logins.txt /etc/vsftpd/vsftpd_login.db • 修改口令库文件的权限 # chmod 600 /etc/vsftpd/vsftpd_login.db

  35. logins.txt

  36. 3.7 配置虚拟用户的FTP服务器(2) • 配置生成vsftpd的认证文件 • 编辑生成虚拟用户所需的PAM配置文件 # vi /etc/pam.d/vsftp.vu • 插入如下的两行 auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

  37. vsftp.vu

  38. 3.7 配置虚拟用户的FTP服务器(3) • 建立虚拟用户所要访问的目录并设置相应权限 • 建立虚拟用户要访问的目录,并设置仅virutal用户访问的权限 # useradd –d /home/ftpsite virtual # chmod 700 /home/ftpsite • 建立测试文件 # su – virtual –c “echo hello, I am virtual > /home/ftpsite/test_file”

  39. 3.7 配置虚拟用户的FTP服务器(4) • 建立配置文件 • 由备份的配置文件/etc/vsftpd/vsftpd.conf.bak生成新的主配置文件 –––独立运行且匿名下载 # cp /etc/vsftpd/vsftpd.conf.bak /etc/vsftpd/vsftpd.conf • 修改主配置文件,保证其中有下面的配置语句 anonymouns_enable=NO local_enable=YES write_enable=NO anon_upload_enable=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO

  40. 3.7 配置虚拟用户的FTP服务器(5) chroot_local_user=YES listen=YES listen_port=10021 ftpd_banner=This FTP server is virtual user only. guest_enable=YES 启用虚拟用户 guest_username=virtual 将虚拟用户映射为本地virtual用户,这样虚拟用户登录后才能进入本地用户virtual的目录/home/ftpsite pam_service_name=vsftp.vu 指定PAM配置文件为vsftp.vu • 重新启动vsftpd # service vsftpd restart

  41. 虚拟用户时的vsftpd.conf

  42. 测试:虚拟用户

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

More Related