技術共有

クラウド コンピューティング [フェーズ 1 (29)] リモート アクセスと制御

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. SSHリモート管理

1.1. ssh (セキュアシェル) プロトコル

  • セキュアチャネルプロトコルです
  • 遠隔管理機能では通信データが暗号化されます
  • SSH プロトコルは、ユーザーがログインするときに入力したユーザー パスワードを含む、通信当事者間のデータ送信を暗号化します。
  • アプリケーション層とトランスポート層に基づくセキュリティ プロトコル。
  • SSH クライアント<--------------------------------->SSH サーバー
    データ送信は暗号化され、情報漏洩を防ぎます
    データ転送が圧縮されるため、転送速度が向上します

1.2、openssh

サービス名:sshd
サーバーメインプログラム: /usr/sbin/sshd
サーバー設定ファイル: /etc/ssh/sshd config

SSH クライアント: Putty、Xshell、CRT、MobaXterm、FinalShell
SSHサーバー: OpenSSH

SSH サーバー: デフォルトでは TCP ポート 22 が使用され、セキュリティ プロトコルのバージョンは 2 に加えて 1 (抜け穴あり) もあります。

ssh サーバーには、主に ssh リモート リンクと sftp サービスの 2 つのサービス機能が含まれています。

機能: SSHD サービスは、SSH プロトコルを使用して、コンピューター間でリモート制御やファイル転送を実行します。
Telnet は平文通信を使用し、SSH は暗号化通信を使用するため、以前の Telnet を使用したファイル転送に比べて、はるかに安全です。

OpenSSH は、SSH プロトコルを実装するオープン ソース ソフトウェア プロジェクトであり、さまざまな UNIX および Linux オペレーティング システムに適しています。 Centos 7 システムには、openssh 関連のソフトウェア パッケージがデフォルトでインストールされており、起動時に自動的に開始されるように sshd サービスが追加されています。

[ただし、バージョン 7 には問題と脆弱性があり、最新バージョンは 9.8 です。]

バージョンを表示:ssh -V


「systemctl start sshd」コマンドを実行してsshdサービスを開始します。

ssh_config と sshd_config は両方とも ssh サーバーの構成ファイルです。この 2 つの違いは、前者がクライアント用の構成ファイルであり、後者がサーバー用の構成ファイルであることです。

SSH は基本的に Linux システムをリモート管理するために使用されます。その理由は非常に単純です。Telnet や FTP などの送信方法はユーザー認証情報をクリア テキストで送信するため、本質的に安全ではなく、ネットワーク盗聴の危険性があります。 現在、SSH (Secure Shell) の信頼性が向上しています。
リモート ログイン セッションやその他のネットワーク サービスにセキュリティを提供するために設計されたプロトコルです。 SSHプロトコルを使用すると、リモート管理時の情報漏洩を効果的に防止でき、SSH経由で送信されるデータはすべて暗号化され、DNSスプーフィングやIPスプーフィングも防止できます。
 

1.3. SSHリモートログイン方法

1.3.1. ログイン方法 1
ssh [リモート ホストのユーザー名] @[リモート サーバーのホスト名または IP アドレス] -p port

ユーザー名を使用したい場合lisiIP アドレスに関連付けられた ID は、192.168.1.100サーバー、およびサーバーの SSH サービスはポート上で実行されます。22、次のコマンドを使用する必要があります。

当在 Linux 主机上远程连接另一台 Linux 主机时,如当前所登录的用户是 root 的话,当连接另一台主机时也是用 root 用户登录时,可以直接使用 ssh   IP,端口默认即可,如果端口不是默认的情况下,需要使用-p 指定端口。

添付

ホストマッピング

1.3.2. ログイン方法2
ssh -l [リモートホストのユーザー名] [リモートサーバーのホスト名またはIPアドレス] -p port
-l: -l オプション、ログイン名を指定します。
-p: -p オプション、ログイン ポートを指定します (サーバー ポートがデフォルトでない場合は、-p を使用してログインするポートを指定する必要があります)

(あまり使われない)

公開鍵に関する問い合わせ

クライアントでのクエリ

サーバーは独自の公開キーを照会します

注: サーバーに初めてログインするとき、システムはリモート ホストの情報を保存しません。ホストの ID を確認するために、ユーザーは接続を続行するかどうかを尋ねられます。この時点で、システムはリモート サーバー情報をユーザーのホーム ディレクトリの $HOME に書き込みます。次回ログインするときは、ホスト情報が保存されるため、再度プロンプトが表示されることはありません。 。

OpenSSH は、次回同じコンピュータにアクセスするときに公開キーをチェックします。公開キーが異なる場合、OpenSSH は DNS ハイジャックなどの攻撃から保護するために警告を発行します。
解決
1. SSH 経由でリモート ホストにログインする場合は、次のように「-o StrictHostKeyChecking=no」オプションを追加します。

ssh -o 厳格なホストキーチェック=no 192.168.xxx.xxx

2. このプロンプトを完全に削除する方法は、/etc/ssh/ssh_config ファイル (または $HOME/.ssh/config) の構成を変更し、次の 2 行の構成を追加することです。
StrictHostKeyChecking いいえ
ユーザー既知のホストファイル /dev/null

でも追加しないほうがいいよ

