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

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

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 14.10へのMcMyAdminのインストール

Ubuntu 14.10へのMcMyAdminのインストール

McMyAdminは、サーバーの管理に使用されるMinecraftサーバーコントロールパネルです。McMyAdminは無料ですが、複数のエディションがあり、一部はパイです

LinuxでTeamTalk Serverをセットアップする

LinuxでTeamTalk Serverをセットアップする

TeamTalkは、ユーザーが高品質のオーディオ/ビデオ会話、テキストチャット、ファイルの転送、および画面の共有を可能にする会議システムです。それは

CentOS 7サーバーにCyber​​Panelをインストールして構成する方法

CentOS 7サーバーにCyber​​Panelをインストールして構成する方法

別のシステムを使用していますか?はじめにCyber​​Panelは、オープンソースでありOpenLiteSpeedを使用する市場で最初のコントロールパネルの1つです。なんてこった

Ubuntu 17.04でRbenv、Rails、MariaDB、Nginx、SSL、およびPassengerを使用してRubyをインストールおよび構成する方法

Ubuntu 17.04でRbenv、Rails、MariaDB、Nginx、SSL、およびPassengerを使用してRubyをインストールおよび構成する方法

Ruby on Railsは、プログラマーの生産性を向上させるために開発されたRubyの人気のあるWebフレームワークです。ただし、さまざまな宝石と依存関係を取得する

Vultr VPSにアクセスする方法

Vultr VPSにアクセスする方法

Vultrは、VPSにアクセスして構成、インストール、および使用するためのいくつかの異なる方法を提供します。アクセス認証情報VPS arのデフォルトのアクセス認証情報

CentOS 7、Ubuntu 16.04、Debian 9にGolang 1.8.3をインストールする方法

CentOS 7、Ubuntu 16.04、Debian 9にGolang 1.8.3をインストールする方法

GolangはGoogleが開発したプログラミング言語です。汎用性、シンプルさ、信頼性のおかげで、Golangは最も人気のあるものの1つになりました

Debian、CentOS、およびFreeBSDでSudoを使用する方法

Debian、CentOS、およびFreeBSDでSudoを使用する方法

LinuxおよびUnixのシステム管理者の間では、sudoユーザーを使用してサーバーにアクセスし、コマンドをルートレベルで実行することは非常に一般的です。sudの使用

Ubuntu 16.04 LTSにDokuWikiをインストールする方法

Ubuntu 16.04 LTSにDokuWikiをインストールする方法

別のシステムを使用していますか?DokuWikiは、データベースを必要としないPHPで記述されたオープンソースのWikiプログラムです。データをテキストファイルに保存します。ドクウィク

DebianでのChrootのセットアップ

DebianでのChrootのセットアップ

この記事では、Debianでchroot jailをセットアップする方法を説明します。私はあなたがDebian 7.xを使っていると思います。Debian 6または8を実行している場合、これは機能する可能性があります、bu

DebianにPiVPNをインストールする方法

DebianにPiVPNをインストールする方法

はじめにDebianでVPNサーバーを設定する簡単な方法は、PiVPNを使用することです。PiVPNは、OpenVPNのインストーラーおよびラッパーです。それはあなたのための簡単なコマンドを作成します

Ubuntu 18.04 LTSにCyber​​Panelをインストールして構成する方法

Ubuntu 18.04 LTSにCyber​​Panelをインストールして構成する方法

別のシステムを使用していますか?はじめにCyber​​Panelは、オープンソースでありOpenLiteSpeedを使用する市場で最初のコントロールパネルの1つです。なんてこった

Ubuntu 16.04 LAMP VPSにBigTree CMSをインストールする方法

Ubuntu 16.04 LAMP VPSにBigTree CMSをインストールする方法

別のシステムを使用していますか?BigTree CMS 4.2は、高速で軽量な無料のオープンソースのエンタープライズグレードのコンテンツ管理システム(CMS)であり、

Debian 9でソースからBrotliをビルドする方法

Debian 9でソースからBrotliをビルドする方法

別のシステムを使用していますか?Brotliは、Gzipよりも圧縮率が高い新しい圧縮方法です。そのソースコードはGithubで公開されています。ティ

PleskサーバーでHTTP / 2を有効にする方法

PleskサーバーでHTTP / 2を有効にする方法

PleskはネイティブのHTTP / 2サポートを備えています。PleskでのHTTP / 2のロールアウトは、他のコンポーネントに比べてはるかに簡単ですが、その導入プロセスには慎重な計画が必要です

FreeBSD 12にosTicketをインストールする方法

FreeBSD 12にosTicketをインストールする方法

別のシステムを使用していますか?osTicketは、オープンソースのカスタマーサポートチケットシステムです。osTicketのソースコードはGithubで公開されています。このチュートリアルでは

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

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

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

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