添加三个用户,enable=NO //不需要启用本地用户时
- 编辑:澳门博发娱乐官网 -添加三个用户,enable=NO //不需要启用本地用户时
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文件传输服务
? 建立基于基本用户的vsftpd服务
FTP全名是File Transfer Protocol(文件传输协议) C/S架构
需求描述:
采用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。
具体步骤:
匿名FTP
简介:
插入光盘并挂载,然后安装vsftpd包。如图所示:
vsftpd服务使用Berkeley DB格式的数据库文件来存放虚拟用户账号。建立这种数据库文件需要用到db_load工具,db_load工具由db4_utils软件包提供,而db4_utils软件包需要先从RHEL5光盘目录中进行安装,其安装可以执行以下操作:
创建文本格式的用户名、密码列表
首先需要建立文本格式的用户名/密码列表文件,奇数行为用户名,偶数行为上一行中用户所对应的密码。如图所示:创建Berkeley DB格式的数据库文件
有了文本格式的用户名/密码列表文件以后,以此文件为数据流通过db_load工具创建出Berkeley DB格式的数据库文件。
在db_load命令中,“-f”选项用于指定数据源文件,“-T”选项允许非Berkeley DB的应用程序使用从文本格式转换的DB数据文件,“-t hash”选项指定读取数据文件的基本方法。
为了提高虚拟用户账号问价的安全性,应将问价权限设置为600,以避免数据外泄。其具体操作如下:添加虚拟用户的映射账号、创建FTP根目录
vsftp服务器对虚拟用户的控制采用了映射的控制方式,将所有的虚拟用户对应到同一个系统用户,该系统用户宿主目录作为所有虚拟用户登录后共用的FTP根目录。因此还需要添加一个对应的系统用户账户(此账号无需设置密码及shell)。为虚拟用户建立PAM认证文件
vsftpd服务默认的PAM认证文件位于/etc/pam.d/vsftpd,该文件适用于以Linux主机的系统用户账号进行认证。若要读取虚拟用户的账号文件,就需要创建新的PAM认证配置。
上述PAM配置内容中,通过“db=/etc/vsftpd/vusers”参数指定了要使用的虚拟用户数据库文件位置(省略了.db扩展名),即对应为/etc/vsftpd/vusers.db文件。修改vsftpd配置,添加虚拟用户支持
在vsftpd.conf配置文件中添加guest_enable、guest_username配置项,将访问FTP服务的所有虚拟用户对应到同一系统用户账号virtual,并修改pam_serivce_name配置项,指向上一步建立的/etc/pam.d/vsftpd.vu认证文件。
在vsftpd服务中,虚拟用户被默认作为匿名用户进行处理以降低权限,因此对应的配置项通常以anon_开头。创建目录/var/ftp/soft/,将属主设为virtual,权限为755。如图所示:
为不同的虚拟用户建立独立的配置文件
通过前面的几个步骤,实际上已经可以重新加载vsftpd并提供服务了,使用任一个虚拟用户账号都可以登录FTP服务器并下载文件。但因为所有的虚拟用都映射到同一个系统用户账号,因此FTP访问权限也是相同的,要么都只能下载,要么都能够上传。
若要为不同的虚拟用户账号设置不同的访问权限,可以通过为每个虚拟用户建立单独的配置文件来实现,为FTP用户启用独立配置文件,需要通过vsftpd.conf配置文件,添加“user_config_dir”配置项。
有了上述配置以后,就可以在/etc/vsftpd/vusers_dir/目录中为每个虚拟用户分别建立配置文件了。
在vsftpd.conf文件中启用了“user_config_dir”配置项以后,应该为每一个虚拟用户都建立一个单独的配置用户(可以是空文件),否则该用户可能会无法登录。在每个用户的独立配置文件中,可以添加新的配置项来限制访问权限、下载速率等。
有了虚拟用户数据库文件,并为vsftpd正确添加了虚拟用户支持以后,就可以重新加载vsftpd服务程序了。用户可以使用FTP客户程序访问该FTP服务器,以虚拟用户账号进行测试。
FTP服务器搭建完成!
使用user_list用户列表文件
当vsftpd服务器开放了“local_enable”配置项以后,默认情况下所有的系统用户都可以登录到此FTP服务器。若只希望对一小部分系统用户开放FTP服务,则需要开放用户列表控制的相关配置项,其中主要包括userlist_enbale、userlist_deny。如图所示:
修改vsftpd服务的监听地址、端口
- 调整匿名用户上传目录权限,并准备下载测试文件
下面是关于FTP这个服务的属性
更改端口号后,Linux访问:ftp://IP地址端口号
允许使用FTP服务器的被动模式
# chown ftp /var/ftp/pub
(1)FTP服务相关软件
- 修改vsftpd.conf配置文件,开放匿名用户访问权限、上传许可
IIS Serv-U Vsftpd proftpd pureftpd
主动模式:服务器主动发起数据连接。首先由客户端向服务端的21端口建立FTP控制连接,当需要传输数据时,客户端以PORT命令告知服务器“我打开了某端口,你过来连接我”,于是服务器从20端口向客户端的该端口发送请求并建立数据连接。
被动模式:服务器被动等待数据连接。如果客户机所在网络的防火墙禁止主动模式连接,通常会使用被动模式。首先由客户端向服务器端的21端口建立FTP控制连接。当需要传输数据时,服务器已PASV命令告知客户端“我打开了某端口,你过来连接我”,于是客户端向服务器的该端口(非20)发送请求并建立数据连接。
# vi /etc/vsftpd/vsftpd.conf
(2)FTP客户端相关软件
anonymous_enable=YES //允许匿名访问
ftp命令 CuteFTP FlashFTP LeapFTP Filezilla gftp kuftp
local_enable=NO //不需要启用本地用户时,建议将此项设置为NO
(3)VSFTP的守护进程
write_enable=YES //允许开发写权限
/usr/sbin/vsftpd
anon_umask=022 //匿名用户上传文件的权限掩码
(4)FTP的启动脚本
anon_upload_enable=YES //允许匿名用户上传文件
/etc/init.d/vsftpd
anon_mkdir_write_enable=YES //允许匿名用户有写权限
(5)FTP的端口
anon_other_write_enable=YES //允许匿名用户有其他写权限(慎用,可能带来安全隐患)
TCP协议的20,21端口与客户端进行通信
dirmessage_enable=YES
20用于建立数据连接,传输文件数据。(数据端口)
xferlog_enable=YES
21用于建立控制连接,并传输FTP控制命令。(命令端口)
connect_from_port=20
(6)用户控制列表文件
xferlog_std_format=YES
/etc/vsftpd/ ftpusers 文件中的用户禁止登录FTP服务器(黑名单)
listen=YES
/etc/vsftpd/ user_list 文件中的用户可能被禁止或允许登录FTP服务器,具体看vsftpd.conf的设置
pam_service_name=vsftpd
(7)工作模式
userlist_enable=NO //未启用本地用户时,可以将用户列表功能禁用
主动模式:
tcp_wrapper=YES
客户端想服务端21端口发送建立连接请求,需要传输数据时,客户端会通过port命令告诉服务器自己监听的端口,服务器会主动通过20端口与客户端建立数据连接。
重启服务
客户端下载测试
# ftp 192.168.10.1
# ftp
被动模式
# ls
客户端想服务端21端口发送建立连接请求,需要传输数据时,
# get ftpconfig.tar.bz2
服务器以pasv命令告诉客户我打开了某个端口(非20端口),你来连接我,客户端会像服务器的非20端口建立数据连接
# cd pub
# put install.log / wget ftp://192.168.10.1/ftpconfig.tar.ba2 (只是下载时)
(8)根据传输文件是否进行字符转换分为:
# ls
文本模式(又称为ASCII)以文本序列传输数据,用的较多
# quit/bye
二进制模式(又称为Binary模式)以二进制序列传输数据
本地FTP
- 添加测试用户
# useradd wang
主配置文件
# passwd wang
/etc/vsftpd/vsftpd.conf
# ls -lh /etc/*.conf* >/home/wang/etcconf.list
- 修改配置文件
anonymous_enable=NO //若不需要启用匿名访问,此项设为NO
local_enable=YES //允许本地用户访问
搭建FTP服务:
write_enable=YES //开发写权限
1、搭建yum仓库
local_umask=022 //本地用户上传文件的权限掩码
(1)mount /dev/cdrom /mnt
chroot_local_enable=YES //将本地用户禁锢在宿主目录中,处于安全考虑
(2)cat /etc/yum.repos.d/rhel-debuginfo.repo
max_clients=20 //限制客户端并发客户端连接数最多为20
[rhel-Server]
max_per_ip=2 //现在来自同一IP客户端的最大并发连接数
name=Red Hat Enterprise Server
local_max_rate=1024000 //本地用户上传下载限速为1M/s
baseurl=file:///mnt/Server
pasv_enable=YES //允许被动模式并设置端口范围
enabled=1
pasv_min_port=24500
gpgcheck=0
pasv_max_port=24600
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
dirmessage_enable=YES
xferlog_enable=YES
2、安装
connect_from_port=20
yum -y install vsftpd*
xferlog_std_format=YES
listen=YES
配置选项讲解
pam_service_name=vsftpd
实验1
userlist_enable=YES
- 1. 创建测试文件
- 2. 匿名用户ftp对/var/ftp/pub有写入权限
- 3. 允许匿名用户浏览
- 4. 允许用户(匿名,本地,虚拟)有上传权限
- 5. 允许匿名用户有上传权限
- 6. 允许匿名用户有上传文件夹权限
- 7. 禁止匿名用户有删除,覆盖等权限
tcp_wrapper=YES
- 重启服务
(1)查看ftp的默认根路径,默认是有一个pub目录(默认的跟目录),
# service vsftpd restart
[root@Centos2 ~]# ls /var/ftp/
- 在客户端验证(此处验证不再复述)
pub
建立基于虚拟用户的vsftpd服务
(2)备份配置文件
- 建立虚拟用户名/密码数据库
cd /etc/vsftpd/vsftpd.confg
# rpm -ivh --aid --nodeps db4-utils-4.3.29-9.fc6.i386.rpm
cp vsftpd.conf vsftpd.bak
# vi /mima
vim vsftpd.conf
wang //奇数行用户名
内容如下
本文由胜博发-操作发布,转载请注明来源:添加三个用户,enable=NO //不需要启用本地用户时