如何保护linux服务器远程使用的安全

服务器安全是一个非常敏感的问题,因服务器远程入侵导致数据丢失的安全问题频频出现,一旦服务器入侵就会对个人和企业造成巨大的损失。因此,在日常使用服务器的时候,我们需要采取一些安全措施来保障服务器的安全性。

目前服务器系统使用到比较多的就是Linux,大多数服务器都在 Linux 基础架构上运行,而我们远程时候,多数也是会使用默认设置的 SSH 连接来连接到远程服务器。但是,不安全的默认配置是会带来一些安全风险。今天我们就来分享一些方案可以保护Linux服务器远程连接的安全。

在 Linux 上保护 SSH 服务器连接安全的几种方法:

1、禁用 root 用户登录:关闭 root 用户的服务器访问是一种防御策略,可以防止攻击者实现入侵系统的目标。为此,可以创建一个具有 root 权限的新用户来代替 root 用户进行登录。

例如创建exampleroot的用户:


useradd -m exampleroot
passwd exampleroot 
usermod -aG sudo exampleroot

在用户创建过程之后,修改 SSH 的配置文件 /etc/ssh/sshd_config,在其中加上 PermitRootLogin no 配置项。

2、使用 SSH 密钥连接:连接到服务器的最安全方法之一是使用 SSH 密钥。使用 SSH 密钥时,无需密码即可访问服务器。另外,可以通过更改 sshd_config 文件中与密码相关的参数来完全关闭对服务器的密码访问。

在本地计算机上生成 SSH 密钥对。可以使用 ssh-keygen 命令来生成,选择默认选项即可。创建 SSH 密钥时,有两个密钥:Public和Private。公钥将上传到您要连接的服务器,而私钥则存储在您将用来建立连接的计算机上。

需要注意的是,使用 SSH 密钥连接需要在本地计算机和远程服务器上都进行相应的配置。此外,如果需要配置多个用户使用 SSH 密钥连接,可以创建一个包含多个公钥的 authorized_keys 文件,并将其放置在远程服务器的指定目录下。

3、限制登录/访问尝试:默认情况下,可以根据需要尝试多次输入密码来访问服务器。但是,攻击者可以利用此漏洞对服务器进行暴力破解。通过指定允许的密码尝试次数,可以在尝试一定次数后自动终止 SSH 连接。为此,请更改 sshd_config 文件中的 MaxAuthTries 值。

4、默认使用 SSH 版本 2:SSH 的第二个版本发布是因为第一个版本中存在许多漏洞。默认情况下,可以通过将 Protocol 参数添加到 sshd_config 文件来启用服务器使用第二个版本。这样,未来的所有连接都将使用第二个版本的 SSH。

5、关闭 TCP 端口转发和 X11 转发:攻击者可以尝试通过 SSH 连接的端口转发来访问您的其他系统。为了防止这种情况,可以在 sshd_config 文件中关闭 AllowTcpForwarding 和 X11Forwarding 功能。

 
AllowTcpForwarding yes - AllowTcpForwarding no 
X11Forwarding yes - X11Forwarding no

保存文件并重新启动 SSH 服务。

需要注意的是,关闭 TCP 端口转发和 X11 转发可能会影响使用这些功能的应用程序的正常运行。因此,在修改配置之前,请确保了解这些更改可能对系统产生的影响。

6、禁用密码认证:默认情况下,可以通过将 PasswordAuthentication 参数添加到 sshd_config 文件来禁用密码认证。这样,只有使用 SSH 密钥的用户才能访问服务器。

7、限制远程登录:可以通过在 sshd_config 文件中设置 AllowUsers 和 DenyUsers 参数来限制远程登录的用户和 IP 地址。只有允许的用户才能从指定的 IP 地址登录到服务器。

8、定期更新和审查:保持操作系统和 SSH 服务的最新版本,并定期审查服务器日志以检测任何可疑活动。如果有任何异常行为被检测到,应立即采取行动以保护服务器免受攻击。

9、使用主机安全软件:使用支持多重防护规则的主机安全,远程防护用于对远程桌面登录进行防护,防止非法登录,增强远程桌面安全。像是德迅卫士这种主机安全软件,远程登录服务器时需要进行二次验证,验证通过才可以登录服务器,这样也可以提高服务器的远程安全。

这些是在 Linux 上保护 SSH 服务器连接的一些常见方法,保护服务器的安全性是一个持续的过程,需要我们不断的关注以应对不断变化的威胁,结合多种安全措施来提高服务器的使用安全性,保障我们的业务安全。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/339791.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云化XR技术于农业领域中的表现

