仅让 use pty 可以使用 sudo 命令 (避免后台进程使用 sudo 命令)
# vim /etc/sudoers
或者:
# visudo
添加以下内容:
......
Defaults use_pty
仅让 use pty 可以使用 sudo 命令 (避免后台进程使用 sudo 命令)
# vim /etc/sudoers
或者:
# visudo
添加以下内容:
......
Defaults use_pty
# 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 秒为例)
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 加密算法为例)
# vim /etc/ssh/sshd_config
将部分内容修改如下:
......
UseTCPWrappers yes
......
# vim /etc/hosts.deny
添加以下内容:
......
sshd : ALL
# vim /etc/hosts.deny
添加以下内容:
......
sshd : 192.168.0.1/32 : ALLOW
sshd : ALL
(补充:这里以允许 IP 地址 192.168.0.1 可以 SSH 本服务器为例)
(注意:这和防火墙的策略一样从上往下匹配及停止,所以允许某 IP 地址可以 SSH 本服务器的策略一定要加在禁止所有 IP 地址可以 SSH 本服务器的策略之前)
# vim /etc/ssh/sshd_config
添加以下内容:
......
AllowUsers zhumingyu mingyuzhu@192.168.1.1
AllowGroups zhu
(
补充:这里以
1) 允许用户 zhumingyu 可以登录
2) 允许从 192.168.1.1 来的用户 mingyuzhu 可以登录
3) 允许属于组 zhu 的用户可以登录
其它用户不能登录
为例
)
# vim /etc/ssh/sshd_config
将部分内容修改如下:
......
UseTCPWrappers yes
......
# vim /etc/hosts.deny
添加以下内容:
sshd : 192.168.0.1/32 : ALLOW
(补充:这里以禁止 IP 地址 192.168.0.1 可以 SSH 本服务器为例)
# vim /etc/ssh/sshd_config
添加以下内容:
......
DenyUsers zhumingyu mingyuzhu@192.168.1.1
DenyGroups zhu
(
补充:这里以
1) 禁止用户 zhumingyu 登录
2) 禁止从 192.168.1.1 来的用户 mingyuzhu 登录
3) 禁止属于组 zhu 的用户登录
其它用户都可以登录
为例
)
# systemctl restart sshd
(补充:内容二里的参数只有重启了 sshd 服务后才能生效)