浅谈tcpwrapper的基本使用方法

曾几何时,不知道你是否与笔者小神一样,有在FreeBSD下实现与WIN2000中的IPSec安全策略实现访问控制的一样功能的想法呢?也许这对刚刚接触FreeBSD的朋友来说是一种奢望,不仅是因为FreeBSD与WINDOWS系统的配置方式截然不同(特别是像小神这种喜欢跑shell的人)。不过不用失望,只要阁下用几分钟的时间专心看完下面的这篇文章的话,相信会有意外的收获的:)。

首先我要为大家讲解一下什么是tcpwrapper。tcpwrapper是传统Unix系统的主要安全组件之一,通过使用它我们能够监控大多数的网络服务进程,从而达到网络服务访问控制(形象点说它的功能就像一个看门人,当有请求进入时,它就会将请求内容分解,并与相应的设置规则进行配对,一旦找到相应的规则时就会自动调入相应的操作了)。在现在主流的FreeBSD4.x中它已经成为了内核中的基本“设施”,且使用的方法也有了一定的改变。今天我们就以telnetd为实验对象来完成一次网络服务访问控制操作吧。

实验环境:
一台普通的586,跑FreeBSD4.7,使用PPPoE并做成ADSL网关,开了telnetd服务进行客户端管理(外网内网都可以访问)。

实验目的:
使用tcpwrapper监控telnetd服务,使外网无法登陆telnetd。

操作基本过程:

首先需要配置一下tcpwrapper的访问控制规则文件hosts.allow(需要注意,以前的传统的tcpwrapper都是用两个配置文件的,hosts.allow与hosts.deny,通过使用它们进行交配式的规则管理。这样非常烦琐也不够直观,在FREEBSD3.2以后这个问题得到了新的改良,现在系统默认只需要使用hosts.allow一个文件就可以了,当然,hosts.deny你也可以自行建立,这是很自由的)。打开hosts.allow的配置来看看吧:
alex# cat /etc/hosts.allow
看出规则的基本配置语法了吗?最基本的语法就是: 服务对象 : 客户端对象地址 : 行为
当然,除此之外还有多种的语法演变方式,大家可以在默认存在的/etc/hosts.allow的注释文本中找到相关的资料。

现在我们要做的就是编写自己的规则。在修改规则文件前还是先备份原来的规则文件吧。
alex# cp hosts.allow hosts.allow.bak
用ee打开hosts.allow:
alex# ee /etc/hosts.allow
在文档的开始部分找到ALL : ALL : allow这句规则(这句规则是允许所有的服务与客户端地址的),在它的前面加上#符号,也就是改成:
#ALL : ALL : allow

在hosts.allow中默认是没有针对telnetd服务的配对规则的,所以这里我们需要自行加上。找到下面的语句段:
# The rest of the daemons are protected.
ALL : ALL
 : severity auth.info
 : twist /bin/echo "You are not welcome to use %d from %h."
