Ubantu下FTP服务器资源进行控制
在FTP服务器的管理中无论对本地用户还是匿名用户,对于FTP服务器资源的使用都需要进行控控制, 避免由于负担过大造成FTP服务器运行异常, 可以添加以下配置项对FTP客户机使用FTP服务器资源进行控制:
max_client 设置项用于设置FTP服务器所允许的最大客户端连接数,值为0时表示不限制。例如max_client=100表示FTP服务器的所有客户端最大连接数不超过100个。
max_per_ip 设置项用于设置对于同一IP地址允许的最大客户端连接数,值为0时表示不限制。例如max_per_ip=5表示同一IP地址的FTP客户机与FTP服务器建立的最大连接数不超过5个。
local_max_rate 设置项用于设置本地用户的最大传输速率,单位为B/s,值为0时表示不限制。例如local_max_rate=500000表示FTP服务器的本地用户最大传输速率设置为500KB/s.
ano n_max_rate 设置项用于设置匿名用户的最大传输速率,单位为B/s,值为0表示不限制。例如ano_max_rate=200000,表示FTP服务器的匿名用户最大传输速率设置为200KB/s.
vsftpd.user_list 文件需要与vsftpd.conf文件中的配置项结合来实现对于vsftpd.user_list文件中指定用户账号的访问控制:
(1) 设置禁止登录的用户账号
当vsftpd.conf配置文件中包括以下设置时,vsftpd.user_list文件中的用户账号被禁止进行FTP登录:
userlist_enable=YES
userlist_deny=YES
userlist_enable设置项设置使用vsftpd.user_list文件,userlist_deny设置为YES表示vsftpd.user_list文件用于设置禁止的用户账号。
(2) 设置只允许登录的用户账号
当vsftpd.conf配置文件中包括以下设置时,只有vsftpd.user_list文件中的用户账号能够进行FTP登录:
userlist_enable=YES
userlist_deny=NO
userlist_enable设置项设置使用vsftpd.user_list文件,userlist _deny设置为NO表示vsftpd.usre_list文件用于设置只允许登录的用户账号,文件中未包括的用户账号被禁止FTP登录。
userlist_deny 和 userlist_enable 选项限制用户登录FTP 服务器 (使用userlist_deny 选项和user_list 文件一起能有效阻止root,apache,www 等系统用户登录FTP 服务器,从而保证FTP 服务器的分级安全性):
|
Userlist_enable=YES |
Ftpusers 中用户允许访问 User_list 中用户允许访问 |
|
Userlist_enable=NO |
Ftpusers 中用户禁止访问 User_list 中用户允许访问 |
|
Userlist_deny=YES |
Ftpusers 中用户禁止访问(登录时可以看到密码输入提示,但仍无法访问) user_list 中用户禁止访问 |
|
Userlist_deny=NO |
ftpusers 中用户禁止访问 user_list 中用户允许访问 |
|
Userlist_enable=YES 并且 Userlist_deny=YES |
Ftpusers 中用户禁止访问 User_list 中用户禁止访问(登录时不会出现密码提示,直接被服务器拒绝) |
|
Userlist_enable=YES 并且 Userlist_deny=NO |
Ftpusers 中用户禁止访问 User_list 中用户允许访问 |
配置FTP服务器的虚拟用户
在vsftpd服务器中支持匿名用户,本地用户,和虚拟用户3类用户账号,用途及区别如下:
匿名用户 是名为anonymous或ftp的FTP用户,匿名FTP用户登录后将FTP服务器中的/var/ftp作为FTP根目录。匿名用户通常用于提供公共文件的下载,如架设公共软件下载的FTP服务器,所有人都可以使用匿名用户进行软件下载。
本地用户 账号是FTP服务器中的系统用户账号,使用FTP本地用户账号登录FTP服务器后,登录目录为本地用户的宿主目录。本地FTP用户账号通常和Web服务器一起提供虚拟主机服务,作为网页虚拟主机更新网页的途径。
虚拟用户 账号是为了保证FTP服务器的安全性,由vsftpd服务器提供的非系统用户账号。虚拟用户FTP登录后将把指定的目录作为FTP根目录。虚拟用户与本地用户具有类似的功能,由于虚拟用户相对安全,因此正逐步替代本地用户账号。
由于虚拟用户账号具有较高的安全性,可以替代本地用户账号使用,下面是vsftpd虚拟用户账号设置的几个步骤:
以设置miket 和 john 两个虚拟用户帐号为例来配置vsftpd服务器
(1) 建立虚拟用户口令库文件
建立虚拟用户的口令文件,文件中奇数行设置虚拟用户的用户名,偶数行设置用户的口令。例如,使用vi编辑器建立名为logins.txt的用户口令库文件,在文件中设置用户mike的口令为pwabcd,用户john 的口令是pw1234:
#vi logins.txt
mike ( 奇数行设置虚拟用户名)
pwabcd (偶数行设置用户口令)
john
pw1234
:wq(保存退出)
(2) 生成vsftpd 的认证文件
使用db_load 命令生成认证文件。“-f”命令选项设置的值是虚拟用户的口令库文件,即上面创建的logins.txt。命令的参数设置为需要生成的认证文件名如 vsftpd_login.db,该文件放置在目录/etc/vsftpd/下:
#db_load -T -t hash –f logins.txt /etc/vsftpd_login.db (生成认证文件)
#file /etc/vsftpd/vsftpd_login.db (查看文件类型)
/etc/vsftpd/vsftpd_login.db:Berkeley DB (Hash,version 8 , native byte-order)
生成的认证文件的权限应设置为只对root用户可读可写,即600:
#chmod 600 /etc/vsftpd/vsftpd_login.db
(3) 建立虚拟用户所需的PAM配置文件
在/etc/pam.d目录下建立vsftpd虚拟用户身份认证所需的PAM配置文件,名称是vsftpd.vu,内容为:
#cat /etc/pam.d/vsftpd.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
(4) 建立虚拟用户及要访问的目录并设置相应的权限
建立vsftpd虚拟用户所需的系统用户账号,账号名为virtual ,指定用户的宿主目录是/home/ftpsite, 设置宿主目录的权限为700:
#useradd -d /home/ftpsite virtual
#chmod 700 /home/ftpsite/
这样vsftpd服务器中的所有虚拟用户账号登录后都将在/home/ftpsite目录中
(5) 设置vsftpd.conf主配置文件
在对vsftpd.conf配置文件进行修改之前,应先将原有的文件进行备份,以便出现配置错误时可进行恢复:
#cd /etc/vsftpd
#cp vsftpd.conf vsftpd.conf.bak
在vsftpd.conf配置文件中添加虚拟用户的配置项,内容为:
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu
(6) 重新启动vsftpd服务程序
在对vsftpd.conf配置文件进行了任何修改后都需要重新启动vsftpd服务,以便配置生效:
#service vsftpd restart
(7) 测试vsftpd中的虚拟用户账号:mike 或 john
在测试前可以先在/home/ftpsite目录中建立测试文件,用于测试时进行下载,并设置该文件的属主和属组为virtual
#touch /home/ftpsite/afile
#chown virtual.virtual /home/ftpsite/afile
使用ftp命令登录vsftpd服务器,并使用已配置的虚拟用户帐号mike进行登录
#ftp localhost
name (localhost:root):mike
password:
ftp>get afile
在完成虚拟用户的FTP登录后,可使用get命令下载测试文件,测试文件会保存到用户的当前目录中。
(8) 对不同的虚拟用户设置不同的权限
vsftpd服务器中的虚拟用户可以灵活的针对不同的用户账号设置不同的用户权限,配置的步骤如下:
1.设置主配置文件
在vsftpd.conf配置文件中添加user_config_dir配置项,并设置用户配置文件的保存目录
user_config_dir=/etc/vsftpd_user_conf
在上面的配置实例中,设置在/etc/vsftpd_user_conf目录中保存虚拟用户的配置文件
2.建立用户配置文件目录
使用mkdir命令建立虚拟用户配置文件的保存目录
#mkdir /etc/vsftpd_user_conf
3.为虚拟用户建立单独的配置文件
在/etc/vsftpd_user_conf/目录中可以为每个虚拟用户建立独立的配置文件,配置文件名称和用户名相同。例如,为用户mike建立配置文件mike ,并将anon_world_readable_only设置为NO,表示用户具有浏览和下载的权限
#cat /etc/vsftpd_user_conf/mike
anon_world_readable_only=NO
为用户john建立配置文件john,并设置该用户具有浏览,下载,上传,改名,删除文件,建立和删除的权限。
#cat john
anon_world_readable_only=NO --表示用户可以浏览FTP目录和下载文件
anon_upload_enable=YES --表示用户可以上传文件
anon_mkdir_write_enable=YES --表示用户具有建立和删除目录的权利
anon_other_write_enable=YES --表示用户具有文件改名和删除文件的权限
通过对以上配置项的组合设置,vsftpd可以为每个虚拟用户配置不同的FTP权限,用户配置文件中没有的配置项将按照vsftpd.conf配置文件中的内容设置。
Ubantu下FTP服务器资源进行控制的更多相关文章
- 《Linux下FTP服务器搭建及FTP使用》
.LOGAndy:mxtd114 <Linux下FTP服务器搭建> 0.root登录 1.安装ftp # yum -y install ftp 2.安装vsftpd # yum -y in ...
- SUSE下FTP服务器搭建
FTP(File Transfer Protocol),是TCP/IP网络上两台计算机传送文件的协议,是在TCP/IP网络和Internet上最早使用的协议之一,属于网络协议组的应 用层.FTP客户机 ...
- 写给大忙人的centos下ftp服务器搭建(以及启动失败/XFTP客户端一直提示“用户身份验证失败”解决方法)
注:个人对偏向于底层基本上拿来就用的应用,倾向于使用安装包,直接yum或者rpm安装:而对于应用层面控制较多或者需要大范围维护的,倾向于直接使用tar.gz版本. 对于linux下的ftp服务器,实际 ...
- linux系统下FTP服务器的安装和配置
FTP是File Transfer Protocol(文件传输协议),就是专门用来传输文件的协议.简单地说,支持FTP协议的服务器就是FTP服务器. PORT模式: 首先客户端开启一个非特权端口N(大 ...
- Windows server 2008系统下FTP服务器的安装
一.在 Windows 服务器上安装 FTP 服务 1. 在"开始"菜单上,单击"管理工具",然后单击"服务器管理器". 2. 在" ...
- linux下FTP服务器搭建教程1
你买了个主机就像是买了块地皮,搭建FTP就像是盖房子,我在地皮上建房子,然后创建的用户就像是钥匙,我给谁钥匙(权限),谁就可以到我家去玩,去放东西,拿东西. 虽然我们买不起现实的房子,但是我们可以买互 ...
- LNMP下FTP服务器的安装和使用(Pureftpd和Proftpd)
FTP是网站文件维护中使用比较多的,目前LNMP一键安装包中有Pureftpd和Proftpd服务器安装脚本,LNMP默认不安装任何FTP服务器,需要用户自行安装(1.2开始不再提供proftpd的安 ...
- Windows下ftp服务器搭建及配置
Win系统使用ser-u软件进行FTP服务器的搭建下载地址:https://www.serv-u.com/操作步骤如下:1. 点击执行程序进行按照SU-FTP-Server-Windows-v15.1 ...
- ubuntu16.04下ftp服务器的安装与配置
由于要将本地程序上传至云服务器中,所以需要给云服务器端安装ftp服务器.记录一下ftp的安装过程,以便以后使用.服务器端所用系统为Ubuntu16.04. 1. 安装ftp服务器, apt-get i ...
随机推荐
- HIve体系结构,hive的安装和mysql的安装,以及hive的一些简单使用
Hive体系结构: 是建立在hadoop之上的数据仓库基础架构. 和数据库相似,只不过数据库侧重于一些事务性的一些操作,比如修改,删除,查询,在数据库这块发生的比较多.数据仓库主要侧重于查询.对于相同 ...
- POJ-2785 4 Values whose Sum is 0(折半枚举 sort + 二分)
题目链接:http://poj.org/problem?id=2785 题意是给你4个数列.要从每个数列中各取一个数,使得四个数的sum为0,求出这样的组合的情况个数. 其中一个数列有多个相同的数字时 ...
- How Tomcat Works(三)
上文中描述的简单的服务器是不符合Servlet规范的,所以本文进一步描述一个简单的Servlet容器是怎么实现的 所以我们首先要明白Servlet接口规范,规范有不同版本,本人就先一视同仁了: pub ...
- newlsip 检查磁盘分区使用情况
主要还是用df -k这个命令,然后将输出结果全部逐行解析,最后调用REST API,发送给服务器保存. 参考代码: #!/usr/bin/newlisp (set 'cur-path "/o ...
- Magento开发文档(一):Magento入门
开始之前,首先声明下,Magento开发者手册由Alan Storm发表在Magento官方网站上.总共分八个部分,由浅入深的介绍了Magento的MVC架构及Magento中使用的比较特殊的EAV模 ...
- Windows操作系统单文件夹下到底能存放多少文件及单文件的最大容量
本文是转自:http://hi.baidu.com/aqgjoypubihoqxr/item/c896921f8c2eaba5feded5f2 最近需要了解Windows中单个文件夹下 ...
- DIV CSS阴影
.mydiv{ width:250px;height:auto;border:#909090 1px solid;background:#fff;color:#333; filter:progid:D ...
- vector中的erase方法[转+补充]
注释如下: iterator erase(iterator it); // 删除指定元素,并返回删除元素后一个元素的位置(如果无元素,返回end())iterator erase(iter ...
- Maven仓库的布局
任何一个构件都有其唯一的坐标,根据这个坐标可以定义其在仓库中的唯一存储路径,这便是Maven的仓库布局方式.例如log4j:log4j:1.2.15这一依赖,其对应的仓库路径为log4j/log4j/ ...
- perl学习笔记(3)—— 坑
(1)用perl来ls一个目录: 写perl的时候,经常要调用到系统命令,perl有很多等价的函数可以用,但是,不小心任性了,就想用system来实现了,好吧,来个ls把,列出指定的一个目录,直接上代 ...