[步骤] 在不能进系统的情况下 GRUB 开机菜单的显示 (进入安全模式或者恢复模式) (Ubuntu 版)

正文:

步骤一:取消 GRUB 开机菜单的显示

1.1 修改 /etc/default/grub 配置文件

# vim /etc/default/grub

添加以下内容:

......
GRUB_TIMEOUT_STYLE=hidden
......

添加后的案例:

......
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX=" "
......

1.2 让刚刚设置的参数生效

# update-grub

步骤二:在不能进系统的情况下显示 GRUB 开机菜单

2.1 进入 GRUB 命令行

重启系统后按下 “E” 键不放

2.2 进入 GRUB 命令行以后以正常模式启动系统

grub> normal

2.3 启动后 GRUB 开机菜单就会显示了

(步骤略)

(注意:有时候要重复步骤 2.1 和 2.2 才能显示 GRUB 开机菜单)

2.4 在拯救模式下进入 root 模式

此时选择以下选项并按下 “回车” 键,就可以通过拯救模式进入 root 模式了

root              Drop to root shell prompt

参考文献:

https://askubuntu.com/questions/381613/how-to-return-from-grub-prompt-to-the-grub-menu
https://blog.csdn.net/geekqian/article/details/82912518

[步骤] Linux SCAP (Security Content Automation Protocol) 的生成 (Linux 开源安全报道的生成)

正文:

步骤一:安装 openscap 和相关组件

如果是 RHEL:

# yum install openscap openscap-scanner

如果是 SLE:

# zypper install openscap openscap-utils scap-security-guide

步骤二:下载最新的 SUSE 官方 OVAL 文件

2.1 进入存放下载的官方 OVAL 文件的目录

# cd /root

(补充:这里以把官方的 OVAL 文件下载到 /root 目录为例)

2.2 下载最新的官方 OVAL 文件

如果是 RHEL:

# wget -O - https://access.redhat.com/security/data/oval/v2/RHEL9/rhel-9.oval.xml.bz2

(补充:这里以下载 RHEL 9 官方的 OVAL 文件为例)

如果是 SLES:

# wget https://ftp.suse.com/pub/projects/security/oval/suse.linux.enterprise.15-patch.xml.bz2

(补充:这里以下载 SLE 15 官方的 OVAL 文件为例)

2.2 解压下载下来的 OVAL 文件

如果是 RHEL:

# bzip2 -d rhel-9.oval.xml.bz2

(补充:这里以解压 rhel-9.oval.xml.bz2 文件为例)

如果是 SLES:

# bzip2 -d suse.linux.enterprise.15-patch.xml.bz2

(补充:这里以解压 suse.linux.enterprise.15-patch.xml.bz2 文件为例)

步骤三:使用 SUSE 官方的 OVAL 文件生成 SCAP (Security Content Automation Protocol) 报告

如果是 RHEL:

# oscap oval eval  --report /root/rhel9.5_report20240101.html /root/rhel-9.oval.xml

(补充:这里以用刚刚下载的官方的 OVAL 文件生成名为 rhel9.5_report20240101.html 的 SCAP (Security Content Automation Protocol) 报告文件,并放在 /root 目录下为例)

如果是 SLES:

# oscap oval eval --report /root/sles15.5_report_20240101.html /root/suse.linux.enterprise.15-patch.xml

(补充:这里以用刚刚下载的官方的 OVAL 文件生成名为 sles15.5_report_20240101.html 的 SCAP (Security Content Automation Protocol) 报告文件,并放在 /root 目录下为例)

参考文献:

https://documentation.suse.com/compliance/all/html/SLES-openscap/index.html

[命令] Linux 命令 strace 的使用 (用于确认某个端口或者某个应用的端口是在哪里被阻挡了)

案例一:确认 mtr 命令是在哪里被阻挡了

1.1 使用 strace 命令

