Skip to content

Eternal Center

  • Single Node (单节点)
    • System (系统)
    • Service (服务)
    • Database (数据库)
    • Container (容器)
    • Virtualization (虚拟化)
  • Multi Node (多节点)
    • Cluster (集群)
    • Big Data (大数据)
    • Cloud Computing (云计算)
    • Batch Processing (批量处理)
  • Other (其它)
    • Ideas (思路)
    • Language (语言)
    • Project (项目)
  • Eternity (永恒)
    • Creations (创作)
    • Classics (经典)
    • Chronicle (编年史)
    • News (消息)

Category: System (系统)

Posted on September 9, 2022September 9, 2022

[内容] Linux 密码文件 /etc/shadow 的介绍 (显示用户密码相关的策略)

内容一:/etc/shadow 文件的简介

1) /etc/shadow 文件存储着用户的密码和与之相关的信息
2) /etc/shadow 文件以冒号 “:” 作为分隔符,分类 8 段

内容二:/etc/shadow 文件的作用

2.1 第 1 段内容:用户名

/etc/shadow 文件的第 1 段存储的是用户名,和 /etc/passwd 文件中的用户名是一一对应的

2.2 第 2 段内容:密码

2.2.1 内容的含义

1) 如果是奇怪的字符串则代表是加密过的密码,格式是 $id$salt$hashed,其中 $id 是指加密算法。如果字符串:以 $1$ 开头则代表是用 MD5 加密,以 $2a$ 开头则代表是用 Blowfish 加密,以 $2y$ 开头则代表是用另一种算法长度的 Blowfish 加密,以 $5$ 开头则代表是用 SHA-256 加密,以 $6$ 开头则代表是用 SHA-512 加密
2) 如果是 2 个感叹号 “!!” 则代表从来都没有设置过密码
3) 如果为空则代表没有设置密码
4) 如果是 1 个星号 “*” 则代表用户被锁定,但是其它登陆方式不受限制,例 SSH 登陆
5) 如果是 1 个感叹号 “!” 则代表用户被锁定,但是其它登陆方式不受限制,例 SSH 登陆
6) 如果以 1 个感叹号开头 “!” 则代表用户被锁定
7) 如果以 2 个感叹号开头 “!!” 则代表用户被锁定

2.2.2 查看命令
# cut -d: -f1,7
2.2.3 修改命令
# passwd <user>

2.3 第 3 段内容:密码最后的修改日期

2.3.1 内容的含义

密码最后修改的日期于 1970 年 1 月 1 日相距的天数

2.3.2 查看命令
# egrep ^[^:]+:[^\!*] /etc/shadow | cut -d: -f1,3

或者:

# chage -l <user> | grep 'Last password change'
2.3.3 修改命令
# chage -d <date> <user>

或者:

# chage --lastday <date> <user>

2.4 第 4 段内容:修改密码最短天数间隔

2.4.1 内容的含义

两次修改密码最短天数间隔

1) 如果是 0 则代表随时可以修改密码
2) 如果是 99999 则代表永远都不能修改密码

2.4.2 查看命令
# egrep ^[^:]+:[^\!*] /etc/shadow | cut -d: -f1,4

或者:

# chage -l <user> | grep 'Minimum number of days between password change'
2.4.3 修改命令
# chage -m <days> <user>

或者:

# chage --mindays <days> <user>

2.5 第 5 段内容:密码过期的天数

2.5.1 内容的含义

修改密码后过多少天会过期

1) 如果是 99999 则代表永远都不会过期
2) 如果密码只是过期但是没有失效的话,则可以使用过期的密码更改密码再使用新密码登陆,如果密码失效的话则此密码不能再使用

2.5.2 查看命令
# egrep ^[^:]+:[^\!*] /etc/shadow | cut -d: -f1,5

或者:

# chage -l <user> | grep 'Maximum number of days between password change'
2.5.3 修改命令
# chage -M <days> <user>

或者:

# chage --maxdays <days> <user>

2.6 第 6 段内容:密码过期前提前多少天发出警告

2.6.1 内容的含义

密码过期前,提前多少天发出警告

如果为空则代表不发出警告

2.6.2 查看命令
# egrep ^[^:]+:[^\!*] /etc/shadow | cut -d: -f1,6

或者:

# chage -l <user> | grep 'Number of days of warning before password expires'
2.6.3 修改密码
# chage -W <days> <user>

或者:

# chage --warndays <days> <user>

2.7 第 7 段内容:密码失效的天数

2.7.1 内容的含义

密码过期后过多少天会失效

1) 如果是 99999 则代表永远都不会失效
2) 如果密码只是过期但是没有失效的话,则可以使用过期的密码更改密码再使用新密码登陆,如果密码失效的话则此密码不能再使用

2.7.2 查看命令
# egrep ^[^:]+:[^\!*] /etc/shadow | cut -d: -f1,7

或者:

# chage -l <user> | grep 'Password inactive'
2.7.3 修改密码
# chage -I <days> <user>

或者:

# chage --inactive <days> <user>

2.8 第 8 段内容:用户的失效日期

2.8.1 内容的含义

用户的失效日期于 1970 年 1 月 1 日相距的天数

