LINUX系统管理白皮书 第8章 — 各种网络应用

原始路径: /田浩然上传的资料/电子书/Linux/LINUX系统管理白皮书/LINUX系统管理白皮书/008.PDF 提取时间: 2026-09-21 大小: 298KB 提取方式: pdftotext(pdf-inspector解析失败)

核心概述

本章是《LINUX系统管理白皮书》的第8章,主要讨论如何配置各种网络应用服务,包括inetd超级服务器、tcpd访问控制工具、服务和协议文件以及远程过程调用(RPC)。

主要内容

8.1 inetd超级服务器

  • 问题:每个daemon都需要在端口监听,浪费系统资源(交换空间)
  • 解决方案:使用”超级服务器”(super-server)创建套接字,用select()同步监听所有服务
  • inetd:最常用的超级服务器,启动时读取/etc/inetd.conf

inetd.conf条目格式:

service type protocol wait user server cmdline
字段含义
service服务名,在/etc/services中查找端口号
typestream(TCP)或dgram(UDP)
protocol传输协议名
wait仅dgram有效,wait=单线程,nowait=多线程
user进程执行的用户ID(通常root)
server服务器程序完整路径
cmdline传给服务器的命令行参数

8.2 tcpd访问控制工具

  • 作用:Wietse Venema编写的”daemon封装器”,用于监控和保护TCP服务
  • 工作原理:拦截请求 → 记入系统日志 → 检查/etc/hosts.allow和/etc/hosts.deny → 允许后才执行真正服务器
  • 不适用于UDP服务

访问控制文件格式:

servicelist: hostlist [:shellcmd]

关键字:

  • ALL:所有主机
  • LOCAL:不含句点的主机名
  • UNKNOWN:无法解析地址的主机
  • .domain.com:匹配该域下所有主机

安全建议:

  1. 禁用finger服务(防止用户名泄露)
  2. 限定tftp可访问目录(防止passwd等敏感文件被下载)
  3. 在hosts.deny中添加:in.tftpd, in.fingerd: ALL EXCEPT LOCAL, .your.domain

8.3 服务和协议文件

  • /etc/services:服务名→端口号映射
  • /etc/protocols:协议名→协议编号映射

8.4 远程过程调用(RPC)

  • 由Sun微系统开发
  • NFS和NIS基于RPC实现
  • 支持多版本接口(同时提供多个版本兼容性)
  • 每个程序有唯一程序编号,保存在/etc/rpc

实践要点

  1. 使用tcpd封装需要访问控制的服务
  2. 将不常用服务(finger、tftp)在inetd.conf中注释掉
  3. 合理配置hosts.allow/hosts.deny实现白名单/黑名单机制
  4. 通过shellcmd字段可布置诱饵(honeypot)

知识关联

LINUX系统管理白皮书