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

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

ファイアウォールがないと、ネットワーク トラフィックにルールや制限がなくなり、多くの悪影響が生じます。 Linux システムには、デフォルトのファイアウォール構成ツールである Uncomplicited Firewall (UFW) が付属しています。しかし、UFW ファイアウォールをどのようにセットアップしますか?座ってリラックスしてください。このチュートリアルで十分にカバーできます!

このチュートリアルでは、ネットワークを保護し、悪意のある行為を防ぐために、UFW を構成し、Linux システムにファイアウォールをセットアップする方法を学びます。

準備?読み進めて始めましょう!

前提条件

このチュートリアルは実践的なデモンストレーションです。フォローしたい場合は、次のものが揃っていることを確認してください:

  • Ubuntu マシン – このチュートリアルでは Ubuntu 20.04 LTS を使用しますが、他の Linux ディストリビューションでも動作します。
  • あなたのマシンへの root 権限

UFW のインストールと IPv6 接続の有効化

UFW は Ubuntu システムにパッケージされていますが、UFW はデフォルトではインストールされません。最初に apt で UFW をインストールします パッケージ マネージャーを開き、IPv6 経由の接続を許可するように構成します。

1. 端末を開いて apt update を実行します 以下のコマンドを実行して、ローカル パッケージ インデックスを更新します。コマンドはすべてのプロンプトを受け入れます (-y ) ユーザーの介入を少なくするために更新中に。

sudo apt update -y

2. 次に、以下のコマンドを実行して UFW をインストールします (install uwf ) すべてのプロンプト (-y を受け入れながら、システム上で) ) インストール中。

sudo apt install ufw -y

2. UFW 構成ファイルを開きます (/etc/default/ufw ) お気に入りのテキスト エディターで。 UFW は IPv6 をサポートしていますが、ファイアウォールが IPv6 経由の接続を受け入れるように構成されていることを確認する必要があります。

IPv4 しか有効になっていない場合でも、IPv6 攻撃に対して無防備なままです.

4. IPV6 までスクロールします。 変数を作成し、値を yes に設定します 、次に示すように、変更を保存してエディターを終了します

5. 最後に、以下のコマンドを実行して、UFW を無効にして再度有効にします。このコマンドは UFW サービスを再起動して、変更を有効にします。

コマンドが完了すると、ファイアウォールは IPv4 と IPv6 の両方のファイアウォール ルール セットを書き込むことができるようになります。

sudo ufw disable && sudo ufw enable

ファイアウォール ルールのデフォルト ポリシーの設定

UFW を使い始めたばかりの場合は、ルールのデフォルト ポリシーを設定することをお勧めします。デフォルトのポリシーは、特定のルールがまだ定義されていないチェーンに適用されます。

すべての着信接続を拒否し、すべての発信接続を許可するように UFW を設定します。その結果、外の世界からマシンにアクセスしようとする人は拒否されますが、Web サイトやサーバーには自由に接続できます。

ufw を実行します 以下のコマンドを deny に すべて incoming default による接続 .

sudo ufw default deny incoming

allow に対して次のコマンドを実行します。 すべて outgoing default による接続 .

sudo ufw default allow outgoing

UFW ファイアウォールでの SSH 接続の許可

すべての着信トラフィックを拒否するように UFW ファイアウォールに既定のポリシーを設定しました。「すべて許可 - すべて拒否」ルールは、通常のユーザーに適した設定です。しかし、サーバーを実行している場合はどうでしょうか?特定のトラフィックの出入りを許可する必要があります。 UFW ファイアウォールで SSH 接続を許可すると、特定のトラフィックの出入りを許可するトリックが実行されます。

ポート 22 で受信 SSH 接続を許可する SSH サーバーをセットアップします。 Unix ライクなシステムでは、SSH デーモンはデフォルトでポート 22 をリッスンするため、デフォルトの SSH ポートを使用することをお勧めします。

1. 以下のコマンドを実行して、OpenSSH サーバー (install openssh-server) をインストールします。 ) をシステムにインストールし、OpenSSH サーバー (start ssh) を起動します。 )。

sudo apt install openssh-server -y
sudo systemctl start ssh

2. 以下のコマンドを実行して、着信 SSH 接続を許可します。 UFWはSSH用のポートを認識しているため、ポート22を指定しなくても十分です。

sudo ufw allow ssh

/etc/services ファイルには、システムで利用可能なすべてのサービスのリストが含まれています。テキスト エディタでファイルを開き、ssh までスクロールします。 ポート番号 (22 ) は、以下に示すように、サービスの説明の一部です。

しかし、おそらくポート番号 (22) を指定したいでしょう。 ) SSH を許可します。その場合は、代わりに次のコマンドを実行します。

sudo ufw allow 22

3. 以下のコマンドを実行して、UFW を有効にします。

sudo ufw enable

Y と入力 以下に示すように、確認プロンプトで を入力し、Enter キーを押してコマンドの実行を続行します。 UFW は、システムでパケットのフィルタリングを開始します。

4. 最後に、以下のコマンドのいずれかを実行して、UFW ファイアウォールのステータスを確認します。

## Displays more detailed information, such as the interface and 
## the packet's current progress
sudo ufw status verbose
## Shows each rule with a number and the corresponding allow or deny status 
## The numbered mode is useful when you are trying to delete a rule set here and there
sudo ufw status numbered

verbose でコマンドを実行すると オプションを選択すると、以下のような出力が表示されます:

  • ステータス:アクティブ – ファイアウォールが現在実行中であることを示します。
  • ロギング:オン (低) – UFW が、ファイアウォールによって処理されているすべてのパケットをログに記録していることを示します。
  • デフォルト:拒否 (着信)、許可 (発信)、無効 (ルーティング) – デフォルトのポリシーが、すべての着信接続を拒否し、すべての発信接続を許可することであることを示します。
  • 新しいプロファイル:スキップ – ファイアウォールが現在デフォルトのルール セットを使用していることを示します。

