vsftp黑白名单设置及问题
2015-08-29 16:31
579 查看
问题一:ftpusers和user_list两个文件各自的用途是什么?有何关系?
首先请明确一点:ftpusers不受任何配制项的影响,它总是有效,它是一个黑名单!
该文件存放的是一个禁止访问FTP的用户列表,通常为了安全考虑,管理员不希望一些拥有过大权限的帐号(比如root)登入FTP,以免通过该帐号从FTP上传或下载一些危险位置上的文件从而对系统造成损坏。
而user_list则是和vsftpd.conf中的userlist_enable和userlist_deny两个配置项紧密相关的,它可以有效,也可以无效,有效时它可以是一个黑名单,也可以是一个白名单!那么是什么的设置决定了它的作用呢?这就是问题二要解释的。
所以简单总结就是:ftpusers和user_list没有任何关系,ftpusers文件总是生效,user_list则取决于userlist_enable和userlist_deny两项配置。
[b]问题二:vsftpd.conf中的userlist_enable和userlist_deny两个配置项各自起什么作用,两者如何搭配使用?
为了说明这个问题,我们来建立两个测试用户:[/b]
tom: 在user_list中
jim:不在user_list中
然后我们分别给两个配置项取不同的值,分4种情况进行测试:
1: userlist_enable=YES, userlist_deny=YES
tom: 拒绝登入
jim: 允许登录
2: userlist_enable=YES, userlist_deny=NO
tom: 允许登录
jim:拒绝登录(如user_list文件开头的注释所述,甚至不会提示输入密码,即无登入提示框,直接拒绝连接)
3: userlist_enable=NO,userlist_deny=NO
tom: 允许登录
jim: 允许登录
4: userlist_enable=NO,userlist_deny=YES
tom: 允许登录
jim: 允许登录
综上实验得出以下结论:
userlist_enable和userlist_deny两个选项联合起来针对的是:本地全体用户(除去ftpusers中的用户)和出现在user_list文件中的用户以及不在在user_list文件中的用户这三类用户集合进行的设置。
当且仅当userlist_enable=YES时:userlist_deny项的配置才有效,user_list文件才会被使用;当其为NO时,无论userlist_deny项为何值都是无效的,本地全体用户(除去ftpusers中的用户)都可以登入FTP
当userlist_enable=YES时,userlist_deny=YES时:user_list是一个黑名单,即:所有出现在名单中的用户都会被拒绝登入;
当userlist_enable=YES时,userlist_deny=NO时:user_list是一个白名单,即:只有出现在名单中的用户才会被准许登入(user_list之外的用户都被拒绝登入);另外需要特别提醒的是:使用白名单后,匿名用户将无法登入!除非显式在user_list中加入一行:anonymous
vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()错误的解决方法
chroot_local_user=YES/NO:禁止所有用户切本目录之外
chroot_list_enable=YES:禁止部分用户切本目录之外
chroot_list_file=/etc/chroot_list 要限制的用户列表
当我们限定了用户不能跳出其主目录之后,使用该用户登录FTP时往往会遇到这个错误:
500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
这个问题发生在最新的这是由于下面的更新造成的:
- Add stronger checks for the configuration error of running with a writeable root directory inside a chroot(). This may bite people who carelessly turned on chroot_local_user but such is life.
从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。
要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。或者你可以在vsftpd的配置文件中增加下列两项中的一项:
allow_writeable_chroot=YES
首先请明确一点:ftpusers不受任何配制项的影响,它总是有效,它是一个黑名单!
该文件存放的是一个禁止访问FTP的用户列表,通常为了安全考虑,管理员不希望一些拥有过大权限的帐号(比如root)登入FTP,以免通过该帐号从FTP上传或下载一些危险位置上的文件从而对系统造成损坏。
而user_list则是和vsftpd.conf中的userlist_enable和userlist_deny两个配置项紧密相关的,它可以有效,也可以无效,有效时它可以是一个黑名单,也可以是一个白名单!那么是什么的设置决定了它的作用呢?这就是问题二要解释的。
所以简单总结就是:ftpusers和user_list没有任何关系,ftpusers文件总是生效,user_list则取决于userlist_enable和userlist_deny两项配置。
[b]问题二:vsftpd.conf中的userlist_enable和userlist_deny两个配置项各自起什么作用,两者如何搭配使用?
为了说明这个问题,我们来建立两个测试用户:[/b]
tom: 在user_list中
jim:不在user_list中
然后我们分别给两个配置项取不同的值,分4种情况进行测试:
1: userlist_enable=YES, userlist_deny=YES
tom: 拒绝登入
jim: 允许登录
2: userlist_enable=YES, userlist_deny=NO
tom: 允许登录
jim:拒绝登录(如user_list文件开头的注释所述,甚至不会提示输入密码,即无登入提示框,直接拒绝连接)
3: userlist_enable=NO,userlist_deny=NO
tom: 允许登录
jim: 允许登录
4: userlist_enable=NO,userlist_deny=YES
tom: 允许登录
jim: 允许登录
综上实验得出以下结论:
userlist_enable和userlist_deny两个选项联合起来针对的是:本地全体用户(除去ftpusers中的用户)和出现在user_list文件中的用户以及不在在user_list文件中的用户这三类用户集合进行的设置。
当且仅当userlist_enable=YES时:userlist_deny项的配置才有效,user_list文件才会被使用;当其为NO时,无论userlist_deny项为何值都是无效的,本地全体用户(除去ftpusers中的用户)都可以登入FTP
当userlist_enable=YES时,userlist_deny=YES时:user_list是一个黑名单,即:所有出现在名单中的用户都会被拒绝登入;
当userlist_enable=YES时,userlist_deny=NO时:user_list是一个白名单,即:只有出现在名单中的用户才会被准许登入(user_list之外的用户都被拒绝登入);另外需要特别提醒的是:使用白名单后,匿名用户将无法登入!除非显式在user_list中加入一行:anonymous
vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()错误的解决方法
chroot_local_user=YES/NO:禁止所有用户切本目录之外
chroot_list_enable=YES:禁止部分用户切本目录之外
chroot_list_file=/etc/chroot_list 要限制的用户列表
当我们限定了用户不能跳出其主目录之后,使用该用户登录FTP时往往会遇到这个错误:
500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
这个问题发生在最新的这是由于下面的更新造成的:
- Add stronger checks for the configuration error of running with a writeable root directory inside a chroot(). This may bite people who carelessly turned on chroot_local_user but such is life.
从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。
要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。或者你可以在vsftpd的配置文件中增加下列两项中的一项:
allow_writeable_chroot=YES
相关文章推荐
- vsftp
- phpMyAdmin的用户名和密码丢了怎么办?
- ftp传输出现问题
- outputStream
- zend studio中建立svn项目
- php的全局变量在函数里头引用--以及常量
- PHP set_error_handler() 函数与 trigger_error() 函数的配合使用
- php-apc为magento加速
- php中$this、static、final、const、self 等几个关键字的用法
- set names解决中文乱码 php&sql
- 用phpStorm的数据库工具来管理你的数据库
- php学习01
- zend studio10破解
- 输出thinkphp中数据库操作对应的sql语句
- TAS5508 output changing
- STM8 PIN setting(output)
- 安装Stomp扩展时错误提示error: 'zend_class_entry' has no member named 'default_properties'
- ThinkPHP中使用ajax接收json数据的方法
- nusoap传递对象数组
- webservice——nusoap详解