当前位置: 首页 > news >正文

课前练习题-20250916-复习题

15. sshd 服务管理

  1. SSH 的全称是什么?它主要用于解决什么问题?与 Telnet 相比有何优势?

    答案:

    • SSH 全称是 Secure Shell(安全外壳协议)。主要用于在网络中实现安全的远程登录和数据传输。
    • 与 Telnet 相比,SSH 通过加密技术保护数据传输的机密性和完整性,而 Telnet 数据明文传输,存在安全风险。
  2. SSH 协议的加密通信过程主要分为哪几个阶段?

    答案:主要分为三个阶段:① 协议版本协商;② 密钥交换与会话加密建立(生成会话密钥);③ 身份认证与命令交互。

  3. SSH 协议身份认证方式有哪些?

    答案:核心身份认证方式:密码认证、公钥认证(密钥对认证)。

  4. CentOS 7 中 SSH 服务默认使用的端口和协议版本是什么?如何查看当前使用的 SSH 协议版本?

    答案:

    • 默认端口是 22,默认协议版本是 SSH-2(SSH-1 因安全漏洞已基本淘汰)。
    • 查看协议版本:ssh -V(客户端版本);服务端配置在/etc/ssh/sshd_config中通过Protocol 2指定。
  5. 使用 OpenSSH 客户端连接远程服务器(IP:10.0.0.5,用户名:admin,端口:2222)的命令是什么?连接时如何指定使用的私钥文件?

    答案:

    • 基本连接命令:ssh -p 2222 admin@10.0.0.5
    • 指定私钥文件:ssh -i ~/.ssh/my_key -p 2222 admin@10.0.0.5-i参数指定私钥路径)。
  6. 为避免每次连接服务器输入端口和用户名,如何通过客户端配置文件简化操作?请举例说明。

    答案:编辑客户端配置文件 ~/.ssh/config(无则创建),添加服务器信息:

    Host webserverHostName 10.0.0.5User adminPort 2222IdentityFile ~/.ssh/my_key
    

    保存后,直接使用 ssh webserver命令连接。

  7. 使用 SSH 执行命令时,如何避免手动输入密码或确认主机密钥?

    答案:

    ① 采用公钥认证(提前配置免密);

    ② 禁用主机密钥检查:ssh -o StrictHostKeyChecking=no admin@10.0.0.5 "command"

    ③ 结合expect工具自动处理交互(适用于必须使用密码的场景)。

  8. SSH 公钥认证的核心原理是什么?为什么比密码认证更安全?

    答案:

    • 原理是:客户端生成密钥对(公钥 + 私钥),公钥上传至服务器的~/.ssh/authorized_keys,连接时服务器用公钥加密随机字符串,客户端用私钥解密并返回,验证通过则登录。
    • 更安全是因为无需传输密码,私钥仅存于客户端,且暴力破解难度极高。
  9. CentOS 7 中 SSH 服务端的主配置文件路径是什么?该文件中ListenAddress参数的作用是什么?

    答案:

    • 主配置文件路径是/etc/ssh/sshd_config
    • ListenAddress用于指定 SSH 服务监听的 IP 地址(如ListenAddress 192.168.1.10表示仅监听内网 IP),默认监听所有网络接口。
  10. 在生产环境中,为增强安全性,如何配置 SSH 服务端仅允许公钥认证,彻底禁用密码登录?

    答案:编辑 /etc/ssh/sshd_config ,添加:

    PasswordAuthentication no
    PubkeyAuthentication yes
    

    保存后重启sshd服务。

  11. 如何配置 SSH 服务端,禁止用户test登录,同时仅允许dev组的用户登录?

    答案:编辑 /etc/ssh/sshd_config ,添加:

    DenyUsers test
    AllowGroups dev
    

    保存后重启服务。

  12. 为避免闲置 SSH 连接占用资源,如何配置服务端自动断开 10 分钟无操作的会话?

    答案:编辑 /etc/ssh/sshd_config ,添加:

    ClientAliveInterval 600  # 每600秒(10分钟)发送一次心跳
    ClientAliveCountMax 0    # 无响应时立即断开(0表示不重试)
    

    重启服务后生效。

  13. 除了禁用密码登录和修改默认端口,列举 3 种 SSH 服务端的安全加固措施。

    答案:

    ① 限制允许登录的用户 / 组(AllowUsers/AllowGroups);

    ② 禁用 root 直接登录(PermitRootLogin no);

    ③ 禁用 SSH Agent 转发(AllowAgentForwarding no);

    ④ 限制最大认证尝试次数(MaxAuthTries 3);

    ⑤ 启用 TCP Wrappers(通过/etc/hosts.allow/etc/hosts.deny限制来源 IP)。

