配置DKIM、DNSSEC与NFS版本差异解析

47、为你的域名创建DKIM记录,并设置你的邮件服务器和客户端使用这些记录。

以下是创建DKIM记录并设置邮件服务器和客户端使用它们的步骤:

生成DKIM密钥对
使用
dkim-genkey
脚本生成,指定域名和选择器。例如:

bash $ dkim-genkey -r -d example.com -s email

会在当前目录生成
email.private
(私钥)和
email.txt
(包含公钥的DNS TXT记录)。
将私钥安装到如
/etc/mail/dkim/keys
目录,设置该目录权限为
600
并将其所有权递归地更改为
dkim
用户和组。

添加DNS TXT记录

email.txt
中的内容添加到相应的区域文件,更新区域序列号并通知名称服务器。
在一切测试正常后可添加 ADSP 记录。

验证密钥
运行
dkim-testkey
验证密钥格式和可访问性,无输出表示验证通过。

配置 dkim-filter
创建
/etc/mail/dkim.conf
文件,由
dkim
用户和组拥有,示例内容如下:

bash Canonicalization simple Domain mail.example.com KeyFile /etc/mail/dkim/keys/email.key.pem MTA MSA PidFile /var/run/dkim-filter.pid

测试设置
可发送邮件到
sa-test@sendmail.net
或给自己的 Gmail 账户发邮件进行测试。

48、在你的站点创建一个子域名。添加一个有大量名称和地址的真实主机,然后使用 DNSSEC 对其进行安全保护,并通过在 ISC 创建 DLV 记录将其连接到互联网的信任网络。开启日志记录并观察日志几天。记录你的操作步骤和遇到的问题。

DNS 配置与安全设置指南

创建子域名

操作位置:域名管理界面

添加主机

操作位置:DNS 配置中 操作内容:添加相应记录

使用 DNSSEC 保护

生成密钥对 对区域进行签名

创建 DLV 记录

NSD/Unbound 用户

复制生成 KSK 密钥时创建的
.ds
文件 将记录类型从
DS
改为
DLV
调整名称字段 到 dlv.isc.org 网页按指引操作

BIND 用户

操作位置:
named.conf
操作内容:添加相关内容

NSD 用户

将 DLV 记录添加到区域 重新进行签名

Unbound 用户

获取
dlv.isc.org
的 KSK DNSKEY 记录 验证签名 将其放入工作目录文件中 在配置文件中添加相关行

日志记录

操作位置:DNS 服务器配置 操作内容:开启日志记录 目的:观察日志以发现可能的问题,如: 签名失败 验证不通过等

最终步骤

记录整个过程的步骤和遇到的问题

49、NFS 协议版本 3 和版本 4 之间有哪些概念性的变化?有状态和无状态的问题如何改变协议的其他属性?

NFS 版本 3 与版本 4 的概念性变化

版本 4 的新特性

与防火墙和 NAT 设备兼容协作 将锁和挂载协议集成到核心 NFS 协议 有状态操作 强大集成的安全机制 支持复制和迁移 支持 UNIX 和 Windows 客户端 提供访问控制列表 支持 Unicode 文件名 在低带宽连接下有良好性能

状态管理差异

版本 3 :无状态 版本 4 :有状态

导出方式差异

版本 3 :有多种出口 版本 4 :只有一个分层的伪文件系统

传输协议差异

版本 3 :可选择 UDP 或 TCP 版本 4 :仅使用 TCP

有状态与无状态对协议的影响

特性 有状态 无状态
服务器行为 跟踪网络中所有打开的文件 每个请求独立
操作复杂度 操作复杂,崩溃后恢复困难 操作简单,崩溃或重启无损失
客户端控制 客户端对文件有更多控制,便于管理读写模式打开的文件 无法管理并发

50、你的雇主要求你通过NFS导出 /usr 和 /usr/local。你得到了以下信息和要求:a) 由于办公室政治原因,你希望只有你的部门(本地子网192.168.123.0/24)能够使用这些导出的文件系统。要实现此配置,必须在哪些文件中添加哪些行?注意使用正确的导出选项。b) 列出使mountd和nfsd识别这些新共享文件系统所需的步骤。如何在不挂载这些目录的情况下验证它们是否正在共享?c) 概述一种策略,使本地子网上的所有机器自动将导出的目录挂载到挂载点 /mnt/usr 和 /mnt/usr/local。


