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,如需转载请自行联系原作者

相关文章
|
3月前
|
网络协议 Linux
拿来即用的Linux上TCP服务端程序
拿来即用的Linux上TCP服务端程序
|
1月前
|
算法 Linux
【Linux笔记】压缩、解压文件的 4 种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法
【Linux笔记】压缩、解压文件的 4 种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法
|
2天前
|
网络协议 Ubuntu Unix
Linux 下使用 socket 实现 TCP 客户端
Linux 下使用 socket 实现 TCP 客户端
|
12天前
|
Linux API C语言
FFmpeg开发笔记(一)搭建Linux系统的开发环境
本文指导初学者如何在Linux上搭建FFmpeg开发环境。首先,由于FFmpeg依赖第三方库,可以免去编译源码的复杂过程,直接安装预编译的FFmpeg动态库。推荐网站<https://github.com/BtbN/FFmpeg-Builds/releases>提供适用于不同系统的FFmpeg包。但在安装前,需确保系统有不低于2.22版本的glibc库。详细步骤包括下载glibc-2.23源码,配置、编译和安装。接着,下载Linux版FFmpeg安装包,解压至/usr/local/ffmpeg,并设置环境变量。最后编写和编译简单的C或C++测试程序验证FFmpeg环境是否正确配置。
34 8
FFmpeg开发笔记(一)搭建Linux系统的开发环境
|
1月前
|
Linux 网络安全 开发工具
【Linux笔记】常用的Linux的指令
【Linux笔记】常用的Linux的指令
|
2月前
|
Linux 数据安全/隐私保护 Android开发
10 个最佳 Linux 开源笔记软件
10 个最佳 Linux 开源笔记软件
109 1
|
2月前
|
网络协议 关系型数据库 MySQL
Linux下的网络编程——C/S模型TCP(二)
Linux下的网络编程——C/S模型TCP(二)
33 0
Linux下的网络编程——C/S模型TCP(二)
|
2月前
|
缓存 Shell Linux
《linux鸟哥的私房菜》笔记(下)
《linux鸟哥的私房菜》笔记(下)
24 0
|
2月前
|
存储 Unix Linux
《LINUX鸟哥的私房菜》笔记(上)
《LINUX鸟哥的私房菜》笔记(上)
49 0
|
3月前
|
网络协议 Linux
【Linux C TCP服务器端-epoll案例】
本文主要介绍了linux下Select的TCP通信流程,实现了客户端和服务器的通信,主要实现了消息的回发,即服务器将消息原封不动的回发给客户端。
24 0