16. 日志管理

  1. systemd-journald 是什么?它在 CentOS 7 中的主要作用是什么?

    答案:systemd-journald 是 systemd 系统管理套件中的日志服务,主要作用是收集、存储和管理系统及服务的日志信息,支持结构化日志格式,可实时收集内核、服务、应用程序等产生的日志。

  2. rsyslog 是什么类型的服务?它与传统的 syslog 相比有何优势?

    答案:

    • rsyslog 是一个高性能的日志收集和转发服务,属于 syslog 协议的增强实现。

    • 相比传统 syslog,它支持更丰富的日志过滤、转发规则(如按级别、设施转发)、多种输出格式和远程日志存储,性能更优。

  3. 使用 journalctl 命令查看最近 100 条系统日志的命令是什么?如何只查看今天的日志?

    答案:

    • 查看最近 100 条日志:journalctl -n 100

    • 查看今天的日志:journalctl --since todayjournalctl --since "2024-09-15 00:00:00"(替换为当天日期)。

  4. CentOS 7 中 rsyslog 的主配置文件路径是什么?该文件中主要定义了哪些内容?

    答案:

    • 主配置文件路径是 /etc/rsyslog.conf/etc/rsyslog.d/ 目录下的子配置文件。
    • 主要定义日志的来源(如内核、系统服务)、过滤规则(按设施、级别)、日志存储路径(如 /var/log/messages)及转发规则(如发送到远程日志服务器)。
  5. CentOS 7 中 rsyslog 服务将日志存放到哪个目录?该目录下常见的日志文件有哪些,并说明其存储的内容。

    答案:存放在/var/log目录。

    • Ivar/log/messages,大多数系统日志消息记录在此处,不包括与身份验证、电子邮件处理和调度作业执行相关的消息以及纯碎与调试相关的消息。
    • /var/log/secure,与安全性和身份验证事件相关的syslog消息。
    • /var/log/maillog,与邮件服务器相关的syslog消息。
    • /var/log/cron,与调度作业执行相关的syslog消息。
    • /var//og/boot.log,与系统启动相关的非syslog控制台消息。
  6. 如何使用 journalctl 查看 sshd 服务的所有日志?如何查看 sshd 服务的错误级别日志?

    答案:

    • 查看 sshd 服务所有日志:journalctl -u sshd

    • 查看错误级别日志:journalctl -u sshd -p err-p err 表示筛选优先级为错误及以上的日志)。

  7. rsyslog 中日志级别从低到高分为哪些?若配置规则为 *.info;mail.none /var/log/messages,表示什么含义?

    答案:

    • 日志级别从低到高:debug、info、notice、warning(warn)、err(error)、crit、alert、emerg(panic)。

    • 规则含义:所有设施的 info 及以上级别日志写入 /var/log/messages,但邮件(mail)设施的所有日志除外(mail.none)。

  8. systemd-journald 的日志默认存储在哪里?这种存储方式有何特点?

    答案:

    • 默认存储在 /run/log/journal/(临时存储,重启后丢失)或 /var/log/journal/(持久化存储,需手动启用)。

    • 特点:日志以二进制格式存储,占用空间小,支持快速查询和结构化检索,无需手动轮转(自动管理大小)。

  9. 如何配置 rsyslog 客户端,将本地日志发送到 IP 为 192.168.1.200 的远程 rsyslog 服务器?

    答案:编辑 /etc/rsyslog.conf,添加转发规则:*.* @@192.168.1.200:514@@ 表示使用 TCP 协议,@ 表示 UDP,514 是默认端口),然后重启服务:systemctl restart rsyslog

  10. 如何使用 journalctl 查看昨天 18:00 到今天 08:00 之间的 nginx 服务日志?

    答案:journalctl -u nginx --since "yesterday 18:00:00" --until "today 08:00:00"--since 指定开始时间,--until 指定结束时间。

  11. 在 CentOS 7 中,systemd-journald 和 rsyslog 通常如何协作?各自的角色是什么?

    答案:

    • 协作方式:systemd-journald 负责实时收集所有日志(包括内核、服务、应用),rsyslog 则从 journald 中读取日志(通过 imjournal 模块),再根据配置进行过滤、格式化和存储(如写入 /var/log/messages 等文件)或转发。
    • 角色:journald 是日志收集的 “前端”,rsyslog 是日志处理和分发的 “后端”,结合两者可兼顾实时查询(journalctl)和传统文件存储(便于归档、分析)。

