ConoHa教室 このはちゃんと学ぶVPS活用術 Hello VPS ~WordPress公開までの道~

ConoHa教室 Hello VPS ~WordPress公開までの道~ お昼休み ファイアウォールの設定をしてセキュリティを強化しよう

VPSではセキュリティの設定も自分自身でコマンド操作を行わなければいけませんが、その一つとしてファイアウォールの設定があります。ファイアウォールの設定をすることで特定の通信はブロックして、特定の通信のみ可能にすることが出来ます。これでVPSのセキュリティを強化することが出来ます。

ここではお昼休みとしてConoHa教室のサーバー構築で利用しているCentOS7でのファイアウォールの設定方法、firewalldの操作方法を簡単に紹介します。

  • お昼休みだけどちょっとだけVPSのセキュリティのことをこのはちゃんに教えてあげようかな。
  • えっ!?お昼休みなんだから休ませてよっ…
  • 最後まで聞いてくれたらご褒美を・・・
  • ほんとに?!やったー!
  • ※インストールするOSやソフトウェアのバージョン等により操作方法は異なるため、ご運用にあわせてご参考にしてください。
  • ※既に別のソフトウェアをインストールやVPS内で設定済みの項目がある場合、影響を及ぼす恐れがありますのでご注意ください。

目次

1:firewalldって何?

VPSを契約した直後はファイアウォールの設定をしていない状態なので、全ての通信をオープンに受け取ることが出来る状態となっているので、悪意のある攻撃のような通信も受け取れるような状態です。そのため特定の通信だけをできるようにファイアウォールの設定をする必要があります。

ConoHa教室で紹介しているCentOS7系ですと、firewalldというサービスでファイアウォールの設定をすることが出来ます。

firewalldでは特定の通信を指定して利用可能な通信を設定することができます。

例えばSSHであったりHTTP、SMTPなど様々あり、サービスの名前で指定することも出来ますし、それぞれのポート番号を指定して設定をすることができます。

主な通信のサービス名とポート番号は以下のようになります。

SSH 22番ポート
HTTP 80番ポート
HTTPS 443番ポート
POP3 110番ポート
IMAP 143番ポート
SMTP 25番ポート

ConoHaのテンプレートイメージのfirewalldではデフォルト起動するようになっており、設定としては[SSH]のみ開放されており、その他の通信はブロックするような状態となっています。

step1

[services]の項目で[ssh]の記載がありますね。ここに記載があることで通信を許可している状態となります。

2:firewalldを操作してみる

[1] それでは早速firewalldを操作してみようと思います。まずは簡単なところからfirewalldの起動や停止をしてみましょう。CentOS7系でのサービスの起動や停止は[systemctl]コマンドを使います。

・firewalldの起動

# systemctl start firewalld

・firewalldの停止(停止をするとすべての通信を開放するのでご注意ください。)

# systemctl stop firewalld

・firewalldの再起動

# systemctl restart firewalld
step2

デフォルトの状態のままだとSSH接続しかできない状態となっているので運用するサービスに合わせて設定をする必要があります。

[2] 次はサービス名を指定して通信を許可しようと思います。「WordPress公開への道」ではWeb公開を行っているので[http]と[https]の開放が必要になりますので、こちらを指定してみます。

# firewall-cmd --permanent --zone=public --add-service=http
# firewall-cmd --permanent --zone=public --add-service=https

firewalldの操作は[firewall-cmd]で行います。[–permanent]オプションを指定することでVPSを再起動等行っても設定が継続する状態となります。[–zone=public]は設定を追加するゾーンを指定しています。デフォルトではpublicを使用するようになっていますので、ここではpublicを指定します。[–add-service=]で追加するサービスを指定します。

[3] 設定を追加した後は、設定を反映させるため以下のコマンドを実行します。

# firewall-cmd --reload
step3

[4] ここまでで設定が完了したので、再度設定内容を確認してみたいと思います。設定を確認するときは以下のコマンドを実行します。

# firewall-cmd --list-all
step4

[http][https]が追加されてますね!これでサーバーへのWebアクセスが可能な状態となります。

[5] 逆に設定されているサービスを削除する場合は以下のコマンドで行うことが出来ます。

# firewall-cmd --zone=public --remove-service=http
削除後も追加したときと同じように[firewall-cmd –reload]を実行します。

firewalldではサービス名を指定しての開放だけではなくポート番号を指定して設定することも可能です。「Minecraft Modサーバーを遊び尽くす」ではポート番号[25565]を開放する必要があるので、そちらを開放してみようと思います。

[7] ポート番号を指定して開放する場合は以下のコマンドを実行します。

# firewall-cmd --add-port=25565/tcp --zone=public --permanent

[8] サービス名の指定のときと同じように以下のコマンドを実行します。

# firewall-cmd --reload
step5

[9] では、先ほどと同じように確認をしてみましょう。

# firewall-cmd --list-all
step6

[10] ちゃんと追加されていますね!削除するときは以下のコマンドになります。

# firewall-cmd --remove-port=25565/tcp --zone=public --permanent
# firewall-cmd --reload

これで簡単なサービス、ポート番号の開放は完了しますが、firewalldの設定はまだまだ多くありますので、コマンドを色々試してみてVPSのセキュリティを強化するようにしてみましょう!

  • 簡単ではあるけどfirewalldの説明をしてみたよ。これくらいなら出来そうでしょ?
  • これなら余裕余裕っ♪
  • WordPressでもMinecraftでもそれぞれで使う通信があるから利用用途に合わせて設定をしてみよう。
  • わかりました!…で、ご褒美は?
  • さー、次の回に進んでいこう!