a) 大多数系统中,需在 `/etc/exports` 文件中添加如下行:

/usr 192.168.123.0/24(合适的导出选项)
/usr/local 192.168.123.0/24(合适的导出选项)



Solaris和HP-UX系统中,要在 `/etc/dfs/dfstab` 文件里添加相应的 `share` 命令。

合适的导出选项可按需选择,如只读权限可设为 `ro`,读写权限设为 `rw`。

b) 步骤:使用 `exportfs` 或 `share` 命令添加和修改 `xtab`(Solaris和HP-UX为 `sharetab`)文件中的条目。

验证方法:使用客户端的 `showmount -e` 命令查看服务器的导出列表。

c) 策略:可使用自动挂载(`automount`)服务。在本地子网上的所有机器上配置自动挂载,指定服务器的导出目录和本地挂载点 `/mnt/usr` 及 `/mnt/usr/local`。

51、为什么使用“拉取”方式更新本地机器文件比“推送”方式更安全?

在推送系统中,主服务器会定期向每个客户端分发最新文件,不管客户端是否需要,且每个客户端必须允许主服务器修改其系统文件,从而产生安全风险。而在拉取系统中,每个客户端负责从服务器自行更新,这种文件分发方式不太集中,但更具适应性和安全性。

当数据跨管理边界共享时,由于主服务器和客户端机器无需由同一管理组或政治派别运行,拉取系统就特别有吸引力。

52、解释 rdist 控制文件中的以下片段:LINUX_PASSWD = ( redhatbox ubuntubox susebox ) passwd: ( /etc/passwd ) -> ( ${LINUX_PASSWD} ) install /etc/passwd.rdist; cmdspecial /etc/passwd.rdist “/usr/local/sbin/mkpasswd”;


此片段定义了一个 `rdist` 任务。首先定义变量 `LINUX_PASSWD`,包含主机 `redhatbox`、`ubuntubox` 和 `susebox`。  
`'passwd'` 标签的任务是将 `/etc/passwd` 文件复制到这些主机。  
`'install /etc/passwd.rdist'` 设定复制文件的选项,影响复制方式。  
`'cmdspecial /etc/passwd.rdist "/usr/local/sbin/mkpasswd"'` 表示所有文件复制完成后,在每个目标主机上执行 `/usr/local/sbin/mkpasswd` 命令,同时将 `/etc/passwd.rdist` 内容作为环境变量传递给该命令。

53、你正在排查一个网络问题,netstat -rn 命令给出了以下输出。目标地址 网关 子网掩码 标志 最大段大小 窗口 初始往返时间 接口 128.138.202.0 0.0.0.0 255.255.255.0 U 40 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 40 0 0 lo 问题是什么,你会用什么命令来修复它?

问题:缺少默认路由,可能无法访问网络中其他网段和外部网络。

修复命令:使用
route add default gw <正确网关地址> <接口名>
命令添加默认路由,例如:


route add default gw 128.138.202.1 eth0

其中
128.138.202.1
需替换为实际正确的网关地址。

54、使用Wireshark或TShark捕获展示以下协议的流量。对于TCP会话,要包含并指明初始和最终数据包。提交清晰、格式良好的输出。(需要root权限)a) ARP b) ICMP回显请求和回复 c) SMTP d) HTTP e) DNS f) Samba g) SSH

以下是使用Wireshark或TShark捕获各协议流量的一般步骤:

安装Wireshark或TShark:
– 在Linux系统中,可通过包管理器安装;
– UNIX系统可从 wireshark.org 获取源码或预编译二进制文件。

以root权限运行:
由于需要捕获网络流量,通常要以root权限运行。

捕获各协议流量:

a) ARP
使用过滤器
arp
捕获ARP协议流量。

b) ICMP回显请求和回复
使用过滤器
icmp
捕获ICMP回显请求和回复流量。

