blog

Linuxファイアウォールチュートリアル

ファイアウォールは、ネットワーク侵入に対するコンピュータの最初の障壁です。...

Oct 27, 2025 · 5 min. read
シェア

ファイアウォールは、ネットワーク侵入に対するコンピュータの最初の障壁です。念のため、メモ用紙をダウンロードしてください。

適切なファイアウォールは、ネットワーク侵入に対するコンピュータの最初の障壁です。自宅でインターネットを利用している場合、通常、インターネット・サービス・プロバイダーがルーティングにファイアウォールのレイヤーを構築します。そのため、Linux コンピュータのファイアウォールを設定し、制御することが重要です。Linux サーバを管理している場合、ローカルでもリモートでも不正なトラフィックからサーバを保護できるように、ファイアウォールの管理方法を知っておくことも重要です。

ファイアウォールの設置

多くのLinuxディストリビューションにはすでにファイアウォール、通常はiptablesが付属しており、強力でカスタマイズ可能ですが、設定は少々複雑です。幸いなことに、長いiptablesルールを書かなくてもファイアウォールをコントロールできるようなフロントエンドプログラムを書いている開発者もいます。

Fedora、CentOS、Red Hat、およびいくつかの同様のディストリビューションでは、デフォルトでインストールされるファイアウォールソフトウェアはfirewalldで、firewall-cmdコマンドで設定・制御されます。Debianや他のほとんどのディストリビューションでは、firewalldはリポジトリからインストールすることができます:

  1. $ sudo add-apt-repository universe
  2. $ sudo apt install firewalld

また、ufwを無効にする必要があります:

  1. $ sudo systemctl disable ufw

これは強力なファイアウォールフロントエンドです。しかし、ほとんどのディストリビューションがfirewalldをサポートしており、ほとんどすべてのディストリビューションに付属しているsystemdに統合されているので、この記事ではfirewalldに焦点を当てます。

ディストロに関係なく、ファイアウォールを有効にするには、起動時にロードする必要があります:

  1. $ sudo systemctl enable --now firewalld

ファイアウォールドメインについて

Firewalld はファイアウォールの設定をできるだけ簡単にすることを目的としています。これは構築によって実現されます。ドメインは、ほとんどのユーザの日々のニーズに合う、賢明で一般的なルールのセットです。デフォルトでは 9 つのドメインがあります。

  • TRUSTED: すべての接続を受け付けます。これは最も偏執的でないファイアウォール設定であり、テストラボやネットワーク上でお互いを知っている人たちのホームネットワークなど、完全に信頼された環境でのみ使用してください。
  • home、work、internal:この3つのドメインでは、ほとんどの着信接続が受け付けられます。それぞれ、非アクティブなポートから入ってくると予想されるトラフィックは除外されます。この3つはいずれも、不確定なポートを使用するネットワーク・トラフィックがなく、ホーム・ネットワーク上の他のユーザを一般的に信頼できるホーム環境での使用に適しています。
  • public:パブリックエリア内で使用します。これは偏執的な設定で、ネットワーク上の他のコンピュータを信頼できない場合に使用します。選択された一般的で最も安全な着信接続のみを受信できます。
  • dmz:DMZは検疫ゾーンの略です。このドメインは主に、組織の外部ネットワークにあり、イントラネットへのアクセスが制限されている、一般にアクセス可能なコンピュータに使用されます。パーソナルコンピュータには役に立ちませんが、ある種のサーバには重要なオプションです。
  • external: 外部ネットワークに使用し、マスカレードを有効にします。DMZと同様に、SSHを含む選択的な着信接続のみを受け付けます。
  • block: このシステムで初期化されたネットワーク接続のみが受信されます。受信したネットワーク接続は icmp-host-prohibited メッセージとともに拒否されます。これは非常に偏執的な設定で、信頼されていない、あるいは安全でない環境にある特定のタイプのサーバーやパーソナル・コンピューターにとって重要です。
  • drop:すべての着信ネットワークパケットは応答なしでドロップされます。利用できるのは発信接続のみです。この設定よりも極端にするには、WiFiをオフにしてネットワークケーブルを抜くしかありません。

あなたのディストリビューションの全てのドメインを表示したり、設定ファイル /usr/lib/firewalld/zones から管理者の設定を表示したりすることができます。例として: 以下は Fefora 31 に付属する FedoraWorkstation ドメインです:

  1. $ cat /usr/lib/firewalld/zones/FedoraWorkstation.xml
  2. <?xml version="1.0" encoding="utf-8"?>
  3. <zone>
  4. <short>Fedora Workstation</short>
  5. <description>Unsolicited incoming network packets are rejected from port 1 to 1024, except for select network services. Incoming packets that are related to outgoing network connections are accepted. Outgoing network connections are allowed.</description>
  6. <service name="dhcpv6-client"/>
  7. <service name="ssh"/>
  8. <service name="samba-client"/>
  9. <port protocol="udp" port=""/>
  10. <port protocol="tcp" port=""/>
  11. </zone>

現在のドメインを取得

いつでも --get-active-zones オプションを使って、どのドメインにいるか確認できます:

  1. $ sudo firewall-cmd --get-active-zones

出力には、現在アクティブなドメイン名と、それに割り当てられているネットワークインターフェイスが表示されます。ラップトップでは、デフォルトドメインにあることは通常WiFiカードがあることを意味します:

  1. FedoraWorkstation
  2.   interfaces: wlp61s0

現在のドメインの変更

ドメインを変更するには、ネットワークインターフェイスを別のドメインに再割り当てします。例えば、例のwlp61s0カードをパブリックドメインに変更します:

  1. $ sudo firewall-cmd --change-interface=wlp61s0 --zone=public

喫茶店に行ってラップトップのセキュリティポリシーを上げる必要があると感じたり、仕事に行ってイントラネットに入るためにいくつかのポートを開く必要があったり、どんな理由でもいつでもインターフェイスのアクティブドメインを変更することができます。firewall-cmdコマンドを暗記する前に、changeとzoneというキーワードを覚えておけば、Tabを押したときに自動的にオプションが入力されるので、時間をかけてマスターすることができます。

詳細情報

  • ダウンロード

Read next