17. 时间管理

  1. 在 CentOS 7 中,使用date命令查看当前系统时间和日期的默认输出格式是什么?如何显示当前的 UTC 时间?

    答案:

    • 默认输出格式类似Thu Sep 15 14:30:25 CST 2025(包含星期、月、日、时间、时区、年份)。
    • 显示 UTC 时间的命令是date -u
  2. 如何使用date命令将系统时间设置为 2025 年 9 月 15 日 15:30:00?设置后需要执行什么命令确保硬件时间写入硬件时钟?

    答案:

    • 设置系统时间的命令是date -s "2025-09-15 15:30:00"
    • 写入硬件时钟的命令是hwclock -w(或clock -w)。
  3. tzselect命令的主要作用是什么?使用该命令设置时区后,需要注意什么?

    答案:

    • tzselect用于交互式选择系统时区(通过地理区域层级选择)。
    • 该命令仅生成时区设置建议,不会自动应用,需手动将建议的时区配置(如TZ='Asia/Shanghai'; export TZ)添加到~/.bashrc等文件中生效。
  4. CentOS 7 中,系统默认时区的配置文件是什么?如何通过修改该文件直接将时区设置为上海时区?

    答案:

    • 默认时区配置文件是/etc/localtime(符号链接)。
    • 设置为上海时区的命令:ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime,执行后立即生效。
  5. chronyd是什么服务?它相比传统的ntpd有何优势?

    答案:

    • chronyd是 CentOS 7 默认的 NTP(网络时间协议)客户端服务,用于同步系统时间与远程时间服务器。
    • 优势:占用资源更少,同步速度更快,在网络不稳定时表现更好,支持更小的时间调整粒度。
  6. 如何启动chronyd服务并设置开机自启?如何查看该服务的运行状态?

    答案:

    • 启动并设置开机自启:systemctl start chronydsystemctl enable chronyd
    • 查看状态:systemctl status chronyd
  7. 使用chronyc工具立即同步系统时间的命令是什么?如何查看当前时间同步的源服务器信息?

    答案:

    • 立即同步时间:chronyc -a makestep-a表示无需确认,makestep强制同步)。
    • 查看源服务器信息:chronyc sourceschronyc sources -v(详细信息)。
  8. chronyd的主配置文件路径是什么?如何修改配置文件,添加阿里云的 NTP 服务器(ntp.aliyun.com)作为时间源?

    答案:

    • 主配置文件路径是/etc/chrony.conf
    • 添加阿里云 NTP 服务器:编辑该文件,在server配置部分添加server ntp.aliyun.com iburstiburst表示初始快速同步),保存后重启服务systemctl restart chronyd
  9. Linux 中 “硬件时钟” 和 “系统时钟” 有何区别?如何查看硬件时钟的当前时间?

    答案:

    • 区别:硬件时钟(RTC,实时时钟)是主板上的时钟芯片,断电后由电池供电;系统时钟是操作系统运行时维护的时钟,依赖系统。
    • 查看硬件时钟:hwclockclock
  10. 如何通过环境变量TZ临时修改当前 Shell 的时区为纽约时区(America/New_York)?该设置对其他 Shell 会话是否生效?

    答案:

    • 临时修改命令:export TZ='America/New_York'
    • 该设置仅对当前 Shell 会话生效,关闭终端或切换会话后失效,如需永久生效需写入~/.bashrc等用户配置文件。

