SSH セキュリティ入門: Linux で安全な接続を確立する 13 の方法
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 ディストリビューションによって異なる場合があります。リーリー
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
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
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 サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Centosとubuntuの重要な違いは次のとおりです。起源(CentosはRed Hat、for Enterprises、UbuntuはDebianに由来します。個人用のDebianに由来します)、パッケージ管理(CentosはYumを使用し、安定性に焦点を当てます。チュートリアルとドキュメント)、使用(Centosはサーバーに偏っています。Ubuntuはサーバーやデスクトップに適しています)、その他の違いにはインストールのシンプルさが含まれます(Centos is Thin)

Centosのインストール手順:ISO画像をダウンロードし、起動可能なメディアを燃やします。起動してインストールソースを選択します。言語とキーボードのレイアウトを選択します。ネットワークを構成します。ハードディスクをパーティション化します。システムクロックを設定します。ルートユーザーを作成します。ソフトウェアパッケージを選択します。インストールを開始します。インストールが完了した後、ハードディスクから再起動して起動します。

Centosは、上流の分布であるRhel 8が閉鎖されたため、2024年に閉鎖されます。このシャットダウンはCentos 8システムに影響を与え、更新を継続し続けることができません。ユーザーは移行を計画する必要があり、提案されたオプションには、Centos Stream、Almalinux、およびRocky Linuxが含まれ、システムを安全で安定させます。

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

Centosは廃止されました、代替品には次のものが含まれます。1。RockyLinux(最高の互換性)。 2。アルマリン(Centosと互換性); 3。Ubuntuサーバー(設定が必要); 4。RedHat Enterprise Linux(コマーシャルバージョン、有料ライセンス); 5。OracleLinux(CentosとRhelと互換性があります)。移行する場合、考慮事項は次のとおりです。互換性、可用性、サポート、コスト、およびコミュニティサポート。

CentOSが停止した後、ユーザーは次の手段を採用して対処できます。Almalinux、Rocky Linux、Centosストリームなどの互換性のある分布を選択します。商業分布に移行する:Red Hat Enterprise Linux、Oracle Linuxなど。 Centos 9ストリームへのアップグレード:ローリングディストリビューション、最新のテクノロジーを提供します。 Ubuntu、Debianなど、他のLinuxディストリビューションを選択します。コンテナ、仮想マシン、クラウドプラットフォームなどの他のオプションを評価します。

Dockerデスクトップの使用方法は? Dockerデスクトップは、ローカルマシンでDockerコンテナを実行するためのツールです。使用する手順には次のものがあります。1。Dockerデスクトップをインストールします。 2。Dockerデスクトップを開始します。 3。Docker Imageを作成します(DockerFileを使用); 4. Docker画像をビルド(Docker Buildを使用); 5。Dockerコンテナを実行します(Docker Runを使用)。

VSコードシステムの要件:オペレーティングシステム:オペレーティングシステム:Windows 10以降、MACOS 10.12以上、Linux Distributionプロセッサ:最小1.6 GHz、推奨2.0 GHz以上のメモリ:最小512 MB、推奨4 GB以上のストレージスペース:最低250 MB以上:その他の要件を推奨:安定ネットワーク接続、XORG/WAYLAND(Linux)
