Ubuntu 18.04でポートノッキングシーケンスを使用してSSHをさらに保護する方法

前書き

SSHのデフォルトポートを変更し、認証にキーペアを使用するほかに、ポートノッキングを使用して、SSHサーバーをさらにセキュリティで保護する(より正確には、あいまいにする)ことができます。SSHネットワークポートへの接続を拒否することで機能します。これにより、事前定義されたポートに対して一連の接続試行が行われるまで、SSHサーバーを実行しているという事実が本質的に隠されます。非常に安全で実装が簡単なポートノッキングは、悪意のあるSSH接続の試行からサーバーを保護するための最良の方法の1つです。

前提条件

  • Ubuntu 18.04を実行するVultrサーバー。
  • Sudoアクセス。

以下の手順を実行する前に、rootユーザーとしてログインしていない場合は、実行sudo -iしてパスワードを入力し、一時的なrootシェルを入手してください。または、sudoこの記事に示すコマンドの前に追加することもできます。

ステップ1:Knockdのインストール

Knockdは、サーバーにポートノッキングを実装するためにiptablesと組み合わせて使用​​されるパッケージです。' iptables-persistent'パッケージも必要です。

apt update
apt install -y knockd iptables-persistent

ステップ2:iptablesルール

次のコマンドを順番に実行します。

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --destination-port 22 -j DROP
iptables-save > /etc/iptables/rules.v4

これらのコマンドは、それぞれ次のことを行います。

  • 既存の接続を維持するようにiptablesに指示します。
  • iptablesにポートtcp / 22への接続をすべて切断するように指示します(SSHデーモンが22以外のポートで待機している場合は、上記のコマンドを適宜変更する必要があります)。
  • これら2つのルールを保存して、再起動後も保持されるようにします。

ステップ3:Knockd構成

任意のテキストエディタを使用して、ファイルを開きます/etc/knockd.conf

以下が表示されます。

[openSSH]
sequence    = 7000,8000,9000
seq_timeout = 5
command     = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags    = syn

ポートの順序を変更し(上記のポート番号を選択し1024、他のサービスでは未使用)、安全に保管する必要があります。この組み合わせはパスワードのように扱う必要があります。忘れると、SSHにアクセスできなくなります。この新しいシーケンスをと呼びx,y,zます。

このseq-timeout行は、クライアントがポートノッキングシーケンスを完了するまでKnockdが待機する秒数です。特にポートノッキングが手動で行われる場合は、これをより大きな値に変更することをお勧めします。ただし、タイムアウト値が小さいほど安全です。15このチュートリアルでは手動でノックするので、に変更することをお勧めします。

開いた順序を選択したポートに変更します。

[openSSH]
sequence    = x,y,z

コマンドの値を次のように変更します。

command     = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT

次に、終了シーケンスを適宜変更します。

[closeSSH]
sequence    = z,y,x

変更を保存して終了し、ファイルを開きます/etc/default/knockd

  • 交換してくださいSTART_KNOCKD=0START_KNOCKD=1
  • ファイルの最後に次の行を追加しますKNOCKD_OPTS="-i ens3"ens3異なる場合は、パブリックネットワークインターフェイスの名前に置き換えます)。
  • 保存して終了。

Knockdを起動します。

systemctl start knockd

あなたが今、あなたのサーバーから切断する場合は、ポートをノックする必要がありますxyz再度接続します。

ステップ4:テスト

これで、SSHサーバーに接続できなくなります。

Telnetクライアントでポートノッキングをテストできます。

Windowsユーザーは、コマンドプロンプトからTelnetを起動できます。Telnetがインストールされていない場合は、コントロールパネルの[プログラム]セクションにアクセスし、[Windowsの機能の有効化または無効化]を見つけます。機能パネルで、「Telnetクライアント」を見つけて有効にします。

端末/コマンドプロンプトで次のように入力します。

telnet youripaddress x
telnet youripaddress y
telnet youripaddress z

これは、構成で課せられる制限であるため、15秒以内にすべて実行してください。次に、SSH経由でサーバーに接続してみます。アクセス可能になります。

SSHサーバーへのアクセスを閉じるには、コマンドを逆の順序で実行します。

telnet youripaddress z
telnet youripaddress y
telnet youripaddress z

結論

ポートノッキングを使用することの最も良い点は、秘密鍵認証と一緒に構成されている場合、誰かがポートノッキングシーケンスを知っていて秘密鍵を持っていない限り、他の誰かが侵入する可能性はほとんどありません。



Leave a Comment

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

最近、Appleは問題を修正するための補足アップデートであるmacOS Catalina 10.15.4をリリースしましたが、このアップデートにより、Macマシンのブリックにつながる問題がさらに発生しているようです。詳細については、この記事をお読みください

原子力が必ずしも悪ではないことを証明する5つの例

原子力が必ずしも悪ではないことを証明する5つの例

原子力は、過去の出来事のために私たちが決して尊重しないことを常に軽蔑していますが、それは必ずしも悪ではありません。詳細については、投稿をお読みください。

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

これを読んで、人工知能が小規模企業の間でどのように人気を博しているか、そして人工知能がどのように成長し、競合他社に優位に立つ可能性を高めているかを理解してください。

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

私たちのコンピューターは、ジャーナリングファイルシステムと呼ばれる組織化された方法ですべてのデータを保存します。これは、検索を押すとすぐにコンピューターがファイルを検索して表示できるようにする効率的な方法です。https://wethegeek.com/?p = 94116&preview = true

ビッグデータは人工知能をどのように変えていますか?

ビッグデータは人工知能をどのように変えていますか?

ビッグデータと人工知能は流行語ですが、それらがどのように相互に関連しているか知っていますか?さて、この記事を最後まで読んで、同じことを知ってください。

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartは、PHP、jQuery、およびHTML 5で記述された無料のオープンソースのショッピングカートプラットフォームです。シンプルで軽量、使いやすいeコマースソフトウォー

DebianでNFS共有をセットアップする

DebianでNFS共有をセットアップする

NFSはネットワークベースのファイルシステムであり、コンピューターはコンピューターネットワークを介してファイルにアクセスできます。このガイドでは、NFを介してフォルダーを公開する方法について説明します

Fedora 28にMatomo Analyticsをインストールする方法

Fedora 28にMatomo Analyticsをインストールする方法

別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

HTTPライブストリーミング(HLS)は、Apple Inc.によって実装された非常に堅牢なストリーミングビデオプロトコルです。HLSは、ファイアウォール、プロキシ、