こんにちは、ふじみやです。
最近、Xserver VPSが安かったのでマイクラサーバーをAWSから移行させたり、リモートデスクトップ接続用に利用しようとしたりしています(AWSだとElastic IPの利用だけで月間500円くらいになるので、常時接続+αの利用が出来るのであればおそらくXserver VPSのほうが経済的になるはず。)。
その際に少し戸惑ったのですが、AWSだと仮想サーバーにアクセスできるIPアドレスやポートの制限はセキュリティグループを利用すれば簡単に設定できるところ、Xserver VPSでは一部のポート開放のみWebベースで行え、RDP用のポート開放やIPアドレスの制限などの対応はできない模様。
とはいえ、特にリモートデスクトップ接続をする人にとっては、常時サーバーを起動していると第三者に乗っ取られるリスクが高まりますので、このあたりを放置するわけにはいきません。
そこで、今回は Ubuntu 22.04 でIPアドレスの制限やポート開放などのファイアウォールの設定を行う方法について色々と調べましたので、そのやり方についてご紹介をしたいと思います。
- AWSのUbuntuインスタンスにリモートデスクトップ接続してみよう
- VirtualBoxで仮想環境を作ってみる【Ubuntu 22.04】
- Ubuntu 22.04にVisual Studio Codeをインストールする
- リモート接続用Ubuntu 22.04のデスクトップ環境を変更する方法【xrdp】
- Ubuntu 22.04でのポート開放とアクセス制限【ufw】
- Pythonの統合開発環境を整える【Ubuntu 22.04/Anaconda】
- Ubuntu 22.04でKindle for PCを利用する【Wine】
- VirtualBox 7.0にUbuntu 22.04をインストールしたらターミナルが起動できなくなった話
ファイアウォールの設定
Ubuntuでファイアウォールの設定をするためには ufw というコマンドを利用します。
sudo ufw status
利用をしたことがなければ 非アクティブ として表示されるかと思います。
ufw コマンドでは常にルート権限が必要ですので、毎回sudoを入力するのも面倒ですし、ルートユーザーに変更しておきましょう(このコマンド以降、全てルートユーザーとしてコマンド入力をしていきます。)。
sudo su
ファイアウォールの有効化
次のコマンドを入力することでファイアウォールを有効化することができます。
systemctl enable ufw
これで次回起動時にファイアウォールが有効化されますが、デフォルトでは全てのアクセスを拒絶する設定となっていますので、再起動前に忘れずに許可ルールを設定しておくようにしましょう。
許可ルールの設定
まずはSSH接続(ポート番号22)を許可する設定をしましょう。
ufw allow 22
これでどのIPアドレスからもUbuntuにSSH接続できるようになりました。
RDP接続(ポート番号3389)ですと上記の 22 を 3389 に変更するだけですが、これだとどのIPアドレスからもアクセスできてしまいます。そこで、今回は接続元がご自身のIPアドレス(例えば、123.123.123.123)の場合のみ接続可能にしたいと思います。
ufw allow from 123.123.123.123 to any port 3389
入力すると以下のように反映されます。
(参考)IPアドレスの確認方法
cman をご利用いただくとご自身のグローバルIPアドレスやホスト名がすぐに分かります。
(参考)IPアドレスの簡単な固定化方法
ご自身のプロバイダと別途契約を締結することでIPアドレスを固定化することも可能ですが、大体1,000円/月くらいの費用がかかってしまいます。
そこで、固定IPアドレスを提供している VPN(Virtual Private Network)を利用することで実質的にIPアドレスを固定化することも可能です。
私は SurfShark を利用していますが、2年契約にすると279円/月(2022年12月7日時点)と格安で利用できますので、セキュリティ向上のためにも利用の検討をしてみてはいかがでしょうか。
SurfSharkの基本的な使い方については以下の記事で説明をしていますので、お時間のある方はぜひご覧ください。
許可ルールの削除
許可ルールを削除するときには ufw delete コマンドを入力します。例えば、先ほどのRDP接続の許可ルールを削除したい場合には次の通りとなり、削除操作の確認を求められますので問題なければ y を入力します。
ufw delete 2
削除:
allow from 123.123.123.123 to any port 3389
操作を続けますか(y|n)?
このときに入力をする番号は次のコマンドで簡単に確認をすることができますが、ルールの上から1番目、2番目となっていますので、許可ルールが少ないのであれば何番目のルールかということを数えて指定すればOKです。
ufw status numbered
まとめ
もっと細かくファイアウォールを設定しようとすると、TCPプロトコルやUDPプロトコルの許可などを指定することも可能ですが、アクセス可能なIPアドレスを絞っている場合には上記の程度感で問題ないかと思います(私は自宅のグローバルIPアドレスと別途契約しているVPN(固定IPアドレス)の2つのみを許可しています。)。
もし常時接続のVPSを利用しようとされるのであれば、ファイアウォールの設定は忘れずにしましょうね。
それではまた。
コメント