LinuxでUFWまたはfirewalldを使用して特定のポートをブロックする方法

Linuxで特定のポートをブロックするには、ブロックしたいポートとプロトコルに対応するファイアウォールルールを追加します。たとえば、UFWを使用しているUbuntuシステムでは、sudo ufw deny 8080/tcpポート8080への新しいTCP接続をブロックします。firewalldを使用しているシステムでは、既存のポート許可を削除するか、明示的な拒否ルールを追加できます。重要なのは、UFW、firewalld、低レベルのnftablesルールを混在させるのではなく、システムが実際に使用するファイアウォールを変更することです。

ポートをブロックする前に

まず、ポート番号と、アプリケーションがTCP、UDP、またはその両方を使用しているかどうかを確認してください。TCPルールは、同じ番号のUDPを自動的にブロックするわけではありません。リスニングソケットは、以下のコマンドでも確認できます。

sudo ss -lntup

ファイアウォールルールはネットワークトラフィックを制御するものであり、アプリケーションがローカルでリッスンするのを阻止するものではありません。サービスが全く必要ない場合は、ファイアウォールルールだけに頼るよりも、そのサービスを停止または無効にする方が通常は良いでしょう。

SSH経由でマシンに接続している場合は、ファイアウォールを有効化または強化する前に、リモートアクセスルールを保護してください。最新のUFWマニュアルでは、UFWを有効にすると既存のSSH接続が中断される可能性があるため、まず必要なSSHアクセス権限を追加することを推奨しています。

UFWでポートをブロックする

Ubuntuのドキュメントでは、UFWがデフォルトのファイアウォール設定ツールとして記載されています。UFWは通常、初期状態では無効になっているため、ルールを追加または有効にする前にその状態を確認してください。

1. UFWを確認し、安全に有効化してください。

sudo ufw status

結果が でStatus: inactive、UFW を有効にしたい場合は、まず、依存しているリモート管理サービスを許可してください。標準の OpenSSH プロファイルの場合:

sudo ufw allow OpenSSH
sudo ufw enable
LinuxターミナルでUFWの状態が非アクティブと表示され、その後UFWファイアウォールが有効になる
特にリモート管理対象のマシンでは、ルールを変更する前にUFWが有効になっているかどうかを確認してください。

2. ポートに対する拒否ルールを追加する

8080ブロックしたいポート番号に置き換えてください。ルールが明確になるようにプロトコルを指定してください。

sudo ufw deny 8080/tcp

UDPの場合は、以下を使用してください

sudo ufw deny 8080/udp

アプリケーションが両方のプロトコルを使用する場合は、両方のルールを追加してください。UFW は、rejectサイレント拒否とは異なり、接続が拒否されたことを送信者に通知する拒否もサポートしています。

Linuxターミナルにsudo ufw deny 8080/tcpコマンドが表示され、ファイアウォールルールが追加されたことが確認できる。
UFWの拒否ルールは、指定されたポートへの受信TCPトラフィックをブロックします。

3. UFWルールを確認または削除する

sudo ufw status numbered

出力には、ブロックされたポートの「DENY IN」エントリが表示されるはずです。公式のUFW構文では、: を付けてルールを繰り返すことでルールを削除することもできますdelete。

sudo ufw delete deny 8080/tcp
LinuxターミナルにUFWの番号付きステータスが表示され、TCPポート8080がIPv4とIPv6で拒否されている。
番号付きのステータス出力を使用して、意図したUFWルールが有効になっていることを確認してください。

firewalldでポートをブロックする

Linux環境でfirewalldを使用している場合は、まずアクティブなゾーンを見つけることから始めましょう。

sudo firewall-cmd --get-active-zones
sudo firewall-cmd --zone=public --list-all

publicお使いのインターフェースが別のゾーンに属している場合は、以下の設定を置き換えてください。ポート8080が明示的に開かれている場合は、その許可を削除して永続的な設定を再読み込みしてください。

sudo firewall-cmd --permanent --zone=public --remove-port=8080/tcp
sudo firewall-cmd --reload
Linuxターミナルにアクティブなfirewalldゾーン、TCPポート8080の削除、およびファイアウォールのリロードが表示されている。
firewalldを使用する場合は、正しいアクティブゾーンで変更を行い、永続的なルールを再読み込みしてください。

ポートがサービス定義によって間接的に許可されている場合、または明示的にブロックしたい場合は、詳細な拒否ルールを追加してください。

sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule port port="8080" protocol="tcp" reject'
sudo firewall-cmd --reload
sudo firewall-cmd --zone=public --list-rich-rules

