Linux下的ssh安全防护问题

 更新时间:2023年08月11日 11:15:58   作者:PHP经验分享  
这篇文章主要介绍了Linux下的ssh安全防护问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

SSH是一种广泛使用的协议,用于安全访问Linux服务器。

大多数用户使用默认的SSH配置连接服务器,但是,默认配置也会带来各种安全风险。

默认的SSH配置允许使用root账户登录访问服务器,root账户可能存在风险。

尤其是对于使用公共IP地址,破解root密码要容易得多。因此,有必要了解SSH安全性。

1.禁用root用户登录

首先创建一个具有root权限的新用户,关闭root用户的服务器访问,可以防止攻击者实现入侵系统的目标。

#创建一个新用户,并且在创建的用户的主目录下创建一个文件夹(-m:在用户主目录下创建用户同名目录)
useradd -m serverroot
#给新用户设置密码
passwd serverroot
#将新创建的用户添加到管理员组(sudo是超级管理员组)
usermod -aG sudo server

用户创建好后,设置禁用root用户访问。

编辑/etc/ssh/sshd_config文件。

使用vim打开文件:sudo vim /etc/ssh/sshd_config

#禁用root用户访问,将下方选项设置成no,默认是yes(不能有#注释该选项)
PermitRootLogin no

最后,使用以下命令重启SSH服务

sudo systemctl restart sshd

2. 更改默认端口

默认的SSH端口是22当然,所有的攻击者都知道这一点,因此需要更改默认端口号以确保SSH安全。

尽管攻击者可以通过Nmap扫描找到新的端口,但是这里的目标是让攻击者的工作更加困难。

使用vim进入ssh配置文件:sudo vim /etc/ssh/sshd_config

#找到 Port选项,修改端口号
Port 2122
保存后记得使用 sudo systemctl restart sshd 重启SSH服务。

注意如果你使用了防火墙记得修改防火墙规则。

3. 禁止使用空白密码的用户访问

系统上可能有一些不小心创建的没有密码的用户。

要防止此类用户访问服务器,将SSH配置文件中的PermitEmptyPasswords选项设置为no

PermitEmptyPasswords no

4. 禁止登录 / 访问尝试

默认情况下,可以根据需要尝试多次输入密码来访问服务器。

但是,攻击者可以利用此漏洞对服务器进行暴力破解。

通过指定允许的密码尝试次数限制暴力破解,即在尝试一定次数后自动终止SSH连接。

编辑配置文件:sudo vim /etc/ssh/sshd_config

# 用户密码错误5次后自动终止SSH连接
MaxAuthTries 5

保存后一定要重启SSH服务:sudo systemctl restart sshd

5. 使用SSH版本2

SSH的第二个版本发布是因为第一个版本中存在许多漏洞。

默认情况下,你可以通过Protocol选项添加到配置文件来启用服务器使用第二个版本。

# 启用SSH版本2
Protocol 2

6. 关闭TCP端口转发和X11转发

攻击者可以通过SSH连接的端口转发访问你的其他系统。

为了防止这种情况,你可以在配置文件中关闭AllowTcpForwarding 和 X11Forwarding功能

# 禁用X11功能
X11Forwarding no
# 禁用TCP端口转发功能
AllowTcpForwarding no

7. 使用SSH密钥连接,禁止使用密码登录

连接服务器最安全方法之一是使用SSH密钥。

使用SSH密钥时,无需密码即可访问服务器。

编辑SSH配置文件:sudo vim /etc/ssh/sshd_config

# 禁止使用密码登录
PasswordAuthentication no

创建SSH密钥,public和private两个密钥。

公钥上传到服务器,而私钥存贮在自己的电脑上,用于连接服务器时使用。

在使用ssh-keygen命令生成密钥时,最好设置文件密码。

这样,即使有人得到了你的私钥文件也无法获取私钥文件内容,从而阻止访问服务器。

8. SSH连接的 IP 限制

虽然我们有防火墙的保护,但是总有一些大神越过防火墙,此时IP限制就很重要了。

编辑允许IP访问的配置文件:sudo vim /etc/hosts.allow

# 允许某个IP访问
sshd:192.168.1.2:allow
# 允许某个IP段访问
sshd:192.168.1.0/24:allow

编辑禁止IP访问的配置文件:sudo vim /etc/hosts.allow

# 禁止所有用户访问,除允许访问配置中的IP外
sshd:ALL

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • linux中设置nexus开机自启动的方法

    linux中设置nexus开机自启动的方法

    这篇文章主要介绍了linux中设置nexus开机自启动的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-02-02
  • 详解Linux(centos7)下安装OpenSSL安装图文方法

    详解Linux(centos7)下安装OpenSSL安装图文方法

    这篇文章主要介绍了详解Linux(centos7)下安装OpenSSL安装图文方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Linux使用partprobe更新分区表的示例代码

    Linux使用partprobe更新分区表的示例代码

    partprobe 是一个用于在 Linux 操作系统中通知内核分区表变化的命令,它请求操作系统重新读取磁盘的分区表,以便及时反映对分区所做的修改,本文给大家介绍了Linux使用partprobe更新分区表的方法,需要的朋友可以参考下
    2025-03-03
  • linux误删nginx.conf文件恢复方式

    linux误删nginx.conf文件恢复方式

    这篇文章主要介绍了linux误删nginx.conf文件恢复方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • linux使用find和crontab命令定期清理过期文件

    linux使用find和crontab命令定期清理过期文件

    这篇文章主要给大家介绍了linux系统下使用find和crontab命令定期清理过期文件的方法,文中先对find和crontab命令进行了详细的介绍,相信对大家的理解和学习具有一定的参考借鉴价值,下面来一起看看吧。
    2016-12-12
  • Linux如何定时删除7天前的日志文件

    Linux如何定时删除7天前的日志文件

    这篇文章主要介绍了Linux如何定时删除7天前的日志文件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • linux URL的301重定向代码分析

    linux URL的301重定向代码分析

    301重定向已经过很多次了,它可以将网站的主域名和二级域名规范到一个url上,使网页在搜索引擎里只能通过唯一的一个地址可以访问到,以免因重复内容造成降权。
    2008-09-09
  • 解决Centos7 安装腾达U12无线网卡驱动问题

    解决Centos7 安装腾达U12无线网卡驱动问题

    这篇文章主要介绍了Centos7 安装腾达U12无线网卡驱动,本文给出了解决过程,通过两种方法给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • Centos 7 64位桌面版安装图文教程

    Centos 7 64位桌面版安装图文教程

    这篇文章主要为大家详细介绍了Centos 7 64位桌面版安装图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • apache tomcat 一个网站多域名的实现方法

    apache tomcat 一个网站多域名的实现方法

    因此处是进行多域名设置,所以 Apache 与 tomcat的结合没有详述,此处只是设置多域名的方法
    2009-02-02

最新评论