Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "第2讲 vsftpd服务器配置与管理."— Presentation transcript:

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

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

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

4 1.1 常用FTP客户端和服务器 Linux环境 Windows环境 FTP服务器 vsftpd IIS proftpd Serv-U
wu-ftpd FTP客户端 ftp/ncftp/lftp命令行工具 ftp命令行工具 gftp CuteFTPpro 浏览器firefox 浏览器IE

5 1.2 vsftpd服务器的特点 安全、高速、稳定 可设定多个基于IP的虚拟FTP server 匿名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的一些默认配置选项

9 2.1 安装并启动vsftpd 查看是否安装了vsftpd 启动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
主配置文件 /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)
# 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服务器的配置 允许匿名用户上传 配置基本的性能和安全选项 配置基于本地用户的访问控制 配置基于主机的访问控制
配置基于IP的虚拟FTP服务器 配置虚拟用户的FTP服务器

18 3.1 允许匿名用户上传(1) 创建匿名上传目录 修改上传目录的权限 在/etc/vsftpd/vsftpd.conf中激活如下配置选项
# 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 vsftpd /etc/vsftpd/vsftpd.conf
# service vsftpd restart

20 3.2 配置基本的性能和安全选项(1) 设置空闲用户会话的中断时间(s) 设置空闲的数据连接的中断时间(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目录以外的其他目录 不允许所有用户切换到其home目录以外的其他目录
chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list /etc/vsftpd.chroot_list文件中指定的用户不能访问其home目录以外的其他目录 不允许所有用户切换到其home目录以外的其他目录 chroot_local_user=YES 仅允许某些用户切换到其home目录以外的其他目录 /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_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访问控制时主机表的书写语法
选现值 含义 Hostname 可解析的主机名 IP Address 点分十进制表示的IP地址 .domain 匹配一个域中的所有主机 Network-number 匹配IP地址的开始部分,不管使用的网络掩码如何 IPAddress/netmask 定义要匹配的网络或子网

25 配置主机访问控制的例子(1) 要求 步骤 拒绝192.168.2.0/24访问
对域smartraining.com和 /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, /24: setenv VSFTPD_LOAD_CONF /etc/vsftpd/vsftpd_tcp_wrap.conf vsftpd: /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地址 建立虚拟FTP的服务器目录并设置适当的权限
配置一个虚拟网络接口eth0:1 # ifconfig eth0: 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) 建立虚拟FTP服务器的主配置文件 创建虚拟服务器的匿名用户所映射的本地用户ftp2
# useradd –d /var/ftp2 –M ftp2 在/etc/vsftpd/vsftpd.conf中添加如下一行,将原FTP服务绑定到eth0接口 listen_address= 建立虚拟FTP服务器的主配置文件 用备份的vsftpd的默认主配置文件生成虚拟FTP服务器的主配置文件 # cp /etc/vsftpd/vsftpd.conf.fc3 /etc/vsftpd/vsftpd_site2.conf

30 3.6 配置基于IP的虚拟FTP服务器(3) 重新启动vsftpd 修改虚拟FTP服务器的主配置文件,添加如下一行
listen_address= 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) 重新启动vsftpd 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 进程号


Download ppt "第2讲 vsftpd服务器配置与管理."

Similar presentations


Ads by Google