どんな事でもお気軽にお問い合わせください
0120-803-656
24時間受付いたします

どこにも書いていないCentOS7をfirewalldで要塞化するときの注意点3か条


初めに

こんにちは、
システムソリューション部の情報処理安全確保支援士見習い兼、加湿器給水係の三木田です。

先日、CentOS7でfirewalldを用いて要塞化し、Webサーバを公開するという案件がございました。
すでにfirewalldを用いた要塞化はいろいろなサイトで紹介されており、参考になりましたが、
自分がハマった点もありましたので、特にハマった3点を重点的に書きたいと思います。


設定したらまずreloadすべし

とりあず、まずハマった点はこれでした。
firewalldfirewalld-cmdというコマンドで設定の追加や確認を行うのですが、
設定後の確認オプションで


 $firewall-cmd --list 

 
を実行したころ、設定が反映されていないということが多々ありました。
このようなときは、設定をリロードする


 $firewall-cmd --reload 

 
で設定を読み直して再度確認したところ、設定が反映されていることが確認できましたので、
皆様も設定を追加したらすぐにreloadを実施しましょう。
 
 
 

richルールで高度なアクセス制御を行うときは注意すべし

「特定のサービスに対して特定のIPのみアクセスを許可する」なんてことはよくある話で、
これを設定するときはfirewall-cmdコマンドのadd-rich-ruleオプションを使うのですが、
ここでハマったのが、すでにadd-serviceオプションでアクセスを許可しているサービスがある場合、
上記のadd-rich-ruleオプションが効かない場合があるということです。
特に「特定のサービスに対して特定のIPのみアクセスを許可する」場合は、add-serviceを利用せずに、add-rich-ruleのみで設定しましょう。
すでにadd-serviceを利用している場合はその設定を外してからadd-rich-ruleで設定しましょう。

 
 例)httpを一般公開しているが、特定のIP:111.222.333.444からのみアクセスを許可する場合
 ※本例ではzoneはpublicを利用しています。

 ①httpのサービス許可を停止
 $firewall-cmd --permanent --zone=public --remove-service=http
 $firewall-cmd --reload

 ②richルールでアクセス許可を行う
 $firewall-cmd --permanent --zone=public \
  --add-rich-rule='rule family=ipv4 source address="111.222.333.444" \
  service name=http accept'
 $firewall-cmd --reload

 
 
 

複数のインターフェースを持つサーバではそれごとにzoneを作成すべし

firewalldはサーバのインターフェースごとにzone名が決められてアクセスルールが設定できるのですが、
これを有効活用しない理由はありません。ばんばん使っていきましょう。
当方のおすすめですが、ルール名はホスト名+インターフェース名です。
たとえばweb01というホスト名のenp1s0というインターフェイス名については


  web01_enp1s0

 
とか設定すると管理がしやすく、後々運用でルールを追加しないといけなくなった場合でもわかりやすいでしょう。


終わりに

CentOS標準のfirewallがCentOS6のiptabelsからCentOS7のfirewalldに変更となり、
何かと慣れないという方もおられるかと思いますが、
インターフェース毎にルールが決めることができるようになった、
firewall-cmdで設定管理できるようになった等
便利になった部分が多くあります。皆様もfirewalldを用いて安全なサーバ公開を行ってください。

ではでは、また来月。


お問い合わせ 採用情報 エンジニアブログ
ISO27001認証
Contact PageTop
株式会社ビヨンド

© beyond Co., Ltd. All rights reserved.