Skip to content

Eternal Center

  • System (系统)
  • Services (服务)
  • Databases (数据库)
  • Clusters (集群)
  • Big Data (大数据)
  • Cloud Computing (云计算)
  • Languages (语言)
  • Project (项目)
  • Writings (写作)
  • Eternity (永恒)
  • News (消息)
  • Chronicle (编年史)
  • Words (言)

Category: System Login Security (系统登录安全)

Posted on April 29, 2022April 29, 2022

[步骤] Linux SSH 密钥的批量更新

步骤目录:

步骤一:生成新的 SSH 密钥
1.1 进入 ~/.ssh 目录
1.2 生成新的 SSH 密钥

步骤二:将新的 SSH 公钥拷贝到目标服务器

步骤三:更新 SSH 密钥
3.1 更新 SSH 私钥
3.1.1 备份旧有的 SSH 私钥
3.1.2 更新 SSH 私钥
3.2 更新 SSH 公钥
3.2.1 备份旧有的 SSH 公钥
3.2.2 更新 SSH 公钥

步骤四:删除目标服务器的旧有 SSH 公钥
4.1 删除目标服务器的旧有 SSH 公钥
4.2 确定目标服务器就有的 SSH 已经删除

具体的操作步骤:

步骤一:生成新的 SSH 密钥
1.1 进入 ~/.ssh 目录

# cd ~/.ssh

1.2 生成新的 SSH 密钥

# ssh-keygen -b 4096 -t rsa -C "<content>" -f "<public private key name>"

步骤二:将新的 SSH 公钥拷贝到目标服务器

# for i in `cat <server list>`;do echo $i;ssh-copy-id -i ~/.ssh/<public private key name>.pub $i;echo;done

步骤三:更新 SSH 密钥
3.1 更新 SSH 私钥
3.1.1 备份旧有的 SSH 私钥

# mv id_rsa id_rsa.backup

3.1.2 更新 SSH 私钥

# cp <public private key name> id_rsa

3.2 更新 SSH 公钥
3.2.1 备份旧有的 SSH 公钥

# mv id_rsa.pub id_rsa.pub.backup

3.2.2 更新 SSH 公钥

# cp <public private key name>.pub id_rsa.pub

步骤四:删除目标服务器的旧有 SSH 公钥
4.1 删除目标服务器的旧有 SSH 公钥

# for i in `cat <server list>`;do echo $i;ssh $i "sed -i /<old SSH key content>/d ~/.ssh/authorized_keys";echo;done

4.2 确定目标服务器就有的 SSH 已经删除

# for i in `cat <server list>`;do echo $i;ssh $i "cat ~/.ssh/authorized_keys | egrep -v '<content>'";echo;done
Posted on April 28, 2022April 29, 2022

