分享
 
 
 

端口的限制可以通过限制服务来实现

王朝other·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

请使用Tcp_wrapper,RedHat8.0默认是安装的了

----------------------------------

Tcp_wrapper的安装和使用

Internet的开放互连性使得每一台连在网上的服务器都逃脱不了被攻击的可能性,事实上我国从接入互联网以来这类事从未中断过。对目前我国的绝大部分网络管理员而言,熟练的使用Unix操作系统尚是一个亟待解决的问题, 网络安全,很难顾及。然而

今天我们来介绍一个软件Tcp_wrapper,说起这个软件,可算得上是大名鼎鼎了,互联网上, 无论采用何种unix操作系统,安装了这个软件的主机恐怕都是不计其数的,事实上它已经成为一种安全的标准配置.本文就以solaris作为操作环境对这个软件做一说明,在其它的Unix操作系统平台上是相通的,读者根据自己的操作系统的种类稍加变化即可。 Tcp_wrapper是Wietse Venema开发的一个可用于各种Unix平台的免费软件,说起Tcp_wrapper的诞生,到有个小小的故事,大约在1990年,作者所在大学的服务器屡屡受到一个外来黑客侵入, 因为受害主机的硬盘数据屡次被rm –rf / 命令整个抹掉,所以找寻线索极为困难,直到有一天晚上Venema在工作的过程中无意中发现这个黑客在不断的finger 受害主机,偷窥受害者的工作,在那个时候一个想法诞生了:设计一个软件,使它可以截获发起finger请求的IP,用户名等资料,Venema 很快投入了工作,而Tcp_wrapper也由此出现!在这以后,Tcp_wrapper随着应用逐渐成为一种标准的Unix安全工具,成为unix守护程序inetd的一个插件.通过Tcp_wrapper,管理员可以设置对inetd提供的各种服务进行监控和过滤.

我们知道,unix中各种服务的实现是基于inetd这个守护进程的,每当有网络服务请求时,无论是ftp,telnet,rlogin等等,这种请求都被送到处于侦听状态的inetd守护进程,inetd再根据请求启动相应服务.inetd的设置是根据/etc目录下inetd.conf决定的.inetd.conf中标识了每种服务由什么进程来控制,我们抽取一行如下:

telnet stream tcp nowait root /usr/sbin/in.telnted in.telned

从上面这一行我们可以看到,telnet这个服务,是由/usr/sbin目录下的in.telnetd来控制的,每当有telnet的连接请求时,inetd就指导in.telnetd来启动telnet服务.这是unix默认的连接方式,在这个过程中,没有管理员可以控制的部分,也没有连接纪录.

而在安装了Tcp_wrapper的主机上,管理员可以对上述服务加以控制,当Tcp_wrapper编译安装成功后,会生成一个tcpd程序,它可以在inetd.conf这个控制文件中取代in.telnetd的位置,这样,每当有telnet的连接请求时,tcpd即会截获,先读取管理员所设置的访问控制文件,合乎要求,则会把这次连接原封不动的转给真正的in.telnetd程序,由in.telnetd完成以后的工作.如果这次连接发起的ip不符合访问控制文件中的设置,则会中断连接请求,拒绝提供telnet服务.除in.telnetd以外,tcpd还可以替代其它各种tcp服务.

Tcp_wrapper访问控制的实现是依靠两个文件:hosts.allow,hosts.deny来实现的.这两个文件的语法是比较简单的,基本语法就是:服务类型 :本服务有效ip范围 : 许可或拒绝.如hosts.allow中为:

In.telnetd : secu.unix.org : allow

In.ftpd : 10.68.32. : allow

in.rshd : all

:

/usr/local/sbin/safe_finger -l @%h | usr/ucb/mail

yiming@371.net

而hosts.deny为:all : all.这两个文件的意思是对telnet来讲,只允许来自secu.unix.org的连接,对ftp而言,允许10.68.32这个c类地址的连接.in.rshd这一部分语法稍微复杂一些,它的意思是外界任何一个ip每次试图使用rsh连接本系统的时候系统会finger发起连接请求的远程用户,并立即将结果发mail到一个管理员的远程信箱yiming@371.net,我们知道,管理员之所以这么做,是因为一般试图进行rsh的连接, 都是有很大的潜在危险性的,这说明也许系统已经被人入侵,并安插了.rhosts文件了,这很危险! 所以对管理员来说,这种连接需要引起极大的注意. hosts.deny文件中的all : all表示除了这些以外,拒绝来自任何地方的任何服务.以上只是对访问控制文件的一个简单说明,管理员可以参看Tcp_wrapper的相应说明定制更为复杂的控制策略.同时需要说明的是,如果需要象上例中设置对rsh的这种finger,mail功能,是需要在Makefile中打开language extension的.