numbered でコマンドを実行すると 代わりにオプションを使用すると、以下の出力が表示されます。番号付きのルールとそれに対応する ALLOW のリストを確認できます または拒否 状態。

HTTP および HTTPS 接続の許可

この時点で、UFW ファイアウォールで SSH 接続のみを許可しましたが、それによってサーバーの機能が制限されます。 HTTP や HTTPS などの他の種類の接続を許可し、UFW ファイアウォールにルールを追加します。

次のコマンドのいずれかを実行して、着信 HTTP 接続を許可します。

## HTTP connection uses port 80 (not secure)
sudo ufw allow 80
sudo ufw allow http

次に、以下のいずれかのコマンドを実行して、受信 HTTPS 接続を許可します。

sudo ufw allow https
## HTTP connection uses port 443 (secure)
sudo ufw allow 443

特定のポート範囲と IP アドレスからの接続を許可する

一部のアプリケーションは、サービスを提供するために複数のポートを使用します。また、開くポートの範囲がある場合や、特定の IP アドレスからの接続を許可する必要がある場合もあります。その場合は、さらに UFW ファイアウォール ルールを追加してください。

以下のコマンドを実行して、ポート 5001 から 5009 で着信接続を許可します。常にプロトコル (tcp) を指定する必要があります。 または udp ) すべてのポートが両方のプロトコルで使用されているわけではないため、ルールが適用されるポート範囲の後に。

たとえば、一般的に使用される TCP ポートには、80 (HTTP) と 443 (HTTPS) があります。ただし、一般的な UDP ポートには 53 (DNS) と 67/68 (DHCP) が含まれます。

sudo ufw allow 5001:5010/tcp
sudo ufw allow 5001:5010/udp

特定の IP アドレスからの SSH 接続を許可する場合は、代わりに以下のコマンドを実行します。このコマンドは SSH 接続を許可します (port 22 ) 192.168.1.2 からのみ IP アドレス。

sudo ufw allow from 192.168.1.2 to any port 22

特定のネットワーク インターフェースからのトラフィックを許可する

UFW では、eth0 が最初のイーサネット インターフェイスで、wlan0 が最初の Wi-Fi インターフェイスなど、特定のネットワーク インターフェイスでのみトラフィックを許可することもできます。

以下のいずれかのコマンドを実行して、eth0 でのみ HTTP 接続を許可します。 と wlan0

## Allow HTTP connection only on the eth0 interface
sudo ufw allow in on eth0 to any port 80
## Allow HTTP connection only on the wlan0 interface
sudo ufw allow in on wlan0 to any port 80

UFW ファイアウォール ルールの削除

おそらく、一部の UFW ファイアウォール ルールはもはや何の役にも立ちません。その場合、UFW から一部のルールを削除することをお勧めします。ただし、最初に、削除するルールの番号または名前を知っている必要があります。

1. 以下のコマンドを実行して、UFW に追加されたルールの番号付きリストを取得します。

sudo ufw status numbered

以下のように、出力内のルールの番号または名前に注意してください。

2. 次に、以下のコマンドを delete に対して実行します。 ルール番号 4 、これは 5001:5010/tcp です ポート範囲。

sudo ufw delete 4

3. 以下のコマンドを delete に実行します allow を含む実際の名前によるルール 状態。この例では、http を削除します。 次のコマンドを実行してルールを設定します。

sudo ufw delete allow http

4. delete に対して次のコマンドを実行します。 ポート番号を指定するルール (443 ) allow 状態。

sudo ufw delete allow 443

5. 最後に、手順 1 と同様に次のコマンドを再実行して、すべてのルールを一覧表示します。

sudo ufw status numbered

以下に示すように、5001:5010/tcp のルールは ポート範囲、http 、および 443 ポートはなくなりました。

UFW ファイアウォールのリセット

大規模なルール セットを構成した後など、UFW をデフォルトにリセットする必要がある場合があります。更新により構成が変更される可能性があり、UFW を再構成し、場合によっては最初からやり直す必要があります。

ufw reset を実行します 以下のコマンドを実行して、すべてのファイアウォール ルールをデフォルト設定にリセットします。このコマンドは、UFW を無効にし、現在のファイアウォール ルールをすべて削除します。

sudo ufw reset

「Y」と入力して Enter キーを押し、UFW ファイアウォールのリセットを続行します。

リセットが完了すると、UFW の新規インストールが完全に無効になり、デフォルトのポリシーもなくなります。

以下のコマンドを実行して、UFW を再度有効にし、ファイアウォール ルールの構成を最初から開始します。

sudo ufw enable

UFW をもう使用しないことにした場合は、再度有効にする必要はありません。または、以下のコマンドを実行して、UFW が無効になっていることを確認してください。

sudo ufw disable

結論

このチュートリアルを通して、UFW を使用する場合、ファイアウォールの設定はそれほど困難ではないことに気付きました。これで、Ubuntu で UFW を使用して独自のルールを設定および実装する方法を十分に理解できたはずです。

では、Linux マシンでの UFW と Docker セキュリティについてさらに学習することで、この新たに発見された知識を構築してみませんか?


Linux
  1. Linux pthreads でスレッドの名前を設定するには?

  2. LinuxでCからIPアドレスを設定する方法

  3. Linux で優先ネットワーク インターフェイスを設定する方法

  1. Linuxがメインフレームに登場した経緯

  2. Linux – Linuxでプロセスのプロセッサ親和性を設定するにはどうすればよいですか?

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

  1. Linuxでプリンタを設定する方法

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

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