如何提高Ubuntu 18.04系统的SSH安全性?

SSH服务是云服务器的主要访问点,同时也是最容易受到攻击的服务之一。本指南将通过不同的技巧和技术帮助提高服务的安全性。

更改端口

监听SSH连接的默认端口是22,更改此设置将允许将服务云化,并增加连接的安全性。
为了避免干扰机器上的其他现有服务,使用netstat命令检查哪些端口正在使用:

$ netstat -n -l

如何提高Ubuntu 18.04系统的SSH安全性?
通过传递给netstat的-l参数,强制它处于LISTEN状态的连接。本例中使用的端口如下:

  • 3306 MySQL service
  • 22 SSH
  • 80 Apache2 / HTTP
  • 53 DNS

若更改端口,需编辑/ etc / ssh / sshd_config中的配置文件,取消注释Port指令:

#Port 22

然后设置一个新的值(建议选值更大的),以防止它被任何端口自动扫描软件(例如2200、5574、1022)截获:

Port 5574

要申请更改,请通过以下方式上传:

$ sudo service sshd reload

之后,再通过使用reload来纠正任何错误并检查对另一个SSH客户机的任何新访问,从而保持连接活动。应用更改之后,指定新端口连接到服务器。例如,如果您从命令行使用SSH客户端:

$ ssh root@ -p 5574

身份验证

由于其安全性,通过RSA密钥访问是基于密码登录的另一种选择。在这种类型的身份验证中,客户端生成一个私钥和安装在服务器机器上的相关公钥,以明确地对客户端进行身份验证。
如果需要安装公钥,客户端首先需要使用ssh-keygen命令生成密钥对:

$ ssh-keygen
Generating public/private rsa key pair.
Enter file where to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.

在继续生成之前,ssh-keygen要求一个可用于身份验证的可选密码短语。为了方便访问,我们将这一部分留空。
完成后,软件将在指定的文件中保存两个文件

  • id_rsa: 客户端的私钥,不可与他人共享。
  • id_rsa.pub: 可共享的公钥。

要准备服务器环境,在用户文件夹内的.ssh文件夹中创建一个名为authorized_keys的文件,用于登录:

$ sudo mkdir ~/.ssh
$ sudo touch ~/.ssh/authorized_keys
$ sudo chmod 600 ~/.ssh/authorized_keys

确保该文件具有如上所示的权限。
然后继续粘贴客户端机器之前准备的公钥:

$ sudo nano ~/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCoTzd9RnqT0yioQG1klsLEK/VG9myo7CQ47aRXu7hnPit6Lgw5kAjC7vzNWYLTy2oIlsrVI7R/tvWmVNISGkWDp9U3fONbSLp+vgBKDzRUVAIqP/AIJ2THanyZxj2b8XU/4s2uzGoTLSR3ViX0JU6zTc+IkaBp1o3W3OolvO15E10/VYJCKN3TkxPsSSGE3QReXnCcnIZYAnrPf9f1DPP1Lo+VUCIzZ7IzcZajAWQ53hC71mTYNHkUgIlWxpRyEhnsRfmqEfUSFbTwpNEarv7vGlK686C4xVxlVfKbqlNa3/g2Vrae4ArVBM958JPZ6aa+7KDZfH5TDgPPtlFCIGkd root@testclient

保存文件并重新加载SSH服务:

$ sudo service sshd reload

此时访问服务器可能不需要任何密码:

$ ssh root@

如果一切正常,通过修改文件/ etc / ssh / sshd_config禁用从服务器机器的密码访问,使用以下参数:

ChallengeResponseAuthentication no
PasswordAuthentication no

请注意,您可以添加其他公钥,只需将它们保存在服务器计算机中以~ / .ssh / authorized_keys为末尾的文件。

可用时间限制

减少不必要的访问和攻击的一种策略是缩减SSH服务的可用时间。如果确定在某些时间(例如晚上11点到第二天早上8点)不需要使用服务器,可以设置一个自动时间表来停止连接端口。
建议使用名为iptables的默认防火墙,但是请谨记,根据其性质,iptables不保存输入的配置。
为加快保存和加载配置,可以使用iptables-persistent,它将重新加载系统启动时保存的配置。
继续安装:

$ sudo apt-get install iptables-persistent

如何提高Ubuntu 18.04系统的SSH安全性?
安装完成后,输入“chain”,阻止SSH服务:

