CentOS8.2インストール手順(6)ファイアウォールfirewalldの設定手順をコマンド付きで丁寧に解説
CentOS8.2のファイアウォール「firewalld」の設定手順を知りたい
CentOS8.2のファイアウォール「firewalld」の設定のやり方が分からない、と悩んでいませんか?
CentOS6まではパケットフィルタ機能としては、「iptables」が使われていたのですが、 CentOS7以降のバージョンでは、あらたに「firewalld」が使われています。 本記事では、firewalldの設定の確認、デフォルトからの変更方法、の手順をコマンド付きで紹介します。
CentOS8.2のファイアウォールfirewalldの設定の確認、デフォルトからの変更方法、の手順を解説します
本記事では、下記の内容を解説します。
- CentOS8.2のfirewalldの現在の設定内容を確認する手順
- CentOS8.2のfirewalldに新しい設定を追加する手順
この記事を書いている私は、某SIerに勤務しながら、WEB系エンジニア・インフラエンジニアに憧れて、
プログラミングおよびインフラ技術の勉強をしています。
私が実機で試したコマンドや画像を載せて書いていますので、記事の信頼性担保に繋がると思います。
- CentOS8.2インストール手順(6)ファイアウォールfirewalldの設定手順をコマンド付きで丁寧に解説
- インフラエンジニアになるための勉強のやり方
前回の記事
CentOS8.2でfirewalldの現在の状態を確認
firewalldの管理コマンドはfirewall-cmd
のあとにオプションをいろいろ付ける形になっています。
まずは現在のfirewalldの動作状況を確認
firewall-cmd --state
[root@SV-EARTH ~]# firewall-cmd --state running
CentOS8.2インストール後の初期状態だと、running
と表示されました
デフォルトで割り当てられている「ゾーン」の確認
firewalldには、「ゾーン(zone)」という考え方があります。
いくつかのパケットフィルタのルールをまとめた雛形があらかじめ用意されている感じのものみたいです。
firewall-cmd --get-default-zone
[root@SV-EARTH ~]# firewall-cmd --get-default-zone public
CentOS8.2インストール後のデフォルトのゾーンはpublic
でした。
publicゾーンの設定内容を確認
publicゾーンの設定内容を確認します。
services
のところを見ると、cockpit
とdhcpv6-client
とssh
が許可されているのがわかります。
(※cockpit
はCentOS8で新たに追加されたブラウザでサーバーを管理するための機能)
firewall-cmd --list-all
[root@SV-EARTH ~]# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: enp2s0 sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
そのほかのゾーンすべての設定内容を確認
CentOS8.2インストール後の状態では、以下の9個のゾーンがありました。
ゾーン名 | 設定内容 |
---|---|
block | REJECT(受信はすべて拒否)、ICMPブロックは無し |
dmz | sshサービスのみ許可 |
drop | DROP(すべて破棄) |
external | sshサービスのみ許可、マスカレードあり |
home | cockpit、dhcpv6-client、mdns、samba-client、sshサービスのみ許可 |
internal | cockpit、dhcpv6-client、mdns、samba-client、sshサービスのみ許可 |
public (default) | cockpit、dhcpv6-client、sshサービスのみ許可 |
trusted | ACCEPT(すべて許可) |
work | cockpit、dhcpv6-client、sshサービスのみ許可 |
firewall-cmd --list-all-zones
[root@SV-EARTH ~]# firewall-cmd --list-all-zones block target: %%REJECT%% icmp-block-inversion: no interfaces: sources: services: ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: dmz target: default icmp-block-inversion: no interfaces: sources: services: ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: drop target: DROP icmp-block-inversion: no interfaces: sources: services: ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: external target: default icmp-block-inversion: no interfaces: sources: services: ssh ports: protocols: masquerade: yes forward-ports: source-ports: icmp-blocks: rich rules: home target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client mdns samba-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: internal target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client mdns samba-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: public (active) target: default icmp-block-inversion: no interfaces: enp2s0 sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: trusted target: ACCEPT icmp-block-inversion: no interfaces: sources: services: ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: work target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Windows端末からのリモート操作用の新しいゾーンを作成
もともと用意されている9個のゾーンに対して、フィルタルールの追加・削除をすることもできますが、
今回は「個別に接続元のIPアドレスを指定したルールを追加」したかったので、
新しくゾーンmangerzone
を作成して、そのゾーンに対して設定を追加することにしました。
新しいゾーン作成
--new-zone
オプションを使います。
firewall-cmd --new-zone=managerzone --permanent
[root@SV-EARTH ~]# firewall-cmd --new-zone=managerzone --permanent success
作成したゾーンに接続許可を与える
--set-target
オプションを使います。
firewall-cmd --zone=managerzone --set-target=ACCEPT --permanent
[root@SV-EARTH ~]# firewall-cmd --zone=managerzone --set-target=ACCEPT --permanent success
作成したゾーンにsshサービスを追加
--add-service
オプションを使います。
firewall-cmd --zone=managerzone --add-service=ssh --permanent
[root@SV-EARTH ~]# firewall-cmd --zone=managerzone --add-service=ssh --permanent success
作成したゾーンに接続元IPアドレスを追加
--add-source
オプションを使います。
firewall-cmd --zone=managerzone --add-source=●●●●●●(接続元の端末のIPアドレス)/24 --permanent
[root@SV-EARTH ~]# firewall-cmd --zone=managerzone --add-source=192.168.1.101/24 --permanent success
設定変更後の再読込み
firewall-cmd --reload
[root@SV-EARTH ~]# firewall-cmd --reload success
現在アクティブなゾーンの確認
firewall-cmd --get-active-zones
[root@SV-EARTH ~]# firewall-cmd --get-active-zones managerzone sources: 192.168.1.101/24 public interfaces: enp2s0
publicゾーンからsshサービスの削除
管理操作用のmanagerzone
を作成してsshサービスを許可したので、
逆に、public
ゾーンからはsshサービスを削除しておきます。
(これを残していると、他のすべてのIPアドレスからのssh接続を受け付けてしまうので)
sshサービスの削除
--remove-service
オプションを使います。
firewall-cmd --remove-service=ssh --zone=public --permanent
[root@SV-EARTH ~]# firewall-cmd --remove-service=ssh --zone=public --permanent success
設定変更後の再読込み
firewall-cmd --reload
[root@SV-EARTH ~]# firewall-cmd --reload success
変更後の確認
services
のところから、sshが削除されているのがわかります。
firewall-cmd --list-all
[root@SV-EARTH ~]# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: enp2s0 sources: services: cockpit dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
コマンド解説
- 管理コマンド
firewall-cmd
では、オプションの--zone
を省略すると、public
ゾーンが操作対象になります。 --permanent
オプションをつけないと、次回のOS再起動時に設定がリセットされてしまいます。--permanent
オプションをつけて設定変更した後は、firewalld-cmd reload
で設定の再読み込みをすることで反映されます。
インフラエンジニアになるための勉強のやり方
私は、某SIerに勤務しながら、WEB系エンジニア・インフラエンジニアに憧れて、プログラミングおよびインフラ技術の勉強をしています。
現在の会社で直接担当している業務の中では、決まった技術しか触れないけれど、
「他にも将来役に立ちそうなインフラ技術を勉強したい」「働きながらでもできる効率的なインフラエンジニアの勉強方法を知りたい」と考えている方のために、
①おすすめの書籍と、②おススメのオンライン学習サイトを紹介します。
働きながら勉強するための、おススメの書籍と、オンラインで学習できるサイトの紹介です。
インフラエンジニアの勉強ができるおススメ書籍
朝の通勤時や帰宅時の電車の中や、社外打合せへの移動中などに勉強するなら、やはり書籍が一番だと思います。
インフラエンジニアの教科書
LINE社に創業時から在籍しているインフラエンジニア・プロマネの「佐野裕」さんの本です。 twitter.com
膨大なトラフィックをさばくLINE社にて構築・保守を行っている現役エンジニアが記すITインフラの必須知識と経験の数々! サーバ、OS、ネットワーク機器、データセンター、購買と商談、障害対応、大規模インフラ、成長するために必要なスキルなど、基礎知識から実践まで言及。 ITインフラの世界が理解できる珠玉の1冊!
インフラエンジニアの教科書 (C&R研究所) 佐野裕 |
1週間でLPICの基礎が学べる本
Linuxの資格「LPIC」の試験対策を初心者向けに書いた入門書です。
Linuxの資格として広く知られているLPICですが、あまり知識の無いまま試験対策を始める人も多いのではないでしょうか。しかし、試験対策書は試験範囲についてのみ解説しているものが多く、初心者が理解するのは困難です。本書は、初心者がスムーズに試験対策を行えるよう、事前に基礎固めを行うLinux入門書です。試験情報や模擬問題も掲載しているので、資格取得を視野に入れた効率的な基礎学習が行えます。
1週間でLPICの基礎が学べる本 第3版 徹底攻略シリーズ (インプレス) 中島能和 |
インフラエンジニアの勉強ができるオンライン学習サイト
Udemy (オンライン動画学習サイト)
Udemy(ユーデミー)は、オンラインで動画で学習できるサービスです。
ITエンジニア系の講座もたくさん公開されています。
Udemyの特徴
- ユーザー登録すれば、第1回の講座は無料で視聴できる
- 無料のコンテンツもある
- 過去に受講した人の人数や、受講した人の評価も表示されるので選びやすい
以上、読んでいただきありがとうございました。