c) SMTP
使用过滤器
tcp port 25
捕获SMTP协议流量。

d) HTTP
使用过滤器
tcp port 80

tcp port 443
(HTTPS)捕获HTTP协议流量。

e) DNS
使用过滤器
udp port 53
捕获DNS协议流量。

f) Samba
使用过滤器
tcp port 139

tcp port 445
捕获Samba协议流量。

g) SSH
使用过滤器
tcp port 22
捕获SSH协议流量。

对于TCP会话:
– 初始数据包通常是 SYN包
– 最终数据包通常是 FIN包 RST包
– 可通过查看数据包的标志位来确定。

捕获完成后:
– 整理输出并确保格式清晰;
– 可使用Wireshark的导出功能将捕获的流量保存为文件;
– 或使用TShark的输出选项进行格式化输出。

55、设置 Cacti 图表以显示本地路由器收发的数据包。此项目需要一个 SNMP 包来查询路由器,并且你必须知道路由器的只读社区字符串。

项目操作步骤

要完成此项目,可按以下步骤操作:

确保安装了 SNMP 包和 Cacti。
– SNMP 包用于查询路由器。
– Cacti 用于存储和绘制性能指标。

确定路由器的只读社区字符串。
– 它类似于密码,用于只读访问。

配置 Cacti 使用 RRDtool 作为后端。
– Cacti 可将监控数据存储在零维护、静态大小的数据库中。

配置 Cacti 连接到路由器。
– 使用 SNMP 协议,通过已知的只读社区字符串进行查询。

在 Cacti 中设置要收集的 SNMP 变量。
– 以获取路由器收发数据包的相关数据。

根据需求设置数据收集的时间间隔和存储策略。
– 例如:

每分钟收集一个样本,保存一天。 每小时收集一个样本,保存一周等。

生成 Cacti 图表。
– 展示路由器收发数据包的情况。

56、讨论使用密码进行 SSH 认证与使用密码短语和密钥对进行 SSH 认证的安全性。如果其中一种明显比另一种更安全,是否应自动要求使用更安全的认证方法?

使用密码进行 SSH 认证时,系统登录密码可能相对较弱,且有现成工具(如 John the Ripper)可用于破解。

而使用密码短语和密钥对进行 SSH 认证,尤其是当用户需访问私钥文件副本并提供密码解密时,是最安全的认证方式。不过,这种方式设置麻烦,且用户旅行时若未携带私钥文件副本则无法登录。

是否自动要求使用更安全的认证方法,需综合考虑设置的便利性、用户使用场景等因素,不能一概而论。

57、在获得本地系统管理员组的许可后,安装用于搜索弱密码登录名的程序John the Ripper。a) 修改源代码,使其仅输出与弱密码关联的登录名,而不输出密码本身。b) 在本地实验室的密码文件(你需要访问 /etc/shadow)上运行John the Ripper,看看能找到多少个可破解的密码。c) 将你的密码设置为一个字典单词,仅将你自己在 /etc/shadow 中的条目提供给John程序。John需要多长时间才能找到它?d) 尝试其他模式(大写字母、字典单词后加数字、单字母密码等),以确切了解John程序有多智能。

本题为操作类题目,需按以下步骤操作:

修改 John the Ripper 源代码,让其只输出与弱密码关联的登录名,不输出密码。 运行该程序对本地实验室的
/etc/shadow
文件进行操作,统计可破解密码数量。 把自己密码设为字典单词,仅用自己在
/etc/shadow
中的条目运行程序,记录找到密码的时间。 尝试不同密码模式,测试程序破解能力。

58、在计算机实验室中,设置两台机器:一台目标机和一台探测机。a) 在探测机上安装nmap和Nessus,用这些工具攻击目标机。如何在目标机上检测到攻击?b) 在目标机上设置防火墙,使用iptables防御探测。现在能否检测到攻击?如果能,如何检测?如果不能,原因是什么?c) 还可以设置哪些其他防御措施来抵御攻击?