$ sudo iptables -N chain-ssh
$ sudo iptables -A INPUT -p tcp --dport 22 -j chain-ssh

通过这种方式,所有指向端口22的连接(如果您的SSH服务使用另一个端口,请根据您的自行更改该值)将通过新创建的“chain- SSH”链。
用以下命令保存当前配置(将由iptables-persistent加载):

$ sudo iptables-save > /etc/iptables/rules.v4

然后通过修改crontab,创建一个时间时间表,用于在链上输入和删除规则,具体操作如下:

$ sudo crontab -e
# m h  dom mon dow   command
0 23   * * *   iptables -A chain-ssh -j DROP
0 8    * * *   iptables -F chain-ssh

如您所见,通过第一个操作添加在11.00 pm连接的DROP规则,而第二个操作在08.00 am清空链以恢复服务。
保存文件以使更改生效。

原创文章,作者:余初云,如若转载,请注明出处:https://blog.jidcy.com/jsjc/2717.html

Like (1)
Previous 2026年5月20日 下午12:02
Next 2026年5月21日

相关推荐

  • 什么是 PostgreSQL?一款开源数据库系统

    PostgreSQL 是一款开源的对象关系型数据库系统,能安全、稳定地应对各种复杂的数据处理需求。下面就为大家介绍PostgreSQL的基本概念、常见应用场景。 什么是 Postg…

    2026年4月23日
    0
  • 浏览器缓存是什么?网页缓存配置机制推荐

    当用户访问网站时,浏览器会向网页服务器请求所需文件,这些文件会在用户屏幕上显示。为了避免反复请求相同的资源并加快加载过程,浏览器缓存将这些文件的副本存储在本地。当用户再次访问该网站…

    2026年4月11日
    0
  • 什么是 LAMP 堆栈?LAMP 用于什么?

    LAMP堆栈是一种流行的软件组合,通过开源组件来构建和交付网络应用程序。 开发人员基本都知道LAMP,因为自20世纪90年代末以来,它就一直是网络开发的常用工具。LAMP堆栈以开源…

    2026年4月29日
    0
  • 什么是 HTML5?含义、元素和优势

    HTML5 是 HTML 的第五个版本,HTML 是一种标记语言,供 Web 浏览器用于可视化代码。它在网站功能、Web 内容开发等方面进行了多项改进。本文将介绍 HTML5 的含…

    2026年4月27日
    0
  • web服务器各类状态码盘点

    我们都清楚,访问网站的过程实质上就是向web服务器发送请求消息,web服务器接收到消息之后会向我们返给相应的响应消息,有时候这类响应消息当中会附带出现一串数字,其目的正是为了告知我…

    2026年7月14日
    0
  • DDoS攻击是什么?如何进行DDoS防御防护?攻击原理手法详解

    什么是DDoS攻击?企业应如何加强针对DDoS攻击的防范?五大关键方向:建立分析与检测机制、多层架构、负载均衡处理、使用DDoS防护服务以及制定应急措施,都是必不可少的! 什么是D…

    2026年4月2日
    0
  • DNS 是什么? 为什么网站一定要有 DNS 服务器?

    今天余初云带你一次看懂 DNS 是什么、DNS 如何运作、DNS 服务器种类与必备 DNS 纪录,并教你为什么网站一定要正确设定 DNS,避免网站打不开、无法登入、API 中断等高…

    2026年3月30日
    0
  • 如何办理ICP许可证?

    一、什么是ICP许可证? 增值电信业务经营许可证B25信息服务业务(仅限互联网信息服务业务)( Internet Content Provider )简称:ICP证。是指:企业通过…

    2026年7月16日
    0
  • 选择共享虚拟主机建站好不好?

    在数字化办公普及的当下,不少企事业单位都将搭建官方网站纳入计划表,在搭建网站时,很多站长采用虚拟主机是觉得虚拟主机使用起来非常方便,但一些站长也觉得虚拟主机的性能不如云服务器。今天…

    2026年5月21日
    0
  • 深入掌握Nginx服务器

    本文介绍nginx服务器及其主要特性,首先给出了包管理器安装及编译安装两种方式,然后重点对 nginx 配置文件中的指令及参数进行详细说明,在了解 nginx 的工作方式后,从 n…

    2026年5月8日
    0