VPS初期設定からサイト公開まで ①最初にやったこと(初期設定とセキュリティ)

#Linux #Nginx #VPS

VPSを契約した。
自分でサーバーから立ててサイトを運用することで仕組みを理解することが目的。

契約してIPアドレスとパスワードが渡されて、そこから自分が最初にやった初期設定とセキュリティ周りを、順番に整理しておく。

VPSとは

作業に入る前に、VPSとは何かを整理しておく。

VPS(Virtual Private Server / 仮想専用サーバー)は、ざっくり言うと「自分専用のサーバーを、まるごと1台借りられるサービス」だ。
OSより上は自由に使えて、好きなソフトを入れて、好きなように設定できる。

イメージをつかむために、よく比較されるレンタルサーバーと並べてみる。

  • レンタルサーバー … マンションの一室を借りる感覚。設備は最初から整っているが、決められた使い方の範囲内でしか動かせない。他の住人と建物(サーバー)を共有している。
  • VPS … 一戸建てを借りる感覚。中は自由に改造できるが、その分、設定も管理も自分でやる必要がある。

「専用」と付くが、物理的に1台のマシンを丸ごと占有しているわけではない。
1台の物理サーバーの中を、ソフトウェアで仮想的に区切って、それぞれを独立した1台のように見せている。
これが「Virtual(仮想)」の意味で、区切られた一つひとつは、他の利用者から隔離された自分専用の空間として使える。

なぜレンタルサーバーではなくVPSを選んだか

自分がVPSを選んだのは、自由度と、そして勉強のためだ。

レンタルサーバーは手軽な反面、サーバーの中身がブラックボックスになりやすい。WebサーバーやSSL、ファイアウォールといった仕組みが「最初から設定済み」で提供されるので、動くけれど中で何が起きているかは分からないままになる。

VPSは、その「最初から設定済み」の部分を全部自分でやることになる。
手間はかかるが、SSHでの接続、ユーザー管理、ファイアウォール、Webサーバーの構築、SSL化……と、Webサイトが公開されるまでに何が必要なのかを、一つずつ手を動かして理解できる。
遠回りに見えて、仕組みを学ぶには一番の近道だと思って選んだ。

その代わり、セキュリティも障害対応も自己責任になる。
だからこそ、次に書く初期設定とセキュリティが最初の重要な一歩になる。

使った環境

  • さくらのVPS
  • Ubuntu 24.04 LTS
  • SSH接続にはWindowsからTeraTermを使用

1. SSHでサーバーに接続する

まずやったのはSSHでの接続。
VPSの管理画面でIPアドレスと初期パスワードを確認して、TeraTermから接続する。

接続できたら、まずOSのバージョンを確認した。

lsb_release -a

Ubuntu 24.04 LTS であることを確認。

2. まずパッケージを最新にする

サーバーを触り始める前に、インストール済みのソフトを最新の状態にしておく。
セキュリティ更新も含まれるので、最初にやっておく。

sudo apt update && sudo apt upgrade -y

update がパッケージ一覧の更新
upgrade が実際の更新

3. ファイアウォールを設定する(UFW)

サーバーは、外からアクセスできる「入口」をたくさん持っていて、そのままだと必要のない入口まで開いていることがある。使わない入口は閉じておくのがセキュリティの基本。

UbuntuではUFW(Uncomplicated Firewall)という仕組みを使う。
名前の通り、複雑なファイアウォール設定を簡単に扱えるようにしたもの。

考え方はシンプルで、「デフォルトで全部拒否して、必要なものだけ許可する」。

sudo ufw allow OpenSSH
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable
sudo ufw status

許可したのは3つ。

ポート用途
22(OpenSSH)SSHでログインするため
80HTTP(Webサイト)
443HTTPS(暗号化されたWebサイト)

ここで一番大事な注意点。SSHの許可を最初にやること
もしSSHを閉じた状態でファイアウォールを有効にすると、自分がサーバーに入れなくなる。
「何を閉じるか」を考えるときは、まず自分が入る扉を確保してから、という順番を体で覚えた。

4. さくらVPS特有の落とし穴:パケットフィルター

ここでハマった。UFWの設定を終えて、いざWebサーバーを立ててブラウザからアクセスしても、まったく表示されない。ERR_CONNECTION_TIMED_OUT で延々と待たされる。

原因は、さくらVPSにはOS内のUFWとは別に、コントロールパネル側にもパケットフィルターという第二のファイアウォールがあったこと。UFWで80番・443番を開けていても、コントロールパネル側で閉じていたら、そもそもサーバーまで通信が届かない。

コントロールパネルのパケットフィルター設定で、以下を許可したら通るようになった。

プロトコルポート
TCP22(SSH)
TCP80
TCP443

「ファイアウォールが二重になっている」というのは、言われないと気づけない部分だった。
両方を開けて初めて通信が通る。これはさくらVPSを使う人がよくつまずくポイントだと思う。

やってみて分かったこと

VPSの初期設定は、派手さはまったくない。でも、ここをちゃんとやるかどうかで、その後の安心感が全然違うと感じた。

特にファイアウォール周りは、「動けばいい」で後回しにしがちだけど、外に公開するサーバーだからこそ最初にやるべきだった。そして、UFWとパケットフィルターの二重構造のように、「自分の環境特有の事情」は、一般的な手順書には載っていないことがある。エラーが出たときに「どこで止まっているか」を切り分ける力が、こういうところで試されるんだと思う。

次は、このサーバーにWebサーバー(Nginx)を入れて、実際にページを表示させるところまでを書く。