a) 可通过查看系统日志,如网络连接日志、服务日志等,查看是否有异常的连接请求;也可使用入侵检测系统(IDS)或入侵防御系统(IPS)来监测异常的网络活动。

b) 设置防火墙后,若防火墙配置了日志记录功能,可通过查看防火墙日志来检测攻击;若日志显示有被拦截的异常连接请求,说明检测到了攻击。若无法检测到攻击,可能是防火墙规则配置不当,未正确记录或拦截攻击流量;或者攻击手段绕过了防火墙的检测机制。

c) 其他防御措施包括:

及时更新系统和软件补丁,消除已知的安全漏洞; 加强用户账户管理,设置强密码并定期更换; 使用安全审计工具对系统活动进行审计; 部署蜜罐系统,吸引攻击者并记录其攻击行为。

59、以下 iptables 输出中的规则允许和禁止哪些内容?哪些简单的添加可以增强安全性和隐私性?(提示:OUTPUT 和 FORWARD 链可以添加更多规则)。规则链信息如下:INPUT 链(默认策略为 ACCEPT),目标、协议、选项、源地址、目的地址中有 block 规则,匹配所有协议;FORWARD 链(默认策略为 ACCEPT),允许所有协议从任意源到任意目的;OUTPUT 链(默认策略为 ACCEPT);block 规则链中允许已建立和相关的连接、新的 TCP 的 80 端口(www)连接、新的 TCP 的 22 端口(ssh)连接、来自 128.138.0.0/16 的新的 TCP 的 Kerberos 端口连接、ICMP 协议,其他全部丢弃。


## 允许内容

- 已建立和相关的连接
- 新的 TCP 的 80 端口(www)连接
- 新的 TCP 的 22 端口(ssh)连接
- 来自 128.138.0.0/16 的新的 TCP 的 Kerberos 端口连接
- ICMP 协议

## 禁止内容

除上述允许情况外的所有流量

## 增强安全和隐私的简单添加

- 在 OUTPUT 链添加规则限制出站流量,例如只允许特定端口和特定目的地址的流量
- 在 FORWARD 链添加规则,根据源地址、目的地址、端口等进行更细致的过滤,如限制某些内部网络访问外部特定服务

60、在你的工作站上配置一个虚拟接口。在配置前后运行ifconfig命令,查看有哪些变化。你能否从同一子网的另一台机器ping通该虚拟接口?能否从不同网络ping通?为什么能或不能?(需要root权限)

配置虚拟接口的步骤因操作系统而异:

Linux
若以太网接口为
eth0
,虚拟接口可命名为
eth0:0
等,使用类似以下命令配置:

bash sudo ifconfig eth0:0 128.138.243.150 netmask 255.255.255.192 up

Solaris
要先确保物理接口已“plumbed”,可通过创建
hostname
文件(如
/etc/hostname.hme0:1
)实现自动配置。

HP-UX
使用类似以下命令添加虚拟接口:

bash sudo ifconfig lan0:1 192.168.69.1 up

AIX
使用类似以下命令添加虚拟IP地址:

bash sudo ifconfig en0 192.168.1.3 netmask 255.255.255.0 alias

配置前后运行
ifconfig
可查看新增的虚拟接口信息。

网络连通性说明
从同一子网的另一台机器通常能
ping
通虚拟接口,因为同一子网内设备可直接通过 MAC 地址通信,只要网络连接和配置正常。

从不同网络能否
ping
通取决于网络配置:
– 若有合适的路由设置和防火墙规则允许,就可以
ping
通;
– 若没有正确路由或防火墙阻止了流量,则无法
ping
通。

61、使用数据包嗅探器(tcpdump)捕获一个上传信息的双向 HTTP 对话(例如,填写表单或搜索字段)。对该会话进行注释,以展示你的浏览器如何将信息传达给 Web 服务器。(需要 root 权限)

要完成此任务,可按以下步骤操作:

以 root 身份运行
tcpdump
并指定过滤条件,如:


bash sudo tcpdump -i <interface> -w http_conversation.pcap src <your_ip> and dst <web_server_ip> and port 80

其中:

<interface>
是网络接口

<your_ip>
是你的 IP 地址

