有没有办法设置禁止其他 IP 地址登陆 SSH?

知识问答作者:U大使日期:2021-01-24点击:101

今天使用 SSH 连接服务器的时候发现下面这个提示,想问一下有没有办法设置禁止其他 IP 地址登陆 SSH ? 还有怎么禁止 root 用户远程登录呢

Last failed login: Thu Dec 10 20:36:22 CST 2020 from 57.137.123.75 on ssh:nottyThere were 6659 failed login attempts since the last successful login.Last login: Thu Dec 10 21:12:55 2020 from 18.166.55.123

限制 SSH 登录 IP 地址

# 添加允许访问的 IPecho "sshd: 115.183.13.130" >> /etc/hosts.allow# 禁止其它的所有 IPecho "sshd: ALL" >> /etc/hosts.deny

禁止 root 用户远程登录

# 添加普通用户 kongrenuseradd kongrenpasswd kongren# 禁止 root 远程 SSH 登录/etc/ssh/sshd_config | sudo sed 's/^.*PermitRootLogin no/PermitRootLogin yes/g'# 重启 sshd 服务service sshd restart
Joker 2020-12-13 82104010

谢谢,已经解决

建议设置私钥登录,如果需要密码认证向公网开放可以配置一下Fail2ban

也可以新建一个用户加入sudo权限组,在/etc/ssh/sshd_config中把PermitRootLogin设置为no,如果是改为私钥的话可以用without-password

反正两个方向,一是设置规则ban掉异常请求,二是提高认证门槛,换子账户或者私钥认证

Joker 2020-12-13 82104010

谢谢解答

参见https://www.cnblogs.com/xiaochina/p/5920057.html

Joker 2020-12-13 82104010

这个只是禁止其他 IP 地址登陆 SSH,没有禁止 root 用户登录。

可以指定IP白名单

可以,设置只允许指定用户进行登录(白名单):在 /etc/ssh/sshd_config 配置文件中设置 AllowUsers 选项;
除了可以禁止某个用户登录,我们还可以针对固定的IP进行禁止登录,linux 服务器通过设置 /etc/hosts.allow 和 /etc/hosts.deny 这个两个文件,hosts.allow许可大于hosts.deny可以限制或者允许某个或者某段IP地址远程 SSH 登录服务器

CaptainFrank 2020-12-13

补充:vim /etc/hosts.allow,hosts.allow 和hosts.deny 两个文件同时设置规则的时候,hosts.allow 文件中的规则优先级高,按照此方法设置后服务器只允许某个 IP 地址的 ssh 登录,其它的 IP 都会拒绝。

kongren 2020-12-13

@CaptainFrank 对,就这样配置

Joker 2020-12-13 82104010

@CaptainFrank 好的

配置安全组指定ip接入

Joker 2020-12-13 82104010

安全组是什么

小李飞刀 2020-12-14

例如配置22端口指定某些ip或者ip端内可以访问等等 这些都是安全组策略

小李飞刀 2020-12-14

@u105

例如配置22端口指定某些ip或者ip端内可以访问等等 这些都是安全组策略

设置 sshd 的 hosts 列表即可

可以的 安全组配置

下一篇       上一篇