本文主要是介绍《鸟哥的Linux私房菜》读书笔记:daemon(service),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
daemon简介
- 依据启动和管理方式,daemon分为stand alone与super daemon两类,两种方式可以同时存在。
- stand alone:自启动服务,不必通过其他机制的管理,启动加载到内存后一直占用内存和资源,在内存中持续提供服务,对于客户端的要求响应速度快。常见的服务有httpd、vsftpd
- super daemon:一个特殊的daemon统一管理,其常驻内存,负责唤醒各项服务,拥有安全控管机制;在客户端联机时才唤醒所对应的服务,联机结束就关闭服务,因此不会一直占用系统资源,但反应速度较stand alone慢。有多线程与单线程的处理模式。
- 依据提供服务的工作状态,daemon分为signal-control和interval-control
- signal-control:透过信号管理,只要客户端的需求进来,服务就去处理
- interval-control:每隔一段时间就主动去执行工作
- daemon启动脚本、相关配置文件:
- /etc/init.d/:启动脚本存放目录
- /etc/sysconfig/:服务初始化环境配置文件
- /etc/xinetd.conf、/etc/xinetd.d/:super daemon主要配置文件为/etc/xinetd.conf,其管理的其他daemon设定在/etc/xinetd.d/目录下
- /etc/:各服务的配置文件存放目录
- /var/lib/:各服务产生的数据存放目录
- /var/run/:各服务的PID记录目录
- stand alone启动方式:/etc/init.d/*启动、关闭、观察,或者利用service命令来执行
service name option
- super daemon启动方式:xinetd本身为一个stand alone服务。修改/etc/xinetd.d/*配置文件disable字段,然后重启xinetd服务
/etc/init.d/xinetd restart
。在/etc/services查看服务相应端口,netstat -tnlp
观察服务是否启动
super daemon配置文件
通过设定默认配置文件xinet.conf与/etc/xinetd.d/目录下的各服务配置文件,可以进行安全性和其他管理机制的管控,提供服务的安全性和资源的合理分配。添加合适的属性与相关值,可以作到更为细致的管理。
服务防火墙管理xinetd,TCP Wrappers
默认软件分析工具:/etc/hosts.allow,/etc/hosts.deny。它们也是/usr/sbin/tcpd的配置文件,tcpd是用来分析进入系统TCP网络封包的一个软件。因为TCP包含源和目的主机的IP和port,所以用其和hosts.allow、hosts.deny对比可以判定是否允许该TCP包能否进入主机。allow的设定优先于deny。
TCP Wrappers:额外安装的套件,可以加上一些追踪功能。一个服务受到xinetd管理,或者支持TCP Wrappers函数功能,则该服务防火墙支持hosts.{deny,allow}设定。用ldd(lib dependency discovery)命令来查看相关服务的动态链接库是否有libwrap.so,若有则支持TCP Wrappers,否则不支持。TCP Wrappers可以管控:
- 来源IP/整个网域的IP网段
- port
更为细部的主要动作:
- spawn(action):可以利用后续接的shell来进行额外的工作,且有变量功能,主要的变量内容为:%h(hostname),%a(address),%d(daemon)。
- twist(action):立刻以后续指令执行,执行完毕后终止此次联机要求。
系统开启的服务
- 观察系统启动的服务:ps、top、netstat指令。通常用netstat来查询,其可以查询有网络监听的服务。-t:查询TCP包;-u:查询UDP包;-n:不以主机名和服务名显示,显示IP地址与port号;-l:有监听的服务;-p:查看pid号。
- 设定开机后立即启动服务的方法:
- chkconfig管理系统服务默认开机与否。
chkconfig --list [服务名称]
chconfig [--level[0123456]] [服务名称] [on|off]
–list:将各服务状态列出来
–level:设定某个服务在该level下的启动与关闭。图形接口(x窗口接口)run level为5,纯文本界面run lever为3。 - ntsysv:类图形接口管理模式。Red Hat系统特有。
- chkconfig管理系统服务默认开机与否。
- chkconfig设定自己的系统服务:
chkconfig [--add|--del] [服务名称]
服务名称必须在/etc/init.d/目录下(必须是stand alone服务,很好理解,chkconfig就是管理开机是否自启动,而super daemon则是通过自身来唤醒其他服务,不能自启动),在init.d目录的配置文件中需加入顺位描述chkconfig [runlevels] [启动顺位] [停止顺位]
这篇关于《鸟哥的Linux私房菜》读书笔记:daemon(service)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!