SSH配置访问权限

有时候我们的云主机需要开通公网供外部访问, 但外部的世界太复杂, 会被人不停的漏扫, 特别是root账户, 就算设置有复杂的密码, 时间长了, 也容易被攻入, 所以我们需要尽量降低root账户被暴露的风险, 比如指定IP段访问, 或只允许证书登录等

针对IP地址

允许本地设备器访问

vim /etc/hosts.allow
#####################################
sshd:192.168.104.,172.24.:allow

允许192.168.104.0/24172.24.0.0/16网段访问

禁止其他IP器访问

vim /etc/hosts.deny
#####################################
sshd:ALL

禁止所有IP访问

  • 一个IP请求连入,linux的检查策略是先看/etc/hosts.allow中是否允许,如果允许直接放行;如果没有,则再看/etc/hosts.deny中是否禁止,如果禁止那么就禁止连入

  • /etc/hosts.allow/etc/hosts.deny的配置不用重启, 保存即生效

针对指定用户或IP

vim /etc/ssh/sshd_config
#####################################
AllowUsers root@192.168.104.* root@172.24.* magina anya
  • root@192.168.104.*: 只允许root用户通过192.168.104.0/24段登录
  • magina: 允许magina用户在任意IP登录

重启服务

systemctl restart sshd

限制root用户证书登录

vim /etc/ssh/sshd_config
#####################################
PermitRootLogin without-password

重启服务

systemctl restart sshd

这样root用户只能通过证书登录, 就算密码被泄露也没关系, 前提是注意配置好证书, 否则一旦重启就进不去系统了

展示评论