UbuntuとDebianでUFWファイアウォールを設定する方法


正しく機能しているファイアウォールは、完全なLinuxシステムセキュリティの最も重要な部分です。デフォルトでは、DebianとUbuntuのディストリビューションには UFW Uncomplicated Firewall )と呼ばれるファイアウォール設定ツールが付属しています。ある[ Ubuntu Debian のディストリビューションでファイアウォールを管理する。

この記事では、 UBuntu および Debian ディストリビューションに UFW ファイアウォールをインストールして設定する方法について説明します。

この記事を読み始める前に、sudoユーザーまたはrootアカウントでUbuntuまたはDebianサーバーにログインしていることを確認してください。 sudoユーザーがいない場合は、rootユーザーとして次の手順を使用して作成できます。

# adduser username
# usermod -aG sudo username 
# su - username
$ sudo whoami

UbuntuとDebianにUFWファイアウォールをインストールする

UFW Uncomplicated Firewall )はデフォルトでUbuntuとDebianにインストールされます。そうでない場合は、次のコマンドを使用してAPTパッケージマネージャを使用してインストールします。

$ sudo apt install ufw

インストールが完了したら、次のように入力してUFWのステータスを確認できます。

$ sudo ufw status verbose

最初のインストールでは、UFWファイアウォールはデフォルトで無効になっています。出力は以下のようになります。

Status: inactive

次のコマンドを使用してUFWファイアウォールを有効または有効にすることができます。これにより、ファイアウォールがロードされ、起動時に起動できるようになります。

$ sudo ufw enable

UFWファイアウォールを無効にするには、次のコマンドを使用します。これにより、ファイアウォールがアンロードされ、起動時の起動が無効になります。

$ sudo ufw disable 

デフォルトでは、UFWファイアウォールはすべての着信接続を拒否し、サーバーへのすべての発信接続のみを許可します。つまり、ポートを明示的に開かない限り、誰もあなたのサーバーにアクセスすることはできません。サーバー上で実行中のすべてのサービスまたはアプリケーションは外部ネットワークにアクセスできます。

デフォルトのUFWファイアウォールポリシーは/etc/default/ufw ファイルに置かれており、次のコマンドを使って変更することができます。

$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing

APT パッケージマネージャを使用してソフトウェアパッケージをインストールすると、 /etc/ufw/applications.d ディレクトリにサービスプロファイルとUFW設定を保持するアプリケーションプロファイルが含まれます。

次のコマンドを使用して、サーバー上の利用可能なすべてのアプリケーションプロファイルを一覧表示できます。

$ sudo ufw app list

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

Available applications:
  APACHE
  APACHE Full
  APACHE SECURE
  CUPS
  OpenSSH
  Postfix
  Postfix SMTPS
  Postfix Submission

特定のプロファイルおよび定義済みの規則に関する詳細情報を入手したい場合は、次のコマンドを使用できます。

$ sudo ufw app info 'Apache'
Profile: Apache
Title: Web Server 
Description: Apache V2 is the next generation f the omnipresent Apache web server.

Ports:
  80/tcp

サーバーが IPv6 に設定されている場合は、 UFW IPv6 IPv4 に対応していることを確認してください。確認するには、お気に入りのエディタを使用してUFW設定ファイルを開きます。

$ sudo vi /etc/default/ufw

次に、設定ファイルで“ IPV6” yes に設定されていることを確認します。

IPV6=yes

保存して終了します。その後、次のコマンドでファイアウォールを再起動します。

$ sudo ufw disable
$ sudo ufw enable

これでUFWファイアウォールを有効にした場合、すべての着信接続がブロックされ、リモートの場所からSSH経由でサーバーに接続している場合は、再び接続することができなくなります。

次のコマンドを使用して、サーバーへのSSH接続を有効にしてそれが発生しないようにします。

$ sudo ufw allow ssh

カスタムSSHポート(たとえば、ポート 2222 )を使用している場合は、次のコマンドを使用してUFWファイアウォールでそのポートを開く必要があります。

$ sudo ufw allow 2222/tcp

すべてのSSH接続をブロックするには、次のコマンドを入力してください。

$ sudo ufw deny ssh/tcp
$ sudo ufw deny 2222/tcp  [If using custom SSH port]