下面来讲讲Tcp_wrapper的安装

首先,我们从可信站点下载tcp_wrappers,如ftp://ftp.porcupine。org/pub/security/tcp_wrappers_7.6.tar.gz(目前最新的版本是7.6)

我们假设你的主机已有了各种所需的编译工具,cc(或gcc),make(或gmake),gzip等,如果使用solaris的读者主机上没有这些工具,可到sunfreeware.com下载它们,使用其它Unix系统亦可到相关站点下载。我们在得到Tcp_wrapper包后,用gzip和tar将压缩包解开,会生成Tcp_wrapper目录,进入目录,我们需要编辑Makefile文件,使它合乎我们的工作要求。编辑的基本工作可以分为3步。

1:在Makefile的头一部分我们可以看到REAL_DAEMON_DIR的描述,它表明了Unix系统中真正的守护程序所在位置,即上面提到的第六个分隔段的守护进程所在目录,solaris中这些守护程序的目录是/usr/sbin,所以我们将SysV.4 Solaris 2.x OSF AIX前的#注释号去掉,即下面的形式:

# Ultrix 4.x SunOS 4.x ConvexOS 10.x Dynix/ptx

#REAL_DAEMON_DIR=/usr/etc

#

# SysV.4 Solaris 2.x OSF AIX

REAL_DAEMON_DIR=/usr/sbin

#

# BSD 4.4

#REAL_DAEMON_DIR=/usr/libexec

#

# HP-UX SCO Unicos

#REAL_DAEMON_DIR=/etc

2:在Makefile 中查找FACILITY= LOG_MAIL这几个关键字,Tcp_wrapper的纪录功能就是由这里实现的,系统默认是使用solaris的MAIL精灵来做连接纪录的,但这样会造成Tcp_wrapper的连接纪录和系统的mail日志混杂在一起,不利于管理员分辨.所以建议还是选用一个solaris中未使用的local精灵.我们在这里使用LOCAL3,即FACILITY= LOG_ LOCAL3 ,SEVERITY级别保持INFO级别不变。在读者的机器上可视情况而定用何种精灵。修改后即下面的形式:

# The LOG_XXX names below are taken from the /usr/include/syslog.h file.

FACILITY= LOG_LOCAL3 #LOG_MAIL is what most sendmail daemons use

# The syslog priority at which successful connections are logged。

SEVERITY= LOG_INFO # LOG_INFO is normally not logged to the console

3:接着查找/etc/hosts.allow,/etc/hosts.deny,也就是上文提到的访问控制文件,建议将默认的/etc替换为其它路径。 由此Makefile编辑完成,退出vi,执行make sunos5(sunos5这个参数是由Makefile开始描述部分得到,采用其它操作系统的将sunos5替换为为相应参数即可)。我们可以看到系统在编译,成功后,在当前目录下会生成tcpd,tcpdmatch,safe_finger等5个可执行文件。建议选一个目录如/usr/local/sbin,将上述5个文件拷贝到这个目录中,至此Tcp_wrapper本身的编译工作就此结束。

下一步,编辑/etc/inetd.conf,将原

telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd中的/usr/sbin/in.telnetd替换为tcpd及其所在路径,在此例中即

telnet stream tcp nowait root /usr/local/sbin/tcpd in.telnetd

其它ftp , tftp , rsh , rlogin等同样操作即可,建议至少替换telnet,ftp,rsh,rlogin这几个守护程序。

编辑结束后,保存文件,ps –ef | grep inetd找出inetd的进程号,kill –HUP 重启inetd进程使改动生效。

接着我们编辑/etc/syslog.conf文件,加入日志纪录功能,在此例中即

#tcp wrapper log

local3.info /var/log/tcplog

编辑结束后,保存文件, 在/var/log下生成tcplog文件,注意这个文件的读写属性, 应该只对root有读写权限。然后ps –ef | grep syslogd,找出syslogd的进程号,kill –HUP 重启syslogd进程使改动生效。

最后一项工作是编辑hosts.deny和hosts.allow文件,按上面的语法编辑即可。至此所有工作完成,我们可以用上述两个文件的设置来试一试,假设主机refuse(IP 11.22.33.44)telnet本机,我们看一看,会有什么反应?

refuse#telnet www.yiming.com

Trying www.yiming.com ...

Connected to www.yiming.com

Connection closed by foreign host.

我们再看看本机Tcp_wrapper的日志,多了一条:

Apr 2 13:56:20 yiming in.telnetd[1769]: refused connect from 11.22.33.44

实际上这种测试可用Tcp_wrapper自带的测试文件tcpdmatch,使用很简单,格式tcpdmatch 守护程序 假定IP 即可,这里也不介绍了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有