はじめに
UFWは「uncomplicated firewall」の略です。ファイアウォールの機能やコマンドを簡単に管理できるようにするフロントエンドプラットフォームです。UFWは、デフォルトのオプションとしてUbuntuサーバーに付属しています。このツールにまだ慣れていない場合、ファイアウォールのコマンドや機能の可能性を最大限に引き出すのは難しいかもしれません。
私たちの目標は、初心者の方でも利用できる包括的なガイドを提供することです。UFWで実行できるさまざまなアクションの例を交えて解説します。紹介するルールの多くは、日常的なサービスやアクティビティに非常に役立ちます。それでは始めましょう!
前提条件
読み進める前に、UFWがデフォルトのルールセットに設定されていることを確認してください。これは、ファイアウォールが送信トラフィックを許可し、受信トラフィックをブロックすることを意味します。このデフォルト設定のメリットは、ファイアウォールを通過させるトラフィックを選択できる点にあります。現在のUFWのルールセットのステータスが不明な場合は、次のコマンドを使用して確認してください:sudo ufw status。また、次のコマンドを使用することもできます:
|
1 |
sudo ufw status verbose |
それ以外については、ご自身の要件に最も関連するセクションに自由にジャンプしていただいて構いません。このガイドで提供されているすべてのコマンドを必ずしも使用する必要はありません。個人のニーズに合わせて組み合わせて使用できます。
IPアドレスをブロックする方法
まずは、ファイアウォールの最も基本的な機能の1つである、IPアドレスのブロックから始めましょう。特定のIPアドレスからのネットワーク接続をブロックするために使用できる、非常にシンプルなコマンドがあります。たとえば、今回の具体的なIPアドレスが 15.15.15.51 であるとします。この値は、UFWを通じてブロックしたいIPアドレスに置き換えることができます。この目的で使用するコマンドは次のとおりです:
|
1 |
sudo ufw deny from 15.15.15.51 |
ここで、from 15.15.15.51 は送信元IPアドレスのみ(「15.15.15.51」)を示しています。代わりに指定したいサブネットがある場合は、次のように追加できます:15.15.15.0/24。コマンドは同様に機能します。この送信元IPアドレスは、allow(許可)ルールなど、任意のファイアウォールルールで指定できます。
- ネットワークインターフェース接続のブロック
特定のIPアドレスから特定のネットワークインターフェースへのネットワーク接続をブロックする必要がある場合があります。その場合は、送信元IPアドレスとともにネットワークインターフェースを指定する必要があります。この例では、送信元IPアドレスを 15.15.15.51、ネットワークインターフェースを eth0 とします:
|
1 |
sudo ufw deny in on eth0 from 15.15.15.51 |
送信元IPアドレスと同様に、任意のファイアウォールルールでネットワークインターフェースを指定することもできます。これらの指定の目的は、特定のファイアウォールルールを特定のネットワークまたは接続のみに制限することです。
SSH接続を許可する方法
このセクションは、クラウドサーバーを使用している場合に関連します。クラウドサーバーへの接続を確立するには、ファイアウォールで受信SSH接続を許可する必要があります。これらのSSH接続はポート22を経由します。次のチュートリアルに従って、UbuntuでSSHを使用してリモートサーバーに接続する方法を学ぶことができます.
。SSH接続を確立することで、ローカルユニットを使用してクラウドサーバーを正常に管理できます。ここでは、SSHに関連するファイアウォール設定に関連するさまざまなルールについて説明します:
- SSHの許可
すべての受信SSH接続を許可するには、次のコマンドを使用します:
|
1 |
sudo ufw allow ssh |
一方、代わりにSSHサービスのポート番号を指定してコマンドを実行することもできます:
|
1 |
sudo ufw allow 22 |
- 特定のIPアドレスからの受信SSHを許可する
特定のIPアドレスまたはサブネットからの受信SSH接続のみを許可したい場合は、送信元を指定することができます。たとえば、許可したいサブネットが 15.15.15.0/24 であるとします。実行する必要があるコマンドは次のとおりです:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 22 |
- 特定のIPアドレスからのRsync受信の許可
ポート873で動作するRsyncは、あるコンピュータシステムから別のコンピュータシステムへのファイル転送を可能にします。特定のIPアドレスまたはサブネット(この例では15.15.15.0/24)からのRsync接続のみを許可したい場合は、次のコマンドを使用します。
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 873 |
これは、15.15.15.0/24サブネット全体がサーバーへのRsyncを許可されることを意味します。また、以下はサーバー上のローカルディレクトリとリモートディレクトリを同期するためにRsyncを利用する方法に関する包括的なチュートリアルです。.
ウェブサーバー要求の構成方法
次に、ウェブサーバーサービスに関連するルールに進みます。次のようなウェブサーバーは、Apache や Nginx は通常、ポート80とポート443の2つのポートからHTTPおよびHTTPS接続の要求を受け取ります。ポート80はHTTP要求に対応します。ポート443はHTTPS要求を担当します。
前提条件で説明したように、UFWのデフォルトのルールセットを使用しています。このルールセットに基づき、ファイアウォールはすべての受信トラフィックをブロックまたは拒否します。したがって、サーバーがこれらの受信要求を受け取って読み取ることを許可する新しいルールを構成する必要があります。
- すべてのHTTPの許可
ポート80からのすべてのHTTP接続および要求を許可する場合は、次のコマンドを使用します。
|
1 |
sudo ufw allow http |
コマンドでHTTPサービスを指定するために、ポート番号(ポート80)を使用することもできます。
|
1 |
sudo ufw allow 80 |
- すべてのHTTPSの許可
ポート443からのすべてのHTTPS接続および要求を許可する場合は、次のコマンドを実行します。
|
1 |
sudo ufw allow https |
前のコマンドと同様に、「https」をHTTPSサービスのポート番号に置き換えることができます。
|
1 |
sudo ufw allow 443 |
- すべてのHTTPおよびHTTPSの許可
HTTPとHTTPSの両方の要求を許可したい場合は、両方に対する一括ルールを使用できます。この単一のコマンドにより、ポート80とポート443の両方からの受信トラフィックを許可できます。
|
1 |
sudo ufw allow proto tcp from any to any port 80,443 |
一度に複数のポートを指定する場合は、proto tcpコマンドを使用する必要があります。
また、次の詳細なガイドに従って、Nginx および Ubuntu上でLet's Encryptを使用してApacheを保護する方法を確認することもできます。.
MySQLを許可する方法
MySQL 接続はポート3306を介して行われます。クライアントがリモートサーバー上のMySQLデータベースを使用している場合は、受信トラフィックを許可するルールを使用する必要があります。当社のチュートリアルに従って、MySQLの基本とサーバー上でのMySQLのセットアップ方法を学んでください。.
- 特定のIPアドレスからのMySQLの許可
これまでのルールで見てきたように、受信MySQL接続を許可するには送信元を指定する必要があります。送信元は特定のIPアドレスまたはサブネットにすることができます。この例では、15.15.15.0/24サブネット全体を使用してコマンドを実行します。
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 3306 |
- 特定のネットワークインターフェースへのMySQLの許可
MySQL接続を許可するネットワークインターフェースも指定する必要がある場合は、別のコマンドを使用します。使用しているネットワークインターフェースがeth1というプライベートネットワークインターフェースであると仮定します。この値をご自身のネットワークインターフェースの名前に置き換えることができます。
|
1 |
sudo ufw allow in on eth1 to any port 3306 |
PostgreSQLを許可する方法
The PostgreSQL 接続はポート5432を介して行われます。MySQL接続と同様に、クライアントがリモートサーバー上のPostgreSQLデータベースを使用している場合は、受信トラフィックを許可する必要があります。これは、以下のコマンドを使用して行うことができます。
- 特定のIPアドレスからのPostgreSQLの許可
PostgreSQL接続が特定のサブネットまたはIPアドレスから送信されていることがわかっている場合は、送信元を指定する必要があります。ここでは、もう一度15.15.15.0/24サブネットの例を使用します。
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 5432 |
OUTPUTポリシーが ACCEPT に設定されていない場合は、2つ目のコマンドを実行する必要があります。このコマンドは、すでに確立されている PostgreSQL 接続の送信トラフィックを許可します。
- 特定のネットワークインターフェースへの PostgreSQL の許可
前述のルールと同様に、特定のネットワークインターフェースへの PostgreSQL 接続を許可します。今回の例では eth1 です。
|
1 |
sudo ufw allow in on eth1 to any port 5432 |
OUTPUTポリシーが ACCEPT に設定されていない場合は、2つ目のコマンドを実行する必要があります。このコマンドは、すでに確立されている PostgreSQL 接続の送信トラフィックを許可します。次の詳細なチュートリアルに従って、Ubuntu で PostgreSQL をセットアップする方法を学ぶことができます.
メールサーバーの設定方法
次のようなメールサーバーを使用している場合もあります:Sendmail および Postfix をシステムで使用している場合があります。これらのサーバーは複数のポートを開放しています。リッスンするポートは、メール配信に設定されているプロトコルによって異なります。そのため、まずメール配信システムでどのプロトコルを実行しているかを特定する必要があります。その後、この情報に基づいて関連するタイプのトラフィックを許可します。
- 送信 SMTP メールのブロック
メールサーバーへの受信トラフィックを許可するコマンドに進む前に、送信 SMTP mail をブロックする方法を見てみましょう。サーバーから送信メールを一切送りたくない場合は、このコマンドを使用できます。SMTP メールはポート 25 を使用します。このトラフィックをブロックするには、次のコマンドを使用します:
|
1 |
sudo ufw deny out 25 |
このコマンドを実行した結果、ファイアウォールはポート 25 のすべての送信トラフィックを破棄します。別のポートをブロックしたい場合は、ポート「25」を適切なポート番号に置き換えるだけです。
- 受信 SMTP の許可
送信トラフィックをブロックする方法がわかったので、受信トラフィックを許可することも同様に簡単です。サーバーがポート 25 で SMTP 接続を受信できるようにするには、次のコマンドを使用します:
|
1 |
sudo ufw allow 25 |
- 受信 IMAP の許可
サーバーがポート 143 で IMAP 接続を確立できるようにするには、次のコマンドを使用します:
|
1 |
sudo ufw allow 143 |
- 受信 IMAPS の許可
サーバーがポート 993 で IMAPS 接続に応答できるようにするには、次のコマンドを使用します:
|
1 |
sudo ufw allow 993 |
- 受信 POP3 の許可
このコマンドにより、サーバーはポート 110 を介してすべての POP3 接続に応答できるようになります:
|
1 |
sudo ufw allow 110 |
- 受信 POP3S の許可
最後に、次のコマンドを使用して、サーバーが POP3S 接続のためにポート 995 からのリクエストを受信できるようにすることができます:
|
1 |
sudo ufw allow 995 |
結論
このガイドは、UFW の基本機能を理解するのに役立ちます。ファイアウォールを設定するために知っておくべき重要なコマンドについて説明しました。特定の要件に最適なコマンドを選択して、パーソナライズされたファイアウォールソリューションを作成できます。UFW の柔軟な性質により、このようなカスタマイズが可能になります。色々と試して、自分に最適な設定を見つけてください。
ハッピーコンピューティング!
コメント
コメントはまだありません。最初のコメントを投稿しましょう。