ファイアウォールで特定のポートを開いて、特定のサービスへの接続を許可することもできます。たとえば、ポート 80 HTTP )および 443 HTTPS )。

以下は、Apacheサービスへの着信接続を許可する方法のいくつかの例です。

$ sudo ufw allow http     [By service name]
$ sudo ufw allow 80/tcp   [By port number]
$ sudo ufw allow 'Apache' [By application profile]
$ sudo ufw allow https
$ sudo ufw allow 443/tcp
$ sudo ufw allow 'Apache Secure'

ある範囲のポート( 5000-5003 )で実行するアプリケーションがいくつかあると仮定すると、次のコマンドを使用してこれらすべてのポートを追加できます。

sudo ufw allow 5000:5003/tcp
sudo ufw allow 5000:5003/udp

特定のIPアドレス 192.168.56.1 からすべてのポートへの接続を許可する場合は、IPアドレスの前から指定する必要があります。

$ sudo ufw allow from 192.168.56.1

自宅のパソコンから特定のポート(例: 22 )にIPアドレス 192.168.56.1 で接続できるようにするには、 any port <を追加する必要があります。表示されているように、/ strong>とIPアドレスの後のポート番号

$ sudo ufw allow from 192.168.56.1 to any port 22

ある[ 192.168.1.1 ]から 192.168.1.254 までの範囲の特定のIPアドレスでポート 22 SSH )に接続できるようにする次のコマンドを実行してください。

$ sudo ufw allow from 192.168.1.0/24 to any port 22

特定のポート 22 SSH )の特定のネットワークインターフェース eth2 への接続を許可するには、次のコマンドを実行します。

$ sudo ufw allow in on eth2 to any port 22

UFWで接続を明示的に開かない限り、デフォルトでは、すべての着信接続がブロックされます。たとえば、ポート 80 443 を開いていて、ウェブサーバーが未知のネットワークからの攻撃を受けている 11.12.13.0/24

この特定の 11.12.13.0/24 ネットワーク範囲からのすべての接続をブロックするには、次のコマンドを使用できます。

$ sudo ufw deny from 11.12.13.0/24

ポート 80 443 の接続だけをブロックしたい場合は、次のコマンドを使用できます。

$ sudo ufw deny from 11.12.13.0/24 to any port 80
$ sudo ufw deny from 11.12.13.0/24 to any port 443

UFWルールを削除するには、ルール番号実際のルールの2通りの方法があります。

ルール番号を使用してUFWルールを削除するには、まず次のコマンドを使用してルールを番号順に一覧表示する必要があります。

$ sudo ufw status numbered
Status: active

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

ルール番号 1 を削除するには、次のコマンドを使用します。

$ sudo ufw delete 1

2番目の方法は、実際のルールを使用してルールを削除することです。たとえば、ルールを削除するには、表示されているようにプロトコルでポート番号を指定します。

$ sudo ufw delete allow 22/tcp

--dry-run フラグを使うことで、システムのファイアウォールを実際に変更することなく、あらゆるufwコマンドを実行できます。

$ sudo ufw --dry-run enable

何らかの理由で、すべてのファイアウォールルールを削除またはリセットしたい場合は、次のコマンドを入力します。変更内容がすべて元に戻り、新しく起動します。

$ sudo ufw reset
$ sudo ufw status

ある[ UFW のファイアウォールはiptablesが行うことは何でもすることができます。これは、何もないが単純な iptables-restore テキストファイルの異なるルールファイルのセットで実行できます。

UFWファイアウォールの調整や追加のiptablesコマンドの追加は、ufwコマンドでは許可されていません。以下のテキストファイルを変更するだけの問題です。

  • /etc/default/ufw: The main configuration file with pre-defined rules.
  • /etc/ufw/before[6].rules: In this file rules are calculated before adding via ufw command.
  • /etc/ufw/after[6].rules: In this file rules are calculated after adding via ufw command.
  • /etc/ufw/sysctl.conf: This file is used to tune kernel network.
  • /etc/ufw/ufw.conf: This file enable the ufw on boot.

それでおしまい!ある[ UFW は、単一のufwコマンドで複雑なルールを定義するためのユーザーフレンドリーなインターフェースを備えた iptables の優れたフロントエンドです。

このufwの記事について質問や意見がありましたら、下のコメントフォームを使用してご連絡ください。

全著作権所有。 © Linux-Console.net • 2019-2022