linux 11

Oct 2

第18章 认识系统服务(daemons)

18.1.1 daemon的主要分类

按照daemon的启动与管理方式来区分,daemon可以分为两类:

  • stand_alone: 此daemon可以自行单独启动服务。最大的优点是:因为是一直存在内存中并持续地提供服务,因此对于发生客户端的请求时,stand alone的daemon响应速度较快。
  • super daemon: 一个特殊的daemon来统一管理。当没有客户端的请求时,各项服务都是未启动的情况,等到有来自客户端的请求时,super daemon才唤醒相对应的服务。当客户端的请求结束后,被唤醒的这个服务也会关闭并释放系统资源。(所以反应时间会比较慢一点)优点:1. 由于super daemon负责唤醒各项服务,因此super daemon可以具有安全控管的机制,就是类似网络防火墙的功能。2. 由于服务在客户端的连接结束后就关闭,因此不会一直占用资源。

daemon的命名规则
服务的名称在被挂上Linux使用时,通常在服务的名称之后会加上一个d。例如例行性命令的新建at和cron这两个服务,它的程序文件名会被取为atd与crond,这个d代表的就是daemon的意思。

系统上面用什么设置可以让服务与端口号对应在一起呢?
/etc/services
格式如下:
<daemon name> <port/数据包协议> <该服务的说明>
这里写图片描述

显示出目前系统上面所有服务的运行状态:service --status-all

service的语法:

service [service name] (start|stop|restart|...)
#service name: 是需要启动的服务名称,需要与/etc/init.d/对应
#start|...:即是该服务要进行的工作

super daemon的启动方式:
因为super daemon要管理后续的其他服务,所以它自己要常驻在内存中。所以它自己的启动方式与stand alone是相同的。但是它所管理的其他daemon就不是这样做了,而是在配置文件中设置启动该daemon。

eg, 如何得知super daemon所管理的服务是否有启动呢:
grep -i 'disable' /etc/xinetd.d/*
这里写图片描述

disable = yes 代表取消此项服务的启动。

如果想要启动如上的rsync服务,可以先修改配置文件/etc/xinetd.d/rsync改成disable=no,然后重新启动xinetd这个服务/etc/init.d/xinetd restart。最后查看一下启动的端口:grep 'rsync' /etc/services看看是哪一号。

一个简单的rsync范例设置
vim /etc/xinetd.d/rsync
这里写图片描述

18.3 服务的防火墙管理xinetd, TCP Wrappers

一般来说,系统的防火墙分析主要可以通过数据包过滤或者是通过软件分析,而Linux默认有提供一个软件分析工具,那就是/etc/hosts.deny 和/etc/hosts.allow这两个配置文件。

18.3.1 /etc/hosts.allow, /etc/hosts.deny管理
  • 任何以xinetd管理的服务都可以通过/etc/hosts.allow, / etc/hosts.deny来设置防火墙。通过分析TCP数据包的文件头,查看来源主机的IP和port,并对比/etc/hosts.{allow|deny},就能决定该连接能否进入我们的主机。

什么是防火墙?
- 针对源IP或域进行允许或拒绝的设置,以决定该链接是否能够成功实现连接的一种方式。

基本上只要一个服务受到xinetd管理,或者是该服务的程序支持TCP Wrappers 函数的功能时,那么该服务的防火墙方面的设置就能够以/etc/hosts.{allow,deny}来处理。

那么,如何得知一个服务的程序有没有支持TCP Wrappers呢?
eg.

#测试一下sshd及httpd这两个程序有没支持TCP Wrappers的功能
ldd $(which sshd httpd)

这里写图片描述

ldd (library dependency discovery)这个命令可以查询某个程序的动态函数库支持状态。因此可以查出sshd, httpd有无支持tcp wrappers所提供的libwrap.so这个函数库文件。

配置文件语法

<service(program_name)> : <IP,domain, hostname> : <action>

eg.

vim /etc/hosts.deny

rsync : 127.0.0.100 127.0.0.200 : deny
或者
rsync : 127.0.0.100 : deny
rsync : 127.0.0.200 : deny
#最后的“:deny”是optional的
  • hosts.deny和hosts.allow这两个文件的判断依据是:以/etc/hosts.allow为优先,若分析到的IP或网段并没有记录在/etc/hosts.allow,则以/etc/hosts.deny来判断。

  • 此外,我们还可以使用一些特殊参数在第一及第二个字段喔!内容有:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值