さくらVPSの申し込みから必要なセットアップまで、パート2

パート1の続きを書きます。ちゃっちゃとさくらVPSのセットアップを完了させましょう。



前回まででUbuntuをさくらVPSにインストールしました。VPSコントロールパネルからサーバーを起動してから続けます。

SSHと公開鍵の設定

OSをインストールしてから最初にやることはSSHと公開鍵の設定です。これをやらないと攻撃の的になります。

SSHの設定を変更する

SSHでさくらVPSへ接続します。

Macから接続する場合

Macからターミナルから接続します。

ターミナルを起動します。

ssh user名@VPSのIPアドレス -p 22
Are you sure you want to continue connecting (yes/no)? yes
user名@VPSのIPアドレス's password: パスワードを入力

user名とパスワードはOSのインストール時に設定したものを使います。これでSSHで接続ができるようになります。

Windowsから接続する場合

Windowsならputtyjp.exeから接続します。

puttyjp.exeを起動します。

ホスト名にVPSのIPアドレス、ポートに22を入力して開くをクリックします。
Putty Security Alertが出てきますが。はいを選択します。

login as: user名を入力
Server refused our key
user名@VPSのIPアドレス's password: パスワードを入力

user名とパスワードはOSのインストール時に設定したものを使います。これでWindowsからでもSSHで接続ができるようになります。

さくらVPSのSSHの設定を変更する

MacまたはWindowsからSSH接続ができたという前提で進みます。

vimをインストールします。

sudo apt-get install vim

SSHの設定を変更します。

sudo vim /etc/ssh/sshd_config

//49152から65535の範囲でパート番号を変更する
Port 61109

// without-passwordからnoに変更する
PermitRootLogin no

// #コメントを外す
AuthorizedKeysFile      %h/.ssh/authorized_keys

// #コメントを外してnoにする
PasswordAuthentication no

//保存して終了 :wq

公開鍵を作成してアップロードする。

公開鍵を作成する

Macで公開鍵を作成する場合

Macの場合、ターミナルから作成してアップロードする。

cd .ssh
ssh-keygen

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/username/.ssh/id_rsa): エンターを押す
Enter passphrase (empty for no passphrase): 適当なパスワードを入れる
Enter same passphrase again: 同じパスワードを入れる

scp id_rsa.pub user名@VPSのIPアドレス:/home/user名
Received disconnect from VPSのIPアドレス: 2: Too many authentication failures for user名
lost connection

//エラーが出るのでパスワード強制にしてみる
scp -o PreferredAuthentications=password  ~/.ssh/id_rsa.pub user名@IPアドレス:/home/user名
user名@IPアドレス's password: パスワードを入れる
id_rsa.pub    100%  407     0.4KB/s   00:00

少し手間取りましたが、これでさくらVPSに公開鍵(id_rsa.pub)がアップロードされています。

Windowsで公開鍵を作成する場合

Windowsの場合、puttyjpにあるputtygen.exeを起動して、最初に表示される画面にあるGenerateをクリックしてマウスを動かします。次に出てくる画面に適当なKey passphraseとConfirm passphraseを入力します。Save public keyをクリックしてファイル名をid_rsa.pubにして保存します。Save private keyをクリックしてファイル名をid_isa.ppkにして保存します。

WindownsにWinSCPをダウンロードしてインストールする。設定を変えずにインストールする。

WinSCPを起動して、プロトコルはSFTP、ホスト名にVPSのIPアドレス、ポート番号は22、ユーザ名とパスワードにはVPSのを使う。
左の画面からid_rsa.pubを探して、それを右の画面にドロップする。

これでWindowsから公開鍵(id_rsa.pub)をVPSにアップロードできます。

Windowsで作成した公開鍵をさくらVPS側で使う場合はVPS側で変換する必要がある。

さくらVPS

cd /home/username
ls
id_rsa.pub
ssh-keygen -i -f id_rsa.pub > id_rsa.pub

公開鍵をさくらVPSに設定する

ここからさくらVPSの設定に入ります。

cd /home/username
ls
id_rsa.pub
ssh-keygen -i -f id_rsa.pub > id_rsa.pub

mkdir .ssh
cat id_rsa.pub >> .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
sudo service ssh restart

これで秘密鍵を使いSSHでログインができるようになります。

Macで秘密鍵を使ってさくらVPSにアクセスする

Macのターミナルから

vim .ssh/config

Host sakura
        Hostname さくらVPSのIPアドレス
        User user名
        Port sshのパート番号
        IdentityFile /Users/user名/.ssh/id_rsa
        IdentitiesOnly yes

//保存して終了

ssh sakura

これでMacから秘密鍵を使ってさくらVPSにアクセスできるようになる。

Windowsで秘密鍵を使ってさくらVPSにアクセスする

Windowsのputyjp.exeを起動する。

ホスト名にVPSのIPアドレス、ポートに変更したsshのパート番号を入力する。

カテゴリ
接続 → SSHを展開 → 認証をクリック
参照からid_rsa.ppkを探して開くをクリックする。

最後に開くをクリックする。
user名と公開鍵を作成した時に設定したパスワードを入力する。
これでさくらVPSにアクセスできるようになります。

ファイアウォールを設定する

ufwでファイアウォールを設定します。
Web用に80、SSH用に変更したSSHのポート番号だけ通すようにします。

