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

Ubuntu20.04でUFWを使用してファイアウォールを設定する方法

ファイアウォールは、着信および発信ネットワークトラフィックを監視およびフィルタリングするためのツールです。特定のトラフィックを許可するかブロックするかを決定する一連のセキュリティルールを定義することで機能します。

Ubuntuには、UFW(Uncomplicated Firewall)と呼ばれるファイアウォール構成ツールが付属しています。これは、iptablesファイアウォールルールを管理するためのユーザーフレンドリーなフロントエンドです。その主な目標は、ファイアウォールの管理をより簡単にすること、またはその名前が示すように、複雑にしないことです。

この記事では、UFWツールを使用してUbuntu20.04でファイアウォールを構成および管理する方法について説明します。適切に構成されたファイアウォールは、システム全体のセキュリティの最も重要な側面の1つです。

前提条件#

rootまたはsudo権限を持つユーザーのみがシステムファイアウォールを管理できます。ベストプラクティスは、sudoユーザーとして管理タスクを実行することです。

UFW#をインストール

UFWは標準のUbuntu20.04インストールの一部であり、システムに存在する必要があります。何らかの理由でインストールされていない場合は、次のように入力してパッケージをインストールできます。

sudo apt updatesudo apt install ufw
UFWステータスの確認#

UFWはデフォルトで無効になっています。次のコマンドを使用して、UFWサービスのステータスを確認できます。

sudo ufw status verbose

出力には、ファイアウォールのステータスが非アクティブであることが示されます:

Status: inactive

UFWがアクティブになっている場合、出力は次のようになります。

UFWデフォルトポリシー#

UFWファイアウォールのデフォルトの動作は、すべての着信および転送トラフィックをブロックし、すべての発信トラフィックを許可することです。これは、特にポートを開かない限り、サーバーにアクセスしようとする人は誰も接続できないことを意味します。サーバーで実行されているアプリケーションとサービスは、外部にアクセスできるようになります。

デフォルトのポリシーは/etc/default/ufwで定義されています ファイルであり、ファイルを手動で変更するか、sudo ufw default <policy> <chain>を使用して変更できます。 コマンド。

ファイアウォールポリシーは、より複雑でユーザー定義のルールを構築するための基盤です。一般的に、最初のUFWデフォルトポリシーは良い出発点です。

アプリケーションプロファイル#

アプリケーションプロファイルは、サービスを説明し、サービスのファイアウォールルールを含むINI形式のテキストファイルです。アプリケーションプロファイルは、/etc/ufw/applications.dに作成されます パッケージのインストール中のディレクトリ。

次のように入力すると、サーバーで使用可能なすべてのアプリケーションプロファイルを一覧表示できます。

sudo ufw app list

システムにインストールされているパッケージに応じて、出力は次のようになります。

Available applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH

特定のプロファイルと含まれるルールの詳細を確認するには、次のコマンドを使用します。

sudo ufw app info 'Nginx Full'

出力は、「NginxFull」プロファイルがポート80を開くことを示しています および443

Profile: Nginx Full
Title: Web Server (Nginx, HTTP + HTTPS)
Description: Small, but very powerful and efficient web server

Ports:
  80,443/tcp

アプリケーションのカスタムプロファイルを作成することもできます。

UFWの有効化#

リモートの場所からUbuntuに接続している場合は、UFWファイアウォールを有効にする前に、着信SSH接続を明示的に許可する必要があります。そうしないと、マシンに接続できなくなります。

着信SSH接続を許可するようにUFWファイアウォールを設定するには、次のコマンドを入力します。

sudo ufw allow ssh
Rules updated
Rules updated (v6)

SSHが非標準ポートで実行されている場合は、そのポートを開く必要があります。

たとえば、sshデーモンがポート7722でリッスンしている場合 、次のコマンドを入力して、そのポートでの接続を許可します。

sudo ufw allow 7722/tcp

