安全加固指南:如何更改 SSH 服务器的默认端口号

        在 Linux 系统中修改 SSH 服务的默认端口号是一项重要的安全措施,它可以帮助增强系统的安全性。这个过程相对简单,但必须由具有管理员权限的用户来执行。下面,我将向大家介绍如何安全地更改 SSH 端口的具体步骤。

1 备份 SSH 配置文件

        在修改之前,建议先备份原始的 SSH 配置文件,以防出现问题可以恢复。

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

2 编辑 SSH 配置文件

        使用文本编辑器(如 `nano` 或 `vi`)打开 `/etc/ssh/sshd_config` 文件。

sudo vim /etc/ssh/sshd_config

        在文件中找到有关端口号的行,默认情况下,这行可能会被注释掉(以 `#` 开头),并显示为 `#Port 22`,如下图所示

3 更改端口号

        将这行的 `#` 去掉,并将 `22` 更改为您想要设置的新端口号,例如,将端口号改为 `2222`,如下图所示


 确保选择的端口号没有被其他服务使用,并且是大于 1024 的非保留端口。

4 保存并关闭文件

        保存更改并关闭编辑器。

     (1)如果使用的是 `nano`,可以按 `Ctrl + O`,然后按 `Enter` 保存,最后按 `Ctrl + X` 退出。
     (2)如果使用的是 `vim`,可以按 `ESC`,然后按 `:wq` 保存退出。

5 重启 SSH 服务

        为了使更改生效,需要重启 SSH 服务,可以通过以下命令完成

sudo systemctl status sshd.service

重启后如果发现报下面错误

6 检查防火墙状态

        排查一下,看看防火墙是不是开着呢,一看还真开着呢

那就放行2222端口,执行下面命令

sudo firewall-cmd --zone=public --add-port=2222/tcp --permanent

重载防火墙,使更改内容生效

sudo firewall-cmd --reload

再次重启ssh服务,仍然重启失败,查看ssh日志发现以下问题

journalctl -xeu sshd.service

7 检查 SELinux 策略

        这一步很重要,很容易被大家忽略!!!

        如果你的系统使用 SELinux,检查 SELinux 策略是否允许 sshd 在端口 2222 上监听,你可以暂时关闭 SELinux 以测试是否是 SELinux 导致的问题

sudo setenforce 0

        然后尝试重启 sshd 服务,如果服务成功启动,则表示是SELinux策略导致的问题,这时你就得调整一下 SELinux 策略了(请记得在测试后重新启用 SELinux)。

sudo setenforce 1

更改 SELinux 策略以允许 SSHD 在新端口上监听

        你需要创建一个新的 SELinux 策略,允许 SSHD 在端口 2222 上监听。

        首先,安装 policycoreutils-python-utils(或 policycoreutils-python,取决于你的发行版)

sudo yum install policycoreutils-python-utils

然后,添加一个新的策略规则

sudo semanage port -a -t ssh_port_t -p tcp 2222

        这将允许 SSHD 服务在 TCP 端口 2222 上运行

重新启动 SSHD 服务并重新启用 SELinux

        在修改 SELinux 策略后,重新启动 SSHD 服务

sudo systemctl restart sshd

然后,重新启用 SELinux 强制模式

sudo setenforce 1

检查 SELinux 状态和日志

getenforce

        从输出来看,SELinux 当前处于 "Enforcing" 模式,这意味着 SELinux 的安全策略正在被强制执行,在这种模式下,任何违反策略的行为都将被拒绝,并且相应的违规行为会被记录下来。

        注意:SELinux 是一个强大的安全工具,它可以防止许多类型的漏洞和攻击。因此,不建议永久禁用 SELinux。

检查端口 2222 是否已经正确地被分配给了 SSH

sudo semanage port -l | grep ssh_port_t

稳妥起见,再重启ssh测试一下,如下图所示没有问题了

8 测试新配置是否生效

        在关闭当前 SSH 会话之前,打开一个新的终端窗口或 SSH 客户端,尝试使用新的端口号连接到服务器,以确保一切正常。

ssh -p 2222 username@your-server-ip

        

        请注意,在进行此类更改时,如果您失去了与服务器的连接,或者新的端口号因某种原因不起作用,可能会导致您无法通过 SSH 访问服务器,操作需谨慎。

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

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

相关文章

nodejs+vue网上书城图书销售商城系统io69w

功能介绍 该系统将采用B/S结构模式,使用Vue和ElementUI框架搭建前端页面,后端使用Nodejs来搭建服务器,并使用MySQL,通过axios完成前后端的交互 系统的主要功能包括首页、个人中心、用户管理、图书类型管理、图书分类管理、图书信…

