Linux守护进程Daemon及其管理
什么是Daemon(守护进程)
Service
常驻再内存中的进程,可以提供一些系统或者网络的功能,那就是服务Service。
Daemon 与 Service 的联系与区别
系统为了某些功能必须要提供一些服务service,但是service的提供总是需要进程的运行,所以实现这个service的程序就称为daemon。
- service 与 daemon 不用特别区分。
Daemon 的主要分类
stand_alone
这种daemon可以自行单独启动服务。 常见的如www服务的daemon(httpd), FTP的daemon(vsftpd)。。。
被super daemon管理
Super daemon是一个特殊的daemon, 负责管理其他daemon的启动与否。如telnet就受super daemon 管理。
Linux服务的管理
服务与端口的对应
通过设置 /etc/services 让某一个服务与端口号对应。
daemon name port/protocol notes |
daemon 的启动
stand alone daemon 的启动
- /etc/init.d/* 存放了各种服务的启动脚本可以通过它们来启动某一个服务
sudo /etc/init.d/sshd [start][stop][restart][status] |
- 还可以通过service 启动
service daemonName [start][stop][restart][status] |
super daemon 与 它所管理的 daemon的启动
- super daemon 本身也是一个 stand alone , 所以它的启动和之前一样。 但是他所管理的daemon就不是这样做了, 必须要在配置文件中设置该daemon。 配置文件就是 /etc/xinetd.d/* 中的文件。
里面可以设置很多参数如:
启动与否, 每秒最大连接数, 反向代理, 以及设置一些简单的防火墙功能!
- 如果在 /etc/xinetd.d/中没有该服务的配置, 则启用 /etc/xinetd.conf 为默认配置。
服务的防火墙管理
哪些可以用/etc/hosts.allow/deny 来管理
任何以xinetd 管理的服务, 或者支持 TCP Wrappers 函数的功能的服务,都可以通过 /etc/hosts.allo /etc/hosts.deny 来设置防火墙。
- lld
which sshd httpd
: 查看是否支持 libwrap.so.0
结果 sshd支持, httpd 不支持!
配置文件的语法
服务 : IP : 操作 |
TCP Wrappers 的高级操作
- spawn (action) : 利用后续的shell 进行额外的操作!
- twist (action) : 立刻以后续的命令进行,且执行结束后终止该次链接请求
例子:
- 利用safe_finger 去跟踪出对方的主机的信息
- 将该耿总到的结果以Email的方式寄给本机的root
- 在对方屏幕上显示不可登陆且警告他已经被记录的信息。
由于是阻挡的机制, 因此这个spawn 与 twist 的操作 大多是卸载 /etc/hosts.deny 文件中的。 我们将上述的操作写成类似如下:
sshd : ALL : spawn ( echo “security notice from host”) ; echo ; /usr/sbin/safe_finger @%h) | \
/bin/mail -s “%d-%h security” root & : twist (/bin/echo -e “\n\nWARNING connection not allowed. \n\n”)
系统开启的服务
查询
netstat -tunlp ## 配合grep |
设置开机启动某个服务
小插叙: Linux 开机过程:
- 打开电源, 开始读取BIOS, 进行硬件自我测试。
- 通过 BIOS 取得第一个可开机的设备, 读取 MBR 取得启动装载程序
- 通过启动装在程序的设置, 取得kernel 并加载内存且监测系统硬件
- 内核主动调用init进程
- init 进行系统初始化 (/etc/rc.d/rc.sysinit)
- 以及init 的设置进行daemonstart (/etc/rc.d/rc[0-6].d/*) 。
- 加载本机设置 (/etc/rc.d/rc.local)
chkconfig
chkconfig --list [服务名称] |