高度なセキュアシェル:SSHでできる6つのこと
公開: 2021-10-02SSHは、サーバーへのリモートアクセスに最も人気のあるツールです。 これは、sysadminで最も誤解されているツールの1つでもあります。 非常に特殊な使用例がいくつかありますが、他にも多くの人が知らないことがあります。 この投稿では、SSHを使用して作業を楽にし、想像以上に多くの問題を解決するためにできる6つのことを取り上げます。
関連: 10の最高のPHPコードセキュリティスキャナー。
高度なセキュアシェル:SSHでできる6つのこと
1)SFTP
SFTPはSSHファイル転送プロトコルの略です。 これにより、データを移動するための好みの方法(FTP、SCP、Rsync)を使用して、ネットワーク経由でファイルを安全にコピーできます。 また、セキュリティと認証を向上させるために、パスワードではなくキーを使用します。
FTPまたはSCPがブロックされている場所でファイルを転送するのに最適ですが、SFTPはブロックされていません。 直接アクセスできないがSSHが接続している2台のマシン間で接続する必要がある場合にも、これを使用できます。
FileZillaを使用することをお勧めします。これには、SSHのユーザー名、ポート、およびアドレスを入力することが含まれます。 次に、「sftp [電子メール保護]」と入力するだけでSFTPを使用します。 これを行うと、端末内で対話してファイルをダウンロード/アップロードしたり、ディレクトリを参照したりすることができます。
2)接続を維持します
接続が切断されないようにすることは常に重要です。 幸い、3つのディレクティブを使用することで、SSHセッションが途中で終了するのを防ぐことができます。
TCPKeepAlive引数は、接続を開いたままにするかどうかを決定します。 このオプションを有効にすると、クライアントは、接続しているサーバーとのネットワークリンクを維持するために、常にデータパケットを送信します。
ClientAliveIntervalは、システムがネットワークを介してトラフィックを送信する頻度を指定します。 ClientAliveCountMaxは、未応答のメッセージの数がこのセッションの終了につながるかどうかを指定するため、別の試行を行うことができます。
ServerAliveIntervalはClientAliveIntervalと同じですが、もう一方の端で設定されます。 これは、クライアントがまだ接続されていることを確認するためにデータを送信する前にクライアントが待機する時間を指定します。
これら3つを一緒に使用することで、別のセッションが確立されるまでトラフィックを停止できるようにしながら、SSHセッションがタイムアウトするのを防ぐことができます。 また、ネットワークリンクのダウンを検討する前に、サーバーまたはクライアントに障害が発生する回数を指示することもできます。
3)SSHエージェント
SSH Agentは、SSHキーの管理を支援するプログラムです。 秘密鍵をメモリにロードする簡単な方法を提供するため、毎回パスワードを入力する必要はありません。
エージェントとのセッションを開始すると、SSH接続を必要とするすべてのウィンドウとアプリケーションに秘密鍵へのアクセスが自動的に許可されます。 すぐに始めるために、このプロセスのパスフレーズを1つだけ作成しました。
接続されたホストから別のホストに同じクレデンシャルを使用するために、エージェントを転送できます。 ただし、これらの資格情報はエージェントによって保存されるため、ハッキングのリスクが高まります。 したがって、信頼できるマシン以外にエージェントを転送することはお勧めしません。
4)ローカルポートフォワーディングを介したトンネリング
SSHのユースケースの1つは、トンネリングです。 これは、暗号化された接続内のアプリケーショントラフィックを保護し、安全でないデータが接続外に送信されないようにするために使用できます。

サーバ
/ etc / ssh / sshd_configにあるsshd構成ファイルには、サーバー側で行う必要のあるすべての変更が含まれています。
変更を加えるには、最初に元の行を先頭に#でコメントアウトします。 また、必要に応じて行を複製し、コメントを外すのではなく編集して、一度に多くのことを行わなくても、変更が必要なものを簡単に確認できるようにすることもできます。
ポートフォワーディングが正しく機能するには、「AllowTcpForwardingyes」と入力してTCPを許可する必要があります。
サーバー構成ファイルに変更を加えた場合は、sshサービスをリロードします。 これは、「servicesshreload」を使用して実行できます。
クライアント
SSHトンネルを使用して、別のマシンでのみ実行できる1つのデータベースでクエリを実行する必要がある場合など、多くの優れたアクションを実行できます。 これにより、代わりに他のマシンを介して接続をトンネリングできます。
5)X11転送
SSH接続を使用してX11パケットを転送し、リモートコンピューターのデスクトップ環境がローカルマシンに表示されるようにすることができます。 これは、特定のプログラムにGUIを使用するときに時間を節約するのに最適です。
前提条件
xauthのインストールは、サーバーにX11転送を実装するための最初のステップです。 テストする場合は、続行する前にxclockもインストールされていることを確認してください。
サーバ
最初のステップは、X11Forwardingが/ etc / ssh / sshd_configで「X11Forwarding」を検索できるようにしてから、「yes」に設定することです。
クライアント
サーバーからクライアントマシンへのX11転送が設定されており、「xclock」と入力するとデスクトップに時計が表示されるはずです。
6)ProxyJump
多くの人がSSHを使用して要塞(最初のジャンプホスト)に接続してから、他のデバイスにジャンプします。 要塞は最初のジャンプホストです。
技術に精通していない人が簡単に利用できるようにするには、ProxyJumpが最適なソリューションになる可能性があります。 ジャンプホストを使用してサーバーにアクセスするのが簡単になり、公開されたくないサーバーにハッキングしようとした場合に備えて、セキュリティの追加レイヤーを提供することもできます。
ネットワークの両側に1つずつ、合計2つのルーターを使用するホームユーザーであるとします。 この使用例の1つは、要塞ゲートウェイとして機能する追加のマシン、またはこれらのデバイスの前にVPNサーバーを配置して、ルーターのIPアドレスを介してアクセスしなくても他のコンピューターにアクセスできるようにすることです。
これは、プライベート接続を管理しながら、必要に応じて自宅からOpenVPNクライアントなどのさまざまなサービスを起動できる場合に便利です。
結論
結論として、SSHでできることはたくさんあります。 これには、セッションのタイムアウトの防止、サーバーを介したデータのトンネリング、別のマシンのGUIに表示するためのX11パケットの転送などが含まれます。
独自のコードのセキュリティ監査を実行する方法の基本を学びたい場合は、ブログ記事へのリンクをチェックして、独自のコードを安全に保つ方法を学んでください。
関連: cPanel / WHMのセキュリティを向上させるための25のヒント。
