服务器 频道

Linux服务器安全策略详解之守护进程

  4.2.1  Linux守护进程的概念

  Linux服务器在启动时需要运行很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户。提供这些服务的程序是由运行在后台的系统服务(daemons)来执行的。系统服务是生存期较长的一种服务,它们独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。系统服务常常在系统引导装入时启动,在系统关闭时终止。系统服务完成许多系统任务,比如,作业规划服务crond、打印服务lqd等。在Client/Server模式下,服务器监听(Listen)在一个特定的端口上等待客户连接,连接成功后服务器和客户端通过端口进行数据通信。守护进程的工作就是打开一个端口,并且等待(Listen)连接。如果客户端发送一个连接请求,守护进程就创建(Fork)一个子服务器响应这个连接,而主服务器继续监听其他的服务请求。

  4.2.2  Linux系统提供的服务及其守护进程列表

  下面详细介绍一下Linux系统提供的服务及其守护进程。以英文字母为序,如表4-2所示。

服务名称

用途描述

adsl

启动Roaring Penguin公司生产的ADSL设备

aep1000

AEP双处理器驱动程序

服务名称

用途描述

alsasound

Alsa声卡驱动程序。Alsa声卡驱动程序本来是为了一种声卡Gravis Ultra Sound(GUS)而写的,该程序被证明很优秀,于是就开始为一般的声卡写驱动程序。AlsaOSS/FreeOSS/Linux兼容,并且有自己的接口

amd

NFS文件系统自动挂装守护进程

apache

加载Apache HTTP守护进程

apmd

监控笔记本电脑的电池状态

argus

启动Argus程序

arpwatch

启动arpwatch守护进程

arptables_jf

arptables启动一个数据包过滤防火墙

atalk

AppleTalk TCP/IP守护进程

atd

AT批任务守护进程

autofs

autofs守护进程

avgate

Anti-Virus Mail Gateway(防病毒邮件网关)服务

bcm5820

硬件加密加速器支持

bgpd

BGP路由分配守护进程

Canna

Canna日语转换引擎

cipe

CIPE信道的守护进程

cron

cron任务调度服务

crond

cron任务调度服务的守护进程

cups

CUPS打印机守护进程

dc_client

Distcache(一种能对分布式SSL会话信息进行缓存的软件)客户端代理

dc_server

Distcache(一种能对分布式SSL会话信息进行缓存的软件)服务器代理

dhcpd

DHCP服务器的守护进程

dhcrelay

DHCP请求/响应进行跨网段中继

evlog

事件日志守护进程

fam

文件访问监控守护进程

fbset

帧缓存区的创建

gpm

允许在控制台上使用鼠标

heartbeat

启动Heartbeat HA服务

hotplug

Linux热插拔支持

hpoj

HP OfficeJet打印机支持

httpd

Apache HTTP服务器

hwscan

硬件扫描和重新配置

inetd

Internet守护进程

innd

InterNetNews服务器

ippl

IPPL系列协议的日志记录程序

ip6tables

ip6tables防火墙的守护进程

iptables

iptables防火墙的守护进程

ipsec

加密且需要进行身份验证的数据通信

ipvsadm

对虚拟服务器进行系统管理和维护

服务名称

用途描述

ipxmount

通过IPX协议访问Novell网络

ipxrip

IPX路由分配守护进程

ircd

Internet Relay Chat(网络聊天)守护进程

irda

提供对Infrared Data Association(红外数据协会)的支持;用于红外线通信

irqbalance

多处理器系统上的中断分配/调度服务的守护进程

iscsi

访问远程SCSI设备的守护进程

isdn

ISDN驱动程序

joystick

游戏杆驱动程序

kadmin

Kerberos 5服务器

keytable

各种键盘设置

krb524

Kerberos 5密钥编码/解码器

krb5kdc

Kerberos 5服务

ksysguardd

ksysguard的远程监控守护进程

kudzu

为配置新增硬件设备而对硬件进行参数试测

ldap

OpenLDAP2服务器

idirectord

服务器集群用的Linux Director守护进程

lisa

LAN浏览器守护进程

mailman

mailman邮件表程序

mdmonitor

以软件方式监控RAID工作情况

microcode

Intel公司的CPU微代码进行升级

microcode_ctl

CPU微代码进行升级

mon

Heartbeat HA服务的守护进程

mrtd

Multithreaded Routing Toolkit(多线程的路由分析工具箱)软件的守护进程

mysql

MySQL数据库服务器

nagios

网络监控器

named

DNSDomain Name Service,域名解析服务)服务器

nessusd

允许从本机进行安全性测试扫描

netdump

netconsolenetcrashdump工具进行初始化

netdump_server

通过网络发送oops错误报告数据和内存映像的服务器

netfs

挂装和卸载NFSSMBNCP文件系统

network

对网卡和路由进行配置

nfs

导入远程网络文件系统

nfslock

NFS锁定守护进程

nfsserver

基于操作系统内核的NFS守护进程

nmd

基于IP协议的Samba NetBIOS命名服务

nscd

对名字解析服务的结果进行缓存的守护进程

ntop

监控网络的使用情况

ntpd

Network Time Protocol(网络时间协调协议)守护进程

nwe

