ホームページ  >  記事  >  システムチュートリアル  >  SSH セキュリティ入門: Linux で安全な接続を確立する 13 の方法

SSH セキュリティ入門: Linux で安全な接続を確立する 13 の方法

PHPz
PHPz転載
2024-02-11 10:54:161074ブラウズ

SSH は、Linux サーバーにリモートでログインして管理するために使用されるプロトコルで、データ送信を暗号化し、中間者攻撃や盗聴を防ぐことができます。ただし、SSH 自体も、ブルート フォース パスワード クラッキング、ポート スキャン、セッション ハイジャックなどのセキュリティ上の脅威に直面する可能性があります。したがって、SSH サーバー接続を保護し、セキュリティと信頼性を向上させるためにいくつかの対策を講じる必要があります。この記事では、デフォルト ポートの変更、root ログインの無効化、キー認証の使用、ログイン試行の制限、ファイアウォールの使用、2 要素認証の使用など、Linux で安全な SSH 接続を確立する 13 の方法を紹介します。

1. root ユーザーのログインを無効にする

まず、root ユーザーの SSH アクセスを無効にし、root 権限を持つ新しいユーザーを作成します。 root ユーザーのサーバー アクセスをオフにすることは、攻撃者がシステムにアクセスできないようにする防御戦略です。たとえば、次のように exampleroot という名前のユーザーを作成できます。 リーリー

以下は上記のコマンドの簡単な説明です:

useradd コマンドは、新しいユーザーの作成に使用されます。-m パラメーターは、作成されたユーザーのフォルダーをホーム ディレクトリに作成します。

passwd コマンドは、新しいユーザーにパスワードを割り当てるために使用されます。ユーザーに割り当てるパスワードは、複雑で推測しにくいパスワードにする必要があることに注意してください。

usermod -aG sudo は、新しく作成されたユーザーを管理者グループに追加します。

ユーザーを作成した後、sshd_config ファイルにいくつかの変更を加える必要があります。このファイルは /etc/ssh/sshd_config にあります。任意のテキスト エディタを使用してファイルを開き、次の変更を加えます:

リーリー

SSH セキュリティ入門: Linux で安全な接続を確立する 13 の方法

PermitRootLogin パラメータにより、root ユーザーが SSH を使用してリモート アクセスを取得できなくなります。 Exampleroot をAllowUsers リストに含めると、ユーザーに必要な権限が与えられます。

最後に、次のコマンドを使用して SSH サービスを再起動します:

リーリー

失敗してエラー メッセージが表示された場合は、以下のコマンドを試してください。これは、使用している Linux ディストリビューションによって異なる場合があります。

リーリー

2. デフォルトの SSH ポートを変更します

デフォルトの SSH 接続ポートは 22 です。もちろん、すべての攻撃者はこれを知っているため、SSH セキュリティを確保するためにデフォルトのポート番号を変更する必要があります。攻撃者は Nmap スキャンを使用して新しいポート番号を簡単に見つけることができますが、ここでの目的は攻撃者の仕事をより困難にすることです。

ポート番号を変更するには、/etc/ssh/sshd_config を開き、ファイルに次の変更を加えます。 リーリー

この手順を完了したら、sudo systemctl restart ssh コマンドを再度使用して SSH サービスを再起動します。これで、定義したポートを使用してサーバーにアクセスできるようになります。

ファイアウォールを使用している場合は、ファイアウォールで必要なルールの変更を行う必要があります。 netstat -tlpn コマンドを実行すると、SSH のポート番号が変更されたことがわかります。

3. 空のパスワードでのログインは禁止されています 誤って作成した、パスワードのないユーザーがシステム上に存在する可能性があります。このようなユーザーがサーバーにアクセスできないようにするには、sshd_config ファイルの PermitEmptyPasswords 行の値を no に設定します。

リーリー

4. ログイン/アクセスの試行回数を制限する デフォルトでは、サーバーへのアクセスに何回でもパスワードを試行できます。ただし、攻撃者はこの脆弱性を悪用してサーバーにブルート フォース攻撃を行う可能性があります。

sshd_config ファイルで許可されるパスワード試行回数を指定することで、SSH 接続を自動的に終了できます。

これを行うには、MaxAuthTries 値を変更します。

MaxAuthTries 3

5、使用SSH Version 2

SSH Version 2 的发布是因为第一版存在许多漏洞。默认情况下,您可以通过将 Protocol 参数添加到您的 sshd_config 文件中来启用使用SSH Version 2。

这样,您所有未来的连接都将使用 SSH2。

