サーバー

さくらVPSの初期設定

コンパネから初期設定が完了した後に、macの方はターミナル、windowsの方はpower shellから下記コマンドを入力して、サーバーにアクセスできるか確認します。

ssh root@xxx.xxx.xxx.xxx

初回アクセス時には、
Are you sure you want to continue connecting (yes/no)?
と聞いてくるので、yesと入力してください。
次に、passwordが聞かれるので、初期設定時に入力したrootのパスワードを入力してください。

アクセスができましたら、最初にOSのアップデートを行います。下記コマンドを入力してアップデートを行なっていきます。`-y`はオプションになっており、アップデートするパッケージが表示された後、上記のように`Is this ok [y/d/N]:`みたいに何度か聞かれるので、毎回入力するのが面倒なので強制的に全部`yes`にするという意味があります。
yum -y install update

アップデートが完了すると、最後に`complete!`の文字が表示されます。

もし、アップデートするパッケージがなければ、`No Packages marked for Update`のように表示されます。

お使いの環境によっては、`完了しました!`のように日本語で表示されることもありますが、問題ありませんので、そのまま進めてください。

安全にサーバーを扱うために

現状、rootユーザーでログインしていますが、この状態は非常に危険です。rootユーザーはサーバーの管理者です。このパスワードが盗まれてしまいますと、サーバーを乗っ取られてしまうことになります。
そこで、管理者権限のない、一般ユーザを作成し、直接rootユーザーでログインできないように変更していきます。

※rootユーザーで操作したい場合には、一般ユーザーでログインした後に、rootユーザーに切り替えます。

一般ユーザの作成

rootユーザーでログインしている状態で、

adduser 任意のユーザー名
passwd 上記で設定したユーザー名

パスワードを求められるので、入力します。

ここまで出来たら、一旦サーバーから抜けます。
exit or logout

rootユーザーでログインした時と同様の手順で、先程作成したユーザーでアクセスしてみてください。
パスワードも求められるので、そちらもお忘れなく。

ssh ユーザー名@xxx.xxx.xxx.xxx

アクセスできましたら、rootユーザーに切り替えてみます。
su:switch user
su –
rootユーザーのパスワードが求められるので、入力して切り替えてください。

rootで直接アクセスできないように変更

変更する方法としては、sshサーバーの設定を管理しているファイルを編集していく必要があります。
ここからは、ファイルを編集していきますので、必ずバックアップを取りながら進めてください。
その方法も一緒にやっていきます。

1:sshサーバーの設定ファイルのあるディレクトリに移動
cd /etc/ssh

2:バックアップをとる
cp sshd_config sshd_config.old

3:vimを使ってファイルを編集
vim sshd_config
:set number or :se nu->行数を表示

49行目にある行を変更

#PermitRootLogin yes

PermitRootLogin no

※vimの使い方の解説はしませんので、もし操作が分からなければ、ドットインストールなどで学んでください。
[vim入門 (全18回) – プログラミングならドットインストール]

先程編集したファイルをsshサーバー(デーモン)で有効にするために、再起動を行います。
何も返って来なければ、再起動に成功しています。
デーモン:常に起動しているソフトウェアプロセス
systemctl restart sshd.service

ここまでできたら、サーバから抜けて、rootユーザーで直接ログインできないか確かめてください。

## セキュリティを向上するために、sshのportを変更
まず、これまでの手順にしたがってrootユーザーでログインしている状態にします。
そして、先程編集したsshd_configファイルを編集していきます。

17行目付近にある下記の文字列を変更
56789は任意のもの変更可能です。

#Port 22

Port 56789

前回と同様に設定を有効にします。
systemctl restart sshd.service

※空いているportの調べ方
netstat -an

現状のまだ接続ができないので、追加設定をする必要があります。

CentOS7からはfirewalldがデフォルトで有効になっているので、今回のようなSSHのポート番号を変更する際にはそのルールを変更する必要があります。

設定ファイルをコピーします。
cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/

コピーができたら、次にバックアップを取ります。
cp /etc/firewalld/services/ssh.xml /etc/firewalld/services/ssh.xml.org

設定ファイルを編集していきます。
vim /etc/firewalld/services/ssh.xml

5行目にある箇所を変更します。

設定したファイルを有効にします
successが返ってきたら、sshdも再起動します。

firewall-cmd –reload
systemctl restart sshd

ここまでできたら、接続できるかの確認をします。
ssh -p 56789 ユーザー名@xxx.xxx.xxx.xxx

パスワード認証から、鍵認証に変更

ローカルのPCに.sshフォルダが確認してみてください。
値が返ってくれば、フォルダがあります。
ls -a ~/ | grep .ssh

ない方は、下記コマンドで作成してください。

mkdir ~/.ssh
chmod 700 ~/.ssh

ここからディレクトリに移動して、鍵を作成していきます。
パスワードが聞かれますが、今回は不要なので、そのままEnterしてください。

cd ~/.ssh
ssh-keygen -t rsa -b 4096 -f client_rsa

`ls`でコマンドで`client_rsa`のファイルができているか確認してください。

公開鍵の内容をクリップボードにコピー
cat my_hp.pub | pbcopy

サーバー側の公開鍵設定

一般ユーザーでログインしている状態かつホームディレクトリ(ログイン直後のディレクトリ)で下記コマンドを入力していきます。

mkdir .ssh
chmod 700 .ssh
cd .ssh

authorized_keysというファイルを作成します。
vim authorized_keys

そして、先程コピーした公開鍵を貼り付けます。
最後にパーミッションを変更します。
chmod 600 authorized_keys

これで全ての設定が完了です。
サーバーから抜けて、下記コマンドでログインできるか試してみてください。
ssh -i ~/.ssh/client_rsa -p 56789 ユーザー名@xxx.xxx.xxx.xxx

最後にパスワード認証できないように変更しておきましょう。
rootユーザーに切り替え、sshd_configを再度編集します。

su –
cd /etc/ssh
vim sshd_config

78行目付近にある箇所を変更します。

PasswordAuthentication yes

PasswordAuthentication no

そして、sshdを再起動すれば、初期設定の完了です。
systemctl restart sshd

お疲れ様でした。

おまけ

最初にインストールしたOSの情報は下記コマンドで見れます
cat /etc/redhat-release

CentOSで使用しているパッケージマネージャーのyumはYellowdog Updater Modifiedの略です。
昔はrpmを使用していましたが、yumを使用するとパッケージ間の依存関係を自動調整してくれます。