未分類

Ubuntu 18.04でUbuntuファイアウォール(UFW)を設定する

UFWをインストール

UFWはUbuntu 18.04にデフォルトでインストールされていますが、これを確認することができます。

which ufw

次のような出力が得られます。

/usr/sbin/ufw

あなたが出力を受け取らないならば、それはUFWがインストールされていないことを意味します。この場合、あなたはそれを自分でインストールすることができます。

sudo apt-get install ufw

接続を許可する

あなたがウェブサーバーを運営しているならば、あなたは世界があなたのウェブサイトにアクセスできることを望みます。したがって、WebのデフォルトのTCPポートが開いていることを確認する必要があります。

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

一般的には、次の形式を使用して必要なポートを許可することができます。

sudo ufw allow <port>/<optional: protocol>

接続を拒否する

特定のポートへのアクセスを拒否する必要がある場合は、deny次のコマンドを使用してください。

sudo ufw deny <port>/<optional: protocol>

たとえば、デフォルトのMySQLポートへのアクセスを拒否することができます。

sudo ufw deny 3306

UFWは、最も一般的なサービスポート用の単純化された構文もサポートしています。

root@ubuntu:~$ sudo ufw deny mysql
Rule updated
Rule updated (v6)

22信頼されたIPアドレス以外の場所からSSHポートへのアクセスを制限することを強くお勧めします(デフォルトではこれはポートです)。

信頼できるIPアドレスからのアクセスを許可する

通常は、portなどの公に開かれたポートにのみアクセスを許可する必要があります80。他のすべてのポートへのアクセスは制限または制限する必要があります。自宅またはオフィスのIPアドレス(できれば静的IP)をホワイトリストに登録して、SSHまたはFTPを介してサーバーにアクセスできるようにすることができます。

sudo ufw allow from 192.168.0.1 to any port 22

MySQLポートへのアクセスを許可することもできます。

sudo ufw allow from 192.168.0.1 to any port 3306

UFWを有効にする

UFWを有効にする(または再起動する)前に、SSHポートがIPアドレスからの接続を受信できることを確認する必要があります。UFWファイアウォールを起動または有効にするには、次のコマンドを使用します。

sudo ufw enable

次のような出力が表示されます。

root@ubuntu:~$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?

を押しY、次にを押しENTERてファイアウォールを有効にします。

Firewall is active and enabled on system startup

UFWの状態を確認する

UFWルールリストを印刷します。

sudo ufw status

次のような出力が表示されます。

Status: active

To                         Action      From
--                         ------      ----
80/tcp                     DENY        Anywhere
443/tcp                    DENY        Anywhere
3306                       DENY        Anywhere
22                         ALLOW       192.168.0.1
3306                       ALLOW       192.168.0.1
80/tcp (v6)                DENY        Anywhere (v6)
443/tcp (v6)               DENY        Anywhere (v6)
3306 (v6)                  DENY        Anywhere (v6)

verboseより詳細なステータスレポートを表示するには、このパラメータを使用します。

sudo ufw status verbose

その出力は次のようになります。

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
80/tcp                     DENY IN     Anywhere
443/tcp                    DENY IN     Anywhere
3306                       DENY IN     Anywhere
22                         ALLOW IN    192.168.0.1
3306                       ALLOW IN    192.168.0.1
80/tcp (v6)                DENY IN     Anywhere (v6)
443/tcp (v6)               DENY IN     Anywhere (v6)
3306 (v6)                  DENY IN     Anywhere (v6)

UFWを無効化/リロード/再起動

ファイアウォールのルールを再読み込みする必要がある場合は、以下を実行してください。

sudo ufw reload

UFWを無効にする、または停止するには

sudo ufw disable

UFWを再起動するには、まずそれを無効にしてから再度有効にする必要があります。

sudo ufw disable
sudo ufw enable

注: UFWを有効にする前に、SSHポートがIPアドレスに許可されていることを確認してください。

ルールを削除する

UFWのルールを管理するには、それらをリストする必要があります。あなたは、パラメータでUFWステータスをチェックすることによってそれをすることができますnumbered

sudo ufw status numbered

次のような出力が表示されます。

Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 80/tcp                     DENY IN     Anywhere
[ 2] 443/tcp                    DENY IN     Anywhere
[ 3] 3306                       DENY IN     Anywhere
[ 4] 22                         ALLOW IN    192.168.0.1
[ 5] 3306                       ALLOW IN    192.168.0.1
[ 6] 80/tcp (v6)                DENY IN     Anywhere (v6)
[ 7] 443/tcp (v6)               DENY IN     Anywhere (v6)
[ 8] 3306 (v6)                  DENY IN     Anywhere (v6)

さて、これらの規則を削除するには、角括弧内にこれらの数字を使用する必要があります。

sudo ufw delete [number]

HTTPルール(80)を削除するには、次のコマンドを使用します。

sudo ufw delete 1

IPv6サポートを有効にする

VPSでIPv6を使用している場合は、UFWでIPv6サポートが有効になっていることを確認する必要があります。これを行うには、テキストエディタで設定ファイルを開きます。

sudo vi /etc/default/ufw

開いたら、それIPV6が “yes”に設定されていることを確認してください。

IPV6=yes

この変更を加えたら、ファイルを保存してください。次に、UFWを無効にしてから再度有効にして、UFWを再起動します。

sudo ufw disable
sudo ufw enable

デフォルト設定に戻る

デフォルト設定に戻る必要がある場合は、次のコマンドを入力してください。これはあなたの変更を元に戻すでしょう:

sudo ufw reset

おめでとうございます、これで基本的なファイアウォールルールがいくつか設定されました。他の例を学ぶために、UFW – Community Help Wikiを調べてください。