2.8.2 查看命令
# egrep ^[^:]+:[^\!*] /etc/shadow | cut -d: -f1,8

或者:

# chage -l <user> | grep 'Account expires'
2.8.3 修改密码
# chage -E <date> <user>

或者:

# chage --expiredate <date> <user>

2.9 第 9 段内容:保留

这是一个保留位,目前没有作用

Posted on September 7, 2022September 7, 2022

[排错] Linux 解决执行 service crond status 命令时,报错 “crond dead but pid file exists”

报错代码:

crond dead but pid file exists

解决方法:

步骤一:找到 crond.pid 文件

# find / -name cron*
/spool/anacron/cron.daily
/spool/anacron/cron.weekly
/spool/anacron/cron.monthly
/spool/cron
/lock/subsys/crond
/run/cron.reboot
/run/crond.pid

步骤二:删除 crond.pid 文件

# rm -rf crond.pid
Posted on August 29, 2022August 29, 2022

[步骤] Linux SSH 加密算法的设置 (不使用来自 crypto policies 的系统全局 SSH 加密算法) (RHEL 8 版)

注意:

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

正文:

步骤一:启用 SSH 加密算法

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=

步骤二:设置 SSH 的加密算法

2.1 在 /etc/crypto-policies/back-ends/opensshserver.config 配置文件中确认要使用的 SSH 加密算法属性

2.1.1 修改 /etc/crypto-policies/back-ends/opensshserver.config 配置文件
# vim /etc/crypto-policies/back-ends/opensshserver.config

添加需要使用的 SSH 加密算法属性:

(内容略)

(注意:如果需要使用的 SSH 加密算法已包含在其中了则可以不用添加)

2.1.2 显示目前正在被使用的 SSH 加密算法
# printf "%s\n" $(source /etc/crypto-policies/back-ends/opensshserver.config; echo $CRYPTO_POLICY) | cut -c3-
Ciphers=aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes256-cbc,aes128-gcm@openssh.com,aes128-ctr,aes128-cbc
MACs=hmac-sha2-256-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha1,umac-128@openssh.com,hmac-sha2-512
GSSAPIKexAlgorithms=gss-curve25519-sha256-,gss-nistp256-sha256-,gss-group14-sha256-,gss-group16-sha512-,gss-gex-sha1-,gss-group14-sha1-
KexAlgorithms=curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1
HostKeyAlgorithms=ecdsa-sha2-nistp256,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519,ssh-ed25519-cert-v01@openssh.com,rsa-sha2-256,rsa-sha2-256-cert-v01@openssh.com,rsa-sha2-512,rsa-sha2-512-cert-v01@openssh.com,ssh-rsa,ssh-rsa-cert-v01@openssh.com
PubkeyAcceptedKeyTypes=ecdsa-sha2-nistp256,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519,ssh-ed25519-cert-v01@openssh.com,rsa-sha2-256,rsa-sha2-256-cert-v01@openssh.com,rsa-sha2-512,rsa-sha2-512-cert-v01@openssh.com,ssh-rsa,ssh-rsa-cert-v01@openssh.com
CASignatureAlgorithms=ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-256,rsa-sha2-512,ssh-rsa

(补充:这里以显示 RHEL8 默认使用的 SSH 加密算法为例)

2.2 在 /etc/ssh/sshd_config 配置文件中设置要使用的 SSH 加密算法

2.2.1 备份 /etc/ssh/sshd_config 配置文件
# cp /etc/ssh/sshd_config /etc/ssh/sshd_config_backup
2.2.2 在 /etc/ssh/sshd_config 配置文件中添加要使用的 SSH 加密算法
# vim /etc/ssh/sshd_config

添加以下内容:

......
Ciphers 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-ctr、aes192-ctr 和 aes128-ctr SSH Ciphers 加密算法
2) hmac-sha2-512 和 hmac-sha2-256 SSH MACs 加密算法
3) ecdh-sha2-nistp521、ecdh-sha2-nistp384、ecdh-sha2-nistp256 和 diffie-hellman-group-exchange-sha256 SSH KexAlgorithms 加密算法
为例
)

2.2.3 让在 /etc/ssh/sshd_config 配置文件中添加要使用的 SSH 加密算法生效
# systemctl restart sshd

步骤三:测试 SSH 加密算法

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 Ciphers 加密算法为例)

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 Ciphers 加密算法为例)

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 MACs 加密算法为例)

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 MACs 加密算法为例)

Posted on August 15, 2022August 15, 2022

[内容] 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} accept comment "accept local port"

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

案例三:允许多个 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 地址 192.168.0.1、192.168.0.2 和 192.168.0.3 访问 22 端口、80 端口、443 端口和 3066 端口为例)

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

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

(补充:这里以拒绝所有 IP 地址的 22 端口、80 端口、443 端口和 3306 端口为例)

Posted on August 15, 2022August 15, 2022

[排错] openSUSE & SUSE 解决执行 systemctl enable 命令或者 systemd-sysv-install enable 命令时报错 “…..: No such file or directory”

报错代码

......: No such file or directory

解决方法

# zypper in insserv-compat

Posts navigation

Page 1 Page 2 … Page 80 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