47、为你的域名创建DKIM记录,并设置你的邮件服务器和客户端使用这些记录。
以下是创建DKIM记录并设置邮件服务器和客户端使用它们的步骤:
生成DKIM密钥对 :
使用
脚本生成,指定域名和选择器。例如:
dkim-genkey
bash $ dkim-genkey -r -d example.com -s email
会在当前目录生成
(私钥)和
email.private
(包含公钥的DNS TXT记录)。
email.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
测试设置 :
可发送邮件到
或给自己的 Gmail 账户发邮件进行测试。
sa-test@sendmail.net
48、在你的站点创建一个子域名。添加一个有大量名称和地址的真实主机,然后使用 DNSSEC 对其进行安全保护,并通过在 ISC 创建 DLV 记录将其连接到互联网的信任网络。开启日志记录并观察日志几天。记录你的操作步骤和遇到的问题。
DNS 配置与安全设置指南
创建子域名
操作位置:域名管理界面
添加主机
操作位置:DNS 配置中 操作内容:添加相应记录
使用 DNSSEC 保护
生成密钥对 对区域进行签名
创建 DLV 记录
NSD/Unbound 用户
复制生成 KSK 密钥时创建的
文件 将记录类型从
.ds
改为
DS
调整名称字段 到 dlv.isc.org 网页按指引操作
DLV
BIND 用户
操作位置:
操作内容:添加相关内容
named.conf
NSD 用户
将 DLV 记录添加到区域 重新进行签名
Unbound 用户
获取
的 KSK DNSKEY 记录 验证签名 将其放入工作目录文件中 在配置文件中添加相关行
dlv.isc.org
日志记录
操作位置: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 :
使用过滤器
捕获SMTP协议流量。
tcp port 25
d) HTTP :
使用过滤器
或
tcp port 80
(HTTPS)捕获HTTP协议流量。
tcp port 443
e) DNS :
使用过滤器
捕获DNS协议流量。
udp port 53
f) Samba :
使用过滤器
或
tcp port 139
捕获Samba协议流量。
tcp port 445
g) SSH :
使用过滤器
捕获SSH协议流量。
tcp port 22
对于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
网络连通性说明
从同一子网的另一台机器通常能
通虚拟接口,因为同一子网内设备可直接通过 MAC 地址通信,只要网络连接和配置正常。
ping
从不同网络能否
通取决于网络配置:
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>
–
是你的 IP 地址
<your_ip>
–
是 Web 服务器的 IP 地址
<web_server_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
运行
可列出 cookie,示例输出为:
xauth list
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 打印服务器,可以按以下步骤操作:
系统层面准备:
– 确保
账户存在并有权限访问 Samba:
printadm
使用命令
创建账户。 使用命令
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
用户登录 Samba 服务器。 在“Printers”子文件夹中,右键空白处打开“Server Properties”对话框。 通过“Drivers”选项卡添加打印机驱动。 上传后,查看驱动属性,记录所需文件列表。 从命令行上传: 将所需文件复制到
printadm
共享: 使用命令
[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