[步骤] Linux 系统被删根 (rm -rf /*) 后锁定删根 (rm -rf /*) 用户的尝试 (系统层面)

步骤目录:

步骤一:系统被删根 (rm -rf /*) 后的现象

步骤二:挂载官方镜像

步骤三:登录拯救模式
3.1 进入拯救模式
3.2 登录拯救模式

步骤四:在救援模式确定系统的根目录分区

步骤五:在救援模式将系统的分区挂载到救援模式的 /mnt 目录
5.1 在救援模式将系统的根分区挂载到救援模式的 /mnt 目录
5.2 在救援模式将救援模式的 /dev 目录关联到救援模式的 /mnt/dev 目录
5.3 在救援模式将救援模式的 /proc 目录关联到救援模式的 /mnt/proc 目录
5.4 在救援模式将救援模式的 /sys 目录关联到救援模式的 /mnt/sys 目录
5.5 在救援模式将救援模式的 /run 目录关联到救援模式的 /mnt/run 目录

步骤六:显示系统被删根 (rm -rf /*) 后的现象
6.1 尝试将当前根目录从救援模式的根目录切换到系统的根目录时会报错 “chroot: failed to run command #/bin/bash#: No such file or directory”
6.2 在救援模式显示 /boot 目录里的文件时,会发现此目录下只有 grub2 目录,而此 grub2 目录里也是空的
6.3 在救援模式显示 /bin 目录时,会显示并无此目录
6.4 在救援模式显示 /etc 目录里的文件时,会发现此目录下只有 lvm 文件

步骤七:在救援模式修复系统的 /bin 目录和里面的文件
7.1 在救援模式创建 /mnt/bin 目录
7.2 在救援模式挂载官方镜像
7.2.1 在救援模式创建用于挂载镜像的 /media 目录
7.2.2 在救援模式挂将官方镜像挂载到 /media 目录
7.3 在救援模式安装 bash 软件
7.3.1 在救援模式安装拷贝 bash 软件包到当前目录
7.3.2 在救援模式创建用于安装 bash 软件的 bash 目录
7.3.3 在救援模式进入 bash 目录
7.3.4 在救援模式安装 bash 软件
7.3.5 在救援模式显示安装 bash 软件后生成的目录
7.4 在救援模式将 bin 目录拷贝到 /mnt/bin 目录

步骤八:将当前的根目录从救援模式的根目录切换到系统的根目录
8.1 将当前的根目录从救援模式的根目录切换到系统的根目录
8.2 在系统模式下确认当前的挂载状态
8.3 在系统模式下确认当前根目录下的目录

步骤九:锁定有删根 (rm -rf /*) 操作的用户
9.1 在系统模式显示历史命令以确认有没有用户输入过 rm -rf /* 命令
9.2 在系统模式显示用户登录记录
9.3 根据步骤 9.1 和步骤 9.2 推测是哪个用户进行过删根 (rm -rf /*) 操作

具体的操作步骤:

步骤一:系统被删根 (rm -rf /*) 后的现象总结

1) 系统无法被 ssh
2) 通过 console 口登录系统在输入密码时会卡住
3) 尝试将当前根目录从救援模式的根目录切换到系统的根目录时会报错 “chroot: failed to run command #/bin/bash#: No such file or directory”
4) 重启系统后无法进入系统,并提示:/grub2/i386-pc/normoal.mod not found gpt
5)在救援模式显示 /boot 目录里的文件时,会发现此目录下只有 grub2 目录,而此 grub2 目录里也是空的
6) 在救援模式显示 /bin 目录时,会显示并无此目录
7) 在救援模式显示 /etc 目录里的文件时,会发现此目录下只有 lvm 文件

步骤二:挂载官方镜像

(步骤略)

步骤三:登录拯救模式
3.1 进入拯救模式

(步骤略)

3.2 登录拯救模式

rescue login:root

步骤四:在救援模式确定系统的根目录分区

(步骤略)

(
补充:
1) 物理分区可以使用 lsblk 命令和 fdisk -l 命令辅助确定
2) 逻辑分区还可以可以使用 pvs 命令和 lvs 命令辅助确定
)

步骤五:在救援模式将系统的分区挂载到救援模式的 /mnt 目录
5.1 在救援模式将系统的根分区挂载到救援模式的 /mnt 目录

tty1:rescue:~ # mount <root spartition> /mnt

(
补充:
1) 如果是物理分区,系统的根分区就在救援模式的 /dev/ 目录里,例如救援模式的 /dev/sda1
2) 如果是逻辑分区,Rocky Linux & RHEL 的系统根分区就是救援模式里的 /dev/<volume group>/<logical volume> 例如救援模式里的 /dev/vg/lv,openSUSE & SUSE 的系统根分区就是救援模式里的 /dev/mapper/<volume group>-<logical volume> 例如救援模式里的 /dev/mapper/vg-lv
)

5.2 在救援模式将救援模式的 /dev 目录关联到救援模式的 /mnt/dev 目录

tty1:rescue:~ # mount --bind /dev /mnt/dev

(补充:此时所有对救援模式的 /mnt/dev 目录的访问都会变成对救援模式的 /dev 目录的访问)

5.3 在救援模式将救援模式的 /proc 目录关联到救援模式的 /mnt/proc 目录

tty1:rescue:~ # mount --bind /proc /mnt/proc

(补充:此时所有对救援模式的 /mnt/proc 目录的访问都会变成对救援模式的 /proc 目录的访问)

5.4 在救援模式将救援模式的 /sys 目录关联到救援模式的 /mnt/sys 目录

tty1:rescue:~ # mount --bind /sys /mnt/sys

(补充:此时所有对救援模式的 /mnt/sys 目录的访问都会变成对救援模式的 /sys 目录的访问)

5.5 在救援模式将救援模式的 /run 目录关联到救援模式的 /mnt/run 目录

tty1:rescue:~ # mount --bind /run /mnt/run

(补充:此时所有对救援模式的 /mnt/run 目录的访问都会变成对救援模式的 /run 目录的访问)

步骤六:显示系统被删根 (rm -rf /*) 后的现象
6.1 尝试将当前根目录从救援模式的根目录切换到系统的根目录时会报错 “chroot: failed to run command #/bin/bash#: No such file or directory”

tty1:rescue:~ # chroot /mnt
chroot: failed to run command #/bin/bash#: No such file or directory

(补充:这里以 /mnt 作为系统根目录为例)

(注意:因为在使用 rm -rf /* 命令删过根以后,/bin/bash 已经被删除,所以会报错:chroot: failed to run command #/bin/bash#: No such file or directory)

6.2 在救援模式显示 /boot 目录里的文件时,会发现此目录下只有 grub2 目录,而此 grub2 目录里也是空的

tty1:rescue:~ # ls /boot 
grub2
tty1:rescue:~ # ls /boot

此步骤也可以通过以下方法实现:

tty1:rescue:~ # ls -l /mounts/mp_0001/boot
total 0
......grub2
tty1:rescue:~ # ls -l /mounts/mp_0001/boot/grub2
total 0

6.3 在救援模式显示 /bin 目录时,会显示并无此目录

tty1:rescue:~ # ls /mnt/bin
ls: cannot access '/mnt/bin' : No such file or directory

6.4 在救援模式显示 /etc 目录里的文件时,会发现此目录下只有 lvm 文件

tty1:rescue:~ # ls /etc/
lvm

步骤七:在救援模式修复系统的 /bin 目录和里面的文件
7.1 在救援模式创建 /mnt/bin 目录

tty1:rescue:~ # mkdir /mnt/bin

7.2 在救援模式挂载官方镜像
7.2.1 在救援模式创建用于挂载镜像的 /media 目录

tty1:rescue:~ # /media

7.2.2 在救援模式挂将官方镜像挂载到 /media 目录

tty1:rescue:~ # mount /dev/dvd /media

7.3 在救援模式安装 bash 软件
7.3.1 在救援模式安装拷贝 bash 软件包到当前目录

tty1:rescue:~ # cp /media/suse/x86_64/bash-4.3-83.23.1.x86_64.rpm .

(补充:这里以拷贝 /media/suse/x86_64/bash-4.3-83.23.1.x86_64.rpm)

7.3.2 在救援模式创建用于安装 bash 软件的 bash 目录

tty1:rescue:~ # mkdir bash

7.3.3 在救援模式进入 bash 目录

tty1:rescue:~ # cd bash

7.3.4 在救援模式安装 bash 软件

tty1:rescue:~ /bash # rpm2cpio ../bash-4.3-83.23.1.x86_64.rpm | cpio -ivd

(补充:这里以安装 bash-4.3-83.23.1.x86_64.rpm 软件为例)

7.3.5 在救援模式显示安装 bash 软件后生成的目录

tty1:rescue:~ /bash # ls
bin etc usr

7.4 在救援模式将 bin 目录拷贝到 /bin/mnt 目录下

tty1:rescue:~ /bash # cp -rpv bin /mnt/bin
'bin/bash' -> '/mnt/bin/bash'
'bin/sh' -> '/mnt/bin/sh'

步骤八:将当前的根目录从救援模式的根目录切换到系统的根目录
8.1 将当前的根目录从救援模式的根目录切换到系统的根目录

tty1:rescue:~ /bash # chroot /mnt

(补充:这里以 /mnt 作为系统根目录为例)

8.2 在系统模式下确认当前的挂载状态

bash-4.3# mount -a

8.3 在系统模式下确认当前根目录下的目录

bash-4.3# ls
bin boot dev home lib lib64 mnt opt proc root run sbin selinux srv sys tmp usr var

步骤九:锁定有删根 (rm -rf /*) 操作的用户
9.1 在系统模式显示历史命令以确认有没有用户输入过 rm -rf / 命令

bash-4.3# history | less

9.2 在系统模式显示用户登录记录

bash-4.3# last | less

(补充:此时会显示最后登录系统的用户、登陆时间、且可能最后 1 个登录系统的用户无退出时间)

9.3 根据步骤 9.1 和步骤 9.2 推测是哪个用户进行过删根 (rm -rf /*) 操作

(步骤略)

Posted on April 25, 2022April 25, 2022

[内容] iptables 防火墙规则持久化 (让防火墙规则开机自启)

内容一:Rocky Linux & RHEL iptables 防火墙规则持久化

# service iptables save

内容二:Rocky Linux & RHEL 和 openSUSE & SUSE iptables 防火墙规则持久化
2.1 导出现在 iptables 防火墙的规则

# iptables-save > /root/iptables_save

(补充:这里以将 iptables 防火墙规则导出到 /root/iptables_save 文件为例)

2.2 创建用于加载 iptables 防火墙规则的 systemctl 管理文件

# vim /etc/systemd/system/iptables_save.service

创建以下内容:

[Unit]
Description=iptables_save
After=default.target

[Service]
Type=oneshot
ExecStart=/usr/sbin/iptables-restore < /root/iptables_save

[Install]
WantedBy=default.target

(补充:这里以创建 systemctl 管理文件 /etc/systemd/system/iptables_save.service 将 /root/iptables_save 文件里的内容导入到 iptables 防火墙为例)

2.3 加载刚刚创建的 systemctl 管理文件

# systemctl daemon-reload

2.4 给刚刚创建的 systemctl 管理文件添加执行权限

# chmod u+x /etc/systemd/system/iptables_save.service

(补充:这里以给 systemctl 管理文件 /etc/systemd/system/iptables_save.service 添加执行权限为例)

2.5 让防火墙规则开机自启

# systemctl enable iptables_save.service

(补充:这里以开机自启 iptables_save.service 服务为例)

Posted on April 25, 2022April 25, 2022

[内容] iptables 防火墙规则的导出和导入

内容一:导出 iptables 防火墙规则

# iptables-save > /root/iptables_save

(补充:这里以将 iptables 防火墙规则导出到 /root/iptables_save 文件为例)

内容二:导入 iptables 防火墙规则

# iptables-restore < /root/iptables_save

(补充:这里以将 /root/iptables_save 文件里的内容导入到 iptables 防火墙为例)

Posted on April 11, 2022April 12, 2022

[排错] 解决 Linux 运行 authselect 命令时报错 “[error] [/etc/authselect/system-auth] has unexpected content!” 或者 “[error] [/etc/authselect/password-auth] has unexpected content!”

报错代码:

[error] [/etc/authselect/system-auth] has unexpected content!
[error] [/etc/authselect/password-auth] has unexpected content!
[error] Unexpected changes to the configuration were detected.
[error] Refusing to activate profile unless those changes are removed or overwrite is requested.

或者:

[error] [/etc/authselect/system-auth] has unexpected content!
[error] Unexpected changes to the configuration were detected.
[error] Refusing to activate profile unless those changes are removed or overwrite is requested.

或者:

[error] [/etc/authselect/password-auth] has unexpected content!
[error] Unexpected changes to the configuration were detected.
[error] Refusing to activate profile unless those changes are removed or overwrite is requested.

分析:

/etc/authselect/system-auth 文件或 /etc/authselect/password-auth 文件是不应该被手动修改的,如果被手动修改了,再使用 authselect select sssd 命令或者 authselect apply-changes 命令时则会有此类报错

解决方法:

# authselect apply-changes

(注意:此方法会刷新 /etc/authselect/system-auth 文件和 /etc/authselect/password-auth 文件里的所有内容)

Posts navigation

Page 1 Page 2 … Page 11 Next page

Aspiration (愿景):

Everyone can achieve self achievement and self happiness fairly

每个人都能公平地实现自我成就和自我幸福

Position (位置):

Running on Evolution Host and DigitalOcean

正在 Evolution Host 和 DigitalOcean 上运行

Logo (徽标):

Additional Information (其他信息):

About Manual Clone Contact Disclaimer Donation Friendly Links 关于 说明书 克隆 联系 免责申明 捐赠 友情链接

Standby IP Address (备用 IP 地址):

152.69.204.95  150.230.63.10  Please configure before use / 请先配置再使用

Search Outside Website (站外搜索):

Google Wikipedia Bing
Proudly powered by LNMP Proudly powered by WordPress