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 July 15, 2022November 22, 2024

[步骤] Linux 非 root 用户 ping 命令使用的禁止和允许

步骤一:禁止非 root 用户使用 ping

#  sysctl net.ipv4.ping_group_range="1 0"

步骤二:允许非 root 用户使用 ping

# sysctl net.ipv4.ping_group_range="0 2147483647"

补充:当禁止禁止非 root 用户使用 ping 时,非 root 用户使用 ping 命令的报错

如果是 Rocky Linux & RHEL:

ping: socket: Address family not supported by protocol

如果是 openSUSE & SLES:

Error: ping: socket: Operation not permitted
Posted on July 14, 2022June 3, 2024

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

正文:

步骤一:让 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 include

确保包含以下内容:

auth      include    common-auth
account   include    common-account
password  include    common-password
session   include    common-session

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

# cat /etc/pam.d/sshd | grep include

确保包含以下内容:

auth        include     common-auth
account     include     common-account
password    include     common-password
session     include     common-session

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

# vim /etc/pam.d/common-auth-pc

添加以下内容:

......
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/common-account-pc 配置文件中添加使用 pam_tally2.so 模块和相关参数

# vim /etc/pam.d/common-account-pc

添加以下内容:

......
account required pam_tally2.so

(补充:这里的 pam_tally2.so 代表加载 pam_tally2.so 模块)

步骤五:用户登录失败的管理

5.1 查看某个用户近期输错了几次密码

# pam_tally2 -u <user>

5.2 重制某个用户登录密码输错次数

# pam_tally2 -u <user> -r --reset

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

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

# vim /etc/pam.d/common-auth-pc

在此行:

......
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 的输错密码次数限制为例)

6.2 在 /etc/pam.d/common-account-pc 配置文件中添加 pam_succeed_if.so 模块和相关参数

# vim /etc/pam.d/common-account-pc

在此行:

......
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

Posted on June 25, 2022November 22, 2024

[内容] Linux 命令安全的设置

确保以下目录的所属主和所属组是 root,且其它用户没有写入权限:

# ls -ld /usr/local/bin /usr/local/sbin /usr/bin/ /usr/sbin
dr-xr-xr-x. 2 root root 53248 Jun 24 15:09 /usr/bin/
drwxr-xr-x. 3 root root  4096 Jun 21  2021 /usr/local/bin
drwxr-xr-x. 2 root root     6 Jun 21  2021 /usr/local/sbin
dr-xr-xr-x. 2 root root 20480 Jun 24 15:09 /usr/sbin
Posted on June 23, 2022November 22, 2024

[命令] Linux 命令 lsof (显示当前系统正在打开的文件)

内容一:lsof 命令的作用

显示当前系统正在打开的文件

内容二:lsof 命令的常用参数

1) a 代表前后 2 个参数都必须满足时才显示
2) -c 代表只显示指定的进程所打开的文件,后面接进程名
3) +d 代表只显示指定目录下被进程打开的文件,后面接目录名
4) +D 代表只显示指定目录下以及此目录下所有子目录下被进程打开的文件,后面接目录名
5) -g 代表只显示指定 GID 所属的进程,后面接 GID 号
6) -i 代表只显示所有符合条件的进程情况,也可以在后面接协议名称 tcp、udp 这样就只显示属于此协议的进程,或者接协议名称加端口号例如 tcp:<端口号>、udp:<端口号> 这样就只显示属于此类端口号的进程
7) -n 不显示主机名称
8) -p 代表只显示指定 <进程号> 所打开的文件
9) -r 代表指定显示的频率,单位为秒,后面接数字
10) -u 代表之显示指定用户所属的进程,后面接用户名

内容三:lsof 命令输出结果简介

3.1 lsof 命令输出结果

# lsof | more
COMMAND     PID   TID    USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
systemd       1          root  cwd       DIR              251,1      4096          1 /
......

3.2 lsof 命令输出结果简介