IntelliJ IDEA [警告] pom的依赖中出现警告Provides transitive vulnerable dependency

文章目录 1. 现象2. 为什么出现警告3. 如何对待呢4. 解决5. 解决的好处总结 1. 现象 在我们的工程 pom.xml 中的依赖中&#xff0c;所依赖的 spring-boot-starter-web 出现了警告。 依赖内容 <dependency><groupId>org.springframework.boot</groupId><…

MySQL高级SQL语句补充

目录 1.空值&#xff08;NULL&#xff09;和 无值&#xff08; &#xff09;的区别 2.正则表达式 3.存储过程 存储过程的优点 创建存储过程 调用存储过程 查看存储过程 存储过程的参数 IN 输入参数 OUT 输出参数 INOUT 输入输出参数 删除存储过程 存储过程的控制语…

最大花费金额 - 华为OD统一考试

OD统一考试 题解&#xff1a; Java / Python / C 题目描述 双十一众多商品进行打折销售&#xff0c;小明想购买自己心仪的一些物品&#xff0c;但由于受购买资金限制&#xff0c;所以他决定从众多心仪商品中购买三件&#xff0c;而且想尽可能的花完资金现在请你设计一个程序帮…

(2023,提示扩展,图像反演,文本到文本生成)自适应文本到图像生成的提示扩展

Prompt Expansion for Adaptive Text-to-Image Generation 公众&#xff1a;EDPJ&#xff08;添加 VX&#xff1a;CV_EDPJ 或直接进 Q 交流群&#xff1a;922230617 获取资料&#xff09; 目录 0. 摘要 3. 提示扩展数据集 3.1 图像审美数据集 3.2 图像到文本反演 3.3 查…

【数据结构与算法】字符串匹配(头歌习题)【合集】

目录 第1关&#xff1a;实现朴素的字符串匹配任务描述相关知识编程要求评测说明完整代码 第2关&#xff1a;实现KMP字符串匹配任务描述相关知识编程要求评测说明完整代码 第3关&#xff1a;【模板】KMP算法任务描述相关知识C STL容器string1、string的定义2、string中内容的访问…

使用YOLOv8和Grad-CAM技术生成图像热图

目录 yolov8导航 YOLOv8&#xff08;附带各种任务详细说明链接&#xff09; 概述 环境准备 代码解读 导入库 定义letterbox函数 调整尺寸和比例 计算填充 应用填充 yolov8_heatmap类定义和初始化 后处理函数 绘制检测结果 类的调用函数 热图生成细节 参数解释 we…

C++初阶——基础知识(函数重载与引用)

目录 1.命名冲突 2.命名空间 3.缺省参数 4.函数重载 1.函数重载的特点包括&#xff1a; 2.函数重载的好处包括&#xff1a; 3.引用 引用的特点包括 引用的主要用途包括 引用和指针 引用 指针 类域 命名空间域 局部域 全局域 第一个关键字 命名冲突 同一个项目之间冲…

sklearn 中matplotlib编制图表

代码 # 导入pandas库&#xff0c;并为其设置别名pd import pandas as pd import matplotlib.pyplot as plt# 使用pandas的read_csv函数读取名为iris.csv的文件&#xff0c;将数据存储在iris_data变量中 iris_data pd.read_csv(data/iris.txt,sep\t)# 使用groupby方法按照&quo…

期权二叉树估值与图计算

传统期权二叉树的算法都是基于数组的&#xff0c;对于没有编程基础的人来说非常不直观。二叉树是一种特殊的图&#xff0c;可以用python networkx这个图算法库实现&#xff0c;这个库不仅包含常用的图算法&#xff0c;还包含简单的绘图功能&#xff0c;非常适合研究分析使用。 …

【ARMv8M Cortex-M33 系列 2.1 -- Cortex-M33 使用 .hex /.srec 文件介绍】

请阅读【嵌入式开发学习必备专栏 之Cortex-M33 专栏】 文章目录 HEX 文件介绍英特尔十六进制文件格式记录类型hex 示例Cortex-M 系列hex 文件的使用 hex 文件和srec 文件生成Motorola S-Record (srec) 格式 HEX 文件介绍 .hex 文件通常用于微控制器编程&#xff0c;包括 ARM C…

TypeError: control character ‘delimiter‘ cannot be a newline (`\r` or `\n`)

报错 找到错误代码 这个错误是因为在使用 numpy.loadtxt() 函数时尝试将换行符&#xff08;\n&#xff09;作为分隔符&#xff08;delimiter&#xff09;。然而&#xff0c;换行符是用于标识文本文件中每一行的结束&#xff0c;而不是用于分隔数据字段。 解决 如果你的数据文…