更改 CentOS 7 默认的 SSH 端口

更改 CentOS 7 默认的 SSH 端口

本文是对 How To Change OpenSSH Port On CentOS 7 的简单翻译,部分内容有更改。

一些网站管理员认为,更改默认为 22 的 SSH 端口号可以增强安全性。这是因为每个人都知道 SSH 默认端口号是 22,当然也包括黑客,所以是不安全的。

将 SSH 端口号更改为 22 以外的其他值将增强服务器的安全性,因为坏人不会知道 SSH 通信的端口。这是一个很酷的技巧,但不会阻止那些决心闯入你服务器的人。

只需使用简单的端口扫描程序或类似工具,黑客就可以找出服务器上的所有连接端口。这是一项古老的技术,可能在我们今天的时间里不适用。

在我看来,保护 SSH 服务器的最佳方法是使用证书和加密实现无密码登录。使用此方法,只允许已使用加密密钥的计算机使用 SSH 协议登录。

另一种方法是通过将该计算机的 IP 地址放到防火墙白名单中,来将防火墙配置为仅允许来自预定义计算机的 SSH 连接。其他任何东西都不会更好地增强您的服务器安全性。

以下是更改步骤。

  1. 首先,备份 SSH 配置文件

    bash 复制代码
    sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
  2. 开始修改配置文件

    bash 复制代码
    sudo vi /etc/ssh/sshd_config

    修改内容,可以把端口修改为你想要修改的值:

    这里可以在保留 22 端口的情况下,先增加一个新端口,以确保可以通过新端口连接,然后再禁用掉 22 端口。

    yaml 复制代码
    # If you want to change the port on a SELinux system, you have to tell
    # SELinux about this change.
    # semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
    #
    Port 22
    Port 2244
    #AddressFamily any
    #ListenAddress 0.0.0.0
    #ListenAddress ::

    保存文件,在完成修改之前,不要退出登录。

  3. 默认情况下,SELinux 只允许端口 22 用于 SSH,现在需要做的是通过 SELinux 启用新创建的端口。执行以下命令:

    css 复制代码
    sudo semanage port -a -t ssh_port_t -p tcp 2244

    如果执行以上命令后报错:semanage command not found,执行这条命令来安装 semanage

    复制代码
    sudo yum -y install policycoreutils-python

    安装成功后,再次执行第一条命令,通过 SELinux 来允许新端口。

  4. 执行以下命令允许新端口通过防火墙。

    css 复制代码
    sudo firewall-cmd --permanent --zone=public --add-port=2244/tcp

    如果报错:FirewallD is not running,表示防火墙还没有开启,执行以下命令来开启防火墙:

    bash 复制代码
    systemctl enable firewalld
    systemctl start firewalld

    然后查看防火墙状态:

    lua 复制代码
    systemctl status firewalld
    
    # 或者以下命令
    firewall-cmd --state
  5. 重新加载防火墙配置。

    css 复制代码
    sudo firewall-cmd --reload
  6. 重启 SSH 服务。

    复制代码
    sudo systemctl restart sshd.service

    查看 sshd 状态,看添加的端口是否生效。

    lua 复制代码
    systemctl status sshd.service
  7. 或者通过运行以下命令验证 SSH 现在是否在新端口上运行。

  8. 退出并尝试使用新端口号登录。

    css 复制代码
    ssh root@192.168.0.1 -p 2244
  9. 禁用 22 端口。

  10. 重启 SSH 服务。

另外,如果使用的是阿里云的 ECS,有一个安全组规则,可以设置入方向和出方向的端口。这里只要在入方向里面添加上面配置的新端口即可。

相关推荐
阿丰资源4 小时前
基于SpringBoot的在线视频教育平台的设计与实现(附源码+数据库+文档,一键运行)
数据库·spring boot·后端
IT_陈寒4 小时前
我竟然被JavaScript的隐式类型转换坑了三天!
前端·人工智能·后端
Reart4 小时前
从0解构tinyWeb项目--(Day:9)
后端·架构·github
小码哥_常4 小时前
Java后端定时任务“三剑客”大比拼,选对不选贵!
后端
oldking呐呐4 小时前
MySQL从入门到入土 -- 2.数据库基础
后端·mysql
用户860821135654 小时前
从JVM到Spring Boot:一文搞懂胖Jar中的类加载机制
后端
小兵张健4 小时前
30天减20斤挑战:少一斤发100红包(2)
后端·程序员·全栈
汤姆Tom4 小时前
从 0 到 1 开发项目?你是否也是这样开始?先有再优化一步一步带你了解架构设计
前端·后端·架构
muskk8 小时前
一个文件,9万星:Karpathy 用 4 条规则治好了 AI 写代码的"坏毛病"
前端·后端
xlecho9 小时前
从单一语言到全域全栈,AI凭全能实力,淘汰旧时代语言工程师
人工智能·后端·开源