随着科技的不断发展和应用的深入,农业领域也在逐渐引入新技术来优化生产效率和成本、改进管理和监控等。云化XR(CloudXR)作为一种融合了云计算、虚拟现实(VR)和增强现实(AR)等技术的解决方案&am…

Overleaf Docker编译复现计划

Overleaf Docker编译复现计划 Overleaf Pro可以支持不同年份的Latex镜像自由选择编译,这实在是一个让人看了心痒痒的功能。但是很抱歉,这属于Pro付费功能。但是我研究了一下,发现其实和Docker编译相关的代码,社区版的很多代码都没…

Redis相关报错信息:Could not connect to Redis at 127.0.0.1:6379: 由于目标计算机积极拒绝,无法连接。

报错信息: Could not connect to Redis at 127.0.0.1:6379: 由于目标计算机积极拒绝,无法连接。 报错原因: 访问不到Redis服务 解决方案: 将Redis服务打开! 使用cmd命令行打开本机服务管理: services…

CentOS安装k8s单机/集群及一些命令

目录 前言 1. 安装docker 2. 安装要求 3.准备网络(如果只装单机版可跳过此部) 4. 准备工作 5. 安装 5.1. 配置阿里云yum k8s源 5.2 安装kubeadm、kubectl和kubelet 5.3 初始化,只在master执行,子节点不要执行 5.3.1 一些…

创建EasyCodeMybatisCodeHelperPro模板文件用于将数据库表生成前端json文件

在intellij idea中,通过插件EasyCodeMybatisCodeHelperPro,从现有的模板文件中选择一个复制粘贴,然后稍为修改,即可得到一个合适的模板文件。 现在的前端,越来越像后端。TypeScript替代了JavaScript,引入了…

[Vulnhub靶机] DriftingBlues: 6

[Vulnhub靶机] DriftingBlues: 6靶机渗透思路及方法(个人分享) 靶机下载地址: https://download.vulnhub.com/driftingblues/driftingblues6_vh.ova 靶机地址:192.168.67.25 攻击机地址:192.168.67.3 一、信息收集 …

【SpringBoot3】实现自定义配置——以静态资源自定义配置为例(源码+代码示例)

这里写目录标题 1 配置类位置2 静态资源配置方式3 整体配置示例3.1 创建配置类3.2 实现配置方法3.3 指定配置文件属性 1 配置类位置 在左侧搜索autoconfigure可以找到spring-boot-autoconfigure包,打开其下的META-INF -> spring -> AutoConfiguration.import…

06.构建大型语言模型步骤

在本章中,我们为理解LLMs奠定了基础。在本书的其余部分,我们将从头开始编写一个代码。我们将以 GPT 背后的基本思想为蓝图,分三个阶段解决这个问题,如图 1.9 所示。 图 1.9 本书中介绍的构建LLMs阶段包括实现LLM架构和数据准备过程、预训练以创建基础模型,以及微调基础模…

Java使用IText生产PDF时,中文标点符号出现在行首的问题处理

Java使用IText生成PDF时,中文标点符号出现在行首的问题处理 使用itext 5进行html转成pdf时,标点符号出现在某一行的开头 但这种情况下显然不符合中文书写的规则,主要问题出在itext中的DefaultSplitCharacter类,该方法主要用来判断…

Windows下安装mariadb10.5数据库及配置详细教程

1、简介 MariaDB数据库管理系统是一款MySQL的替代数据库。MariaDB由MySQL的创始人麦克尔维德纽斯主导开发,是可扩展的,可靠的SQL服务器的合乎逻辑的选择,MariaDB 10.5 是 MariaDB 当前的稳定系列。 2、下载 下载地址:Download M…

Android SDK环境搭建[图解]; 解决问题Done. Nothing was installed.

安装SDK Android SDK环境搭建 依赖java环境,需要自备Java环境 (100%实操成功) 目录 1. 解压:解压到非中文无特殊字符的目录 2. 双击:SDK Manager.exe,不要选全部!不要选全部!不要选全部!(会下很久) 3. 然后勾选组件​ 4. 设置环境变量 …

MySQL加锁规则

项目编写涉及到数据持久化一般选择使用MySQL。由于时间原因,数据库使用我选择了无脑三板斧:1. 建立了索引加速查询、2. 关闭自动提交事务、3. 在需要确保原子性的数据库操作之间手动创建和提交事务。 这么一看,仿佛即使是实际开发也与你此前…