この記事では、Ubuntu18.04VPSにUFWをインストールして設定する方法を紹介します。まず、ファイアウォールとは何かを紹介して説明し、次にUFWの使用方法と適切なUFW構成を作成する方法を示します。
ファイアウォールは、ネットワークトラフィックを監視し、プライベートネットワークへの不正アクセスまたはプライベートネットワークからの不正アクセスを防止するソフトウェアプログラムです。 Linuxカーネルに関しては、ネットワークトラフィックを操作するために使用されるNetfilterサブシステムが実装されています。最近のほとんどすべてのLinuxファイアウォールソリューションは、このシステムを使用してネットワークパケットをフィルタリングします。さらに、「iptables」(コマンドラインからアクセスできるファイアウォールユーティリティ)もNetfilterフレームワークの一部です。ファイアウォールルールを作成するプロセスを簡素化するために、Canonical(Ubuntuの作成者)はUncomplicated Firewall(UFW)と呼ばれるiptablesインターフェースを開発しました。
Ubuntu 18.04を使用していて、iptablesの使用方法を学ぶ必要なしにネットワークを保護したい場合は、UFWが探している適切なソリューションである可能性があります。
前提条件
このチュートリアルに従うには、Ubuntu 18.04を備えたサーバーと、rootユーザー(またはsudo権限を持つユーザー)によるSSHアクセスが必要です。チュートリアルから始めましょう。
ステップ1:サーバーに接続する
始める前に、rootまたはsudo権限を持つユーザーとしてSSH経由でサーバーに接続する必要があります。これを行うには、次のコマンドを使用します。
ssh root@IP_Address -p Port_Number
もちろん、IP_Address
を置き換える必要があります およびPort_Number
実際のサーバーのIPアドレスとSSHポート番号を使用します。
ログインしたら、次のコマンドを実行して、サーバーが最新であることを確認します。
sudo apt update sudo apt upgrade
ステップ2:UFWをインストールする
UFWはデフォルトでUbuntu18.04にすでにインストールされているはずですが、何らかの理由でインストールされていない場合は、次のコマンドでインストールできます。
sudo apt install ufw
インストールが完了したら、次のコマンドでUFWステータスを確認できます:
sudo ufw status verbose
UFWはデフォルトで最初は無効になっており、以前にアクティブ化したことがない場合は、出力が表示されます:
Output Status: inactive
サーバーでUFWを既にアクティブにしている場合、出力はまったく異なり、次のようになります。
Output: Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip To Action From -- ------ ---- 22/tcp ALLOW IN Anywhere 80/tcp ALLOW IN Anywhere 443/tcp ALLOW IN Anywhere 22/tcp (v6) ALLOW IN Anywhere (v6) 80/tcp (v6) ALLOW IN Anywhere (v6) 443/tcp (v6) ALLOW IN Anywhere (v6) ....
ステップ3:UFWデフォルトポリシー
最初に知っておく必要があるのは、デフォルトのポリシーです。デフォルトでは、UFWはすべての着信接続を拒否し、すべての発信接続を許可するように設定されています。つまり、サーバーにアクセスしようとするすべての接続が拒否され、サーバー上でローカルに検出されたすべてのアプリケーションとサービスが外部に到達して他のサーバーにアクセスできるようになります。
デフォルトのポリシーを確認または変更する場合は、/etc/default/ufw
にあります。 構成ファイル。
これらのUFWルールをデフォルトに設定するには、次のコマンドを実行できます。
sudo ufw default deny incoming sudo ufw default allow outgoing
サーバーは通常、インターネットユーザーからの着信要求に応答する必要があることに注意してください。したがって、ほとんどの場合、すべての着信接続をブロックするようにファイアウォールを設定することはできません。次のステップでは、特定の接続を許可する方法を学習します。
ステップ4:SSH接続を許可する
UFWを有効にする前に、着信SSH接続を許可するルールを追加して、サーバーでSSHアクセスを許可する必要があります。そうしないと、ロックされ、Ubuntuサーバーに接続できなくなります。
次のコマンドを使用して、すべての着信SSH接続を許可するようにUFWファイアウォールを構成できます。
sudo ufw allow ssh
次に、次の出力が表示されます。
Rules updated Rules updated (v6)
このコマンドは、サーバーが標準化されたSSHポートをリッスンする場合のみであることに注意してください。22。SSHサービスがカスタムの非標準ポートを使用する場合は、そのポートを開く必要があります。サーバー上のSSHサービスが一意のポート(ポート900など)を使用している場合は、次のコマンドを使用できます。
sudo ufw allow 900
サービスが現在使用しているポート番号を知る必要があることに注意してください。
ステップ5:UFWを有効にする
これでファイアウォールがSSH接続を許可するように構成され、現在のSSH接続が影響を受けないことが確実になりました。UFWファイアウォールの有効化を続行できます。
sudo ufw enable
その後、次の出力が表示されます。
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y Firewall is active and enabled on system startup
SSHルールを許可するように構成する必要があることを通知する警告が表示されます。構成しないと、既存のSSH接続が閉じられます。すでに持っているので、[y]と入力し、[Enter]を続行します。
ステップ6:特定のポートでの接続を許可する
使用するアプリケーションとサービスは、アプリケーションの目的に応じて、着信接続と発信接続のためにポートを開く必要がある場合があります。ブロックを解除する必要がある最も一般的なポートは、ウェブサーバーで使用されるポート80と443、およびメールサーバーで使用される25、110、143、587、993です。
いくつかの一般的なサービスの着信接続を許可する方法のいくつかの例を紹介します。
すべてのHTTP(ポート80)接続を許可するには、次のコマンドを実行します。
sudo ufw allow http
また、ポートを指定する場合は、基本的に同じルールを適用できますが、構文は異なります。
sudo ufw allow 80
すべてのHTTPS(ポート443)接続を許可するには、次のコマンドを実行します。
sudo ufw allow https
さらに、HTTPSポートを指定する場合は、別の構文でルールを適用できます。
sudo ufw allow 443
メールサーバーを使用している場合は、次のルールのいくつかが役立つ可能性があります。
すべての着信SMTPを許可するには、次のコマンドを実行できます。
sudo ufw allow 25
すべての着信IMAP接続を許可するには、次のコマンドを実行します。
sudo ufw allow 143
また、すべての着信IMAPS要求を許可するには、次のコマンドを使用できます。
sudo ufw allow 993
代わりにPOP3を使用している場合、以下のこのコマンドはすべての着信接続を許可します:
sudo ufw allow 110
そして、すべての着信POP3Sリクエストに対して、次のコマンドを使用します:
sudo ufw allow 995
最後に、Webアクセスを必要とする特定のプログラムを実行している場合は、そのプログラムに固有のポートも有効にする必要があります。たとえば、サーバーでTomcatを実行する場合は、ポート8080が必要になります。次のコマンドを使用して、このポートへのすべての着信接続を許可できます。
sudo ufw allow <port number>
これは、必要になる可能性のあるすべての特定のポートに対して実行できます。
ステップ7:ポート範囲を許可する
UFWは、単一のポートへのアクセスを許可する代わりに、ポート範囲へのアクセスを許可することもできます。 UFWポートでポート範囲を許可する場合は、ポートの範囲とプロトコル(TCPまたはUDP)を指定する必要があります。
たとえば、TCPとUDPの両方で8069から8080までのポートを許可する場合は、次のコマンドを使用できます。
sudo ufw allow 8069:8080/tcp sudo ufw allow 8069:8080/udp
ステップ8:特定のIPアドレスを許可する
1つのIPアドレス(たとえば、ローカルネットワーク上にある信頼できるマシン)のみがすべてのポートにアクセスできるようにする場合は、次のコマンドを使用できます。
sudo ufw allow from 206.207.208.209
さらに、特定のポートに特定のIPアドレスを許可することもできます。特定のIPアドレスがMySQLポートを使用できるようにしたい場合(MySQLはポート3306を使用)、次のコマンドを使用できます。
sudo ufw allow from 206.207.208.209 to any port 3306
ステップ9:接続を拒否する
ステップ3で前述したように 、着信接続のデフォルトポリシーは「拒否」に設定されています。ただし、送信元IPアドレスまたは特定のポートに基づいて特定の接続を拒否する必要がある場合があります。
拒否ルールは、特定のIPアドレスからサーバーに攻撃があり、ポート80と443が開いている場合に非常に役立ちます。この場合、次の例を使用してそのIPアドレスをブロックできます。もちろん、IPアドレス24.25.26.27を、ブロックする実際のIPアドレスに変更することを忘れないでください。
sudo ufw deny from 24.25.26.27
これにより、IPアドレスが開いているすべてのポートにアクセスできなくなります。ただし、IPアドレスが特定のポートにアクセスできないようにする場合は、次の例を使用できます。
sudo ufw deny from 24.25.26.27 to any port 80 sudo ufw deny from 24.25.26.27 to any port 443
お気づきのとおり、拒否ルールの作成は許可のルールに似ています。
ステップ10:UFWルールを削除する
UFWルールを削除することの重要性は、それらを作成することと同じくらい重要です。 UFWルールを削除するには2つの方法があります。最初の方法はルール番号を使用する方法で、2番目の方法は実際のルールを指定する方法です。
番号付きのUFWルールを削除する場合は、ルールの番号を知っている必要があります。ルール番号を一覧表示するには、次のコマンドを使用できます:
sudo ufw status numbered
Output: Status: active To Action From -- ------ ---- [ 1] 80 ALLOW IN Anywhere [ 2] 443 ALLOW IN Anywhere [ 3] 22 ALLOW IN Anywhere [ 4] Anywhere ALLOW IN 206.207.208.209 [ 5] 7022 ALLOW IN Anywhere [ 6] 8069 ALLOW IN Anywhere ...
IPアドレス206.207.208.209からの接続を許可するルール番号4のラベルが付いたルールを削除するには、次のコマンドを使用できます。
sudo ufw delete 4
2番目の方法を使用する場合は、実際のルールを指定してルールを削除します。たとえば、ポート8069を閉じたいとします。その場合、次のコマンドを使用します。
sudo ufw delete allow 8069
ステップ11:UFWを無効にするかリセットする
何らかの理由でサーバー上のすべてのUFWルールを停止する必要がある場合は、次のコマンドを使用して無効にすることができます:
sudo ufw disable
これにより、サーバーで現在アクティブになっているすべてのルールが停止します。ただし、ファイアウォールルールを再度アクティブにする必要がある場合は、再度有効にすることができます。
sudo ufw enable
何らかの理由ですべてのルールを削除し、新しいUFWから始めたい場合は、次のコマンドを使用できます。
sudo ufw reset
すでに変更されている場合、デフォルトのポリシーは元の設定に変更されないことに注意してください。
この記事では、UFWをインストールし、それを使用してUbuntu18.04でファイアウォールを構成する方法を説明しました。これで、このガイドの知識を使用して、独自のUFWファイアウォールルールの作成を開始し、サーバーを保護できます。
もちろん、マネージドUbuntu Hostingをご利用の場合は、サーバー上でUFWを使用してファイアウォールを構成する必要はありません。管理者に質問して、くつろいでリラックスしてください。管理者がサーバーのファイアウォールルールをすぐに構成します。
PS。 Ubuntu 18.04でUFWを使用してファイアウォールを構成する方法に関するこの投稿が気に入った場合は、下の共有ボタンを使用してソーシャルネットワーク上の友達と共有するか、コメントセクションにコメントを残してください。ありがとう。