【Linux】Firewalldを構成してみる【セキュリティ】
はじめまして!サーバーエンジニアのパインです!Linux大好きマンです!
ブログネタどうしようか悩んでいたのですが、社内ブログ見ててFirewallについて書かれてないことに気がつきました。なのでLinux大好きマン、Firewalldについてザックリ書いていこうと思います。
そもそもFirewallとは
中級魔法です。MPを10消費して炎の壁を生成します。概要は下記になります。
ファイアウォールとは、ネットワークの境界に設置され、内外の通信を中継・監視し、外部の攻撃から内部を保護するためのソフトウェアや機器、システムなどのこと。原義は「防火壁」で、外部からの攻撃に対する防御を、火事の炎を遮断して延焼を防ぐことになぞらえている。
引用元:IT用語辞典 e-Words
ネットワークの境界というのは主に「社内ネットワーク」や「データセンター」と「インターネット」の境界を指します。おうちで例えるなら玄関の扉ですね。
WindowsなどPCにもプログラムとして搭載されていて、今回はLinuxで使えるプログラムFirewalldについて設定していきます。
環境情報
今回の環境情報は下記になります。
AlmaLinux 8.5 (minimal install)
– firewalld 0.9.3
– httpd 2.4.37
Firewalldを実際に入れてみる
minimal installですでにインストールされていますが、もし入っていない場合は下記コマンドでインストールできます。
# dnf install firewalld
インストール後、下記コマンドでバージョンとサービス確認できればOK!
# firewall-cmd --version
0.9.3
# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
~略~
起動、停止については割愛します。
Firewalldを設定する
Firewalldの設定、確認コマンドはfirewall-cmd
になります。
まずアクティブな設定を確認しましょう。
# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: cockpit dhcpv6-client ssh
~略~
eth0にpublicゾーンが割り当てられ、「cockpit」「dhcpv6-client」「ssh」のサービスが割り当てられています。
サービスというのはXML形式で定義され「/usr/lib/firewalld/service」配下に保存されています。
今回はApache Webサーバーですがブラウザでアクセスすると。。。
拒否されてしまいます。httpを割り当ててみます。
# firewall-cmd --add-service=http --zone=public --permanent
success
# firewall-cmd --reload
# firewall-cmd --list-all
~略~
services: cockpit dhcpv6-client http ssh
~略~
無事追加されました。ブラウザからアクセスしてみます。
アクセスできました。
ちなみに「http」のサービスのXMLファイルは下記のようにポート80のアクセスについて定義されています。今回設定したのはポート80へのアクセスを許可する設定というわけです。
# cat /usr/lib/firewalld/service/http.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>WWW (HTTP)</short>
<description>HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.</description>
<port protocol="tcp" port="80"/>
</service>
最後に
Firewallはネットワーク・サーバーセキュリティの基礎になるのでまだまだ書くことたくさんあるのですがちゃんと解説すると超大作になってしまうので今回はここまで。
次回はFirewalldにちょっと頭のいい機能を追加します。