<web_server_ip>
是 Web 服务器的 IP 地址

在浏览器中进行上传信息的操作,如填写表单或搜索字段。

操作完成后,停止
tcpdump
捕获。

使用工具(如 Wireshark)打开保存的文件:


http_conversation.pcap

分析捕获的数据包,找到 HTTP 请求和响应。
HTTP 请求通常包含:
– 请求方法(如 POST、GET)
– 请求的 URL
– 请求头
– 请求体(其中包含上传的信息)

对会话进行注释,说明浏览器如何将信息传达给 Web 服务器,例如:
– 指出请求方法
– 上传的数据在请求体中的位置等

62、一家大型企业计划部署一个新的客户关系管理(CRM)解决方案,该方案包括冗余前端 Web 服务器、中间件服务器和数据库服务器。这些 CRM 组件中哪些应该进行虚拟化?请解释。


冗余前端 Web 服务器和中间件服务器适合虚拟化,数据库服务器通常不建议一开始就虚拟化。前端 Web 服务器属于面向互联网的服务器,可查询中间件系统或数据库,符合虚拟化的良好候选条件;中间件服务器若属于利用率较低的独立应用服务器,也适合虚拟化。而数据库服务器是繁忙的 I/O 密集型服务器,高利用率的服务至少在一开始最好留在物理系统上。

63、使用 SSH 在网络上运行 X 程序。使用 ssh -v 验证 X 转发是否正确设置。登录后 DISPLAY 变量设置为什么值?通过运行 xauth 列出 cookie 并验证该显示的魔法 cookie 认证是否激活。

登录后,
DISPLAY
变量的值示例为
localhost:12.0

运行
xauth list
可列出 cookie,示例输出为:


x-client/unix:12 MIT-MAGIC-COOKIE-1 a54b67121eb94c8a807f3ab0a67a51f2

以此可验证魔法 cookie 认证是否激活。

64、为你的场地设计一个新的计算机实验室。说明你在空间、机器数量、每台机器的类型和功率负载方面的假设。然后计算该实验室的电力和制冷需求。同时考虑服务器和客户端工作站。还要包括房间布局、照明以及预期的人员负载。

由于没有足够信息来完成设计,以下是设计步骤示例:

假设空间 :确定实验室面积,如100平方米。 确定机器数量和类型
– 客户端工作站:20台,每台功率500瓦。
– 服务器:5台,每台功率1000瓦。 计算功率需求
– 客户端工作站总功率:20 × 500 = 10000瓦。
– 服务器总功率:5 × 1000 = 5000瓦。
– 总功率:10000 + 5000 = 15000瓦。 计算制冷需求
– 将功率转换为热量单位BTUH(1瓦 = 3.413 BTUH)。
– 总热量:15000 × 3.413 = 51195 BTUH。
– 考虑其他因素如照明、人员等产生的热量,适当增加制冷量。 房间布局 :合理安排工作站和服务器位置,保证通风和人员操作空间。 照明
– 根据空间大小和需求,选择合适数量和功率的灯具。
– 例如:安装10个40瓦的荧光灯。 预期人员负载
– 假设同时容纳25人。
– 考虑人员散热等因素对制冷的影响。

65、对以下每种情况可能出现的问题做出合理猜测:a) 在应用程序之间切换时,磁盘频繁读写且有明显延迟。b) 一个数值模拟程序运行时间比平时长,但系统内存大部分空闲。c) 繁忙局域网中的用户抱怨 NFS 访问速度慢,但服务器的负载平均值很低。d) 运行任何命令时经常出现“内存不足”的错误消息。

a) 问题很可能是磁盘带宽不足或内存短缺。
b) 问题可能出在 CPU 负载上。
c) 可能是网络过载或服务器相关延迟,如 DNS 故障、服务器配置问题等。
d) 可能存在某个进程大量占用内存,或者系统本身可分配的物理内存不足。

66、从外部来看,负载均衡会显著影响服务器性能。请讨论几种负载均衡机制。

负载均衡机制分类

负载均衡机制分为 硬件 软件 两类。

硬件负载均衡