firewalldのリッチルールに関するドキュメントでは、ポートマッチングとアクションをサポートしていますreject。dropまた、 firewall-cmdのマニュアルでは、実行時設定と永続設定の分離についても説明しています。

後でその明示的な firewalld ブロックを削除するには、同じリッチルールを削除して再読み込みします。

sudo firewall-cmd --permanent --zone=public --remove-rich-rule='rule port port="8080" protocol="tcp" reject'
sudo firewall-cmd --reload

ポートにアクセスできなくなったことを確認してください。

sudo ss -lntupアプリケーションがまだリッスンしているかどうかを確認したい場合は、再度実行してください。次に、関連するネットワーク上の別のマシンからテストします。Netcat がインストールされている場合は、TCP チェックは次のようになりますnc -vz SERVER_IP 8080。実際のクライアントが使用するのと同じネットワーク パスからテストしてください。localhost でのテストでは、外部トラフィックがブロックされていることを証明できません。

サービスを一切公開すべきでない場合は、サービス自体を無効にするか、再構成してください。ファイアウォールはアクセス制御レイヤーであり、不要なリスナーを削除する代替手段ではありません。

コメントを残す

失われたパーティションとハードディスクデータを安全に復元する方法

失われたパーティションとハードディスクデータを安全に復元する方法

TestDiskとPhotoRecを使って、失われたパーティションやファイルを復元する方法を学びましょう。ソースドライブを保護し、安全にスキャンを行い、復元したデータを別のディスクに保存します。

LinuxデスクトップでQRコードをスキャンする方法

LinuxデスクトップでQRコードをスキャンする方法

CoBangを使えば、Webカメラまたは画像ファイルでLinux上でQRコードをスキャンできます。インストールオプション、セットアップ手順、Flatpakカメラへのアクセスに関する修正方法については、こちらをご覧ください。

Cameractrlsを使ってLinuxでウェブカメラの設定を変更する方法

Cameractrlsを使ってLinuxでウェブカメラの設定を変更する方法

Cameractrlsを使用してLinux上でウェブカメラの設定を変更しましょう。露出、色、フリッカー低減などのサポートされているコントロールを調整し、互換性のあるビデオモードを確認できます。

LinuxにPhpStormをインストールする方法:ツールボックス、Tar.gz、Snap、およびAUR

LinuxにPhpStormをインストールする方法:ツールボックス、Tar.gz、Snap、およびAUR

LinuxにPhpStormをインストールするには、JetBrains Toolboxを使用するか、スタンドアロンのtar.gzアーカイブを使用するか、SnapおよびArch AURオプションを選択してください。Javaは既にバンドルされています。

LinuxにCisco Packet Tracerをインストールする方法

LinuxにCisco Packet Tracerをインストールする方法

Cisco Packet Tracer 9.0.1 を Ubuntu 64 ビット版にダウンロードし、APT を使用して DEB パッケージをインストールし、ターミナルでライセンスに同意してサインインすると、ラボを開始できます。

LinuxでCD-ROMをISOイメージとしてバックアップする方法

LinuxでCD-ROMをISOイメージとしてバックアップする方法

Linux上でGNOME Disksまたはddコマンドを使用してCD-ROM ISOイメージを作成します。光学ドライブを識別し、コピーを監視し、イメージを検証し、破損したディスクやオーディオディスクに別のツールが必要な場合を把握できます。

XFCE 4でデュアルパネルを設定する方法

XFCE 4でデュアルパネルを設定する方法

各ディスプレイごとに個別のXFCE 4パネルを作成し、2番目のパネルを右側の出力に割り当て、位置とサイズを調整し、必要なランチャーとステータス項目を追加します。

LinuxでGIMPを使って画像を切り抜く方法

LinuxでGIMPを使って画像を切り抜く方法

LinuxでGIMPを使って写真の背景を削除する方法:被写体をトレースし、選択した背景を削除し、透明度を保持して、再利用可能なPNG形式でエクスポートします。

FlightGearを無料でダウンロード:公式インストールガイド

FlightGearを無料でダウンロード:公式インストールガイド

FlightGearは公式サイトから無料でダウンロードできます。Windows、macOS、Linuxの各パッケージを比較し、データファイルをインストールして、最初のフライトを開始しましょう。

OKSampler:キーボードビートのための無料かつシンプルな音楽サンプラー

OKSampler:キーボードビートのための無料かつシンプルな音楽サンプラー

OKSamplerはMP3クリップをキーボードのキーにマッピングし、音声をループ再生できます。この旧型フリーウェアの機能、旧機能が失われた箇所、ダウンロード前に確認すべき点について解説します。