Skip to content
Eternal Center

Eternal Center

  • Single-Node (单节点)
    • System (系统)
    • Service (服务)
    • Database (数据库)
    • Container (容器)
    • Virtualization (虚拟化)
  • Multi-Node (多节点)
    • Cluster (集群)
    • Big Data (大数据)
    • Cloud Computing (云计算)
    • Batch Processing (批量处理)
  • Approach (方式方法)
    • Languages (语言)
    • Ideas (思路)
    • Programing (编程)
    • Project (项目)
  • Eternity (永恒)
    • News (消息)
    • Creations (创作)
    • Classics (经典)
    • Legends (传说)
    • Chronicle (编年史)
    • FNIOS (宇宙公民开源学院)

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

Posted on August 29, 2022June 26, 2025

[步骤] Linux SSH 加密方式 (cipher) 、信息验证代码 (message authentication code) 和算法 (algorithm) 的设置 (Ciphers、MACs 和 KexAlgorithms 参数的设置) (不使用来自 crypto policies 的系统全局设置) (RHEL 8 版)

注意:

RHEL 8 的 SSH 加密算法默认会使用来自 crypto policies 系统的全局 SSH 加密算法,而此方法将让 SSH 使用单独设置的 SSH 加密算法。

正文:

步骤一:启用 SSH 配置文件里加密方式 (cipher) 、信息验证代码 (message authentication code)和算法 (algorithm) 的设置

1.1 备份 /etc/sysconfig/sshd 配置文件

# cp /etc/sysconfig/sshd /etc/sysconfig/sshd_backup

1.2 修改 /etc/sysconfig/sshd 配置文件

# vim /etc/sysconfig/sshd

将以下内容:

# CRYPTO_POLICY=

修改为:

......
CRYPTO_POLICY=
......

步骤二:在 /etc/ssh/sshd_config 配置文件中设置要使用的 Ciphers、MACs 和 KexAlgorithm 参数

2.1 备份 /etc/ssh/sshd_config 配置文件

# cp /etc/ssh/sshd_config /etc/ssh/sshd_config_backup

2.2 在 /etc/ssh/sshd_config 配置文件中添加要使用的 Ciphers、MACs 和 KexAlgorithms 参数

# vim /etc/ssh/sshd_config

添加以下内容:

......
Ciphers aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
MACs hmac-sha2-512,hmac-sha2-256
KexAlgorithms ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256

(
补充:这里以使用:
1) aes256-gcm@openssh.com、aes128-gcm@openssh.com、aes256-ctr、aes192-ctr 和 aes128-ctr SSH 加密方式 (cipher)
2) hmac-sha2-512 和 hmac-sha2-256 SSH 信息验证代码 (message authentication code)
3) ecdh-sha2-nistp521、ecdh-sha2-nistp384、ecdh-sha2-nistp256 和 diffie-hellman-group-exchange-sha256 SSH 算法 (algorithm)
为例
)

2.3 让在 /etc/ssh/sshd_config 配置文件中添加要使用的 Ciphers、MACs 和 KexAlgorithms 参数生效

# systemctl restart sshd

步骤三:测试 SSH 加密方式 (cipher)和算法 (algorithm)

3.1 测试 SSH Ciphers 参数

3.1.1 测试某个 SSH 加密方式 (ciphers)
# ssh -vv -oCiphers=3des-cbc -oPort=22 192.168.0.1

(补充:这里以测试 IP 地址是 192.168.0.1,端口号是 22,有没有启用 3des-cbc SSH 加密方式 (cipher) 为例)

3.1.2 测试多个 SSH 加密方式 (ciphers)
# ssh -vv -oCiphers=3des-cbc,aes128-cbc,aes192-cbc,aes256-cbc -oPort=22 192.168.0.1

(补充:这里以测试 IP 地址是 192.168.0.1,端口号是 22,有没有启用 3des-cbc、aes128-cbc、aes192-cbc 和 aes256-cbc SSH 加密方式 (cipher) 为例)

3.2 测试 SSH MACs 参数

3.2.1 测试某个 SSH ciphers 加密算法
# ssh -vv -oMACs=hmac-md5 -oPort=22 192.168.0.1

(补充:这里以测试 IP 地址是 192.168.0.1,端口号是 22,有没有启用 hmac-md5 SSH 信息验证代码 (message authentication code) 为例)

3.2.2 测试多个 SSH ciphers 加密算法
# ssh -vv -oMACs=hmac-md5,hmac-md5-96,hmac-sha1,hmac-sha1-96,hmac-md5-etm@openssh.com,hmac-md5-96-etm@openssh.com -oPort=22 192.168.0.1

(补充:这里以测试 IP 地址是 192.168.0.1,端口号是 22,有没有启用 hmac-md5、hmac-md5-96、hmac-sha1、hmac-sha1-96、hmac-md5-etm@openssh.com 和 hmac-md5-96-etm@openssh.com SSH 信息验证代码 (message authentication code) 为例)