启动nwe服务器(marsnwe

服务名称

用途描述

ospf6d

OSPF IPv6路由分配守护进程

ospfd

OSPF路由分配守护进程

pcmcia

PCMCIA卡的配置数据库

pcscd

pcscd守护进程

pkcipe

CIPE公共密钥服务器

pkcsslotd

pkcsslotd守护进程

portmap

DARPA端口号到RPC程序号的映射器

postfix

Postfix邮件传输代理的守护进程

postgresl

PostgreSQL守护进程

powertweakd

一种系统优化工具

pptpd

PoPToP PPTP守护进程

psacct

进程开销计费

pxe

在系统完成启动过程之前,通过网络启动其他机器执行环境的守护进程

quota

激活quota(硬盘配额)服务

quotad

启动quota守护进程

radiusd

身份验证、授权和计费服务器的守护进程

radvd

路由器广告守护进程

random

随机数字发生器

rarpd

负责处理逆向地址解析请求的服务器的守护进程

raw

进行硬件级I/O操作的底层设备驱动的守护进程

rawdevices

激活硬件级I/O操作的守护进程

rhnsd

用来访问Red Hat在线升级服务的程序的守护进程

rinetd

因特网重定向服务器的守护进程

ripd

RIP路由分配守护进程

ripngd

RIPNG路由分配守护进程

rpmconfigcheck

rpm配置文件进行扫描的守护进程

rpasswdd

用来安全地对口令字进行远程更新

rstatd

基于RPC协议的网络状态监控服务器的守护进程

rsyncd

rsync守护进程

rusersd

查看当前正登录在其他机器上的用户

rwhod

获得一份某远程机器上的登录用户清单

saslauthd

SASL身份验证服务器的守护进程

scanlogd

scanlogd端口扫描器的守护进程

sendmail

Sendmail邮件传输代理的守护进程

setserial

对串行口进行初始化的守护进程

sgi_fam

文件监控守护进程

slurpd

OpenLDAP2服务器的守护进程

smartd

一个提供系统自我监控和报警功能的守护进程

smb

Samba SMB/CIFS文件和打印服务器的守护进程

服务名称

用途描述

smbfs

导入远程SMB/CIFS文件系统的守护进程

smpppd

因特网拨号连接的守护进程

snmpd

由美国加州大学Davis分校开发的SNMP服务器

snmptrapd

接收并记录SNMP陷阱消息

snort

数据包嗅探器/记录器

Spamassassin

用来过滤垃圾邮件的邮件过滤器

splash

系统开、关机时显示的屏幕动画

splash_early

网络启动后结束屏幕上的动画

splash_late

关机前在屏幕上显示动画

squid

SQUID(一种提供Web缓存功能的软件)的守护进程

sshd

OpenSSHSSH的守护进程

syslog / syslogd

系统日志守护进程

tux

线程化的、基于操作系统内核的HTTP服务器

vncserver

VNC服务器(Virtual Network Computing,虚拟网络计算)

vtun

VPN守护进程

vsftpd

Very Safe FTP守护进程

winbindd

对来自NT服务器的名字进行解析的NSS守护进程

wwwoffle

代理服务器的守护进程

xdm

X屏幕管理器的守护进程

xfs

X字体服务器的守护进程

xinetd

因特网守护进程

xntpd

Time(时间)协议守护进程

ypbind

NIS域里寻找服务器

yppasswdd

允许NIS用户修改口令字

ypserv

分布式NIS地图

ypxfrd

更快地传输NIS地图

zebra

路由管理守护进程

  表4-2  Linux系统提供的服务及其守护进程

  选择运行哪些系统服务,要根据具体需求决定。

  4.2.3  Linux守护进程的运行方式

  1.独立运行(stand-alone)的守护进程

  独立运行的守护进程由init脚本负责管理,所有独立运行的守护进程的脚本在/etc/rc.d/init.d/目录下。系统服务都是独立运行的守护进程,包括syslogd和cron等。独立运行的守护进程的工作方式称做stand-alone,它是UNIX传统的C/S模式的访问模式。stand-alone模式的工作原理如图4-4所示。

  工作在stand-alone模式下的网络服务有xinetd、route、gated,另外还有Web服务器Apache和邮件服务器Sendmail、域名服务器Bind。在Linux系统中通过stand-alone模式启动的服务由/etc/rc.d/下面对应的运行级别当中的符号链接启动。

 

  图4-4  stand-alone模式的工作原理

  2.xinetd模式运行独立的守护进程

  从守护进程的概念可以看出,对于系统所要通过的每一种服务,都必须运行一个监听某个端口连接所发生的守护进程,这通常意味着资源浪费。为了解决这个问题,Linux引进了"网络守护进程服务程序"的概念。Red Hat Linux 9.0使用的网络守护进程是xinted(eXtended InterNET daemon)。xinetd能够同时监听多个指定的端口,在接受用户请求时,它能够根据用户请求的端口的不同,启动不同的网络服务进程来处理这些用户请求。可以把xinetd看做一个管理启动服务的管理服务器,它决定把一个客户请求交给哪个程序处理,然后启动相应的守护进程。xinetd无时不在运行并监听它所管理的所有端口上的服务。当某个要连接它管理的某项服务的请求到达时,xinetd就会为该服务启动合适的服务器。xinetd模式的工作原理如图4-5所示。

 

  和stand-alone工作模式相比,系统不想要每一个网络服务进程都监听其服务端口,运行单个xinetd就可以同时监听所有服务端口,这样就降低了系统开销,保护系统资源。但是对于访问量大、经常出现并发访问的情况,xinetd则要频繁启动相应的网络服务进程,反而会导致系统性能下降。查看系统为Linux服务提供哪种工作模式,可以在Linux命令行中使用pstree命令,就能看到两种不同模式启动的网络服务。一般来说系统中一些负载高的服务,Sendmail、Apache服务是单独启动的;而其他服务类型都可以使用xinetd超级服务器管理。

0
相关文章