Linux自学笔记——tcp wrapper

简介:

 

tcp_wrapper:tcp包装器,是一个由wieste venema开发,旨在为unix/linux服务器提供防火墙服务的免费软件,它能够让系统管理员记录和控制wrappers支持基于tcp的服务或守护进程的访问。

tcp_wrappers是用来辅助而非替代netfilter的,因为tcp_wrappers工作在应用层,而netfilter工作在网络层;

库文件:libwrap.so

/etc/hosts.allow  , /etc/hosts.deny

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

1)      动态编译:ldd命令;

ldd $(which COMMAND) | libwrap

2)      静态编译:strings命令查看应用程序文件,其结果中是否出现了hosts.allow和hosts.deny文件;

        image.png

服务基于libwrap完成访问控制的流程:

       首先检查/etc/hosts.allow文件中有没有显式授权当前请求者访问;

              是:直接授权客户端访问;

              否:接着去检查/etc/hosts.deny文件中有没有显式拒绝当前请求者访问;

                     是:直接拒绝当前请求者的访问;

                     否:允许请求者访问;

       配置文件语法:

              daemon_list:client_list  [:options]

              daemon_list

1)      单个应用程序的文件名称,而非服务名;

2)      以逗号分隔的应用程序文件名列表;

例如:sshd,vsftpd

3)      ALL:所有接受tcp_wrapper控制的程序;

Client_list

    Ip地址;

    主机名;

    网络地址:必须使用完成格式的掩码,不能使用前缀格式掩码;

    简短格式网络地址:例如172.16.  表示172.16.0.0/255.255.0.0

    ALL:所有主机;

    KNOWN:能被解析的主机名

    UNKNOWN:无法解析的主机名

    PARANOID:主机名和ip地址的各自的正反解析结果不匹配

EXCEPT:除了

:options

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

    allow:允许,主要用于hosts.deny文件;

    spawn:启动指定的应用程序;

           vsftpd:ALL:spawn  /bin/echo  $(date)  login attempt  from  %c  to  %s,%d  >>  /var/log/vsftpd.deny.log

                  %c:client  ip

                  %s:daemon@server ip

                  %d:daemon  name

示例:vsftpd 仅开放给192.168.19.0/255.255.255.0中的主机访问;

       sshd仅开放给192.168.19.0/255.255.255.0中的主机访问,但是不包括192.168.19.130

对所有被拒绝的访问尝试都记录在/var/log/service.deny.log文件中;

1)      /etc/hosts.allow文件中内容:

image.png

2)      tc/hosts.deny文件中内容:

image.png

3)      测试;

首先用IP地址为192.168.19.134的主机测试;

image.png

再用192.168.19.130的主机测试;

image.png

4)      查看日志;

image.png



本文转自 claude_liu 51CTO博客,原文链接:http://blog.51cto.com/claude666/2056657,如需转载请自行联系原作者

相关文章
|
5月前
|
Ubuntu Linux Python
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
在Linux系统中,使用Tkinter库时可能会遇到中文显示乱码的问题,这通常是由于字体支持问题导致的,可以通过更换支持中文的字体来解决。
269 0
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
|
5月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
157 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
5月前
|
网络协议 Linux 网络性能优化
Linux C/C++之TCP / UDP通信
这篇文章详细介绍了Linux下C/C++语言实现TCP和UDP通信的方法,包括网络基础、通信模型、编程示例以及TCP和UDP的优缺点比较。
108 0
Linux C/C++之TCP / UDP通信
|
5月前
|
网络协议 Linux 网络性能优化
Linux基础-socket详解、TCP/UDP
综上所述,Linux下的Socket编程是网络通信的重要组成部分,通过灵活运用TCP和UDP协议,开发者能够构建出满足不同需求的网络应用程序。掌握这些基础知识,是进行更复杂网络编程任务的基石。
245 1
|
7月前
|
Unix Linux 开发工具
linux笔记 diff及patch的制作与使用
这篇文章是关于Linux系统中使用`diff`命令生成补丁文件以及使用`patch`命令应用这些补丁的详细教程和实战案例。
181 2
linux笔记 diff及patch的制作与使用
|
7月前
|
移动开发 监控 网络协议
在Linux中,如何查看 http 的并发请求数与其 TCP 连接状态?
在Linux中,如何查看 http 的并发请求数与其 TCP 连接状态?
|
7月前
|
监控 网络协议 Linux
在Linux中,如何实时抓取并显示当前系统中tcp 80 端口的网络数据信息?
在Linux中,如何实时抓取并显示当前系统中tcp 80 端口的网络数据信息?
|
7月前
|
存储 监控 网络协议
在Linux中,如何使用 tcpdump 监听主机为 192.168.1.1,tcp 端⼝为 80 的数据,并将将输出结果保存输出到tcpdump.log?
在Linux中,如何使用 tcpdump 监听主机为 192.168.1.1,tcp 端⼝为 80 的数据,并将将输出结果保存输出到tcpdump.log?
|
7月前
|
网络协议 安全 Linux
在Linux中,tcp三次握⼿的过程及原理?
在Linux中,tcp三次握⼿的过程及原理?
|
7月前
|
域名解析 网络协议 Linux
在Linux中,我们都知道,dns采用了tcp协议,又采用了udp协议,什么时候采用tcp协议?什么 时候采用udp协议?为什么要这么设计?
在Linux中,我们都知道,dns采用了tcp协议,又采用了udp协议,什么时候采用tcp协议?什么 时候采用udp协议?为什么要这么设计?