3.3 显示所有在使用的 SSH 加密方式 (cipher)和算法 (algorithm)

3.3.1 使用 sshd 命令显示所有在使用的 SSH 加密方式 (cipher)和信息验证代码 (message authentication code)
# sshd -T | egrep -i "ciphers|macs|kexalgorithms"
3.3.2 使用 nmap 命令显示所有在使用的 SSH 加密方式 (cipher)和算法 (algorithm)
# nmap --script ssh2-enum-algos -sV -p 22 127.0.0.1

(补充:这里以测试 IP 地址是 192.168.0.1,端口号是 22 为例)

参考文献:

https://access.redhat.com/solutions/4410591
https://access.redhat.com/solutions/4278651

Posted on August 15, 2022November 21, 2023

[内容] nftables 防火墙策略文件的常用规则

注意:

在给 nftables 防火墙的策略文件添加规则前,要先使用 nftables 防火墙的策略文件:

nftables 防火墙的使用
(永久版)

正文:

案例一:允许某个 IP 地址访问某个端口

ip saddr 192.168.0.1 tcp dport ssh accept

或者:

ip saddr 192.168.0.1 tcp dport 22 accept

(补充:这里以允许 IP 地址 192.168.0.1 访问 22 端口为例)

案例二:允许某个 IP 地址访问多个端口

ip saddr 192.168.0.1 tcp dport {22,80,443,3306,100,101,102,103} accept

或者:

ip saddr 192.168.0.1 tcp dport {22,80,443,3306,100-103} accept

(补充:这里以允许 IP 地址 192.168.0.1 访问 22 端口、80 端口、443 端口、3066 端口和 100 端口到 103 端口为例)

案例三:允许多个 IP 地址访问多个端口

ip saddr {192.168.0.1,192.168.0.2,192.168.0.3} tcp dport {22,80,443,3306} accept comment "accept local port"

或者:

ip saddr {192.168.0.1-192.168.0.3} tcp dport {22,80,443,3306} accept comment "accept local port"

(补充:这里以允许 IP 地址 192.168.0.1、192.168.0.2 和 192.168.0.3 访问 22 端口、80 端口、443 端口和 3066 端口并添加注释 “accept local port” 为例)

案例四:拒绝所有 IP 地址访问多个端口

tcp dport {22,80,443,3306} drop comment "drop remote port"

(补充:这里以拒绝所有 IP 地址的 22 端口、80 端口、443 端口和 3306 端口并添加注释 “drop remote port” 为例)

案例五:拒绝所有 IP 地址访问所有端口

tcp dport {0-65535} drop
udp dport {0-65535} drop

案例六:允许某个 IP 地址可以通过 ICMP 协议 ping 通

ip saddr 192.168.0.1 ip protocol icmp icmp type echo-request accept

(补充:这里以允许 192.168.0.1 可以通过 ICMP 协议 ping 通为例)

案例七:允许由本发出请求后,回应请求的数据可以进入

ct state { established, related } accept
Posted on July 29, 2022July 29, 2022

[命令] Linux 命令 gpasswd (管理组)

内容一:组的成员管理

1.1 把用户添加到组里

1.1.1 把某个用户添加到某个组
# gpasswd -a <user> <group>

或者:

# gpasswd –add <user> <group>

或者:

# gpasswd -M <group>

或者:

# gpasswd –members <group>
1.1.2 把多个用户添加到某个组
# gpasswd -a <user1>,<user2> <group>

或者:

# gpasswd –add <user1>,<user2> <group>

或者:

# gpasswd -M <user1>,<user2> <group>

或者:

# gpasswd –members <user1>,<user2> <group>

2.2 把用户从组里删除

2.2.1 把某个用户从某个组里删除
# gpasswd -d <user> <group>

或者:

# gpasswd –delete <user> <group>
2.2.2 把多个用户添加到某个组
# gpasswd -d <user1>,<user2> <group>

或者:

# gpasswd –delete <user1>,<user2> <group>

2.3 将某个用户设置为组的管理员

# gpasswd -A <user> <group>

或者:

# gpasswd –administrators <user> <group>

内容三:组的密码管理

3.1 给某个组设置密码

# gpasswd <group>

3.2 删除某个组的密码

# gpasswd –r <group>

或者:

# gpasswd –remove-password <group>

内容四:组的登录管理

限制某个组登录

# gpasswd -R <group>

或者:

# gpasswd –restrict <group>

内容五:显示帮助信息

# gpasswd -h

或者:

# gpasswd -help
Posted on July 29, 2022November 22, 2024

[内容] Linux 文件 profile 和 bashrc (用户登录环境的设置)

内容一:profile 文件

1.1 profile 全局文件的位置 (影响所有用户)

/etc/profile

1.2 profile 局部文件的位置 (只影响单个用户)

~/.bash_profile

或者:

~/.bash_login