1) COMMAND 进程名
2) PID (Process Id) PID 号
3) USER 用户
4) FD 文件描述信息
(补充:cwd 代表当前目录,txt 代表 txt 文件,rtd 代表 root 目录,mem 代表内存映射文件)
5) TYPE 文件类型
(补充:DIR 代表当前目录,REG 代表普通文件,CHR 代表字符,a_inode 代表 Inode 文件,FIFO 代表管道或者 socket文件,netlink 代表网络,unkonwn 代表未知)
6) DEVICE 设备 ID
7) SIZE/OFF 进程大小
8) NODE 文件的 Inode 号
9) NAME 路径或链接

内容四:lsof 使用案例

4.1 案例一:显示已经被删除的文件

# lsof | grep deleted

4.2 案例二:显示用户已打开的案例

4.2.1 显示某用户已打开的文件
# lsof -u zhumingyu mingyuzhu

(补充:这里以显示用户 zhumingyu 和 mingyuzhu 已打开的文件为例)

4.2.2 不显示某用户已打开的文件
# lsof -u mingyuzhu

(补充:这里以不显示用户 mingyuzhu 已打开的文件为例)

4.3 案例三:显示进程已打开的文件

4.3.1 显示某进程已打开的文件
# lsof -p 1024

(补充:这里以显示 PID 号是 1024 已打开的文件为例)

4.3.2 不显示某进程已打开的所有文件
# lsof -p ^1024

(补充:这里以不显示 PID 号是 1024 已打开的文件为例)

4.3.3 显示某几个进程已打开的文件
# lsof -p 1,2,3

(补充:这里以显示 PID 号是 1、2 和 3 已打开的文件为例)

4.4 案例四:显示网络已打开的文件

4.4.1 显示所有已打开的网络文件
# lsof -i
4.4.2 显示所有 IPv4 协议已打开的文件
# lsof -i 4
4.4.3 显示所有 IPv6 协议已打开的文件
# lsof -i 6
4.4.4 显示所有 TCP 协议已打开的文件
# lsof -i TCP
4.4.5 显示所有 TCP 协议已打开的文件
# lsof -i UDP
4.4.6 显示某个 TCP 端口或者 UDP 端口已打开的文件
# lsof -i:22

(补充:这里以显示 TCP 或者 UPD 的 22 端口已打开的文件为例)

4.4.7 显示某个 TCP 端口已打开的文件
# lsof -i TCP:22

(补充:这里以显示 TCP 的 22 端口已打开的文件为例)

4.4.8 显示某几个 TCP 端口打开的文件
# lsof -i TCP:1-1024

(补充:这里以显示 TCP 的 1 端口到 1024 端口打开的文件为例)

Posted on June 17, 2022November 22, 2024

[步骤] wtmp 日志保存时间默认策略的设置 (设置 last 命令可以显示多久以前记录)

如果是 Rocky Linux & RHEL:

# cat /etc/logrotate.conf
......
/var/log/wtmp {
    monthly
    create 0664 root utmp
        minsize 1M
    rotate 1
}
......

(
补充:
1) 影响的日志文件有 /var/log/wtmp (/var/log/wtmp)
2) 每月将现在的日志文件进行备份并生成新的日志文件 (monthly)
3) 日志文件权限是 0644 所属主是 root (create 0664 root utmp)
4) 只有当日志文件超过 1 M 时,且达到备份的时间才会开始备份
5) 备份的日志文件保留 5 份 (rotate 1)
)

如果是 openSUSE & SLES:

# cat /etc/logrotate.d/wtmp
/var/log/wtmp /var/log/btmp {
    compress
    dateext
    maxage 365
    rotate 99
    size=+400k
    notifempty
    missingok
    copytruncate
}

(
补充:
1) 影响的日志文件有 /var/log/wtmp 和 /var/log/btmp (/var/log/wtmp /var/log/btmp)
2) 对备份的日志文件进行压缩 (compress)
3) 将 YYYYMMDD 格式的时间作为备份日志文件名的一部分 (dateext)
4) 日志最多保存 365 天 (maxage 365)
5) 备份的日志文件保留 99 份 (rotate 99)
6) 现在的日志文件超过 400 k 就开始备份,不用考虑备份时间,且备份时间的相关设置也将无效 (size=+400k)
7) 如果现有日志文件是空文件,则不再对日志文件进行备份 (notifempty)
8) 如果现有日志文件丢失,则不报错直接生成新的日志文件 (missingok)
)

Posts pagination

Previous page Page 1 … Page 8 Page 9 Page 10 … 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