firewalldのIP制限について
Q&A
Closed
解決したいこと
firewalldで172.168.0.1/24のようにプレフィックス表記でIPの制限をかけていたのですが、172.168.0.1/32と設定したホストからでも接続ができる謎を知りたいです。
自分でも調べてみたのですがよくわからなかったので、知見のある方、ご教授いただけないでしょうか。
Q&A
Closed
firewalldで172.168.0.1/24のようにプレフィックス表記でIPの制限をかけていたのですが、172.168.0.1/32と設定したホストからでも接続ができる謎を知りたいです。
自分でも調べてみたのですがよくわからなかったので、知見のある方、ご教授いただけないでしょうか。
サブネットマスクの最大値は32なので、 /36
の指定は不正でルール自体効いていないような気がします。
@newbee_aiden
Questioner
すみません。/36じゃなくて/32で書いてました。/32で書いててもなぜか通ってしまうのですがtrustedゾーンに記述してるのは関係あるでしょうか。
ファイアウォール設定での172.168.0.1/24
は「172.168.0.1~172.168.0.255を対象とする」という意味しか持たないため、接続相手のサブネットマスクの設定がどうなっていようが影響しないと思います。
逆に言えば「172.168.0.1だけが対象」のつもりで172.168.0.1/24
と書いているとしたら大間違いなので、もっとしっかり調べた方がいいと思います。
(勉強不足だと批判しているわけではなく、firewalldを使ったことはなく上に書いたこと以外はほぼわからないので)
@newbee_aiden
Questioner
172.168.0.1/24の場合、1の部分がホストを識別するためのホスト部だと思って記述したのですが、これは認識が間違ってるのでしょうか。
IPの範囲を指定する場合、ホスト部を0にして172.168.0.0/24だと思ってました。
172.168.0.1/24の場合、1の部分がホストを識別するためのホスト部だと思って記述したのですが
だとすれば、「/24
は何を意味しているのか?」という話になります。
ファイアウォールの設定としてはあくまで「どのIPアドレスを対象にするか」でしかないのでサブネットマスクという概念自体が意味を持ちません。
そうした方がわかりやすいから範囲指定の方法としてサブネットマスクと同じ表記を採用しただけです。
IPの範囲を指定する場合、ホスト部を0にして172.168.0.0/24だと思ってました。
「そう書くのが一般的」というだけで、「そうしなければいけない」ではありません。
「範囲指定をするにはスラッシュ表記を使う」であり、結果的に/24
をつければIPアドレスの最後の1
は無視されます。
そして172.168.0.1/32
と書けば172.168.0.1
と同じ意味になります。
ちょっと検索してみましたが、このあたりを詳しく説明しているものが見つかりませんね。「ビットマスク」って知らない人にはわかりにくい概念だと思うのに。
@newbee_aiden
Questioner
わかりやすく回答ありがとうございます。頂いた内容からもう少し自分でも調べてみようと思います。ありがとうございました。