这个是整个规则群中最后的“保险”规则(当tcpwrapper在规则群中找不到相关的配对规则时就会根据这个规则进行处理了)。
---------------------------------------------------------------------------------------------
小提示:
也许有人会问:如果我把这个“保险”规则给停了(删除了该规则语句或在前面加“#”号),而tcpwrapper又找不到相应的规则,那tcpwrapper会如何处理呢?这样的话inetd(超级网络服务进程)会跳过tcpwrapper功能而直接把执行权交给相应的网络服务进程的。
---------------------------------------------------------------------------------------------

在这个规则的上方加上下列的规则语句:
telnetd : 192.168.1.0/255.255.255.0 : allow #192.168.1.0/255.255.255.0是小神家中其他机器所
????? #使用的IP段
telnetd : ALL : deny??? #禁止其他所有的客户端地址访问本机的telnetd服务

有一点是需要注意的:hosts.allow中的规则群使用的方法与我们通常所使用的防火墙规则群的原理都是一样的,都是上下之分,越处于上方的规则它的优先执行权就越高。所以这里我们必须把:
telnetd : 192.168.1.0/255.255.255.0 : allow
这条规则放在
telnetd : ALL : deny
规则之上,否则允许192.168.1.0/24访问的这条规则就等于“空规则”了。

OK,保存退出。规则配置完成了。如何得知自己配置的规则群有无逻辑错误(如出现“空规则”等)或其他错误呢?关于这个问题tcpwrapper的作者也考虑到了,所以他另外写了两个附带的工具:tcpdchk与tcpdmatch,默认这两个程序都是在/usr/sbin/目录下的。tcpdchk是一个检查工具,直接运行它就可以查出配置文件中的多种错误问题了。其经常使用方法为:
alex# tcpdchk

alex# tcpdchk -v
无参数运行tcpdchk可以直接得到该配置文件的错误提示(如果真的有错误存在的话);加上参数-v可以立刻得到所有规则的参数配对列表(这里无论规则是否有误,都会一概显示出来的)。如果我的规则群中有几十、几百、甚至几千条规则呢?哪能知道哪条打哪条啊?嘿嘿,还有办法,这里就要用到第二个程序----tcpdmatch了,它是一个简单的规则数据库查询工具。使用它进行查询的基本格式是:
alex# tcpdmatch 服务名 访问的客户端地址或者机器名

现在打个比方,我们想查看该服务器提供的telnetd服务是否允许IP地址为192.168.1.10的客户端机器访问呢?在SHELL中敲入:
alex# tcpdmatch telnetd 192.168.1.10
client: address 192.168.1.10?#提示你所查询的客户端机器地址为192.168.1.10
server: process telnetd? #查询的服务是telnetd
matched: /etc/hosts.allow line 2?#规则建立在/etc/hosts.allow的第2行
option: allow???#管理者设置的行为是“允许”
access: granted???#批准该规则

大伙如果觉得规则群中某些规则的设置问题上是比较含糊的话,不妨使用一下这两个工具,它们可以帮助你很快地整理并建立起属于自己的规则群。

现在关于规则的设置问题就已经告一段落了。既然规则设置好了,如何能让它们实施起来呢?大家应该知道,在FreeBSD中大多数INTERNET网络服务都是通过inetd(超级网络服务进程)来启动与调节的,因此我们的tcpwrapper也应该从这里下手。以前大多数的UNIX系统在使用tcpwrapper时都是通过使用tcpd守护进程来代替其他服务运行从而实现监控其他网络进程的目的的,不过在现在的FreeBSD4.x中这个操作问题已经有了新的改良,现在我们只需要在启动inetd时加入-w、-W这两个参数就可以启用tcpwrapper功能了。那关于日志的问题又如何解决呢?如何你经常使用inetd的话也应该清楚-l参数了吧?
alex# inetd -w -W -l

加了-l后我们就可以直接在/var/log/auth.log中找到相关的日志记录了。FreeBSD的日志比WINDOWS的更加直观,大家已经自己找找:)...像这条:
xxx 24 xx:xx:xx alex inetd[255]: refused connection from 218.20.121.161, service telnetd (tcp)
一看就知道是IP为218.20.121.161的客户端机器企图访问本机的telnetd服务,被本机拒绝了...

说说预启动的问题吧。如何在启动机器时使自动执行tcpwrapper呢?使用ee编辑/etc/rc.conf,写入:
inetd_enable="YES"
inetd_flags="-w -W -l"

保存退出,重新启动机器试试:)。

是时候确认一下实验后的“战果”情况了,在服务器的SHELL中敲:
alex# sockstat -4
USER?COMMAND PID FD PROTO LOCAL ADDRESS? FOREIGN ADDRESS
root?inetd?77 4 tcp4 *:23?? *:*
root?syslogd?70 5 udp4 *:514?? *:*

PID为77的inetd进程证明telnetd是在提供正常服务的(如果想再进一步地确认telnetd是否在提供正常的服务的话,你可以直接用内网的机器登陆上去看一下)。现在使用规则“允许”范围以外的其他地址的客户端机器telnet上去,看看会如何,很快你就会看到:

遗失对主机的连接。
C:>

不错吧?其实这种操作是触类旁通的,你可以把它的操作套在其他任何的网络服务(无论是使用tcp的或是使用udp的,是external services还是internal services都是可以的)的进程上去。

最后谈谈最近针对tcpwrapper进行操作实验后得到的一些个人观点吧(有误之处还请指出):
使用tcpwrapper的优点:属于FreeBSD的“基本设施”程序,无需安装,而且绝对绿色;轻量级,无须占用大量资源;支持所有inetd的网络服务进程。
使用tcpwrapper的缺点:在进行登陆过程时inetd进程的运行速度会相对减慢(包括客户端与服务端);监控能力只局限于一些传输层的服务/协议(若是一些低层协议,如ICMP等的它就无能为力了)。

转载于:https://blog.51cto.com/18767503002/1221073