或者:

~/.profile

1.3 profile 文件的作用

在用户登录时设置用户的环境变量,只在用户登录时才会生效

1.4 登录 Linux 时执行 profile 文件的顺序

第一步,执行:

/etc/profile

第二步,按以下顺序一一尝试执行以下 3 个文件中的 1 个,当执行成功后则停止尝试下 1 个文件:

~/.bash_profile
~/.bash_login
~/.profile

第三步:开始调用解释器

(如果是调用 bash 解释器,则继续执行登录 bash 时执行 bashrc 文件的顺序)

内容二:bashrc 文件

2.1 bashrc 全局文件的位置 (影响所有用户)

/etc/bashrc

或者:

/etc/bash.bashrc

2.2 bashrc 局部文件的位置 (只影响单个用户)

~/.bashrc

2.3 bashrc 文件的作用

在用户使用 bash 解释器或登录 bash 解释器时设置用户的环境变量,每次调用 bash 解释器时都会生效

2.4 使用 bash 或登录 bash 时执行 bashrc 文件的顺序

第一步,执行以下 2 个文件中的 1 个:

/etc/bashrc
/etc/bash.bashrc

第二步,执行:

~/.bashrc
Posted on July 28, 2022October 19, 2022

Linux 防范黑客入侵的思路

黑客发现阶段

黑客在入侵前往往会先对整个网络进行扫描,尝试发现我们的系统。在这个阶段我们可以尝试的防范措施有:

1) 关闭 ICMP 协议,让黑客无法通过 ping 发现我们的系统
2) 关闭所有不需要的端口
3) 通过防火墙只让允许访问的 IP 地址访问对应的端口
4) 让防火墙使用 drop 操作丢掉所有没有被允许的访问请求

黑客列举阶段和黑客立足阶段

黑客在发现了我们的系统之后。会根据我们系统和软件的版本,列举不同的破解方法并进行取舍,并最终会选择一种或多种方法进行尝试。在这两个阶段我们可以尝试的防范措施有:

1) 不使用盗版的系统和软件
2) 不使用有漏洞的系统和软件
3) 尽量将所有的系统和软件升级到最新的版本
4) 删除所有非必须的软件
5) 在用户尝试登录系统时,取消显示系统的版本
6) 删除或禁用所有不需要的用户
7) 让所有的用户都使用复杂的密码
8) 定期检查和修改所有用户的密码
9) 定期检查和修改所有用户 ~/.ssh/ 目录中的密钥
10) 限制错误密码尝试的次数,以防止暴力破解
11) 定期检查系统防火墙策略
12) 定期检查系统开启的所有端口
13) 定期检查系统开启的所有进程
14) 定期查看 /var/log/message 中的尝试登录失败的日志记录

黑客保持持久性阶段

黑客在成功进入系统以后,会尝试为自己下次进入系统准备方法,以让入侵保持持久性。在这个阶段我们可以尝试的防范措施有:

1) 定期检查系统中的所有用户的名称和数量
2) 定期检查系统中所有拥有 root 权限的名称和数量
3) 定期检查和修改所有用户的密码
4) 定期检查和修改所有用户 ~/.ssh/ 目录中的密钥
5) 定期检查系统防火墙策略
6) 定期检查系统开启的所有端口
7) 定期检查系统开启的所有进程
8) 缩小重要文件的权限
9) 定期检查所有用户的登录日志
10) 通过 auditd 服务监控所有重要配置文件,并定期检查监控日志

黑客掩盖痕迹阶段

黑客让入侵保持持久性后,会尝试掩盖自己的痕迹。在这个阶段我们可以尝试的防范措施有:

1) 定期检查系统中的所有用户的名称和数量
2) 定期检查系统中所有拥有 root 权限的名称和数量
3) 定期检查和修改所有用户的密码
4) 定期检查和修改所有用户 ~/.ssh/ 目录中的密钥
5) 定期检查系统防火墙策略
6) 定期检查系统开启的所有端口
7) 定期检查系统开启的所有进程
8) 缩小重要文件的权限
9) 定期检查所有用户的登录日志,注意日志的时间是否连贯
10) 通过 auditd 服务监控所有重要配置文件,并定期检查监控日志,注意日志的时间是否连贯

Posts pagination

Previous page Page 1 … Page 7 Page 8 Page 9 … Page 24 Next page

Aspiration (愿景):

Everyone can achieve self-achievement and self-happiness fairly

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

Logo (徽标):

Additional Information (其他信息):

About     Manual     Clone     Contact
Disclaimer     Friendly Links     Donation

关于     手册     克隆     联系
免责声明     友情链接     捐赠

Search Inside Website (站内搜索)

Search Outside Website (站外搜索):

Google         Wikipedia         Bing

Eternal URL (永恒网址):

https://eternity.eternalcenter.com Will be last access method / 将是最后的访问方式

Proudly powered by LNMP Proudly powered by WordPress