spangled shalalala blog

諦めたらそこで試合終了だよ。

さくらVPS1GプランにUbuntu16.04でサーバーを構築した備忘録

さくらVPSの1Gプランを契約し、Ubuntuでの初期設定を行ったのでその手順になります。

前提

  • さくらVPS 1Gプラン契約済
  • ローカル環境はMac
  • VPSのOSはUbuntu 16.04を標準インストール

サーバー構築手順

まずはVPSのWebコンソールから以下のコマンドを順に入力していく

#パッケージリストの更新
$ sudo apt-get update
#パッケージの更新
$ sudo apt-get upgrade
#ユーザーの追加
$ sudo adduser ユーザ名
$ su  変更したいユーザ名

次にローカルのMacからSSH接続を試す

#ローカルからパスワード認証でSSH接続
$ ssh -l ユーザ名 ホスト名
例)ssh -l ubuntu 192.168.xx.xx

SSH接続に成功したらsshのconfigを設定する

#ポート番号を22から任意の番号へ変更, rootログインをできなくする, PAM認証をできなくする
$ sudo vi /etc/ssh/sshd_config
---
# What ports, IPs and protocols we listen for
-   Port 22
+   Port 50022
---
-   PermitRootLogin prohibit-password
+   PermitRootLogin
---
-   UsePAM yes
+   UsePAM no
#sshdの再起動
$ sudo service ssh restart

次にファイヤーウォールの設定を行う。ubuntuのファイヤーウォールはuwfというツールで設定可能らしい。 VPSの標準インストールで最初からインストールされていると思いますが、ない場合は適時 apt-get install ufw でインストールしてください。

#IPv6サポートのOFFにする
$ sudo vi /etc/default/ufw
---
# Set to yes to apply rules to support IPv6 (no means only IPv6 on loopback
# accepted). You will need to 'disable' and then 'enable' the firewall for
# the changes to take affect.
-   IPV6=yes
+   IPV6=no
#ポートを全て封鎖して
sudo ufw default deny
#必要なポートのみ開放する
sudo ufw allow 50022
#ufwを有効化する
sudo ufw enable
#iptableの設定変更
sudo vi /etc/iptables/iptables.rules
---
-   -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
+   -A INPUT -m state --state NEW -m tcp -p tcp --dport 50022 -j ACCEPT
#設定の反映
sudo iptables-restore < /etc/iptables/iptables.rules

ここまででVPSへの接続は初期設定の22番ポートからではなく50022ポートから接続可能となっているので、接続がうまくいくか確認する。

#ポート50022へ接続できるか確認
$ ssh -p 50022 -l ユーザ名 ホスト名

接続が確認できたら次は鍵認証接続の設定を行い、セキュリティを考慮してパスワード認証での接続を行えなくする。

#サーバ側に~/.sshを作成
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
#ローカルで鍵作成
$ ssh-keygen
#ローカルからサーバーに鍵転送
$ scp -P 50022 ~/.ssh/id_rsa.pub ユーザー名@ホスト名:~/.ssh/authorized_keys
#サーバーにログインして鍵が転送されたか確認
$ ls -l .ssh/
authorized_keysがあればOK
#鍵のパーミッションを変更
$ chmod 600 authorized_keys
#ローカルから公開鍵接続
ssh -p 50022 -i ~/.ssh/id_rsa ユーザー名@ホスト名
#パスワード認証をできなくする
$ sudo vi /etc/ssh/sshd_config
---
-   PasswordAuthentication yes
+   PasswordAuthentication no
# 最後にsshの再起動
$ sudo service ssh restart

以上でVPS上にUbuntuの環境が構築できたはず

Linuxの環境構築は初めてでしたが、ググった結果割りとはまらずに環境構築ができた。 今後はここに開発環境を構築して行きたい。