Include /etc/ssh/sshd_config.d/*.conf

Protocol 2

SSH セキュリティ入門: Linux で安全な接続を確立する 13 の方法

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

攻击者可以通过SSH连接进行端口转发,尝试获取访问您其他系统的权限。为了防止这种情况发生,您可以在sshd_config文件中关闭AllowTcpForwarding和X11Forwarding功能。

X11Forwarding no 
AllowTcpForwarding no

7、使用SSH密钥连接

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

创建SSH密钥时,有两个密钥:公钥和私钥。公钥上传到您要连接的服务器,私钥存储在使用该密钥进行连接的计算机上。

在计算机上使用ssh-keygen命令创建SSH密钥。不要留空Passphrase字段,并记住您在此输入的密码。

如果您留空该字段,则只能通过SSH密钥文件进行访问。但是,如果设置了密码,您可以防止拥有密钥文件的攻击者访问它。

例如,您可以使用以下命令创建SSH密钥:

ssh-keygen

8、SSH连接的IP限制

大多数情况下,防火墙使用其标准框架阻止访问并旨在保护服务器。但是,这并不总是足够的,您需要增加此安全性潜力。

要做到这一点,请打开/etc/hosts.allow文件。通过在此文件中进行添加,您可以限制SSH权限,允许特定IP块或输入单个IP并使用拒绝命令阻止所有其余IP地址。

下面是一些示例设置。完成这些操作后,像往常一样重新启动SSH服务以保存更改。

IP-Restriction-for-SSH-Connection-1

SSH セキュリティ入門: Linux で安全な接続を確立する 13 の方法

9、有选择地允许用户和组访问

您可以配置sshd配置文件以有选择地允许或禁止用户和组从SSH登录到您的服务器。默认情况下,所有用户和组都允许访问。当您管理不应由除那些具有适当权限的人以外的任何人访问的生产服务器时,这是一种安全风险。

以下是您需要添加以允许/拒绝用户和组访问SSH的行:

AllowUsers: username sshuser@ip:port
AllowGroups: groupname
DenyUsers: username1 username2 sshuser@ip:port
DenyGroups: groupname

10、设置空闲超时时间间隔

如果一个受信任的用户离开他们的桌面未经注销,那么拥有他们电脑访问权限的对手可以利用这一点,在缺席或不活动的受信任用户的情况下对服务器进行恶意操作。

抵御这种情况的最简单方法是设置一个空闲超时时间间隔。在定义的一段不活动时间后,服务器将终止与用户的SSH连接,以防止在缺席或不活动的情况下未经授权的访问。

以下是您需要添加到ssh配置文件中以开启此设置的行:

ClientAliveInterval 120

根据配置文件中发出的命令,经过120秒的不活动时间后,连接将被终止。您可以更改数字以适应自己的喜好。

12、添加 Banner 警告语言

虽然这不是一种主动的安全措施,但添加 Banner 警告语言可以是一种有用的心理策略,用于防止不受欢迎的访客,并在他们试图以恶意意图连接到您的服务器时使对手处于不利位置。

要添加自定义 Banner 警告语言,请首先仔细准备横幅的文本或从互联网上抓取一个通用的文本文件,然后将以下行添加到您的配置文件中:

Banner /path/to/banner/banner.txt

12、强制使用强大的MAC算法

在SSH的上下文中,MAC代表消息认证码。MAC是一种加密算法,用于验证和确认客户端与服务器之间的数据传输。

设置强大的MAC算法非常重要,以确保数据的完整性和保密性,这是网络安全的两个关键支柱。以下是您需要在配置文件中添加的行:

Banner /path/to/banner/banner.txt

13、将LogLevel设置为监视SSH活动

您可以监视SSH活动的不同详细程度。默认情况下,此功能可能已关闭。建议您打开此功能,并将其设置为基本日志记录级别 – INFO,该级别仅记录用户的错误、消息、密钥验证、登录和注销活动。

如果您愿意,可以将其更改为更详细的级别,例如VERBOSE或DEBUG。以下是您需要在sshd配置文件中添加的行:

LogLevel INFO

现在,您的SSH服务器将生成基本日志数据,您可以通过导航到并读取基于Debian / Ubuntu的机器上的/var/log/auth.log*文件和基于RHEL / CentOS / Fedora的机器上的/var/log/secure文件来阅读此日志数据。

您可以查看整个日志文件并导航到带有sshd的部分,或者使用grep命令过滤内容并仅阅读sshd日志。

Linux 服务器安全的重要性

通过本文的介绍,我们学习了在Linux上建立SSH安全连接的13种方法,它们可以帮助我们防止一些常见的SSH攻击和漏洞,提高我们的服务器安全性和可信度。当然,这些方法并不是全部,还有一些其他的技巧和工具可以用来增强SSH的安全性,比如使用SSH代理、隧道、跳板等。我们建议你根据自己的实际情况和需求,选择合适的方法来保护你的SSH服务器连接。希望你喜欢这篇文章,并享受你的SSH体验。

以上がSSH セキュリティ入門: Linux で安全な接続を確立する 13 の方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlxlinux.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。