着信SSH接続を許可するようにファイアウォールが構成されたので、次のように入力してファイアウォールを有効にできます。

sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

ファイアウォールを有効にすると、既存のssh接続が中断される可能性があるという警告が表示されます。yと入力するだけです。 Enterを押します 。

ポートを開く#

システムで実行されるアプリケーションによっては、他のポートを開く必要がある場合もあります。ポートを開くための一般的な構文は次のとおりです。

ufw allow port_number/protocol

以下は、HTTP接続を許可する方法のいくつかの方法です。

最初のオプションは、サービス名を使用することです。 UFWは/etc/servicesをチェックします 指定されたサービスのポートとプロトコルのファイル:

sudo ufw allow http

ポート番号とプロトコルを指定することもできます:

sudo ufw allow 80/tcp

プロトコルが指定されていない場合、UFWは両方のtcpのルールを作成します およびudp

もう1つのオプションは、アプリケーションプロファイルを使用することです。この場合、「NginxHTTP」:

sudo ufw allow 'Nginx HTTP'

UFWは、protoを使用してプロトコルを指定するための別の構文もサポートしています。 キーワード:

sudo ufw allow proto tcp to any port 80

ポート範囲#

UFWでは、ポート範囲を開くこともできます。開始ポートと終了ポートはコロンで区切られます(: )、プロトコルを指定する必要があります。tcp またはudp

たとえば、7100からのポートを許可する場合 7200へ 両方のtcp およびudp 、次のコマンドを実行します:

sudo ufw allow 7100:7200/tcpsudo ufw allow 7100:7200/udp
特定のIPアドレスとポート番号

特定の送信元IPからのすべてのポートでの接続を許可するには、fromを使用します キーワードの後に​​送信元アドレスが続きます。

IPアドレスをホワイトリストに登録する例を次に示します。

sudo ufw allow from 64.63.62.61

特定のポートへの特定のIPアドレスアクセスのみを許可する場合は、to any portを使用します キーワードの後に​​ポート番号が続きます。

たとえば、ポート22でのアクセスを許可するには 64.63.62.61のIPアドレスを持つマシンから 、次のように入力します:

sudo ufw allow from 64.63.62.61 to any port 22

サブネット#

IPアドレスのサブネットへの接続を許可するための構文は、単一のIPアドレスを使用する場合と同じです。唯一の違いは、ネットマスクを指定する必要があることです。

以下は、192.168.1.1の範囲のIPアドレスへのアクセスを許可する方法を示す例です。 192.168.1.254へ ポート3360へ (MySQL):

sudo ufw allow from 192.168.1.0/24 to any port 3306
特定のネットワークインターフェース#

特定のネットワークインターフェースでの接続を許可するには、in onを使用します キーワードの後に​​ネットワークインターフェイスの名前が続きます:

sudo ufw allow in on eth2 to any port 3306

接続を拒否する#

すべての着信接続のデフォルトポリシーはdenyに設定されています 、変更していない場合は、特に接続を開かない限り、UFWはすべての着信接続をブロックします。

拒否ルールを作成することは、許可ルールを作成することと同じです。 denyを使用するだけで済みます allowの代わりにキーワード 。

ポートを開いたとしましょう80 および443 、およびサーバーが23.24.25.0/24から攻撃を受けています 通信網。 23.24.25.0/24からのすべての接続を拒否するには 次のコマンドを実行します:

sudo ufw deny from 23.24.25.0/24

これは、ポート80へのアクセスのみを拒否する例です。 および443 23.24.25.0/24から 次のコマンドを使用できます:

sudo ufw deny proto tcp from 23.24.25.0/24 to any port 80,443

UFWルールの削除#

ルール番号と実際のルールを指定してUFWルールを削除するには、2つの方法があります。

