步骤一:开启 sudo 日志
# vim /etc/sudoers
或者:
# visudo
添加以下内容:
......
Defaults logfile="/var/log/sudo.log"
步骤二:显示 sudo 日志
2.1 退出后重新登录
(步骤略)
2.2 显示 sudo 日志
# cat /var/log/sudo.log
# vim /etc/sudoers
或者:
# visudo
添加以下内容:
......
Defaults logfile="/var/log/sudo.log"
(步骤略)
# cat /var/log/sudo.log
connect: Network is unreachable
当配置的 IP 地址和子网掩码不包含配置的网关 IP 地址时,检测网络联通性时就会报此类错误
配置正确的 IP 地址、子网掩码或网关 IP 地址
(步骤略)
如果在系统中没有 /etc/cron.deny 配置文件,在 /etc/cron.allow 配置文件中添加要使用 crontab -e 命令的用户
# vim /etc/cron.allow
添加以下内容:
......
zhumingyu
(补充:这里以添加用户 zhumingyu 为例)
如果在系统中没有 /etc/cron.allow 配置文件,在 /etc/cron.allow 配置文件中删除要使用 crontab -e 命令的用户
# vim /etc/cron.allow
删除以下内容:
......
zhumingyu
......
(补充:这里以删除用户 zhumingyu 为例)
/etc/ssh/sshd_config
# chown root:root /etc/ssh/sshd_config
# chmod 640 /etc/ssh/sshd_config
Protocol 2
# sed -i 's/.*Protocol .*/Protocol 2/g' /etc/ssh/sshd_config
IgnoreRhosts yes
# sed -i 's/^.*IgnoreRhosts .*/IgnoreRhosts yes/g' /etc/ssh/sshd_config
HostbasedAuthentication no
# sed -i 's/.*HostbasedAuthentication .*/HostbasedAuthentication no/g' /etc/ssh/sshd_config
PermitUserEnvironment no
# sed -i 's/.*PermitUserEnvironment .*/PermitUserEnvironment no/g' /etc/ssh/sshd_config
PermitRootLogin no
# sed -i 's/.*PermitRootLogin .*/PermitRootLogin no/g' /etc/ssh/sshd_config
PermitEmptyPasswords no
# sed -i 's/.*PermitEmptyPasswords .*/PermitEmptyPasswords no/g' /etc/ssh/sshd_config
SyslogFacility AUTH
# sed -i 's/.*SyslogFacility .*/SyslogFacility AUTH/g' /etc/ssh/sshd_config
LogLevel INFO
# sed -i 's/.*LogLevel .*/LogLevel INFO/' /etc/ssh/sshd_config
MaxAuthTries 5
(补充:这里以设置最大尝试登录失败数是 5 次为例,如果此时尝试登录次数超过 2,则系统日志中会出现登录失败的记录)
# sed -i 's/.*MaxAuthTries .*/MaxAuthTries 5/g' /etc/ssh/sshd_config
(补充:这里以设置最大尝试登录失败数是 5 次为例,如果此时尝试登录次数超过 2,则系统日志中会出现登录失败的记录)
LoginGraceTime 600
或者:
LoginGraceTime 10m
(补充:这里以设置 SSH 登录时密码输入的时间为 600 秒为例)
# sed -i 's/.*LoginGraceTime .*/LoginGraceTime 600/g' /etc/ssh/sshd_config
或者:
# sed -i 's/.*LoginGraceTime .*/LoginGraceTime 10m/g' /etc/ssh/sshd_config
(补充:这里以设置 SSH 登录时密码输入的时间为 600 秒为例)
X11Forwarding no
# sed -i 's/.*X11Forwarding .*/X11Forwarding no/g' /etc/ssh/sshd_config
AllowTcpForwarding no
# sed -i 's/.*AllowTcpForwarding .*/AllowTcpForwarding no/g' /etc/ssh/sshd_config
PrintMotd no
或者:
PrintLastLog no
# sed -i 's/.*PrintMotd .*/PrintMotd no/g' /etc/ssh/sshd_config
或者:
# sed -i 's/.*PrintLastLog .*/PrintLastLog no/g' /etc/ssh/sshd_config
MaxStartups 10:30:60
(
补充:这里以
1) 最多同时只能让 10 个用户发起 SSH 登录请求,超过此数量的登录请求会被拒绝
2) 当 SSH 连接数超过上限时 (这里设置的是 10 个),再新发起 SSH 登录请求的用户,会有 30% 的概率被拒绝
3) 当 SSH 连接数超过 60 时,再新发起 SSH 登录请求的用户全部会被拒绝,这里的 30 参数将会无效
)
# sed -i 's/.*MaxStartups .*/MaxStartups 10:30:60/g' /etc/ssh/sshd_config
(
补充:这里以
1) 最多同时只能让 10 个用户发起 SSH 登录请求,超过此数量的登录请求会被拒绝
2) 当 SSH 连接数超过上限时 (这里设置的是 10 个),再新发起 SSH 登录请求的用户,会有 30% 的概率被拒绝
3) 当 SSH 连接数超过 60 时,再新发起 SSH 登录请求的用户全部会被拒绝,这里的 30 参数将会无效
)
MaxSessions 4
(补充:这里以设置每个连接可以开启 4 个会话为例,默认值为 10)
# sed -i 's/.*MaxSessions .*/MaxSessions 4/g' /etc/ssh/sshd_config
(补充:这里以设置每个连接可以开启 4 个会话为例,默认值为 10)
ClientAliveInterval 100
ClientAliveCountMax 3
(补充:这里以设置客户端 SSH 空闲超时时间为 100 * 3=300 秒为例)
# sed -i 's/.*ClientAliveInterval .*/ClientAliveInterval 100/g' /etc/ssh/sshd_config
# sed -i 's/.*ClientAliveCountMax .*/ClientAliveCountMax 3/g' /etc/ssh/sshd_config
(补充:这里以设置客户端 SSH 空闲超时时间为 100 * 3=300 秒为例)
RhostsRSAAuthentication no
# sed -i 's/.*RhostsRSAAuthentication .*/RhostsRSAAuthentication no/g' /etc/ssh/sshd_config
ForwardAgent no
# sed -i 's/.*ForwardAgent .*/ForwardAgent no/g' /etc/ssh/sshd_config
Ciphers aes256-ctr,aes192-ctr,aes128-ctr
(补充:这里以使用 aes256-ctr、aes192-ctr 和 aes128-ctr SSH Ciphers 加密算法为例)
# echo "Ciphers aes256-ctr,aes192-ctr,aes128-ctr" >> /etc/ssh/sshd_config
(补充:这里以使用 aes256-ctr、aes192-ctr 和 aes128-ctr SSH Ciphers 加密算法为例)
MACs hmac-sha2-512,hmac-sha2-256
(补充:这里以使用 hmac-sha2-512 和 hmac-sha2-256 SSH MACs 加密算法为例)
# echo "MACs hmac-sha2-512,hmac-sha2-256" >> /etc/ssh/sshd_config
(补充:这里以使用 hmac-sha2-512 和 hmac-sha2-256 SSH MACs 加密算法为例)
KexAlgorithms ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256
(补充:这里以使用 ecdh-sha2-nistp521、ecdh-sha2-nistp384、ecdh-sha2-nistp256 和 diffie-hellman-group-exchange-sha256 SSH KexAlgorithms 加密算法为例)
# echo "KexAlgorithms ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256" >> /etc/ssh/sshd_config
(补充:这里以使用 ecdh-sha2-nistp521、ecdh-sha2-nistp384、ecdh-sha2-nistp256 和 diffie-hellman-group-exchange-sha256 SSH KexAlgorithms 加密算法为例)
# systemctl restart sshd
(补充:内容二里的参数只有重启了 sshd 服务后才能生效)
# vim /etc/pam.d/common-password-pc
将以下内容:
......
password requisite pam_cracklib.so ......
......
修改为:
......
password requisite pam_cracklib.so try_first_pass local_users_only enforce-for-root minlen=15 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 maxrepeat=5 retry=3 difok=3 remember=5
......
并添加以下内容:
......
password requisite pam_pwhistory.so try_first_pass local_users_only enforce-for-root remember=5 use_authtok
password sufficient pam_unix.so sha512 shadow try_first_pass use_authtok remember=24 use_authtok
(
补充:这里以
1) pam_cracklib.so 模块使用前 1 个模块从用户那里得到的密码 (try_first_pass)
2) 只作用于本地用户 (local_users_only)
3) 也作用于 root 用户 (enforce-for-root)
4) 密码最小长度为 15 个字符 (minlen=15)
5) 密码必须包含数字的个数 (dcredit=-1)
6) 密码必须包含大写字母的个数 (ucredit=-1)
7) 密码必须包含小写字母的个数 (lcredit=-1)
8) 密码必须包含特殊字符的个数 (ocredit=-1)
9) 最多只允许 5 个连续字符 (maxrepeat=5,如果是 0 则禁用该选项)
10) 3 次尝试错误密码后产生错误提示 (retry=3)
11) 新密码最多可以有 3 个字符和旧密码相同 (difok=3)
12) 新密码不能和最近用过的 24 个密码相同 (remember=24)
13) 使用 sha512 加密方法加密 (sha512)
为例
)
# vim /etc/security/pwquality.conf
将部分内容修改如下:
......
minlen = 15
......
dcredit = -1
......
ucredit = -1
......
lcredit = -1
......
ocredit = -1
......
dictcheck = 1
......
usercheck = 1
......
maxrepeat = 5
......
retry = 3
......
difok = 3
......
(
补充:这里以
1) 密码最小长度为 15 个字符 (minlen = 15)
2) 密码必须包含数字的个数 (dcredit = -1)
3) 密码必须包含大写字母的个数 (ucredit = -1)
4) 密码必须包含小写字母的个数 (lcredit = -1)
5) 密码必须包含特殊字符的个数 (ocredit = -1)
6) 密码不能包含字典 (dictcheck = 1)
7) 密码不能包含用户 (usercheck = 1)
8) 新密码不能和前 5 个老密码重复 (maxrepeat=5)
9) 3 次尝试错误密码后产生错误提示 (retry=3)
10) 新密码最多可以有 3 个字符和旧密码相同 (difok=3)
为例
)
# vim /etc/login.defs
将以下内容:
......
ENCRYPT_METHOD ......
......
修改为:
......
ENCRYPT_METHOD SHA512
......
(补充:这里以使用 SHA512 哈希算法加密密码为例)