アンドロイド

ubuntu 18.04でufwを使用してファイアウォールを設定する方法

Install Anaconda Python, Jupyter Notebook, Spyder on Ubuntu 18.04 Linux / Ubuntu 20.04 LTS

Install Anaconda Python, Jupyter Notebook, Spyder on Ubuntu 18.04 Linux / Ubuntu 20.04 LTS

目次:

Anonim

適切に構成されたファイアウォールは、システム全体のセキュリティの最も重要な側面の1つです。 デフォルトでは、UbuntuにはUFW(Uncomplicated Firewall)と呼ばれるファイアウォール設定ツールが付属しています。 UFWは、iptablesファイアウォールルールを管理するためのユーザーフレンドリーなフロントエンドであり、その主な目標は、iptablesの管理を容易にすること、または名前が複雑でないことを示すことです。

前提条件

このチュートリアルを始める前に、sudo特権を持つユーザーアカウントまたはrootユーザーでサーバーにログインしていることを確認してください。 ベストプラクティスは、rootではなくsudoユーザーとして管理コマンドを実行することです。 Ubuntuシステムにsudoユーザーがいない場合は、次の手順に従って作成できます。

UFWをインストールする

複雑でないファイアウォールは、Ubuntu 18.04にデフォルトでインストールする必要がありますが、システムにインストールされていない場合は、次を入力してパッケージをインストールできます。

sudo apt install ufw

UFWステータスを確認する

インストールが完了したら、次のコマンドを使用してUFWのステータスを確認できます。

sudo ufw status verbose

UFWはデフォルトで無効になっています。 UFWをアクティブにしたことがない場合、出力は次のようになります。

Status: inactive

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

UFWデフォルトポリシー

デフォルトでは、UFWはすべての着信接続をブロックし、すべての発信接続を許可します。 つまり、サーバーにアクセスしようとするユーザーは、ポートを特別に開かない限り接続できず、サーバーで実行されているすべてのアプリケーションとサービスは外部にアクセスできます。

デフォルトのポリシーは /etc/default/ufw ファイルで定義されており、 sudo ufw default を使用して変更でき sudo ufw default コマンド。

ファイアウォールポリシーは、より詳細でユーザー定義のルールを構築するための基盤です。 ほとんどの場合、最初のUFWデフォルトポリシーが出発点として適切です。

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

apt コマンドでパッケージをインストールすると、アプリケーションプロファイルが /etc/ufw/applications.d ディレクトリに追加されます。 プロファイルはサービスを記述し、UFW設定を含みます。

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

sudo ufw app list

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

Available applications: Dovecot IMAP Dovecot POP3 Dovecot Secure IMAP Dovecot Secure POP3 Nginx Full Nginx HTTP Nginx HTTPS OpenSSH Postfix Postfix SMTPS Postfix Submission

特定のプロファイルおよび含まれるルールに関する詳細を検索するには、次のコマンドを使用します。

sudo ufw app info 'Nginx Full'

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

上記の出力からわかるように、「Nginx Full」プロファイルはポート 80 および 443 開きます。

SSH接続を許可する

UFWファイアウォールを有効にする前に、着信SSH接続を許可するルールを追加する必要があります。 リモートロケーションからサーバーに接続する場合(ほとんどの場合)、着信SSH接続を明示的に許可する前にUFWファイアウォールを有効にすると、Ubuntuサーバーに接続できなくなります。

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

sudo ufw allow ssh

Rules updated Rules updated (v6)

SSHポートをポート22ではなくカスタムポートに変更した場合、そのポートを開く必要があります。

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

sudo ufw allow 4422/tcp

UFWを有効にする

UFWファイアウォールが着信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 押すだけです。

他のポートでの接続を許可する

サーバーで実行されるアプリケーションと特定のニーズに応じて、他のポートへの着信アクセスを許可する必要もあります。

以下に、いくつかの最も一般的なサービスへの着信接続を許可する方法の例をいくつか示します。

ポート80を開く-HTTP

HTTP接続は、次のコマンドで許可できます。

sudo ufw allow

httpの代わりに、ポート番号80を使用できます。

sudo ufw allow 80/tcp

または、アプリケーションプロファイル、この場合は「Nginx

sudo ufw allow 'Nginx

ポート443を開く-HTTPS

HTTP接続は、次のコマンドで許可できます。

sudo ufw allow

https プロファイルの代わりに同じことを実現するには、ポート番号 443 使用できます。

sudo ufw allow 443/tcp

または、アプリケーションプロファイル「Nginx

sudo ufw allow 'Nginx

ポート8080を開く

sudo ufw allow 8080/tcp

ポート範囲を許可

単一ポートへのアクセスを許可する代わりに、UFWではポート範囲へのアクセスを許可できます。 UFWでポート範囲を許可する場合、 tcp または udp いずれかのプロトコルを指定する必要があります。 たとえば、 tcp udp 両方で tcp ポートを許可する場合は、次のコマンドを実行します。

sudo ufw allow 7100:7200/tcp sudo ufw allow 7100:7200/udp

特定のIPアドレスを許可する

IPアドレスが64.63.62.61のホームマシンからすべてのポートへのアクセスを許可するには、 from 後にホワイトリストに登録するIPアドレスを指定します。

sudo ufw allow from 64.63.62.61

特定のポートで特定のIPアドレスを許可する

特定のポートへのアクセスを許可するには、IPアドレスが64.63.62.61の作業マシンのポート22を使用 to any port ポート番号の後に続く to any port 使用 to any port

sudo ufw allow from 64.63.62.61 to any port 22

サブネットを許可する

IPアドレスのサブネットへの接続を許可するコマンドは、単一のIPアドレスを使用する場合と同じですが、唯一の違いは、ネットマスクを指定する必要があることです。 たとえば、192.168.1.1から192.168.1.254の範囲のIPアドレスからポート3360(MySQL)へのアクセスを許可する場合、次のコマンドを使用できます。

sudo ufw allow from 192.168.1.0/24 to any port 3306

特定のネットワークインターフェイスへの接続を許可する

特定のポートへのアクセスを許可するには、ポート3360を特定のネットワークインターフェース eth2 のみに allow in on する allow in on ます。その場合、 allow in on とネットワークインターフェースの名前を指定 allow in on 必要があります。

sudo ufw allow in on eth2 to any port 3306

接続を拒否する

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

ポート 80 443 を開き、サーバーが 23.24.25.0/24 ネットワークから攻撃を受けている 23.24.25.0/24 ます。 23.24.25.0/24 からのすべての接続を拒否するには、次のコマンドを使用できます。

sudo ufw deny from 23.24.25.0/24

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

拒否ルールを作成することは、許可ルールを作成することと同じです allow deny に置き換えるだけです。

UFWルールを削除する

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

UFWを初めて使用する場合は特に、ルール番号でUFWルールを削除する方が簡単です。 最初にルール番号でルールを削除するには、削除するルールの番号を見つける必要があります。次のコマンドを使用して削除できます。

sudo ufw status numbered

Status: active To Action From -- ------ ---- 22/tcp ALLOW IN Anywhere 80/tcp ALLOW IN Anywhere 8080/tcp ALLOW IN Anywhere

ポート8080への接続を許可するルール番号3を削除するには、次のコマンドを使用します。

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

結論

Ubuntu 18.04サーバーにUFWファイアウォールをインストールして構成する方法を学習しました。 システムの適切な機能に必要なすべての着信接続を許可し、不要な接続をすべて制限してください。

ufw firewall iptables ubuntuセキュリティ