0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Linodeインスタンスにファイアウォールを設定する

Last updated at Posted at 2022-12-21

LinodeのCloud Firewallとは

LinodeのCloud FirewallはLinodeのインスタンスによるインバウンド、またはアウトバウンドのネットワークトラフィックに対し、無償かつ簡単に適用することができるステートフルなファイアウォール機能です。

Cloud Firewallの設定方法

本ブログでは作成したLinodeインスタンスに対し、所定のIPアドレスからインバウンドでSSHアクセスするための許可設定をおこない、その他のポートはブロックするような設定をしていきます。実際の設定作成においては、アプリケーションの仕様等に応じて必要なインバウンド、およびアウトバウンドのポートを許可するように設定してください。

Linodeのコンソールメニューより「Firewalls」メニューに遷移し、「Create Firewall」ボタンを押下します。
firewalls_capture1(1).png
任意のLabel(Firewall設定の名称)と適用対象のLinodeインスタンスを選択します。この際に「All Linodes」を選択するとすべてのLinodeインスタンスが選択されます。選択完了後に「Create Firewall」を押下すると設定が作成されます。
firewallcapture2.png
作成したFirewall設定に遷移し、ポリシーを設定します。
firewallcapture3.png
まず、インバウンドおよびアウトバウンドのデフォルトポリシーを設定し、続いて各インバウンドルールおよびアウトバウンドルールを追加していきます。この例ではインバウンドのトラフィックはデフォルトでDrop、アウトバウンドのトラフィックはAcceptするように設定しています。
Capture0004-11-09 15-46-46(1).png
下記の例では所定のIPアドレス(1.1.1.1/32)に対しSSHポート(22)へのインバウンドトラフィックを許可しています。ルールの編集が完了したら「Add Changes」を押下してルールを追加します。
firewallcapture4(1).png
全てのルール編集が終わったら「Save Changes」を押下して作成完了です。
firewallcapture5.png
実際に許可されたIPアドレスおよびプロトコルによるアクセスが許可され、それ以外のIPアドレスやプロトコルによるアクセスがブロックされることを確認しましょう。

Firewall作成後に適用対象のLinodeインスタンスを編集する場合は、Firewall編集画面の「Linodes」タブでインスタンスを追加・削除することができます。
firewallcapture6.png

Linode CLIによるCloud Firewallの設定方法

LinodeはAPIやコマンドラインインターフェースを備えており、このようなFirewallの設定をAPIまたはCLIベースで実施することも可能です。ここでは上記のGUIで設定したファイアウォール設定と同じ内容をCLIで設定した場合の実行例をご紹介します。

Linode CLIについては下記の記事も併せてご参照ください。

Linode CLI のインストール
https://qiita.com/isss802/items/0b1be79031ee16ced521

またCloud FirewallのAPIおよびCLIの利用方法に関しては下記URLに掲載されております。
https://www.linode.com/docs/api/networking/

ファイアウォール設定の新規作成
 % linode-cli firewalls create \
--label 'firewall-group' \
--rules.inbound_policy DROP \
--rules.outbound_policy ACCEPT \
--rules.inbound \
'[{
    "action": "ACCEPT",
                "addresses": {
                  "ipv4": [
                    "1.1.1.1/32"
                  ]
                },
                "description": "SSH Inbound Rule",
                "label": "accept-inbound-SSH",
                "ports": "22",
                "protocol": "TCP"
              }]'
┌───────┬────────────────┬─────────┬─────────────────────┬─────────────────────┐
│ id    │ label          │ status  │ created             │ updated             │
├───────┼────────────────┼─────────┼─────────────────────┼─────────────────────┤
│ 99039 │ firewall-group │ enabled │ 2022-11-09T10:38:58 │ 2022-11-09T10:38:58 │
└───────┴────────────────┴─────────┴─────────────────────┴─────────────────────┘
LinodeインスタンスIDの確認
% linode-cli linodes list
┌──────────┬──────────────────────────────┬──────────────┬───────────────┬────────────────────┬─────────┬──────────────────────────────────┐
│ id       │ label                        │ region       │ type          │ image              │ status  │ ipv4                             │
├──────────┼──────────────────────────────┼──────────────┼───────────────┼────────────────────┼─────────┼──────────────────────────────────┤
│ 40094161 │ instance1-ap-northeast       │ ap-northeast │ g6-nanode-1   │ linode/ubuntu22.10 │ running │ 192.168.2.250 │
└──────────┴──────────────────────────────┴──────────────┴───────────────┴────────────────────┴─────────┴──────────────────────────────────┘
ファイアウォール設定へのLinodeインスタンス追加
% linode-cli firewalls device-create 99039 \
  --id 40094161 \
  --type "linode"
┌────────┬─────────────────────┬─────────────────────┐
│ id     │ created             │ updated             │
├────────┼─────────────────────┼─────────────────────┤
│ 191167 │ 2022-11-09T10:39:08 │ 2022-11-09T10:39:08 │
└────────┴─────────────────────┴─────────────────────┘
作成したファイアウォール設定の参照
 % linode-cli firewalls list
┌───────┬────────────────┬─────────┬─────────────────────┬─────────────────────┐
│ id    │ label          │ status  │ created             │ updated             │
├───────┼────────────────┼─────────┼─────────────────────┼─────────────────────┤ │
│ 99039 │ firewall-group │ enabled │ 2022-11-09T10:38:58 │ 2022-11-09T10:38:58 │
└───────┴────────────────┴─────────┴─────────────────────┴─────────────────────┘
% linode-cli firewalls rules-list 99039
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬──────────┬────────────────┬─────────────────┐
│ inbound                                                                                                                                                         │ outbound │ inbound_policy │ outbound_policy │
├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼──────────┼────────────────┼─────────────────┤
│ {'action': 'ACCEPT', 'addresses': {'ipv4': ['1.1.1.1/32']}, 'description': 'SSH Inbound Rule', 'label': 'accept-inbound-SSH', 'ports': '22', 'protocol': 'TCP'} │          │ DROP           │ ACCEPT          │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────┴────────────────┴─────────────────┘

まとめ

本記事においては、Linodeのインスタンスに対しCloud Firewallを適用する方法についてご紹介しました。ファイアウォールを適用せずにLinodeインスタンスを作成するとインスタンスがインターネットに公開されてしまうため、Cloud FirewallやOSのファイアウォール機能を用いてLinodeインスタンスを安全に管理するようにしましょう。

関連記事

アカマイ・テクノロジーズ合同会社のQiitaではLinode関連など開発者向けの記事を記載しております。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?