LinuxですべてのアクティブなSSH接続を表示する方法
SSHは、ローカルマシンからリモートホストにログインして管理できるようにする、一般的で効果的なプロトコルです。このガイドでは、リモートホストでアクティブなSSH接続を確認するために使用できるさまざまなコマンドについて説明します。
注: システム構成によっては、これから説明するコマンドの中には、rootまたはsudo
が必要な場合があります。 特権。
1。 WHOコマンドの使用
アクティブなSSH接続を表示するために使用できる最初のコマンドは、who
です。 コマンド。
who
コマンドは、現在システムにログインしているユーザーを表示するために使用されます。接続されているユーザーと送信元IPアドレスを表示できます。
who
を使用するには コマンド、単にwho
と入力します パラメータなし。
上記の出力では、リモートIPアドレスからttyと2つのSSHセッションを介して接続された1人のDebianユーザーを見ることができます。
who
にパラメータを追加することもできます 詳細情報を表示するコマンド。
たとえば、接続しているユーザーの最後の起動を表示するには、-b -u
を追加します フラグ:
who -b -u
who
コマンドは、カスタマイズされた結果を取得するためのより多くのオプションを提供します。詳細については、マニュアルページを確認してください。
2。 Wコマンドの使用
サーバーに接続しているさまざまなSSHセッションとユーザーのステータスを表示するために使用できる次のコマンドはw
です。 指図。 who
とは異なり コマンド、w
コマンドは、各ユーザーの実行中のプロセスに関する詳細情報を提供します。
さらに、w
コマンドはアイドル状態のSSH接続に関する情報を提供します。これは、SSH接続を終了する必要がある場合に非常に役立ちます。
他のオプションを指定せずにコマンドを実行すると、次のような出力が得られます。
上記の例では、w
コマンドは、ユーザー名、TTYメソッド、送信元IPアドレス、ログイン時間、アイドル時間などの詳細情報を提供します。
who
のように コマンドでは、w
を使用することもできます さまざまなパラメータを使用したコマンド。次の表は、w
で使用できるさまざまなパラメータを示しています。 コマンド。
パラメータ | それが何をするか |
---|---|
-h、–no-header | ヘッダーを印刷しないように端末に通知します |
-u、–no-current | 接続されているユーザーのプロセスとCPU時間を表示するため、ユーザー名を無視するように端末に指示します |
-s、–short | ログイン時間、JCPU、PCPUを除く短縮された出力を出力するように端末に指示します |
-f、–from | 印刷出力のFROMオプションを有効/無効にします |
–ヘルプ | さまざまなwコマンドオプション/パラメータを表示して終了します |
-v、–version | バージョンと終了に関する情報を表示します |
ユーザー | 結果を指定したユーザーに絞り込みます |
以下の例は、w
を示しています -s
で使用されるコマンド および-f
FROM部分が切り捨てられた現在のSSHセッションの要約出力を表示するパラメーター。
めったに使用されませんが、w
を使用することもできます 環境パラメータとファイルパラメータを使用したコマンド。これらのパラメータの詳細については、マニュアルページを検討してください。
3。最後のコマンドの使用
last
を使用することもできます 接続されているすべてのSSHセッションを表示するコマンド。最後のコマンドは、最後にログインしたユーザーのリストを表示します。
指定されたファイルをチェックすることで動作します。たとえば、「/ var / log / wtmp」には、ファイルの作成以降にログインおよびログアウトしたすべてのユーザーが表示されます。このコマンドは、クライアントとサーバー間で作成されたSSHセッションに関する情報も提供します。
最後のコマンドの一般的な構文は次のとおりです。
last
これが例です。
最後のコマンドからの出力は大量であるため、grep
を使用できます。 アクティブなセッションのみを表示するコマンド。
例:
last | grep still
最後のコマンドからの出力を変更して、詳細情報を表示することもできます。
たとえば、完全なユーザー名とドメインを表示するには、-w
を使用できます。 フラグ。
last -w
最後のコマンドは多数のオプションをサポートしています。最後のコマンドで最も一般的に使用されるオプションは次のとおりです。
パラメータ | それが何をするか |
---|---|
-a、–hostlast | 最後の列にホスト名を表示します |
-d、–dns | Linuxは、すべてのリモートホストのホスト名とIPアドレスを保存します。このパラメータは、IPをホスト名に変換します |
-ファイル、–ファイル | / var / log/wtmp以外の指定されたファイルを使用するように最後のコマンドに通知します |
-F、–fulltimes | すべてのログインとログアウトの日時を印刷するための最後のプロンプト |
-i、–ip | –dnsと同様ですが、ホストのホスト名を表示する代わりに、IP番号を表示する点が異なります |
4。 netstatコマンドの使用
netstat
を忘れることはできません 指図。 Netstatは、すべてのネットワーク接続、ネットワークインターフェイス、ルーティングテーブルなどを表示するために使用されます。
netstatコマンドを使用して、Linuxサーバーで確立または接続されたSSHセッションをフィルタリングすることもできます。
netstat | grep ssh
上記のコマンドは、確立されたSSH接続のみを表示します。
リスニングと非リスニングを含むすべての接続を表示するには、-a
を使用できます フラグを立てる:
nestat -a | grep ssh
5。 ssコマンドの使用
接続されたSSHセッションの詳細については、ss
を使用できます。 コマンド。ソケットデータを表示し、netstat
に似ています。 。
たとえば、ss
からの出力をgrepできます。 -a
を使用したコマンド オプション(すべて)を使用して、接続されているすべてのSSHセッションを表示します。その構文は次のとおりです。
ss -a | grep ssh
上記の出力には、リモートホスト上のすべてのSSH接続が表示されます。これにはSSHDデーモンが含まれます。
確立されたSSH接続をフィルタリングするために、出力をgrepにパイプで戻すことができます。
ss -a | grep ssh | grep ESTAB
上記のコマンドは、アクティブなSSH接続のみを返します。
ss
コマンドには、アクティブなサーバー接続に関するさまざまなことを学習するために使用できる他のオプションもたくさんあります。たとえば、-e
を使用できます ソケット情報の詳細を表示するフラグ。
まとめ
不正なSSHログインがないかリモートホストを監視し続け、サーバーの保護やパスワード認証の無効化などの必要なアクションを実行することをお勧めします。一方、リバースSSHトンネリングを使用して、PCへの外部接続を許可することもできます。
-
Linuxホームサーバーを保護する方法
ホームサーバーを設定する理由はたくさんあります。メディアサーバー、ファイルサーバー、またはローカルバックアップサーバーとしても使用できます。基本的に、オンラインである必要のないファイルは、ホームサーバーの候補として適しています。 Linuxを搭載したホームサーバーのセットアップは、特に最近では比較的簡単です。そうは言っても、そのサーバーを安全に保つことはまったく別の話です。セキュリティは重要であると同時に、注意が必要な場合もあります。 絶対に必要なものだけをインストールする ホームサーバーを安全に保つ最も簡単な方法の1つは、最初からセキュリティを念頭に置くことです。これはインストールから始ま
-
Linuxでssコマンドを使用してネットワーク接続を監視する方法
Linuxを使用している場合は、ネットワークについてもっと知る必要がある時期が来るでしょう。これを行うのに役立つツールがいくつかあり、一部のツールは他のツールよりも複雑です。 ss コマンドは多くのマシンにインストールされていると信頼できるものなので、知っておくと便利です。 ssコマンドとは何ですか? 2文字のコマンドの名前は難解に見えるかもしれませんが、実際には非常に単純です。多くのLinux/Unixコマンドと同様に、名前はコマンドの機能の省略形です。ここで、ssはSocketStatisticsの略です。 Socket Statisticsは、古いnetstatに代わるものです。