2. サービスの構成と管理

一般的な構成サーバー

vim /etc/ssh/sshd_config

他の人が暴力的にポートをクラッキングしないように、ポートを変更する必要があります。

ListenAddress は、SSHD サーバーにバインドされた IP アドレスを設定します。0.0.0.0 は、すべてのアドレスをリッスンすることを意味します
セキュリティに関する提案: ホストがパブリック ネットワークからの SSH アクセスを必要としない場合は、リスニング アドレスを内部ネットワーク アドレスに変更できます。この値は、ローカル IP アドレスまたはすべてのアドレスとして書き込むことができます。つまり、0.0.0.0 はすべてを表します。 IP。

誰かが SSH を使用してシステムにログインすると、SSH は情報を記録します。記録される情報のタイプは、/var/log/secure に保存されます。

一般に、クライアントの送信元が正常で正当なものであるかどうかを判断するために、DNS を使用してクライアントのホスト名を確認します。ただし、通常、イントラネット内で相互接続する場合、このベースは no に設定されているため、接続速度は低下します。より速くなります。
注: サーバーの応答速度を向上させるには、DNS 逆解決を無効にします。

いくつかのセキュリティ構成とセキュリティ調整に加えて

ルートログイン許可 root ログインを許可するかどうかは、デフォルトで許可されていますが、no に設定することをお勧めします。実際の運用環境サーバーでは、root アカウントが直接ログインすることはできません。では、一般ユーザーのみがログインを許可されます。root ユーザーを使用してから root ユーザーに切り替える必要があります。

パスワード認証 はい
もちろんパスワードの検証は必要なので、ここで「はい」と記入することも、実際の運用サーバーでは、さまざまなセキュリティ レベルの要件に応じて、一部の設定ではパスワード ログインが不要であり、認証を通じてログインできます。鍵。

空のパスワードを許可する いいえ
空のパスワードを使用したユーザーのログインを許可するかどうか。デフォルトでは、空のパスワードを使用したログインは許可されません。

最終ログを印刷する はい
最終ログイン情報を表示!デフォルトは「はい」です

最大認証試行回数 6
接続ごとに許可される認証の最大数を指定します。デフォルト値は 6 です。
失敗した認証の数がこの値の半分を超えると、接続は強制的に切断され、追加の失敗ログ メッセージが生成されます。
デフォルト 3 回

pamモジュールを有効にする

コメント

白黒リスト

許可ユーザー
特定のユーザーのみのログインを許可または禁止したい場合は、AllowUsers または DenyUsers 構成を使用できます。この 2 つの使用法は似ています (同時に使用しないように注意してください)。
構成許可ユーザー
たとえば、ユーザー zhangsan と wangwu のみが他の (lisi) ユーザーにログインできる場合

に追加
AllowUsers [email protected] wangwu

3. キーを使用してログインします

3つのステップに分かれています:

クライアントは Xshell クライアントでキー (公開キーと秘密キー) を生成します。

公開キーを Linux サーバーの ~/.ssh/authorized_key ファイルに配置します。

キーを使用してログインするように ssh クライアント (Xshell クライアント) を構成する

3.1. xshell でのキーログイン

1. まず、xshell ツールで公開キーを生成します。

2048 の長さを調整し、次のステップを実行するだけで、名前とパスワードを設定できます。

生成が完了すると公開キーが生成されるので保存します。

pubで終わるファイル

次に、Linux マシンを開きます

~/.shh ディレクトリに切り替えます (初回はパスワードなしで ssh する必要があります。そうしないと、.shh ファイルが存在しない可能性があります)。

公開鍵をアップロードする

もちろん、標準名authorized_keysに変更する必要もあります。

秘密キーのバックアップを生成する

パスワード不要のログイン

ログイン成功

3.1.1. キーを使用したログインのプロセス

3.2. Linux でキーログインを生成する

踏み台を用意する

ssh-keygen コマンドの「-t」オプションは、公開鍵と秘密鍵を生成するアルゴリズムのタイプを指定するために使用されます。

sshコピーID [email protected]

使用ssh-copy-id道具: これにより、公開キーのコピー プロセスが自動的に処理されます。このコマンドは、公開キーのコピーを自動的に処理します。id_rsa.pub公開キーの内容がリモート サーバーに追加されます~/.ssh/authorized_keysファイル内にあります。

 パスワードを入力する: この方法でリモート サーバーに接続するのは初めてであるため、リモート root ユーザーのパスワードの入力を求められる場合があります。

Springboard 経由でログイン 79 19

SSH ルート@192.168.88.19

権限の変更

vim /etc/ssh/sshd_config

17、43、65行目

sshdサービスを再起動します

もう一度やり直してください

ポートの指定、成功

4. Linux サーバーを openssh9.8 の最新バージョンにアップグレードします。

コンテンツはファイル リソースに移行されます

DSA 署名アルゴリズムはデフォルトで無効になっています

ファイルの準備

openssh公式ウェブサイトOpenSSH: リリースノート

openssh9.8p1 では openssl のバージョンが 1.1.1 以上である必要があるため、openssl をアップグレードしてインストールする必要があります。

公式ウェブサイトOpenSSL 1.1.1v をリリース · openssl/openssl · GitHub