sudo ufw allow 80/tcp
sudo ufw allow SSHのポート番号/tcp
sudo ufw enable

これでファイアウォールの設定は完了です。

無駄なgettyを無効にする

無駄なgettyを無効にしてメモリをちょっぴり節約します。

sudo vim /etc/init/tty2.conf
//全てコメントアウトする
#start on runlevel [23] and (
#            not-container or
#            container CONTAINER=lxc or
#            container CONTAINER=lxc-libvirt)

#stop on runlevel [!23]

#respawn
#exec /sbin/getty -8 38400 tty2

//保存して終了、おなじことをtty3.confからtty6.confまで行う

3MBくらいのメモリの節約くらいかな。

不要なサービスを停止する

大して重要じゃないけど一応やっておく。

sudo apt-get install sysv-rc-conf

sudo sysv-rc-conf dns-clean off
sudo sysv-rc-conf pppd-dns off
sudo sysv-rc-conf grub-common off
sudo sysv-rc-conf rsync off

sudo reboot

よくわからないけどネットをふらつくと上記のサービスはいらないっぽい。

Ubuntuを最新版にする

sudo apt-get update
sudo apt-get upgrade

これで最新版になった。

最新のapache2、mysql、phpMyAdmin、php、ruby、railsをインストールする

できるだけ最新のapache2、mysql、phpMyAdmin、php、ruby、railsをインストールします。

Railsをインストールするで記載していること(最新のapache2、ruby、rails)は飛ばします。ここでは不足分を補充していきます。

sudo apt-get install git
sudo apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev
sudo apt-get install software-properties-common

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ondrej/php5-5.6
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install php5
sudo apt-get install apache2

sudo a2enmod headers
sudo a2enmod expires

sudo apt-get install unzip
sudo apt-get install libcurl4-openssl-dev

sudo apt-get install mysql-server-5.6
sudo apt-get install phpmyadmin
sudo php5enmod mcrypt

cd /etc/phpmyadmin/
sudo vim apache2.conf

//phpmyadminのURLを変更する
Alias /phpmyadmin-hogehoge /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
        //念のためDigest認証をかけておく
        AuthType Digest
        AuthName "AuthPage"
        AuthUserFile /etc/apache2/auth/digest_passwd
        Require valid-user
</Directory>
//保存して終了

cd /etc/apache2
sudo mkdir auth
cd auth
sudo htdigest -c digest_passwd AuthPage ユーザ名
//パスワードを2回入力する

sudo vim /etc/apache2/apache2.conf

//最後に下記を追加する
Include /etc/phpmyadmin/apache.conf

mysql5.6を入れると、それだけでメモリを400MBくらい取っていく。
解決法はXAMPP’s MYSQL uses over 400MB of RAMに書いてある。

sudo vim /etc/mysql/my.cnf

[mysqld]
table_definition_cache = 400 //メモリ使用量を100MBぐらいにする場合

1Gプランの場合は減らしたほうがいいと思います。2Gプランの場合でデータベースをガリガリするつもりの人は、そのままでいいかも。私はとりあえずそのままにしています。

追加経過1:
メモリ2GBがすぐになくなる。。1GBくらいキャッシュになってる。Swapは使っていないか、ほとんどゼロだからメモリは最大限使う方針なのかな?

追加経過2:
結局table_definition_cacheを400にしました。400というのはテーブルの定義をcacheできる数で、私のサーバーのデータベースのテーブルを数えてみたら260くらいしかなかったので、400にすることにしました。

おまけ:Booting from Hard Disk…で起動できなくなる

さくらVPSを再起動したところ、いつまでたってもSSHで接続できなくなりました。

コンソールから見てみると、
Booting from Hard Disk…と表示されて止まったままになっていました。

さくらのVPSでUbuntuが起動しなくなった時の対処法を参考に復旧させます。

Ubuntu Desktopをダウンロードする。
VPSコントロールパネルのISOイメージインストールからISOイメージアップロード先情報を入手する。

Macから(WindowsならWinSCPだと思う)

cd Downloads
sftp  -o PreferredAuthentications=password ユーザ名@リモートホスト名
password: パスワード
sftp> put ubuntu-14.04.1-desktop-amd64.iso /iso/ubuntu-14.04.1-desktop-amd64.iso

ISOイメージアップロード先情にユーザ名、リモートホスト名、パスワードが載っている

1.5MB/sくらいしかでない。
お試し期間だとISOのアップロードも制限されているのかな?

アップロードが完了したらISOイメージインストールの画面に戻る。

設定内容を確認する

インストールを実行する

Try Ubuntu

左下にあるSystem Settingsをクリック

Networkをクリック

IPv4 Settings
ManualにしてVPSコントロールパネルにあるサーバー情報を参考に必要事項を入力する。
よくわからないけど3つとも設定を変えておく。
ネットに繋がっているかどうか、Firefoxを起動してみる。繋がっていない場合、ネットワークの設定がおかしいので再度ごちゃごちゃやってみる。

Terminalを起動する

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo rm /var/lib/apt/lists/* -vf
sudo apt-get update
sudo apt-get install -y boot-repair
boot-repair

Recommended repairをクリックして修復完了です。
最後にサーバーを強制再起動させます。

これでさくらVPSが復活しました。
データも無事です。



コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください