TECH
[CloudGarage]

CloudGarageでサーバセットアップ【その1:サーバの基本的セットアップ】

TECH
中津川 篤司

インスタントを簡単に立ち上げられるCloudGarageですが、立ち上げただけでは意味がありません。このインスタンスを使って開発を行っていかなければなりません。とは言え、自分の作りたいものはあるのに、セットアップで色々と時間が取られるのは面倒なはずです。

慣れてきたらKUSANAGI/CentOS-7.3-64bitなどのイメージから選択しても良いですが、まずは自分でイチから作業してみると何かトラブルがあってもリカバリーできるようになります。サーバの動きを掴んでおくと、後々役立つことも多いでしょう。

そこで今回から何回かのシリーズに渡ってステップバイステップでサーバのセットアップを行っていきます。まず初回はインスタンスの立ち上げとセキュリティ上の設定です。

インスタンスの立ち上げ

CloudGarageにおいてインスタンスの立ち上げはそれほど困らないかと思います。今回はUbuntu 16.04 LTSを選んでいます。また、ポートを全開放としています。

ポート番号は絞り込んだ方が良いですが、執筆時点(2018年09月)において、任意の番号でポート開放ができないので全開放を選択しています。

これでインスタンスを立ち上げます。

サーバにログイン

SSHでサーバにログインします。この時点ではIPアドレスで指定します。IPアドレスは自分のインスタンスのものと置き換えてください。

ssh root@222.222.222.222

サーバのIPアドレスはインスタンス一覧で確認できます。

ライブラリのアップデート

すでにライブラリにアップデートが出ている可能性がありますので、それを適用します。

apt-get update
apt-get upgrade

ufwによるポート設定

ufwはファイアウォールソフトウェアで、任意のポートをアクセス可能にしたり、逆に弾くのに使います。サーバの役割によって開放するポートは違いますが、今回はWebサーバとして80と443、そして22022をSSH接続用のポートとして開放します。

まずufwをインストールします。

apt-get install ufw

そしてまずすべてのポートを通信不可にします。

ufw default DENY

そして必要なポートを順番に開放します。

ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 22022/tcp

この時点ではまだ ufw は有効になっていません。有効にして万が一SSHの接続を切ってしまうとログインできなくなるので注意しましょう。

SSHの接続ポート番号変更

/etc/ssh/sshd_config を修正します。

Port 22022 # 元は22

そして SSHD を再起動します。

service sshd restart

ここまで終わったらufwを有効にします。

ufw enable

そして、念のため現在のSSHセッションは残したまま、別なウィンドウでSSH接続できるか確認します。

ssh -p 22022 root@222.222.222.222

これで接続できれば ufw が正しく有効になっています。

ユーザの作成

最初はユーザがおらず、rootだけで作業することになりますが、セキュリティ上よくありませんのでユーザを作成します。

adduser goofmint #自分のユーザ名に書き換えてください

パスワードは任意で設定してください。

SSHログインの設定

ローカルマシンにある ~/.ssh/id_rsa.pub の内容を先ほど作成したユーザの ~/.ssh/authorized_keys にコピーします。さらにこのファイルは自分だけが読み書きできるようにします。

chmod 600 .ssh/authorized_keys

これでパスワードなしでサーバにログインできるか確認してください。

ssh -p 22022 goofmint@222.222.222.222

Sudoの設定

ソフトウェアをインストールしたりする際にはroot権限が必要になりますが、毎回rootになって作業するのは面倒です。そこでsudoを設定します。最初はroot権限で実行します。 admin グループに追加されたユーザはsudoが使えるようになります。

usermod -G admin nakatsugawa

これで次回にログインした時から sudo su - と入力して自分のパスワードを入力したらrootになれます。

SSHでrootのログインを禁止する

最後にSSHでrootがログインできないようにします。/etc/ssh/sshd_config を修正します。

# 変更前
PermitRootLogin yes

# 変更後
PermitRootLogin no

そして SSHD を再起動します。

service sshd restart

これで root アカウントでSSHログインできないのを確認してください。


ここまでの手順で最低限、セキュアになったと言えます。次回はHTTPサーバの設定を行います。

この記事を書いた人

中津川 篤司

株式会社MOONGIFT 代表取締役。CloudGarage、ニフクラ mobile backend、hifive エバンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。2004年、まだ情報が少なかったオープンソースソフトの技術ブログ『MOONGIFT』を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶエバンジェリスト業「DevRel」活動をスタートした。 Twitter:@goofmint | GitHub:@goofmint | Facebook: goofmint

オススメの記事

ページトップへ