特にUFWを初めて使用する場合は、ルール番号でルールを削除する方が簡単です。最初にルール番号でルールを削除するには、削除するルールの番号を見つける必要があります。番号付きルールのリストを取得するには、ufw status numberedを使用します コマンド:

sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere
[ 3] 8080/tcp                   ALLOW IN    Anywhere

ルール番号3を削除するには 、ポート8080への接続を許可するもの 、次のように入力します:

sudo ufw delete 3

2番目の方法は、実際のルールを指定してルールを削除することです。たとえば、ポート8069を開くルールを追加した場合 次のコマンドで削除できます:

sudo ufw delete allow 8069
UFWの無効化#

何らかの理由でUFWを停止し、すべてのルールを非アクティブ化する場合は、次を使用できます。

sudo ufw disable

後でUTFを再度有効にしてすべてのルールをアクティブにする場合は、次のように入力します。

sudo ufw enable
UFWのリセット#

UFWをリセットすると、UFWが無効になり、アクティブなルールがすべて削除されます。これは、すべての変更を元に戻して最初からやり直したい場合に役立ちます。

UFWをリセットするには、次のコマンドを入力します:

sudo ufw reset

IPマスカレード#

IPマスカレードはLinuxカーネルのNAT(ネットワークアドレス変換)の変形であり、送信元と宛先のIPアドレスとポートを書き換えることによってネットワークトラフィックを変換します。 IPマスカレードを使用すると、ゲートウェイとして機能する1台のLinuxマシンを使用して、プライベートネットワーク内の1台以上のマシンがインターネットと通信できるようにすることができます。

UFWを使用したIPマスカレードの設定には、いくつかの手順が含まれます。

まず、IP転送を有効にする必要があります。これを行うには、/etc/ufw/sysctl.confを開きます ファイル:

sudo nano /etc/ufw/sysctl.conf

net.ipv4.ip_forward = 1という行を見つけてコメントを外します :

/etc/ufw/sysctl.conf
net/ipv4/ip_forward=1

次に、転送されたパケットを許可するようにUFWを設定する必要があります。 UFW構成ファイルを開きます:

sudo nano /etc/default/ufw

DEFAULT_FORWARD_POLICYを見つけます キーを押して、値をDROPから変更します ACCEPTへ :

/ etc / default / ufw
DEFAULT_FORWARD_POLICY="ACCEPT"

次に、POSTROUTINGのデフォルトポリシーを設定する必要があります natのチェーン テーブルとマスカレードルール。これを行うには、/etc/ufw/before.rulesを開きます 以下に示すように、ファイルして黄色で強調表示された行を追加します。

sudo nano /etc/ufw/before.rules

次の行を追加します:

/etc/ufw/before.rules
#NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]

# Forward traffic through eth0 - Change to public network interface
-A POSTROUTING -s 10.8.0.0/16 -o eth0 -j MASQUERADE

# don't delete the 'COMMIT' line or these rules won't be processed
COMMIT

eth0を置き換えることを忘れないでください -A POSTROUTING パブリックネットワークインターフェイスの名前と一致する行:

完了したら、ファイルを保存して閉じます。

最後に、UFWを無効にしてから再度有効にして、UFWルールをリロードします。

sudo ufw disablesudo ufw enable

Ubuntu
  1. Ubuntu18.04でUFWファイアウォールを設定する方法

  2. Ubuntu 18.04でUFWファイアウォールを設定する-最良の方法は?

  3. Ubuntu\DebianでUFWを使用してファイアウォールを設定する方法

  1. Ubuntu16.04でUFWを使用してファイアウォールを設定する方法

  2. Ubuntu18.04でUFWを使用してファイアウォールを構成する方法

  3. Ubuntu18.04でUFWファイアウォールを設定する方法

  1. Ubuntu18.04でUFWファイアウォールを有効/無効にする方法

  2. Ubuntu18.04でUFWを使用してファイアウォールを設定する方法

  3. Debian10でUFWを使用してファイアウォールを設定する方法