`
阅读更多

tcpwrapper介绍

TCPWrapper,顾名思义,偶个人理解就是用来封装使用TCP/IP协议应用的一个东东,例如:telnet,ftp

,ssh,exec,rsh,rlogin,finger,talk等。封装起来干啥呢?做地址过滤啊,不让不认识的人随便到

主机上串门,也就是安全上常说的access control list。

tcpWrapper的工作原理其实很简单,打个比方说吧
如果说telnet,ftp,ssh等工具是进入主机的大门,那么tcpwrapper就是守大门的老头。当有人想从

telnet,ftp,ssh这些大门进入主机时,这个守大门的老头可不简单呢,它根据主机给它的你从哪儿来的

信息(就是客户端IP)去翻翻资料允许进入以及不允许进入的列表(hosts.allow和hosts.deny文件),

如果你来的这个地方在允许列表里,就放你进去,然后亮出一个欢迎你的牌子。^_^,如果你来的这个地

方不在允许列表里,或者干脆被加入黒名单(hosts.deny)了,嘿嘿,他就睬都不睬你,你就自个人在那

里撞门吧。


在Linux上上有个xinetd,干的活就是tcpwrapper+inetd的活,也是个好东东。不过linux是江山代有才人

出啊,现在又有个iptables 横空出世,已经很少很少人在用xinetd或者tcpwrapper了。


===================================================================================
转载:
一、Tcp_wrapper简介
 
Tcp_wrapper是Wietse Venema开发的一个免费软件。Tcp_wrapper的诞生有个小小的故事,大约1990年,作者所在大学的服务器屡屡受到一个外来黑客侵入,因为受害主机的硬盘数据屡次被rm -rf/命令整个抹掉,所以找寻线索极为困难,直到有一天晚上作者在工作的过程中无意中发现这个黑客在不断的finger 受害主机、偷窥受害者的工作。于是,一个想法诞生了:设计一个软件,使它可以截获发起finger请求的IP,用户名等资料。Venema很快投入了工作,而Tcp_wrapper也由此诞生!此后,Tcp_wrapper随着广泛的应用逐渐成为一种标准的安全工具。通过它,管理员实现了对inetd提供的各种服务进行监控和过滤。


Tcp_wrapper编译安装成功后,会生成一个tcpd程序,它可以在inetd.conf这个控制文件中取代in.telnetd的位置,这样,每当有telnet的连接请求时,tcpd即会截获请求,先读取管理员所设置的访问控制文件,合乎要求,则会把这次连接原封不动的转给真正的in.telnetd程序,由in.telnetd完成后续工作。如果这次连接发起的ip不符合访问控制文件中的设置,则会中断连接请求,拒绝提供telnet服务。Tcp_wrapper访问控制的实现是依靠两个文件:hosts.allow,hosts.deny来实现的。
如果我们编辑/etc/syslog.conf文件,为Tcp wrapper加入了日志记录功能,即:
 #tcp wrapper loglocal3.info /var/log/tcplog
编辑结束后,保存文件,在/var/log下会生成tcplog文件,注意这个文件的读写属性,应该只对root有读写权限。然后ps -ef | grep syslogd,找出syslogd的进程号,kill -HUP 重启syslogd进程使改动生效。在这里,我们可以预先看一看以后生成的tcplog文件内容,如下:
    Jul 31 22:00:52 [url]www.test.org[/url] in.telnetd[4365]: connect from 10.68.32.1
Jul 31 22:02:10 [url]www.test.org[/url] in.telnetd[4389]: connect from 10.68.32.5
Jul 31 22:04:58 [url]www.test.org[/url] in.ftpd[4429]: connect from 10.68.32.3
Aug 2 02:11:07 [url]www.test.org[/url] in.rshd[13660]: connect from 10.68.32.5
Aug 2 02:11:07 [url]www.test.org[/url] in.rlogind[13659]: connect from 10.68.32.1
从上面我们可以看到,在安装了Tcp_wrapper的主机上,系统的每一次连接,Tcp_wrapper都做了记录,它的内容包括时间、服务、状态、ip等,对攻击这有很大的参考价值,不过,一定要记得清除日志了。
 
二、inetd服务介绍
 
最重要的网络服务进程,即inetd服务器程序,实际上,大部分请求不太频繁的服务都是由它启动的。
inetd程序在系统中是作为一个服务进程出现,它监听许多端口并且在得到客户请求时启动这个端口的服务程序。inetd程序可以由命令行来启动:inetd [-d]   -d选项用于打开调试信息。
    inetd的工作方式是由/etc/inetd.conf和/etc/services文件设定的,下面我们来解释一下这两个文件。
services文件的格式基本上是这样:
   netstat 15/tcp
qotd 17/tcpquote
msp 18/tcp# message send protocol
msp 18/udp# message send protocol
chargen19/tcpttytst source
chargen19/udpttytst source
ftp21/tcp
# 22 - unassigned
telnet23/tcp
每一行都是两栏或者三栏,第一栏是服务的名字,第二行是使用的端口和协议,例如这里的telnet 23/tcp是表示telnet服务应该使用端口23,协议类型为tcp。第三栏是服务的别名,通常可以省略。
inetd.conf是依赖于services文件的,它也是个文本文件,每行代表一种服务的工作方式,由"#"引导的行表示注释行,非注释行的格式大体是这样:
服务名  数据类型  协议  监听方式  用户身份  服务程序  参数
例如,要启动telnet的服务,应该加入这样一行:
telnet  stream  tcp  nowait  root  /usr/sbin/tcpd  in.telnetd
服务的名字就是telnet,这个名字按照/etc/services的定义将在23号端口提供服务;stream表示数据的发送和接收将使用简单的流式文件读写来完成(fscanf和fprintf);tcp表示使用tcp协议,监听方式这一栏可以由两个选项,即wait和nowait。简单地说,如果相应的服务程序是多进程的,那么要设置为nowait,这时inetd会每接受到一个请求之后启动一个服务程序进程,例如telnet就是这样工作的,每个独立的telnet对话都会启动一个telnet服务进程。相反,如果是单进程的,就可以设置为wait。
用户身份表示对应服务进程启动时所使用的uid/euid,因为telnet可以是任何用户发出,而且用户可以通过telnet执行任何命令,所以使用root用户身份。/usr/sbin/tcpd 是实际启动的程序,这个程序实际是一个通用的TCP连接处理程序,参数使用in.telnetd,连起来就是当有23端口的连接请求时,inetd去执行/usr/sbin/tcpd in.telnetd。
通常情况下,各种服务都已经写在inetd.conf中,不启用的服务使用注释#使之失效。如果需要打开这服务,只要把引导的#注释符号删除就可以了。值得一提的是/usr/sbin/tcpd程序,它是一个TCP连接过滤程序,通常大部分需要做连接验证的服务都应该通过tcpd程序启动,这个程序能够自动对客户机器的IP地址进行验证并且进行某些安全性过滤,其中最主要的功能是禁止某些地址来的连接。例如,按照
上面的形式,in.telnetd程序就是通过/usr/sbin/tcpd程序启动的,因此可以对telnet请求进行地址检验。
tcpd的地址检验是通过/etc/hosts.deny和/etc/hosts.allow文件完成的,如果不存在这样的文件,你可以自己建立一个,两者的语法几乎是一样的,只是hosts.allow是允许某个地址来的连接,而hosts.deny是禁止某个地方来的连接。基本的语法是:服务程序:客户地址(域名或主机名)
服务程序是指通过tcpd程序被启动的程序名字,客户地址是相关地址的一个列表,例如,/etc/hosts.allow文件中加入这样一行:in.telnetd:10.0.0.2  。将允许10.0.0.2处的机器使用本地的telnet服务,如果这一行加入到/etc/hosts.deny重将禁止10.0.0.2处的机器登录上来。
地址可以使用集合形式,常用的集合形式主要有下列几种:
以逗点开头的字符串定义一个域,例如.edu.cn表示所有域名后缀是.edu.cn的机器。
以逗点结束的字符串定义一串IP地址,如202.199.248.代表202.199.248.0到202.199.248.255。
以/分开的字符串解释为网络地址/子网掩码的形式,例如172.13.0.0/255.255.0.0代表172.13.0.0到172.13.255.255。
另外,地址和服务程序都可以使用通配符,通配符有下列几种:
ALL 代表所有,所有的服务程序或者所有的地址。经常和EXCEPT子句连用,EXCEPT代表“除了”。例如,在hosts.deny中写上ALL:ALL EXCEPT 202.199.248.将禁止除了202.199.248.*的机器之外的所有客户机器使用任何基于tcpd的服务。写上ALL EXPECT in.telnetd:ALL将使得除了telnet以外的所有基于tcpd的服务都被禁止。
LOCAL 指代所有没有名字后缀的机器。
KNOWN 所有IP地址和域名都知道的机器
UNKNOWN IP地址或者域名无法确定的机器
PARANOID IP地址和从域名服务返回的名字不匹配的机器。

分享到:
评论

相关推荐

    06-SUSE Linux安全加固

    服务安全包括关闭不必要的服务、检查 SSH 服务、检查 .RHOSTS 和/etc/hosts.equiv 文件、检查 TCP WRAPPER 等方面。 3.1 关闭不必要的服务 关闭不必要的服务是服务安全的重要步骤。我们可以通过命令 `chkconfig` ...

    TCP-IP详解卷一:协议_wrapper1

    ### TCP/IP详解卷一:协议_wrapper1 #### 1. 概述 ##### 1.1 引言 TCP/IP协议族是使不同制造商生产的、运行不同操作系统的计算机能够互相通信的基础。它最初是一个由美国政府资助的研究项目,旨在探索分组交换...

    TCP-IP技术大全

    本书介绍TCP/IP及其应用。TCP/IP是Internet上使用的协议,而Internet是世界上最大的互联网络。本书内容十分丰富,几乎涵盖了有关TCP/IP的各个方面,包括开放式通信模型、TCP/IP通信模型、IP网络中的命名和寻址机制、...

    rfc2616_wrapper.pdf

    整个过程建立在TCP/IP协议之上,广泛应用于互联网的Web服务。 文档还详细描述了请求/响应周期中的不同步骤,包括连接的建立、请求消息的发送、请求处理、响应消息的发送和数据的传输。其中,还介绍了与安全通信相关...

    TCP/IP技术大全(中文PDF非扫描版)

    本书介绍TCP/IP及其应用。TCP/IP是Internet上使用的协议,而Internet是世界上最大的互联网络。本书内容十分丰富,几乎涵盖了有关TCP/IP的各个方面,包括开放式通信模型、TCP/IP通信模型、IP网络中的命名和寻址机制、...

    TCPIP Illustrated, Volume 1, 2nd Edition_wrapper.pdf

    由于内容片段不完整,且存在OCR技术导致的识别错误,我们只能大致推断文档内容与TCP/IP协议的介绍、IP地址的使用、以及网络通信设备的地址相关。对于深入学习TCP/IP协议来说,这本书籍无疑提供了丰富的细节和案例,...

    openldap-admguide.pdf

    列出了构建和安装OpenLDAP所需的依赖软件或库,比如TLS(传输层安全)、SASL(简单认证和安全层)、Kerberos认证服务、数据库软件、线程支持和TCP Wrapper。 #### 4.3 运行configure脚本 解释了如何使用configure...

    IEC62056-47绿皮书关键点中文翻译

    传输层的结构包括一个wrapper子层和UDP/TCP传输层,其中wrapper子层是一个轻量级的实体,主要任务是适配OSI模型服务和UDP/TCP功能之间的转换,同时也提供地址解析和传输数据长度信息。 7.3章节聚焦于基于UDP的非...

    DNS服务器实用培训教程.ppt

    在本部分中,我们将详细介绍 DNS 服务器的安全设置,包括使用 TCP_Wrapper 和 iptables 进行安全设置、包漏洞补丁等内容。 第六部分:DNS 主机和配置文件 在本部分中,我们将详细介绍 DNS 主机和配置文件,包括 ...

    RHCE课程笔记

    7、TCP—WRAPPER TCP封装 RHCE课程-RH253Linux服务器架设笔记九-tcp_wrapper 2009-05-20更新 8、GRUP加密和数据校验 9、PAM插装型认证模块(PAM) 10、IPTABLES防火墙及NAT RHCE课程-RH253Linux服务器架设笔记十-...

    Python Scapy随心所欲研究TCP协议栈

    因此,本文将介绍如何使用Python Scapy来模拟并分析Windows TCP协议栈的行为。 #### 二、Scapy基础使用 ##### 2.1 安装Scapy Scapy可以在大多数Linux发行版中通过包管理器轻松安装。例如,在CentOS 7.2中可以通过...

    防火墙相关

    4.4.1 TCP Wrapper 69 4.4.2 中继 71 4.4.3 更好的telnetd 71 4.4.4 支持对外的 FTP访问 72 4.5 安装服务 72 4.5.1 邮件递交 72 4.5.2 对内的telnet 73 4.5.3 代理服务 75 4.5.4 网关服务菜单 76 4.5.5 匿名FTP 78 ...

    工具介绍Veil-Evasion(第十一课).docx

    ### Veil-Evasion工具介绍及应用 #### 一、概述 **Veil-Evasion**是一款功能强大的渗透测试工具,主要用于生成能够绕过多种防病毒软件的Payload,这使其成为进行高级持续性威胁(APT)攻击时的理想选择。该工具...

    Wrapper和xinetd的实现(二)

    通过以上介绍,我们可以了解到Wrapper和xinetd不仅能够提供网络服务的存取控制,还能实现高级的安全策略配置。对于希望增强Linux系统安全性的管理员来说,熟悉并掌握这些配置方法是非常重要的。此外,根据实际需求...

    工具介绍Veil-Evasion(第十一课)1

    7. c/meterpreter/rev_tcp_service:创建TCP服务反向连接Meterpreter Payload。 8. c/shellcode_inject/flatc:注入平坦的C shellcode。 9. cs/meterpreter/rev_http:创建.NET Meterpreter反向HTTP Payload。 10. ...

    vsft.doc vsft.doc

    本文将详细介绍如何在Fedora系统中设置和管理Vsftpd服务,以及利用Tcp_wrappers进行访问控制。 Tcp_wrappers是Linux系统中的一种基于主机的防火墙工具,它通过两个配置文件——/etc/hosts.allow和/etc/hosts.deny来...

    centos下fail2ban安装与配置详解

    一、fail2ban简介 fail2ban可以监视你的系统...如iptables,tcp-wrapper,shorewall(iptables第三方工具),mail notifications(邮件通知)等等。3、在logpath选项中支持通配符4、需要Gamin支持(注:Gamin是用于监视文件和

Global site tag (gtag.js) - Google Analytics