GNU/Linux >> Linux の 問題 >  >> Ubuntu

LinuxでSSHサービスを保護するためにポートノッキングを使用する方法

ポートノッキング は、サーバー上で実行されているサービスへの正当なユーザーのアクセスのみを許可することにより、ポートへのアクセスを制御する優れた手法です。これは、正しい接続試行のシーケンスが行われると、ファイアウォールが閉じられたポートを喜んで開くように機能します。

ポートノッキングの背後にあるロジックは、開いているポートをうろつく自動ポートスキャナーからLinuxシステムを保護することです。このガイドでは、ポートノッキングをインストールする方法と、SSHサービスを保護するためにポートノッキングを構成する方法について説明します。デモンストレーションの目的で、 Ubuntu 18.04を使用します 。

ステップ1:ノックされたものをインストールして構成する

開始するには、Linuxシステムにログインし、ノックドをインストールします 示されているデーモン。

$ sudo apt install knockd

インストールしたら、 knockd.confを開きます お好みのテキストエディタで設定します。ここでは、vimコマンドラインテキストエディタを使用しています。

$ sudo vim /etc/knockd.conf

デフォルトの構成ファイルは次のように表示されます。

[openSSH]の下 セクションでは、デフォルトのノッキングシーケンスを変更する必要があります– 7000,8000,9000 –他の何かに。これは、これらの値がすでにわかっており、システムのセキュリティを危険にさらす可能性があるためです。

テストの目的で、値を 10005、10006、10007に設定しました 。これは、クライアントシステムからSSHポートを開くために使用されるシーケンスです。

3行目–コマンドで始まります 、-Aを変更します to -I /sbin/iptablesの直後 コマンドおよびINPUTの前 。

そして最後に、[closeSSH]の下で セクションでも、デフォルトのシーケンスを好みの選択に変更します。これは、ユーザーが完了してサーバーからログアウトしたときにSSH接続を閉じるために使用されるシーケンスです。

これが完全な構成です。

完了したら、変更を保存して終了します。

変更する必要があるもう1つの構成は、 / etc / default / knockdです。 。もう一度、テキストエディタを使用して開きます。

$ sudo vim /etc/default/knockd

START_KNOCKD=0という行を見つけます 。コメントを外し、値を1に設定します 。

次に、KNOCKD_OPTS=”-i eth1”の行に移動します。 コメントを外して、デフォルトのeth1を置き換えます システムのアクティブなネットワークインターフェイスの値。ネットワークインターフェイスを確認するには、ipaddrまたはifconfigコマンドを実行するだけです。

私たちのシステムでは、 enp0s3 アクティブなネットワークカードです。

完全な構成は次のとおりです。

変更を保存して終了します。

次に、ノックを開始して有効にします 示されているデーモン。

$ sudo systemctl start knockd
$ sudo systemctl enable knockd

ノックのステータスを確認するには デーモン、コマンドを実行します:

$ sudo systemctl status knockd

ステップ2:ファイアウォールのSSHポート22を閉じる

ノックの目的以来 サービスはsshサービスへのアクセスを許可または拒否することであり、ファイアウォールのsshポートを閉じます。ただし、最初に、UFWファイアウォールのステータスを確認しましょう。

$ sudo ufw status numbered

出力から、 SSHであることがはっきりとわかります。 ポート22 両方のIPv4で開いています およびIPv6 5の番号が付けられたプロトコル および9 それぞれ。

示されているように、これら2つのルールを、最も高い値( 9 )から削除する必要があります。 。

$ sudo ufw delete 9
$ sudo ufw delete 5

これで、サーバーにリモートでログインしようとすると、次のような接続タイムアウトエラーが発生します。

ステップ3:SSHサーバーに接続するようにノッククライアントを構成する

最後のステップでは、クライアントを構成し、最初にサーバーで構成したノックシーケンスを送信してログインを試みます。

ただし、最初に knockdをインストールします サーバーで行ったのと同じようにデーモン。

$ sudo apt install knockd

インストールが完了したら、示されている構文を使用してノックシーケンスを送信します

$ knock -v server_ip knock_sequence

私たちの場合、これは次のように解釈されます:

$ knock -v 192.168.2.105 10005 10006 10007

シーケンスに応じて、私たちが持っているものと同様の出力が得られるはずです。これは、ノックの試みが成功したことを示しています。

この時点で、SSHを使用してサーバーに正常にログインできる状態になっているはずです。

リモートサーバーでの作業が完了したら、終了ノックシーケンスを送信してSSHポートを閉じます。

$ knock -v 192.168.2.105 10007 10006 10005

示されているように、サーバーにログインしようとすると失敗します。

まとめ

これで、ポートノッキングを活用してサーバー上のSSHサービスを保護する方法についてこのガイドを締めくくります。より適切で簡単なアプローチは、SSHキーペアを使用してパスワードSSH認証を構成することです。これにより、秘密鍵を持つユーザーのみが、公開鍵が保存されているサーバーで認証できるようになります。


Ubuntu
  1. Kali LinuxにSSH(セキュアシェル)サービスをインストールする方法

  2. LinuxでSSHポートを変更する方法

  3. Lubuntu20.04LinuxでSSHポートを変更する方法

  1. CentOS7でSSHを保護するためにFail2banを使用する方法

  2. Chromecastの使い方は?

  3. Linux の特定のポートで netstat を使用する方法

  1. LinuxにNmapネットワークスキャナーをインストールして使用する方法

  2. SSHポートフォワーディングの使用方法

  3. ポートノッキングでSSHサービスを保護する方法