vsftpd tcp_wrappers节制主机和用户访问

本文介绍如何在RHEL4系统中通过vsftpd实现基于TCP包裹器的主机访问控制及用户访问控制。首先,通过编辑hosts.allow文件实现特定主机的访问拒绝,并允许特定网段访问FTP服务。其次,介绍了如何利用vsftpd的用户列表功能实现对用户的访问控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



作者: yuhongchun  出自: http://www.linuxdiyf.com
RHEL4中的vsftpd在编译时已经支撑tcp_wrappers,因此可以运用tcp_wrappers完成主机遇见节制。
尝试之前,起首说下tcp-wrappers的执行次序递次:
先执行hosts.allow,要是hosts.allow内里著名单,则许可名单内的机子访问;否则,则向下寻觅hosts.deny,要是hosts.deny内里著名单,则谢绝名单内的机子访问,要是也没有(即allow和deny内里都没著名单)则许可该主机遇见。

幻想生活生计中,host.allow也可以设置“谢绝”服从,所以一样寻常环境下只运用/etc/hosts.allow对主机截至访问节制即可.


(一)主机遇见节制
在主机(192.168.1.102)上扶植vsftpd效力,使得除了192.168.1.100以外许可192.168.1.0/24网段的其他主机遇见此FTP效力。

方案蛮简朴,编纂/etc/hosts.allow
vsftpd:192.168.1.100:DENY
vsftpd:192.168.1.

重启vsftpd,可达到尝试目的,各人在尝试中可对tcp_wrappers将尝试做庞大点。

(二)用户访问节制
vsftpd具有活络的用户访问节制服从。在具体完成中,vsftpd的用户访问节制分为两类:第一类是传统用户列表/etc/vsftpd/ftpusers,我把它了解理会为体系列表(即体系避免的);第二类是改进的用户列表文件/etc/vsftpd/user_list,我把它了解理会为自己想避免的名单

要想完成第二类名单节制,必须在vsftpd.conf内里有
userlist_enable=YES
userlist_deny=YES //此条是体系默许存在的,即不需用添加体系也默感觉YES
userlist_file=/etc/vsftpd/usrer_list

经过议定以上简朴的尝试,可达到vsftpd强盛的节制才气。
更多精彩,请关注我的空间 http://273015666.qzone.qq.com




版权声明: 原创作品,许可转载,转载时请务必以超链接情势标明文章 原始来由 、作者信息和本声明。否则将深究轨则责任。

转载于:https://www.cnblogs.com/zgqjymx/archive/2011/03/07/1973565.html

<think>好的,我需要解决用户遇到的vsftpd报错问题,错误信息是“500 OOPS: tcp_wrappers is set to YES but no tcp wrapper support compiled in”。根据用户提供的引用资料,这个问题是由于在配置文件中启用了tcp_wrappers支持,但编译时没有包含该功能导致的。 首先,我应该确认用户是否修改过vsftpd的配置文件,比如vsftpd.conf中的tcp_wrappers参数。根据引用[3][4],这个参数默认可能被注释掉,但用户可能手动设置为YES。如果是这样,最简单的解决方法是将该参数设置为NO,并重启服务。 但如果用户确实需要tcp_wrappers支持,可能需要重新编译vsftpd,并在编译前启用相关选项。引用[5]提到修改builddefs.h文件中的VSF_BUILD_TCPWRAPPERS定义,将其设为YES,然后重新编译安装。这需要用户具备一定的编译知识,可能涉及到安装依赖库如libwrap-dev。 另外,用户可能没有安装tcp_wrappers的开发库,导致编译时无法找到相关支持。因此,需要检查系统是否安装了这些库,比如在Ubuntu上安装libwrap0-dev,CentOS上安装tcp_wrappers-devel。 还需要注意,不同Linux发行版的包管理命令不同,需要给出对应的安装步骤。比如使用apt-get还是yum。同时,重新编译后需要替换旧的vsftpd二进制文件,并确保服务正确重启。 最后,应该提醒用户测试配置是否生效,并检查是否有其他相关错误。如果用户不熟悉编译过程,建议优先使用修改配置的方法,关闭tcp_wrappers选项。</think>### 解决“tcp_wrappers set to YES but no tcp wrapper support compiled in”错误的方法 #### 原因分析 该错误是由于在 `vsftpd.conf` 配置文件中启用了 `tcp_wrappers=YES`,但编译安装 vsftpd 时未包含 TCP Wrappers 支持导致的[^3][^5]。TCP Wrappers 是一种网络访问控制机制,需要编译时通过参数启用相关功能。 --- #### 分步解决方案 ##### 方法一:关闭 TCP Wrappers 支持(推荐) 1. **修改配置文件** 打开 `vsftpd.conf` 文件: ```bash sudo vi /etc/vsftpd.conf ``` 找到 `tcp_wrappers=YES` 并将其注释或改为 `NO`: ```ini #tcp_wrappers=YES # 注释或修改为 NO ``` 2. **重启 vsftpd 服务** ```bash sudo systemctl restart vsftpd ``` ##### 方法二:重新编译 vsftpd 并启用 TCP Wrappers 若需保留该功能,需重新编译 vsftpd: 1. **安装依赖库** - Ubuntu/Debian: ```bash sudo apt-get install libwrap0-dev ``` - CentOS/RHEL: ```bash sudo yum install tcp_wrappers-devel ``` 2. **修改编译配置** 下载 vsftpd 源码包,解压后进入目录,编辑 `builddefs.h` 文件: ```c #define VSF_BUILD_TCPWRAPPERS // 取消注释或设置为 1 ``` 3. **编译并安装** ```bash make sudo make install ``` 4. **替换旧版本并重启服务** 将编译生成的二进制文件替换系统原文件(如 `/usr/sbin/vsftpd`),然后重启服务: ```bash sudo systemctl restart vsftpd ``` --- #### 验证结果 - 执行 `ldd /usr/sbin/vsftpd | grep libwrap`,若输出包含 `libwrap.so`,则表明 TCP Wrappers 已启用[^5]。 - 检查日志: ```bash journalctl -u vsftpd --since "5 minutes ago" ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值