关于libwrab

简介:

tcp_wrapper:tcp包装器

对基于tcp协议开发并提供服务的应用程序,提供的一层访问控制工具;

基于库调用实现其功能:

libwrap

    

判断服务是否能够由tcp_wrapper进行访问控制:

(1) 动态编译:ldd命令;

ldd `which vsftpd`查看是否有vsftpd的共享库命令。libwrap.so.0 => /lib/libwrap.so.0 

(2) 静态编译:strings命令查看应用程序文件,其结果中如果出现

hosts.allow

hosts.deny


在配置文件在为各服务分别定义访问控制规则实现访问控制:

/etc/hosts.allow

/etc/hosts.deny


            注意优先级 首先检查/etc/hosts.allow ,若这里允许则直接通过,

        若不允许,再看/etc/hosts.deny 这里若没定义则通过。若定义不允许则不通过

            wKioL1mgLffzSFp9AABpQpegnnA819.jpg-wh_50


配置文件语法:

daemon_list: client_list [:options]


daemon_list:

应用程序的文件名称,而非服务名;

                            这里可用 rpm -ql 服务名 

        例如 rpm -ql vsftpd 

                看到有个/usr/sbin/vsftpd,这个路径把vsftpd当作应用daemon_list

应用程序文件名称列表,彼此间使用逗号分隔;

例如:sshd, vsftpd:

ALL表示所有服务;


client_list:

IP地址;

主机名;

网络地址:必须使用完整格式的掩码,不使用前缀格式掩码;所以类似于172.16.0.0/16不合法;

简短格式的网络地址:例如172.16. 表示 172.16.0.0/255.255.0.0  完整格式的掩码

ALL:所有主机;

KNOWN: 

UNKNOWN

PARANOID


例如:vsftpd服务不允许172.16.100.1访问


EXCEPT: 除了

   hosts.allow

vsftpd: 172.16. EXCEPT 172.16.100.0/255.255.255.0 EXCEPT 172.16.100.1 //只允许172.168.100.0/24 中的172.16.100.1 和 在172.168.0.0/24这个且不包含172.16.100.0/24的网络。 


[:options] 注意前面有个:

deny: 拒绝,主要用于hosts.allow文件中

                                    实现了反作用,不允许前面所说的主机访问服务。

allow:允许,用于hosts.deny文件,实现allow的功能

                                    实现了反作用,允许前面所说的主机访问服务。

spawn: 启动额外应用程序:

vsftpd: ALL :spawn /bin/echo `date` login attempt from %c to %s, %d >> /var/log/vsftpd.deny.log //启动echo命令将登陆失败的用户记录在那个文件中。

%c: client ip

%s: server ip

%d: daemon name



练习:控制192.168.0.110主机上telnet服务仅允许192.168.0.0网络中的主机访问,但不包括192.168.1.0/255.255.255.0中的主机;对所有正常登录的主机都记录于/var/log/telnet.allow.log中;所有未授权访问尝试都记录于/var/log/telnet.deny.log中;


首先启动telnet服务。在centos 6中启动telnet

    若安装完成,vim /etc/xinetd.d/telnet   将disable         = no 

        然后重新启动xinetd

            service xinetd restart  这时候可以用ss -tnl查看23端口是否已经开启。

    这是在centos 7上启动telnet。

        1. CentOS7.0 telnet-server 启动的问题。
    ①、先检查CentOS7是否已经安装以下两个安装包:telnet-server、xinetd。命令如下:

[root@master ~]# yum install telnet-server

[root@master ~]# yum install telnet

[root@master ~]# yum install xinetd

安装完成后,将xinetd服务加入开机自启动:
    systemctl enable xinetd.service
将telnet服务加入开机自启动:
    systemctl enable telnet.socket
最后,启动以上两个服务即可:
    systemctl start telnet.socket
    systemctl start xinetd(或service xinetd start)

        在/etc/hosts.allow 中输入

            in.telnetd:192.168. EXCEPT 192.168.1.0/255.255.255.0 :spawn /bin/echo `date` login scuccess connect from %c to %s, %d >> /var/log/telnet.allow.log  //注意空格

        

        在/etc/hosts.deny 中输入

            in.telnetd:ALL:spawn /bin/echo `date` login fail connnect from %c to %s,%d >> /var/log/telnet.deny.log 

        如此便完成任务



本文转自 神迹难觅 51CTO博客,原文链接:http://blog.51cto.com/ji123/1959469,如需转载请自行联系原作者

相关文章
|
存储 监控 数据可视化
日志分析对决:揭示 ELK 与 GrayLog 的优势和差异
日志分析对决:揭示 ELK 与 GrayLog 的优势和差异
3461 0
|
存储 JSON Cloud Native
C++ QT获取本机公网IP和IP所在地
C++ QT获取本机公网IP和IP所在地
|
机器学习/深度学习 前端开发 Oracle
程序员的那些事
本文章介绍了程序员是做什么的要学什么
1261 0
程序员的那些事
|
算法 数据可视化 前端开发
第三代软件开发-QCustomPlot核心迁移
欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。 在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。 在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资
|
9月前
|
存储 人工智能 算法
【深度优先搜索篇】走迷宫的魔法:算法如何破解迷宫的神秘密码
【深度优先搜索篇】走迷宫的魔法:算法如何破解迷宫的神秘密码
|
搜索推荐 关系型数据库 MySQL
mysql like查询优化
通过合理的索引设计、使用全文索引、优化查询结构以及考虑分片和分区表,可以显著提高MySQL中 `LIKE`查询的性能。针对不同的应用场景选择合适的优化策略,能够有效地提升数据库查询效率,减少查询时间。希望这些方法和技巧能帮助您优化MySQL数据库中的模糊查询。
1291 4
|
缓存 关系型数据库 API
京东面试题:ElasticSearch深度分页解决方案!
京东面试题:ElasticSearch深度分页解决方案!
256 0
|
JavaScript
Vue3基础(22)___vue3中使用$forceUpdate
本文介绍了在Vue 3中如何使用`$forceUpdate`来强制更新组件,通过`getCurrentInstance`方法获取到组件实例后调用。
1286 0
|
Linux
Linux(9)Debain EC25 quectel-CM usbnet0开机自动联网配置
Linux(9)Debain EC25 quectel-CM usbnet0开机自动联网配置
873 0
|
存储 测试技术 索引
「译文」Loki 简明指南:如何处理失序和较旧的日志
「译文」Loki 简明指南:如何处理失序和较旧的日志