# strace -fvttTyy -s 4096 -o /tmp/strace_${HOSTNAME}.log mtr -TP 443 -nrc 300 1.1.1.1

或者:

# strace --follow-forks --no-abbrev --absolute-timestamps=[time,]us --syscall-times --decode-fds=all --string-limit=4096 --output=/tmp/strace_${HOSTNAME}.log mtr -TP 443 -nrc 300 1.1.1.1

(
补充:
1) -f 或者 –follow-forks,跟随交叉
2) -v 或者 –no-abbrev,输出结果不进行缩写
3) -tt 或者 –absolute-timestamps=[time,]us,显示绝对时间的时间戳
4) -T 或者 –syscall-times,显示系统的时间
5) -yy 或者 –decode-fds=all,显示除路径外和文件描述相关的所有信息
6) -s 或者 –string-limit=,后面接数字,限制输出结果中每个字符串的长度,默认为 32
7) -o 或者 –output,后面接文件名,输出结果会导入到这个文件里
8) mtr -TP 443 -nrc 300 1.1.1.1 是要被追踪的命令
9) 这里以查询为访问 1.1.1.1 的 443 端口 300 次而新启动的本地端口在哪里被阻止了,且显示结果的字符串长度为 4096 个字节为例

1.2 通过 strace 命令分析问题

1.2.1 查看 strace 命令的输出结果
# cat /tmp/strace_${HOSTNAME}.log | grep 'Address already in use'
3205000 09:30:00.240588 bind(5<TCP:[132224925]>, {sa_family=AF_INET, sin_port=htons(34005), sin_addr=inet_addr("192.168.0.1")}, 16) = -1 EADDRINUSE (Address already in use) <0.000045>


补充:
1) 这里以搜索报错 ‘Address already in use’ 为例
2) 从输出结果可以看出,使其报错的端口时 34005

1.2.2 通过 ss 命令查找造成报错的端口正在被哪个 PID 占用
# ss -ntulap | grep 34005
tcp   ESTAB      0      0      192.168.1.1:34005  1.1.1.1:49666 users:(("xxxx",pid=1555,fd=284)) 

(补充:这里可以看出造成报错的端口正在被 PID 1555 占用)

1.2.3 通过 ps 命令查找造成报错的端口正在被哪个程序或进程占用
# ps -aux | grep 34005

案例二:确认 realm 命令是在哪里被阻挡了

2.1 使用 strace 命令

# strace -o /tmp/test_realm_log.log realm join eternalcenter.com -U mingyuzhu -v

(补充:这里以判断 realm 命令在使用用户 mingyuzhu 加 eternalcenter.com 域时在哪里被阻挡了,并将结果导出到文件 /tmp/test_realm_log.log 为例)

2.2 查看 strace 的输出结果

# cat /tmp/test_realm_log.log

(补充:这里以查看 realm 命令的输出结果文件 /tmp/test_realm_log.log 为例)

[命令] Linux 命令 arp (ARP 缓存表的管理)

内容一:ARP 缓存表的作用

在本地局域网络中,各个设备的网卡都有自己的 ARP 缓存表,用于记录局域网中各个设备 IP 地址和 MAC 地址的对应关系。

内容二:从本地 ARP 缓存表中清除某个 IP 地址的 ARP 缓存

# arp -d 192.168.0.1

(补充:这里以从本地 ARP 缓存表清楚 IP 地址 192.168.0.1 的 ARP 缓存为例)

内容三:获得 ARP 缓存

# ping 192.168.0.1


补充:
1) 这里以获取 192.168.0.1 的 ARP 缓存为例。
2) 当本地尝试连接 IP 地址 192.168.0.1 时,首先发生 ARP 报文询问 IP 地址 192.168.0.1 的 MAC 地址获得 ARP 缓存。如果此缓存长期没有被使用则会自动删除。如果记录 ARP 缓存过多,那旧的 ARP 缓存会被有限删除