質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

firewalld

firewalldは、CentOS7からデフォルトになったパケットフィルタリングです。一時的なルールと永続的なルールが設定でき、通信の許可・拒否をコントロール。バージョン6まで利用されてきた「iptables」における課題をカバーしています。

解決済

firewalldのdirectルールについて

sho88
sho88

総合スコア0

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

firewalld

firewalldは、CentOS7からデフォルトになったパケットフィルタリングです。一時的なルールと永続的なルールが設定でき、通信の許可・拒否をコントロール。バージョン6まで利用されてきた「iptables」における課題をカバーしています。

1回答

0評価

0クリップ

31閲覧

投稿2020/10/22 13:19

CentOS8です。
ゾーン(public,drop等)を使用せずに、firewalldのdirectルールのみでINPUT,OUTPUT,FORWARDの通信を管理したいです。

以下の手順でゾーンとdirectrルールを作成しました。
(1)新規ゾーンを作成(original)
(2)1のダイレクトルールを追加。

これで、HTTP通信は可能だと考えていたのですが、
2.で services:http を追加しないとHTTP接続できない状況です。

firewalldでは、OUTPUT通信も制御した場合、ゾーンとdirectと併せて運用するのが当然なのでしょうか。
上述の通り、できれば、directゾーンのみで制御したいです。

そもそも、originalゾーン作成していること自体が、間違っているかもしれませんが、
diretctルールのみで制御可能な方法がございましたら、ご教示いただけると幸いです。
3.4.はiptablesとnftの結果です。


1.[root@centos8 firewalld]# less direct.xml

<?xml version="1.0" encoding="utf-8"?> <direct> <rule ipv="ipv4" table="filter" chain="INPUT" priority="1">-p tcp --dport 80 -j ACCEPT</rule> <rule ipv="ipv4" table="filter" chain="INPUT" priority="1">-m state --state ESTABLISHED,RELATED -j ACCEPT</rule> </direct>

2.[root@centos8 ~]# firewall-cmd --list-all
original (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services:
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

3.[root@centos8 firewalld]# iptables -L -n -v
Chain INPUT (policy ACCEPT 4 packets, 352 bytes)
pkts bytes target prot opt in out source destination
24 1536 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
1005 76204 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 594 packets, 71377 bytes)
pkts bytes target prot opt in out source destination

4.[root@centos8 firewalld]# nft list table filter
table ip filter {
chain INPUT {
type filter hook input priority 0; policy accept;
meta l4proto tcp tcp dport 80 counter packets 24 bytes 1536 accept
ct state related,established counter packets 716 bytes 54400 accept
}

chain FORWARD { type filter hook forward priority 0; policy accept; } chain OUTPUT { type filter hook output priority 0; policy accept; }

}

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

hentaiman
hentaiman

2020/10/23 00:02

directのみならfirewalld切ってiptables入れてiptables有効にすれば良いじゃない?
sho88
sho88

2020/10/23 14:11

お返事いただきありがとうございます。 おっしゃる通りなのですが、iptablesはいずれ使用されなくなる?ので、 折角なのでfirewalldを使用して実装したいと考えたからです。
hentaiman
hentaiman

2020/10/23 14:50

そうですね、質問文見ればそれらの事を把握しているだろうことは十分分かりましたがその上での案です。 iptables自体既に使用されていないので自分でインストールしないと使えないはずですが、iptablesも完成しているモノなのでデフォルトインストールから消えるだけで後から追加ならずっと出来そうな気もします

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

firewalld

firewalldは、CentOS7からデフォルトになったパケットフィルタリングです。一時的なルールと永続的なルールが設定でき、通信の許可・拒否をコントロール。バージョン6まで利用されてきた「iptables」における課題をカバーしています。