F5 Networks的Big-IP Controller Nortel的Alteon网络交换产品 Cisco的内容服务交换机

这些硬件产品可根据多种可配置参数进行工作分配,并能够考虑单个服务器的当前响应时间。

软件负载均衡

开源方案

Linux Virtual Server Apache 2.2引入的代理负载均衡功能 (mod_proxy_balancer)

商业方案

Zeus公司的产品

特殊案例

Google 采用自定义负载均衡DNS服务器(带轮询记录)与负载均衡硬件相结合的方式。

动态网站建议

对于动态生成的网站,在必要时应咨询 数据库管理员 ,以确定在多个数据库服务器之间分配负载的最佳方式。

67、列出能影响性能的四个主要资源。针对每个资源,给出一个可能轻易耗尽该资源的应用示例。讨论缓解每种情况相关压力的方法。

主要资源及优化方案

CPU利用率

常见问题 :数值模拟程序易耗尽资源 优化方案 : 优化算法 增加CPU核心数

内存

常见问题 :大型数据库应用可能耗尽资源 优化方案 : 增加物理内存 优化内存分配策略

存储I/O

常见问题 :视频编辑软件易造成资源耗尽 优化方案 : 使用固态硬盘 优化磁盘调度算法

网络I/O

常见问题 :在线游戏服务器可能耗尽资源 优化方案 : 升级网络设备 进行负载均衡

68、设置一个 Samba 打印服务器,为其共享的所有打印机提供 Windows 打印机驱动程序。确保打印机具有合理的默认配置。

要设置满足要求的 Samba 打印服务器,可以按以下步骤操作:

系统层面准备:
– 确保
printadm
账户存在并有权限访问 Samba:

使用命令
sudo useradd printadm
创建账户。 使用命令
sudo smbpasswd -a printadm
设置密码。 创建存储打印机驱动的目录结构并将其所有权赋予
printadm
: 使用命令
sudo mkdir -p /var/lib/samba/printers
创建目录。 使用命令
sudo cd /var/lib/samba/printers
进入该目录。 使用命令
sudo mkdir W32X86 WIN40 x64
创建驱动目录。 使用命令
sudo chown -R printadm .
更改目录所有权。

配置
smb.conf
文件:
– 在
[global]
部分添加以下条目:


printer admin = printadm
:指定打印机管理员。
disable spoolss = no

show add printer wizard = no

guest ok = yes

browseable = no
。 创建
[print$]
共享:
comment = Printer Driver Area

path = /var/lib/samba/printers
:指定存储驱动的路径。
browseable = yes

guest ok = yes

read only = yes

write list = printadm
:指定可管理驱动仓库的用户。

上传打印机驱动(有两种方式):
– 从 Windows 客户端上传:

在 Windows 的“开始 -> 运行”对话框中输入
\sambaserver
。 以
printadm
用户登录 Samba 服务器。 在“Printers”子文件夹中,右键空白处打开“Server Properties”对话框。 通过“Drivers”选项卡添加打印机驱动。 上传后,查看驱动属性,记录所需文件列表。 从命令行上传: 将所需文件复制到
[print$]
共享: 使用命令
cd ~/mydriver
。 使用命令
smbclient -U printadm '//samba-server/print$' -c 'mput *.*'
。 使用命令
rpcclient -U printadm -c "adddriver "Windows NT x86" "Our Custom PS:PSCRIPT5.DLL:CUSTOM.PPD:PS5UI.DLL:PSCIPT.HLP:NULL:NULL:PSCRIPT.NTF"" samba-server
将驱动分配给特定打印机。

关联驱动与打印机:
– 从 Windows 客户端操作:

右键打印机图标选择“Properties”。 在“Advanced”选项卡中选择适当的驱动。 打开“Printing Defaults”对话框,对设置进行至少一处小修改,以确保 Windows 将配置数据结构存储在 Samba 服务器上。 从命令行操作: 使用命令
rpcclient -U printadm -c "set driver "myprinter" "Our Custom PS"" samba-server
配置打印机使用上传的驱动。

© 版权声明

相关文章

暂无评论

none
暂无评论...