浅谈tcpwrapper的基本使用方法相关推荐

  1. 必看!清华大学刘洋教授“浅谈研究生学位论文选题”方法,3月7日1小时视频公开课(附视频PPT下载)...

    来源:专知 本文约700字,建议阅读5分钟 清华大学计算机系长聘教授刘洋老师在线讲授了关于<浅谈研究生学位论文选题方法>的课程. 标签:论文研究方法 [ 导读 ]在继续抗击疫情之际,3月7 ...

  2. 【强烈推荐】清华大学刘洋老师【浅谈研究生学位论文选题方法】讲座

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 在继续抗击疫情之际,3月7日,清华大学计算机系长聘教授刘洋老师在线讲授了关于< ...

  3. 经验 | 清华大学计算机系教授~浅谈研究生学位论文选题方法

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 编辑:Sophia 计算机视觉联盟  报道  | 公众号 CVLianMeng 转载于 :清华大学,专知 AI博士笔 ...

  4. 计算机维护与维修方法,浅谈计算机维护与维修方法

    题目:浅谈计算机维护与维修方法 作者:周旺红手机:159******** 单位:江苏省徐州机电工程高等职业学校 地址:江苏省徐州市云龙区东店子徐州机电工程高等职业学校云龙校区 邮编:221000 [摘 ...

  5. 浅谈之互联网赚钱的方法

    在互联网上赚钱,努力做得的人都成功了,不过还是有很多人只是把互联网当作一个娱乐的工具看待,却没有想过它能帮你赚钱,即使我们有正经的工作职业,也可以在下班之余利用互联网来赚点生活费.下面可以看看一些互联 ...

  6. [2017.11.11特辑]以一个光棍节表白案例浅谈ECMAScript6模块化的使用方法

    双十一,购物节与光棍节,在这个特殊的日子里研究了一下模块化开发的我,突然想结合这个日子,以一个表白的例子浅谈es6模块化的用法. 在之前的 javascript 中一直是没有模块系统的,随着JavaS ...

  7. 浅谈DOMContentLoaded事件及其封装方法

    我们在开发时,经常需要检测页面是否加载完毕,以确保脚本安全运行,下面我们就来浅谈一下检测页面是否加载完毕的那些事件们. 1. onload 事件 在页面的所有资源加载完成时,window对象上会触发一 ...

  8. 物联网安全专题 | 浅谈物联网设备安全分析方法 — 软件篇

    ✦前 言✦ • 物联网(Internet of Things,IoT)是互联网的延伸,是智能设备.移动网络及社交网络的结合体,可以给使用者提供更优质的应用体验.物联网时代的到来引入了大量的物联网设备, ...

  9. 浅谈ASP.NET中render方法

    2011-06-08 11:36 runyl 博客园 我要评论(1) 字号:T | T Control.Render 方法是将服务器控件内容发送到提供的HtmlTextWriter 对象,此对象编写将 ...

最新文章

  1. Java学习总结:28
  2. IIS6.0 日期格式问题
  3. [二分查找变形]弯曲的木杆(POJ 1905)
  4. 移动前端适配—逻辑像素和物理像素
  5. php开发是可视的吗,javascript,html_Jquery判断页面元素是否在浏览器的可视区域内,javascript,html,css,html5 - phpStudy...
  6. 在IIS中启用父路径,不被黑客利用
  7. TreeView节点的演练 c# 1614840318
  8. 仿新浪新闻中异步替换关键字
  9. 那个说技术本身并不可耻的快播王欣回来了!
  10. 麻将 (Standard IO)
  11. 2020年中级数据库系统工程师考试时间表与考试大纲
  12. 利用PPT要怎样制作文字弹幕特效
  13. 2020计算机408考试大纲,2020考研计算机:计算机408大纲考点变化解析指导
  14. 名人漏网之语 --联合早报2007-01-28
  15. 设计师必备,6个PNG素材网站
  16. android手机系统对比,国产手机系统哪家强?几大主流手机系统盘点对比
  17. 苹果计算机手机号隐藏功能,苹果手机的四大隐藏功能,很多人都不知道,一起来一探究竟...
  18. 工厂仪表定时拍照智能AI算法识别内网部署方案
  19. Xen,Hypervisor,XenServer的关系
  20. 实战教程 | 用让新海诚本人惊讶的 AI 模型制作属于你的动漫视频

热门文章

  1. [IE 技巧] 输入错误网址自动转到搜索引擎的功能选项
  2. CIA 数据泄露事件报告出炉:光为他人做嫁衣,自家着火不自知
  3. 巨人网络305亿并购海外棋牌类游戏公司审核遭暂停
  4. RepBaseRepeatMaskerEdition下载 | RepeatMasker
  5. spring boot学习(十三)SpringBoot缓存(EhCache 2.x 篇)
  6. Net中的AOP系列之《将AOP作为架构工具》
  7. 新浪2017校园招聘---C++后台研发
  8. [笔记].关于使用JLINK的三线SWD模式调试NUC1xx的一点粗浅认识
  9. 将SPS中被FrontPage修改过的页面重置为Ghost Page
  10. Centos7挂载iso镜像文件配置本地yum源