`
阅读更多

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地址和从域名服务返回的名字不匹配的机器。

分享到:
评论

相关推荐

    Tcp Wrapper for solaris 10

    solaris 10上关于TCP wrapper的详细配置介绍。

    TCP-IP详解卷一:协议_wrapper1

    介绍使用UDP的应用程序。S N M P也使用了U D P协议,但是由于它还要处理许多其他的协议,因此本书把它留到第2 5章再进行讨论。I P是网络层上的主要协

    TCP-IP技术大全

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

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

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

    RHCE课程笔记

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

    防火墙相关

    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 ...

    centos下fail2ban安装与配置详解

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

    93个netty高并发教学视频下载.txt

    23_Gradle Wrapper在Gradle项目构建中的最佳实践;24_gRPC整合Gradle与代码生成············82_Netty引用计数原子更新揭秘与AtomicIntegerFieldUpdater深度剖析;83_AtomicIntegerFieldUpdater实例演练...

    防火墙与因特网安全

    如何建立应用级网关 65 4.1 策略 65 4.2 硬件配置选项 65 4.3 初始化安装 67 4.4 网关工具 69 4.4.1 TCP Wrapper 69 4.4.2 中继 71 4.4.3 更好的telnetd 71 4.4.4 支持对外的 FTP访问 72...

    uvw:仅标头,基于事件,微型且易于使用的现代C ++中的libuv包装器-现在也可作为sharedstatic库使用!

    介绍uvw最初是基于标题的,基于事件的,微型且易于使用的包装程序,用于以现代C ++编写的 。 现在,它终于也可以作为可编译的静态库使用。 基本思想是将libuv的C-ish接口libuv隐藏在优美的C ++ API之后。 当前,该库...

    精通并发与netty视频教程(2018)视频教程

    23_Gradle Wrapper在Gradle项目构建中的最佳实践 24_gRPC整合Gradle与代码生成 25_gRPC通信示例与JVM回调钩子 26_gRPC服务器流式调用实现 27_gRPC双向流式数据通信详解 28_gRPC与Gradle流畅整合及问题解决的完整过程...

    精通并发与 netty 视频教程(2018)视频教程

    20_通过Apache Thrift实现Java与Python的RPC调用 21_gRPC深入详解 22_gRPC实践 23_Gradle Wrapper在Gradle项目构建中的最佳实践 24_gRPC整合Gradle与代码生成 25_gRPC通信示例与JVM回调钩子 26_gRPC服务器流式调用...

    精通并发与netty 无加密视频

    第23讲:Gradle Wrapper在Gradle项目构建中的最佳实践 第24讲:gRPC整合Gradle与代码生成 第25讲:gRPC通信示例与JVM回调钩子 第26讲:gRPC服务器流式调用实现 第27讲:gRPC双向流式数据通信详解 第28讲:gRPC...

Global site tag (gtag.js) - Google Analytics