MENU

さくらのクラウドのパケットフィルタのはじめかた

さくらのクラウドには、サーバーのセキュリティをサクッと高めるための便利な機能として「パケットフィルタ」が用意されています。不要な通信をあらかじめブロックして、サーバーを安全に運用するための強力な味方です。

本記事では、これからパケットフィルタを使い始める方や、「設定したのに通信できない!」と頭を抱えたくない方に向けて、その仕組みと設定のポイントを整理して紹介します。

目次

パケットフィルタとは?

パケットフィルタとは、ネットワークを流れる通信(パケット)を条件ごとに判定し、「許可したい通信」と「拒否したい通信」を仕分けする仕組みです。

大きな特徴は、サーバーの中ではなくクラウドのネットワーク側で動作するという点です。不要な通信はサーバーに届く前に遮断されるため、サーバー側で動くファイアウォール(iptablesやfirewalld)とは、守っている「場所」が根本的に異なります。

なぜパケットフィルタを使うのか?

サーバーの安全性が高まる

インターネット上のサーバーには、悲しいことに常に不正アクセスやスキャンが飛んできます。
SSH(22番)やWeb(80/443番)を無制限に公開していると、思わぬところから攻撃を受けるリスクがあります。
特定のIPからのみSSHを許可するなど、必要なポートだけを最小限に公開することで、攻撃の隙を大幅に減らせます。

サーバー負荷を下げられる

不要な通信がサーバーに到達する前にブロックされるため、OS側での無駄な処理が減り、CPUやメモリリソースを節約できます。大量のアクセスを受ける環境では、この「入り口での事前ブロック」が地味に効いてきます

管理画面から簡単に設定できる

さくらのクラウドのコントロールパネルからGUIで操作できるのも魅力です。コマンド操作に自信がない方でも、視覚的に設定状況を把握しやすくなっています。

パケットフィルタを使う前に知っておきたい注意点

パケットフィルタを使う上で、絶対に知っておかなければならない仕様があります。それがステートレス(state-less)であるという点です。

  • 接続の状態(セッション)を記憶しない
  • パケット1つ1つを「その時」の条件だけで判定する

一般的な「ステートフル」なファイアウォールなら、行きの通信を許可すれば戻りのパケットも自動で通してくれますが、さくらのクラウドのパケットフィルタはそうはいきません。

サーバ発通信の「戻りパケット」に注意!

たとえば、サーバーから外部のAPIを叩いたり、yumdnf でアップデートを行ったりする場合、サーバーから外向きの通信を許可していても、その応答(戻りパケット)を受け取るためのルールがなければ、通信は成立しません。

戻りパケットが使うポート番号

Linuxサーバーでは、外部通信の戻りパケットには一般的に「エフェメラルポート」と呼ばれる 32768〜60999番 が使われます。
この範囲は、ip_local_port_range で確認できます。

$ sysctl net.ipv4.ip_local_port_range
net.ipv4.ip_local_port_range = 32768 60999

パケットフィルタのルールを作成する際は、この「戻り」の通信を許可することを忘れないようにしましょう。

パケットフィルタの基本的な考え方

設定の鉄則はシンプルです。

  1. 必要な通信だけを許可(allow)する
  2. それ以外は全て拒否(deny)する

ルールは上から順に評価されるため、「先に許可、最後に拒否」という並び順を意識するのがコツです。

実際にパケットフィルタを作ってみる(SSH制限例)

今回は例として、「特定のIPアドレスからのみSSHを許可する」設定をさくらのクラウドのコントロールパネルから作ってみましょう。

パケットフィルタの新規作成

管理画面から[ネットワーク] → [パケットフィルタ] を開き、[+追加]から、新しいパケットフィルタを作成します。

名前は用途がわかるものにしておくと便利です。
今回は「SSH接続制限」として名前を入力し、[+作成]からパケットフィルタを作成します。

ルール① SSHを許可する

まずはSSHを許可する為のルールを追加します。
右下の「+追加」ボタンから、新しいルールを追加します。

項目設定例
プロトコルtcp
送信元ネットワーク接続元IPを入力(例として192.168.0.1を入力しています)
送信元ポート空欄
宛先ポート22
アクションallow

入力後、「追加」ボタンをクリックします。

ルール② 戻りパケット用のルールを追加する

今度はサーバー内から外部通信を行う為の通信を許可します。
ルール画面の右下の「+追加」ボタンから、更にルールを追加していきます。

追加するルールは、以下の内容です。

項目設定例
プロトコルtcp
送信元ネットワーク空欄
送信元プロトコル空欄
宛先ポート32768-60999
アクションallow

TCPポートの許可を追加したら、更にUDPポートの許可も追加します。

項目設定例
プロトコルudp
送信元ネットワーク空欄
送信元プロトコル空欄
宛先ポート32768-60999
アクションallow

これで戻りの通信が許可されました!

ルール③拒否ルールの追加

最後に「許可した通信以外を全て拒否する」ルールを作成します。
以下の内容で新規ルールを追加します。

項目設定例
プロトコルip
送信元ネットワーク空欄
アクションdeny

ルール順確認と有効化

ルールは必ず allow → deny の順番 で並べます。
通常は作成したルール順に並びますので、allow が2つ → denyとなっているかと思います。
ルールを追加したら、必ず「反映」ボタンをクリックし、パケットフィルタに反映してください。


これでパケットフィルタの作成までは完了です!
続けて実際にサーバへ適用してみます。

サーバーへパケットフィルタを適用する

作成したパケットフィルタは、サーバーの NIC に割り当てる ことで有効になります。
対象サーバーを選び、NIC設定から「▼」をクリックし、「パケットフィルタを編集」を選択してください。

パケットフィルタの選択画面が出てくるので、さきほど作成したパケットフィルタを選択し、「更新」ボタンで適用しましょう。

これで、「自宅からのSSH以外は接続拒否」するパケットフィルタの設定が完了しました!

設定後の確認ポイント

設定・反映後は、次の点を確認しましょう。

  • 許可した IP から SSH 接続できるか
  • 許可していない IP から接続できないか
  • サーバーから外部通信ができるか

また、パケットフィルタで拒否された通信はサーバーのログには残りません。
通信できない場合は、まずパケットフィルタのルールを確認することが重要です。

さいごに

いかがだったでしょうか? パケットフィルタは非常に強力なツールですが、「ステートレス」という特性を理解していないと、「設定したのにネットに繋がらない!」といったトラブルに繋がりがちです。

仕組みを正しく理解して、安全で快適なサーバーライフを送りましょう!「自分の設定で合っているか不安……」という方は、ぜひネットアシストにご相談ください。最適なセキュリティ構成をご提案させていただきます。

それではまた!

お問い合わせ

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

ネットアシスト運用チームのマネージャー
さくらのクラウド検定 2024年 第1回試験 合格済み

目次