文章转载自:

http://3uQEPttX.xkbdx.cn
http://yEnpdcLT.xkbdx.cn
http://D9rWd1Pw.xkbdx.cn
http://XbRNQcPa.xkbdx.cn
http://W8qQ1XM6.xkbdx.cn
http://YMQOleOl.xkbdx.cn
http://G5cc1K49.xkbdx.cn
http://FSAiyd21.xkbdx.cn
http://0xiI3ZQO.xkbdx.cn
http://3laJzcEm.xkbdx.cn
http://1Zh8COTp.xkbdx.cn
http://OYr8QUIY.xkbdx.cn
http://1bXrS1Go.xkbdx.cn
http://0yhOmaRh.xkbdx.cn
http://LTpCODlX.xkbdx.cn
http://ync25WWa.xkbdx.cn
http://vi121FMw.xkbdx.cn
http://6FRfiGnz.xkbdx.cn
http://iZuoNVTs.xkbdx.cn
http://gPMgs8sp.xkbdx.cn
http://YoAUBp7l.xkbdx.cn
http://je0XQPjj.xkbdx.cn
http://g5WvwVW1.xkbdx.cn
http://nvDr7vdI.xkbdx.cn
http://CaWffnXN.xkbdx.cn
http://0ripnyqu.xkbdx.cn
http://apGdcsh9.xkbdx.cn
http://vwFNNfbN.xkbdx.cn
http://CjOzTLYI.xkbdx.cn
http://lDj5TtS4.xkbdx.cn
http://www.dtcms.com/a/387186.html

相关文章:

  • 基于Transformer-卷积神经网络和度量元学习的高压断路器小样本机械故障诊断
  • 基于 Rust 的 IoT 平台基础功能设计(一)
  • vue+typescript+node的前端项目
  • catkin工程和CMakelist.txt的基本使用
  • 使用 MyCat 实现 MySQL 主从读写分离
  • Visual Studio 函数头显示引用个数
  • 【毕业设计选题】大数据技术专业毕业设计选题指南指南:python(2026 届)
  • 组播实验指导
  • Easylogger与RTT结合使用 Easylogger在FreeRTOS下实现异步输出
  • 【openFeign详细介绍】
  • 抖音私信评论互动消息通知监听自动获取,通过qq机器人转发到qq来通知
  • 19.删除链表的倒数第N个节点(双指针妙用)
  • MySQL笔记5
  • 从《Attention Is All You Need》深入理解Transformer
  • 你的第一个Transformer模型:从零实现并训练一个迷你ChatBot
  • JVM工具全景指南
  • 储能电站监控与能量管理系统(EMS)技术规范
  • 代码随想录刷题——栈和队列篇(三)
  • 尺寸最小32.768KHZ有源晶振SIT1572
  • Python文件写入安全指南:处理不存在文件的完整解决方案
  • 网络层认识——IP协议
  • 软考中级习题与解答——第七章_数据库系统(1)
  • 立创·庐山派K230CanMV开发板的进阶学习——特征检测
  • 使用 Nano-banana 的 API 方式
  • 【原理】为什么React框架的传统递归无法被“中断”从而选用链式fiber结构?
  • Redis网络模型分析:从单线程到多线程的网络架构演进
  • 刷题日记0916
  • 5.PFC闭环控制仿真
  • 三层网络结构接入、汇聚、核心交换层,应该怎么划分才对?
  • Std::Future大冒险:穿越C++并发宇宙的时空胶囊