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 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 服务监控所有重要配置文件,并定期检查监控日志,注意日志的时间是否连贯

Posted on July 17, 2022August 31, 2022

[步骤] Linux 密码的安全 (本地和 SSH 输错密码次数的限制) (pam_tally2.so 版) (CentOS Linux 7 & RHEL 7 版)

正文:

步骤一:让 sshd 使用可插入身份验证模块

1.1 修改 sshd 的配置文件

# vim /etc/ssh/sshd_config

将以下内容:

......
#UsePAM no
......

修改为:

......
UsePAM yes
......

1.2 让修改的 sshd 配置文件生效

# systemctl restart sshd

步骤二:让本地登录和 sshd 登录使用密码认证

2.1 确认 /etc/pam.d/login 配置文件

# cat /etc/pam.d/login | grep system-auth

确保包含以下内容:

auth       substack     system-auth
account    include      system-auth
password   include      system-auth
session    include      system-auth

2.2 确认 /etc/pam.d/sshd 配置文件

# cat /etc/pam.d/sshd | grep password-auth

确保包含以下内容:

auth       substack     password-auth
account    include      password-auth
password   include      password-auth
session    include      password-auth

步骤三:在 /etc/pam.d/system-auth-ac 配置文件中添加 pam_tally2.so 模块和相关参数

# vim /etc/pam.d/system-auth-ac

添加以下内容:

......
auth required pam_tally2.so onerr=fail audit silent deny=15 unlock_time=3000 even_deny_root root_unlock_time=3000

(
补充:
1) 这里的 pam_tally2.so 代表使用 pam_tally2.so 模块
2) 这里的 silent 代表不会显示信息性的消息
3) 这里的 deny=15 代表输错 15 次后会禁止登录
4) 这里的 unlock_time=3000 代表禁止登录后 3000 毫秒后可以重新登录
5) 这里的 even_deny_root 代表 root 用户和其它用户一样会被锁住
6) 这里的 root_unlock_time=3000 代表禁止 root 用户登录后 3000 毫秒后可以重新登录
)

步骤四:在 /etc/pam.d/password-auth-ac 配置文件中添加 pam_tally2.so 模块和相关参数

# vim /etc/pam.d/password-auth-ac

添加以下内容:

......
auth required pam_tally2.so onerr=fail audit silent deny=15 unlock_time=3000 even_deny_root root_unlock_time=3000

(
补充:
1) 这里的 pam_tally2.so 代表使用 pam_tally2.so 模块
2) 这里的 silent 代表不会显示信息性的消息
3) 这里的 deny=15 代表输错 15 次后会禁止登录
4) 这里的 unlock_time=3000 代表禁止登录后 3000 毫秒后可以重新登录
5) 这里的 even_deny_root 代表 root 用户和其它用户一样会被锁住
6) 这里的 root_unlock_time=3000 代表禁止 root 用户登录后 3000 毫秒后可以重新登录
)

步骤五:部分用户输错密码次数限制的排除

5.1 在 /etc/pam.d/system-auth-ac 配置文件中添加 pam_succeed_if.so 模块和相关参数

# vim /etc/pam.d/system-auth-ac

在此行:

......
auth required pam_tally2.so onerr=fail audit silent deny=15 unlock_time=3000 even_deny_root root_unlock_time=3000

下面添加:

......
auth [success=1 default=ignore] pam_succeed_if.so user in mingyuzhu1:mingyuzhu2:mingyuzhu3

(补充:这里以排除用户 zhumingyu1、zhumingyu2 和 zhumingyu3 的输错密码次数限制为例)

5.2 在 /etc/pam.d/password-auth-ac 配置文件中添加 pam_succeed_if.so 模块和相关参数

# vim /etc/pam.d/password-auth-ac

在此行:

......
auth required pam_tally2.so onerr=fail audit silent deny=15 unlock_time=3000 even_deny_root root_unlock_time=3000

下面添加:

......
auth [success=1 default=ignore] pam_succeed_if.so user in mingyuzhu1:mingyuzhu2:mingyuzhu3

(补充:这里以排除用户 zhumingyu1、zhumingyu2 和 zhumingyu3 的输错密码次数限制为例)

参考文献:

https://access.redhat.com/solutions/62949

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