FTP实验报告

制作人:全心全意

准备工作:

linux1:192.168.100.4

关闭防火墙、selinux机制

配置yum源

匿名访问

1.安装vsftpd服务和客户端

[root@localhost ~]# yum -y install vsftpd

2.创建FTP目录

[root@localhost ~]# mkdir /var/ftp/test{1..3}

[root@localhost ~]# ls /var/ftp/

pub  test1 test2  test3

3.FTP目录755权限,属主ftp

[root@localhost ~]# chown ftp /var/ftp/test1

[root@localhost ~]# chmod 755 /var/ftp/test1

4.配置匿名访问配置文件

[root@localhost ~]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

[root@localhost ~]# cat /etc/vsftpd/vsftpd.conf.bak | grep -v "^#" > /etc/vsftpd/vsftpd.conf

[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf

     1 #匿名用户

     2 anonymous_enable=YES

     3 anon_umask=022

     4 anon_root=/var/ftp

     5 anon_upload_enable=YES

     6 anon_mkdir_write_enable=YES

     7 anon_other_write_enable=YES

     8 anon_max_rate=0

     9 #本地用户

    10 local_enable=NO

    11 #全局配置

    12 listen=YES

    13 listen_address=192.168.100.4

    14 listen_port=21

    15 write_enable=YES

    16 download_enable=YES

    17 dirmessage_enable=YES

    18 xferlog_enable=YES

    19 xferlog_std_format=YES

    20 connect_from_port_20=YES

    21 pasv_enable=YES

    22 pasv_max_port=24600

    23 pasv_min_port=24500

    24 pam_service_name=vsftpd

    25 userlist_enable=YES

    26 userlist_deny=YES

    27 max_clients=0

    28 max_per_ip=0

    29 tcp_wrappers=YES

4.启动vsftpd服务

[root@localhost ~]#/etc/rc.d/init.d/vsftpd start

为vsftpd 启动vsftpd:                                    [确定]

5.测试匿名访问

[root@localhost ~]# ftp 192.168.100.4

Name (192.168.100.4:root):ftp

Password:

ftp> cd test1

ftp> mkdir 11

ftp> dir

drwxr-xr-x    2 14      50           4096 Aug 25 06:51 11

ftp> rename 11 22

ftp> dir

drwxr-xr-x    2 14      50           4096 Aug 25 06:51 22

ftp> rmdir 22

ftp> dir

ftp> exit

  

==============================================

本地用户访问

1.修改为本地用户访问配置文件

[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf

     1 #匿名用户

     2 anonymous_enable=NO

     3 anon_umask=022

     4 anon_root=/var/ftp

     5 anon_upload_enable=YES

     6 anon_mkdir_write_enable=YES

     7 anon_other_write_enable=YES

     8 anon_max_rate=0

     9

    10 #本地用户

    11 local_enable=YES

    12 local_umask=077

    13 chroot_local_user=YES

    14

    15 #全局配置

    16listen=YES

    17 listen_address=192.168.100.4

    18 listen_port=21

    19 write_enable=YES

    20 download_enable=NO

    21 dirmessage_enable=YES

    22 xferlog_enable=YES

    23 xferlog_std_format=YES

    24 connect_from_port_20=YES

    25 pasv_enable=YES

    26 pasv_max_port=24600

    27 pasv_min_port=24500

    28 pam_service_name=vsftpd

    29 userlist_enable=YES

    30 userlist_deny=YES

    31 max_clients=0

    32 max_per_ip=0

    33 tcp_wrappers=YES

2.创建用户和密码

[root@localhost ~]# useradd kaixin -s /sbin/nologin

[root@localhost ~]# passwd kaixin

更改用户kaixin 的密码。

新的密码:

无效的密码:WAY 过短

无效的密码:过于简单

重新输入新的密码:

passwd:所有的身份验证令牌已经成功更新。

3.重启vsftpd服务

[root@localhost ~]# service vsftpd restart

关闭vsftpd:                                              [确定]

为vsftpd 启动vsftpd:                                    [确定]

4.测试

[root@localhost ~]# ftp 192.168.100.4

Name (192.168.100.4:root):kaixin

Password:

ftp> ls

ftp> mkdir 111

ftp> dir

drwx------    2 500     500          4096 Aug 25 09:45 111

ftp> put install.log.syslog

ftp> dir

drwx------    2 500     500          4096 Aug 25 09:45 111

-rw-------    1 500     500         10033 Aug 25 09:45install.log.syslog

ftp> exit

[root@localhost ~]# cd ~kaixin

[root@localhost kaixin]# ls

111  install.log.syslog

======================================

虚拟用户访问

1.安装db4-utils

[root@localhost ~]# yum -y install db4-utils

2.创建文本格式的用户名、密码列表

[root@localhost ~]# vi /etc/vsftpd/vusers.list

aaa

123

bbb

123

3.创建Berkeley DB格式的数据库文件

[root@localhost ~]# cd /etc/vsftpd/

[root@localhost vsftpd]#db_load -T -t hash -f vusers.list vusers.db

[root@localhost vsftpd]# file vusers.db

vusers.db: Berkeley DB (Hash,version 9, native byte-order)

[root@localhost vsftpd]# cd

(-f:指定数据源文件,-T:允许非Berkeley
DB的应用程序使用从文本格式转换的DB数据文件,-t
hash:指定读取数据文件的基本方法)


4.添加虚拟用户的映射账号、创建FTP根目录

[root@localhost ~]# useradd -d /var/ftproot -s /sbin/nologin virtual

[root@localhost ~]# chmod 755 /var/ftproot/

5.为虚拟用户建立PAM认证文件

[root@localhost ~]# vi /etc/pam.d/vsftpd.vu

#%PAM-1.0

auth    required        pam_userdb.so   db=/etc/vsftpd/vusers

account required        pam_userdb.so   db=/etc/vsftpd/vusers

6.修改vsftpd配置,添加虚拟用户支持,注释匿名访问权限

[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf

     1 #匿名用户

     2 anonymous_enable=NO

     3 anon_umask=022

     4 anon_root=/var/ftp

     5 #anon_upload_enable=YES

     6 #anon_mkdir_write_enable=YES

     7 #anon_other_write_enable=YES

     8 #anon_max_rate=0

     9

    10 #本地用户

    11 local_enable=YES

    12 local_umask=077

    13 chroot_local_user=YES

    14

    15 #全局配置

    16 listen=YES

    17 listen_address=192.168.100.4

    18 listen_port=21

    19 write_enable=YES

    20 download_enable=YES

    21 dirmessage_enable=YES

    22 xferlog_enable=YES

    23 xferlog_std_format=YES

    24 connect_from_port_20=YES

    25 pasv_enable=YES

    26 pasv_max_port=24600

    27 pasv_min_port=24500

    28 pam_service_name=vsftpd.vu

    29 userlist_enable=YES

    30 userlist_deny=YES

    31 max_clients=0

    32 max_per_ip=0

    33 tcp_wrappers=YES

    34

    35 #虚拟用户

    36 guest_enable=YES

    37 guest_username=virtual

7.为不同的虚拟用户建立独立的配置文件

[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf

          38 user_config_dir=/etc/vsftpd/vusers_dir       //添加本行

[root@localhost ~]# mkdir /etc/vsftpd/vusers_dir

[root@localhost ~]# cd /etc/vsftpd/vusers_dir/

[root@localhost vusers_dir]#vi aaa

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

[root@localhost vusers_dir]#touch bbb

8.重载vsftpd服务

[root@localhost vusers_dir]#service vsftpd reload

关闭vsftpd:                                              [确定]

为vsftpd 启动vsftpd:                                    [确定]

9.测试

[root@localhost ~]# ftp 192.168.100.4

Name (192.168.100.4:root):aaa

Password:

ftp> mkdir 111

ftp> dir

drwxr-xr-x    2 501     501          4096 Aug 25 10:26 111

ftp> cd 111

ftp> put install.log.syslog

ftp> renameinstall.log.syslog  install.log

ftp> dir

-rw-r--r--    1 501     501         10033 Aug 25 10:27install.log

ftp> get install.log

10033 bytes received in3.2e-05 secs (313531.26 Kbytes/sec)

ftp> exit

221 Goodbye.

[root@localhost ~]# ftp192.168.100.4

Name (192.168.100.4:root):bbb

Password:

ftp> dir

drwxr-xr-x    2 501     501          4096 Aug 25 10:27 111

ftp> cd 111

ftp> dir

-rw-r--r--    1 501     501         10033 Aug 25 10:27install.log

ftp> put install.log

550 Permission denied.

ftp> rename install.log 22

550 Permission denied.

ftp> get install.log

10033 bytes received in5.2e-05 secs (192942.30 Kbytes/sec)

ftp> exit

221 Goodbye.

[root@localhost ~]# ftp 192.168.100.4

Name (192.168.100.4:root):kaixin

Password:

530 Login incorrect.

测试结果:

aaa:可登陆,能正常浏览,可上传、下载、修改文件

bbb:可登陆,能正常浏览,可下载,不可上传、修改文件

系统用户:不可登陆

需求描述:
 采用FTP虚拟用户的方式,添加三个用户:zhangsan、lisi、wangwu。
 用户访问及文件权限控制
 开放匿名访问,任何用户均可下载服务器/var/ftp/soft/目录中的软件资料。
 用户zhangsan可以对服务器的/var/ftp/soft/目录进行上传、删除等操作。
 用户lisi可以下载服务器/var/market/目录中的市场活动、销售方案的资料。
 用户wangwu可以对服务器/var/market/目录进行上传、删除等操作。

所有通过FTP上传的文件,均去除非属主位的写权限(即将权限掩码设为022)。
 对服务器中没有明确授权的其他目录,禁止任何用户访问。
 传输速率和并发连接控制
 最多允许150个并发用户连接,每个IP并发连接数不超过5个。
 匿名用户及lisi用户的下载带宽限制为100KB/s。
 wangwu用户的下载、上传带宽限制为200KB/s。
具体步骤:


主动模式:服务器主动发起数据连接。首先由客户端向服务端的21端口建立FTP控制连接,当需要传输数据时,客户端以PORT命令告知服务器“我打开了某端口,你过来连接我”,于是服务器从20端口向客户端的该端口发送请求并建立数据连接。

被动模式:服务器被动等待数据连接。如果客户机所在网络的防火墙禁止主动模式连接,通常会使用被动模式。首先由客户端向服务器端的21端口建立FTP控制连接。当需要传输数据时,服务器已PASV命令告知客户端“我打开了某端口,你过来连接我”,于是客户端向服务器的该端口(非20)发送请求并建立数据连接。

图片 1

发表评论

电子邮件地址不会被公开。 必填项已用*标注