Linux(CentOS)下的vsftpd服务器配置-五岳之巅
说明:VSFTPD这款软件,网上和书里有很多配置文章,但不一定适用于您的主机,不同版本默认值不一样,我现在使用的是vsftpd-2.0.5-12.el5_3.1。
千万记住:修改配置文件后,必须重新启动服务!!!
登录FTP有三种方式,匿名登录、本地用户登录和虚拟用户登录。
1、允许匿名上传:
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
可见,几乎没有对默认值作任何改动,就是打开了anon_upload_enable=YES
这是成功的第一步,接下来,必须要注意:
在pub下新建一个目录mypub
chmod o+w mypub
注意,目录必须other可以w,尤其是必须有可写和可执行权限,否则进不到目录中,原因在于目录和文件的权限意义不同。这方面的内容请参考基础知识。
如不能上传,请将防火墙和SELinux关闭即可。
这样就能够匿名访问,并上传文件了,此外还能够创建文件夹。
2、允许匿名上传、下载:
加入:
anon_umask=022,
这样上传的文件才能是-rw-r--r-- ,而非-rw-------。这很重要。
于是就能下载-rw-r--r--属性的文件了。
但是,刚才有的-rw-------属性的文件怎么办呢?能不能改成-rw-r--r--呢?其实是可以的,只能靠主服务器用户更改了,尤其是root。在ftp里是改不了的。
但是不是什么都不能改,比如加入:
anon_other_write_enable=YES
现在用ftp对服务器上的文件进行删除、更名就可以了。
3、本地账号登录:
首先,禁用匿名登录,修改配置文件,注释掉所有的anon行。
#anonymous_enable=YES
#anon_world_readable_only=YES
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
#anon_umask=022
#anon_other_write_enable=YES
其次,准备开放指定用户
该步骤就是向系统说明那些用户可以登录,那些则不能登录。
/etc/vsftpd/ftpusers 是禁止登录的用户文件
/etc/vsftpd/user_list 是允许登录的用户文件
在/etc/vsftpd/vsftpd.conf配置文件中进行修改,
userlist_enable=NO
然后,创建jinzhi写入ftpuser创建keyi写入user_list,创建yiban,不用做任何事情,但它们当然要设置密码了。
重启vsftp服务。
此时,jinzhi不能登录,是到输入密码后拒绝的。使用keyi和一般用户yiban都能正常进入。
注意:这里面说个细节,如果服务已经在运行,修改配置文件后,只有restart才能重新读取新值,重新执行start是不能的。当然也可以先stop,再start,这是可以的,如果你不嫌麻烦的话。
接着进行如下设置:
userlist_enable=YES
userlist_deny=NO
这里,local_enable=YES必须打开,PAM方式要求。否则会出现both local and anonymous access disabled!错误。
这时用jinzhi和yiban都不能登录,甚至连输入密码的地方都到不了就拒绝了。用keyi就能正常登录。
附带的说一下,如果把这两项都禁止,
#userlist_enable=YES
#userlist_deny=NO
效果和userlist_enable=NO是一样的。也就是说上两个的默认值是也。
如果:
userlist_enable=NO
#userlist_deny=NO
jinzhi到了输入密码后被拒绝,keyi、yiban却能正常登录。
所以应该这样理解,ftpuser文件不论什么情况下都是不能登录用户的名单。
现在又设置成:
userlist_enable=YES
userlist_deny=YES
jinzhi和keyi都不能登录,jinzhi到输入密码被拒,keyi连密码都不能输入就被拒了。而yiban能够登录成功。
回想
userlist_enable=YES
userlist_deny=NO
这种配置时,jinzhi和yiban都没到输入密码就拒了,keyi能够正常访问。
可以看出,userlist_deny控制的是user_list中以及一般用户的访问限制,它是一个两项AB开关,选择关B,则A开,把A关上,则B开。如果否决user_list访问,也即userlist_deny=YES,keyi则不能登录,一般的开关打开。如果开放userlist_deny=NO,则keyi能访问,而yiban被拒。
userlist_enable=NO
userlist_deny=NO
这时jinzhi不能进入,keyi和yiban都能登录。
userlist_enable=NO
userlist_deny=YES
和上面一样,jinzhi不能进入,keyi和yiban都能登录。
可见,只要是userlist_enable=NO,deny的值是没用的。这时只要不是在ftpusers里的用户都能访问。把enable开成YES,则deny开关才有用,而且只有deny才是真正控制访问的开关了。
现在到了开始总结的时候了:
1、不论何时,ftpusers里的清单都是绝对不能访问的,它是vsftpd的第一道关,即便是你把ftpusers里的人名放到了可访问的user_list中也是不行的,因为他没有过ftpusers,和ftpusers最大,有冲突得听它的。
2、和ftpusers没有冲突的,就是说不在ftpusers里的人名,分为两种:一个是user_list,一个是系统里别的用户名。和ftpusers没有冲突的这个大项的开关是userlist_enable,设为NO,就是不考虑user_list文件,就是不考虑细分,就是同时开放这两种小类型,说明只要不在黑名单里的人都能访问。
3、如果你又想细分,则打开开关userlist_enable=YES,在这个前提下,用单极开关userlist_deny控制user_list名单启用与否,deny=YES,则禁止user_list名单而开放系统其他用户,deny=NO,则开放user_list名单,而禁止系统其他用户。
4、所以,userlist_enable是“细不细分开关”,而userlist_deny是“如何细分开关”
现在大家能明白了吧?
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
取消这两项前的#号,新建文件 vi /etc/vsftpd/chroot_list
写入两行,每行一个人名
keyi
yiban
保存,退出vi。重启服务,就可以了。
account required /lib/security/pam_userdb.so db=/etc/vsftpd/login
9、练习
练习一:
创建两个本地用户进行登录,zhangsan(123456)、lisi(654321,写入userlist中),进一步设定完成两种状态:zhangsan能登陆,lisi不行,限定zhangsan上传速度为3000;zhangsan和lisi都可以登录,限定lisi上传速度为4000。
练习二:
创建虚拟用户zhangsan(123456)、lisi(654321),使用虚拟用户进行登录,登录后显示提示:
“Attention
cognitive
concentrating
on one aspect of the environment”,设定每台电脑最多只能开2个访问,FTP主机同时最多处理100个并发访问。
Linux(CentOS)下的vsftpd服务器配置-五岳之巅的更多相关文章
- Linux(CentOS)下squid代理服务器配置-五岳之巅
squid是linux下的一款代理服务器软件,他可以共享网络 ,加快访问速度,节约通信带宽,同时防止内部主机受到攻击,限制用户访问,完善网络管理 rpm -qa|grep squidyum insta ...
- Linux(CentOS)下的apache服务器配置与管理
原文链接:http://blog.csdn.net/ylqmf/article/details/5291680 一.WEB服务器与Apache1.web服务器与网址 2.Apache的历史 3.补充h ...
- Linux/Centos下清理内存和Cache方法
Linux/Centos下释放内存和缓存方法 $ free -m 运行sync将dirty的内容写回硬盘$ sync 通过修改proc系统的drop_caches清理free的cache$ echo ...
- Linux(CentOs)下安装Phantomjs + Casperjs
Linux(CentOs)下安装Phantomjs + Casperjs 是参照cnMiss's Blog http://ju.outofmemory.cn/entry/70691的博客进行安装的 1 ...
- linux/centos下安装nginx(rpm安装和源码安装)详细步骤
Centos下安装nginx rpm包 ...
- 在Linux/Centos下用wondershaper限速
wondershaper是国外人开发的一款在Linux内核下基于TC工具的对整块网卡的限度工具,虽然有很久没有更新了,但是测试老版本在Centos6.3上依然可以使用. 首先下载wondershape ...
- Linux Centos下查看cpu、磁盘、内存使用情况,关闭MySQL日志
Linux Centos下查看cpu.磁盘.内存使用情况,关闭MySQL日志 lsblk 查看分区和磁盘df -h 查看空间使用情况fdisk -l 分区工具查看分区信息cfdisk /dev/sda ...
- Linux CentOS下Python+robot framework环境搭建
Linux CentOS下Python+robot framework环境搭建 by:授客 QQ:1033553122 操作系统环境:CentOS 6.5-x86_64 下载地址:http://w ...
- linux/Centos下查看和修改网卡Mac地址(ifconfig命令)
本文转载自http://www.169it.com/article/14360294838474691537.html linux/Centos下查看网卡Mac地址,输入命令: #ifconfig - ...
随机推荐
- iOS 适配/ autoLayout基本知识
历史 iPhone3GS.iPhone4\4s:没有屏幕适配最早开发里面的程序全部都是写死的 iPad 旋转出来之后 Autoresizing问世iPhone5\5c\5s兼容各种不同的情况 系统适配 ...
- 微信支付之SHA256签名失败
在接微信支付的时候,或多或少会遇到签名失败,本人接入的时候也遇了不少次: 总结如下: 1.参数没有经过ASCII排序 2.参数包含中文未经过UTF-8标准转化加密后的签名不对应(经本人测验:加密算法要 ...
- redis 的优化
1.pipeling “请求-响应”模式的服务器在处理完一个请求后就开始处理下一个请求,不管客户端是否读取到前一个请求的响应结果.这让客户端不需要发一个请求等一个响应的串行,可以一次发送多个请求,再最 ...
- 取消div,a等标签点击效果
当标签被设置onclick事件之后,在有些手机浏览器中,点击这些标签,会有点击变色效果.想要取消点击变色效果. 添加:div{-webkit-tap-highlight-color:rgba(0,0, ...
- C#进行Socket通信编程之一
关于Socket编程的相关资料(含实例)在网上多如牛毛,而我写这篇文章的初衷仅仅是为了记录自己的一些心得体会. Socket提供了这样一个接口,可以方便地使程序员通过其来发送和接收网络上的数据.在利用 ...
- Graph Cut
转自:http://blog.csdn.net/zouxy09/article/details/8532111 Graph Cut,下一个博文我们再学习下Grab Cut,两者都是基于图论的分割方法. ...
- “无法识别的配置节system.webServer”解决办法
在Winsows 2008 Server 上安装asp.net 1.1 的应用程序,在启用默认文档或者浏览目录时会向 web.config 文件添加 <system.webServer> ...
- 用ab进行POST,GET压力测试,且定义header及json的内容
这个以前没作过,找了文档.搞定. 要求时间的单curl测试的方式如下: time curl http://xxxxx/hq/restapi/isStart curl用来用post请求,且有header ...
- 微软企业库5.0 学习之路——第二步、使用VS2010+Data Access模块建立多数据库项目
现在我就开始进入学习之路的第二步——Data Access模块,这个模块是企业库中被使用频率最高的模块,它很好的封装了数据库操作应用,为我们进行多数据库系统开发提供了便利,只需更改配置文件就 可以很快 ...
- Python—HTTP处理Gzip压缩数据
HTTP 请求中包含Accept-encoding: gzip头信息可以告诉服务器,如果它有任何新数据要发送给我时,请以压缩的格式发送.如果服务器支持压缩,它将返回由 gzip 压缩的数据并且使用Co ...