経験知ロゴ

MacでさくらVPS CentOSの初期設定

※本ページはプロモーションが含まれています

さくらインターネットVPSコントロールパネル

さくらVPSでのCentOSの初期設定

さくらVPSでのデフォルトのOSはCentOSなので、最初に行ったCentOSの設定のメモ。

さくらVPSに限らず、CentOSのサーバーなら使い回しができるはずです。

サーバーの操作はMacから行いました。

OS再インストール後の注意点

OSの再インストールは「さくらVPSコントロールパネル」から簡単にできる。
rootのパスワードを変えた後でも、さくらVPSから与えられた初期のrootパスワードでログインできる。
SSH公開鍵を設定した後だと、~/.ssh/known_hosts ファイルに証明書が残っているため、OSの再インストールをしてからエラーが出てログインできない場合は、ターミナルから

ssh-keygen -R XXX.XXX.XXX.XXX

を実行して削除。

ログインし、rootのパスワードを変更

ターミナルを立ち上げて下記コマンドを入力してサーバーへ接続。

$ ssh root@XXX.XXX.XXX.XXX

XXX.XXX.XXX.XXX の部分は、さくらに割り当てられた自分のサーバのIPアドレス。
このコマンドは、root ユーザーとして XXX.XXX.XXX.XXX のサーバに ssh で接続するというコマンド。
パスワードを聞かれるので、さくらからのメールに書いてある初期パスワードを入れEnter。
パスワードを入力する際、入力した文字は表示されず、カーソルも動かないが、ちゃんと入力されている。コピペも可能。

SAKURA Internet [Virtual Private Server SERVICE]  [root@www0000u ~]#

このように表示されれば、接続完了。「0000」の部分は自分に割り当てられた数字になる。

作業ユーザーの作成

作業用に新しいユーザーを作成。とりあえず「admin」で。

[root@ ~]# useradd admin

ユーザーが作成されたらパスワードを設定。
パスワードを2回入力、パスワード入力時は表示されない。

[root@ ~]# passwd admin
Changing password for user admin.
New UNIX password: 任意のパスワードを設定
Retype new UNIX password: もう一回入力
passwd: all authentication tokens updated successfully.

次に「admin」ユーザーを管理者グループに追加。
これによって、あとで管理者権限を使えるユーザーを制限することができる。

[root@ ~]# usermod -G wheel admin

sudoの設定

作業ユーザーでログインした時に、管理者の権限を使う方法としてユーザー変更の su コマンドでroot ユーザーになる方法があるが、以下のようなセキュリティ上の問題がある。

rootのパスワードを入力する必要がある。
実行したユーザーのログが残らない。
権限の範囲が指定できない。

そのため、より安全な sudo コマンドを使う事が推奨されている。
初期状態ではroot以外のユーザーが sudo を実行することができないため、先程設定した wheel グループでsudoができるように設定を変更。

[root@ ~]# visudo

上記コマンドによりviエディタで「sudo」の設定ファイルが開かれる。
viの基本操作方法

操作 コマンド
1文字削除 x
左に文字挿入 i
右に文字挿入 a
入力モード終了 ESC
やり直し u
最終行に移動 G
保存しないで終了 :q
保存して終了 :wq
検索 /検索ワード

ファイル中の下記の部分のコメントアウト文字「#」にカーソル合わせ、 x キーで削除。

# %wheel ALL=(ALL) ALL   
↓ 
%wheel ALL=(ALL) ALL

そして「 :wq」 を入力して保存終了。これで管理者グループの wheel だけが sudo を使う事が可能になった。

suの設定

wheel グループが設定されたので、su コマンドもグループ内のユーザーだけが使用できるように設定。

[root@ ~]# vi /etc/login.defs

ファイルの末尾に下記の行を追加して保存

SU_WHEEL_ONLY yes

これで他のユーザーはrootになれなくなった。

公開鍵でのログイン

まずはローカルに非公開鍵と公開鍵のペアを作る。
鍵ペアを作るためにはローカルで作業する必要があるため、一度ログアウト。

[root@ ~]# exit
Connection to XXX.XXX.XXX.XXX closed.
local:~ name$

これでログアウト完了。
鍵ペアを作成するために下記コマンドを実行。

$ ssh-keygen -t rsa  Enterを押す
file in which to save the key (/Users/name/.ssh/id_rsa): Enterを押す
Enter passphrase (empty for no passphrase): 任意のパスフレーズを設定 Enterを押す
same passphrase again: もう一回入力 Enterを押す

ここで使ったパスフレーズは後で使うので忘れないようにメモしておく。
これで、「 ~/.ssh/」 に id_rsa と id_rsa.pub が生成される。
.sshフォルダは「.」ではじまる隠しフォルダなので、「command+shift+.」で表示させ、「id_rsa.pub」を開き内容を全てコピー。

公開鍵をサーバーに登録するため、「admin」ユーザーとしてログイン。

$ ssh admin@XXX.XXX.XXX.XXX

USERNAMEのホームディレクトリの直下に .ssh ディレクトリを作成して、自分だけ読み書き可能に設定。

[admin@ ~]$ cd $HOME
[admin@ ~]$ mkdir .ssh
[admin@ ~]$ chmod 700 .ssh

vi コマンドで、authorized_keys ファイルを作成、先程コピーした公開鍵をペーストして保存。

[admin@ ~]$ vi .ssh/authorized_keys

他のユーザーに見られない為に公開鍵ファイルのパーミッションを変更。

[admin@ ~]$ chmod 600 .ssh/authorized_keys

これで公開鍵でのログイン設定完了。

rootでのログインとパスワードによるログインを禁止する

「/etc/ssh/sshd_config」 を編集。

[admin@ ~]$ sudo vi /etc/ssh/sshd_config

sudo初回起動時は説明が表示された後にパスワードを聞いてくるので、「admin」のパスワードを入力。

We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.

[sudo] password for admin: adminユーザーのパスワードを入力

viに入ったら、下記項目のコメントを外したり yes を no に変更したりする。portの番号は適当に変更。

#port 22
  ↓
port 10022

#PermitRootLogin yes  
 ↓
PermitRootLogin no

#PasswordAuthentication yes
#PermitEmptyPasswords no
 ↓
PasswordAuthentication no
PermitEmptyPasswords no

UsePAM yes  
 ↓
UsePAM no

#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeyFile   .ssh/authorized_keys
 ↓
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeyFile   .ssh/authorized_keys

#RhostsRSAAuthentication no
↓
RhostsRSAAuthentication no

SSHを再起動。

[admin@ ~]$ sudo /etc/init.d/sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]

これで、リモートコンソールからと、秘密鍵を持ったPCから作業ユーザーでログインすることしかできなくなった。

ターミナルからログイン方法の変更

毎回ターミナルから

$ ssh admin@XXX.XXX.XXX.XXX

と打ち込むのも面倒なので、簡単にログインできるように変更。
「.ssh」フォルダ内に新しい名前のフォルダを作成。仮に「sakura」とする。
「id_rsa.pub」と「id_rsa」を「sakura」フォルダへ移動し「.ssh」フォルダ内の「config」を開き、下記内容を追加。

Host sakura
        HostName XXX.XXX.XXX.XXX
        User admin
        Port 10022
        IdentityFile ~/.ssh/sakura/id_rsa

「Host」の次の「sakura」はターミナルで実行するときの名前。
「User」と「Port」を設定し、「IdentityFile 」で「id_rsa」ファイルが有る場所を指定。
これでターミナルから

$ ssh sakura

でログインできるようになった。
現在のターミナルはそのままで、新しいターミナルを立ち上げて(command + N)新しい方でログインを試してみる。ここで今まで作業していたターミナルを閉じたり、ログアウトしてしまうと、新しい方法でログインできなかった時に間違いを修正できず、OSを再インストールすることになるので注意。

初回ログイン時に「id_rsa」のパスワードを聞かれるので、公開鍵を作成した際のパスフレーズを入力し、「パスワードをキーチェーンに保存」にチェックを入れ「OK」をクリック。

パスワードを入力

パソコンを新しく変えた場合

「.ssh」フォルダを新しいパソコンにコピーしパーミッションを変更。

$ chmod 600 ~/.ssh/config

次に

以上がCentOSの初期設定のメモ。
次はnginxとphp、mysqlのインストールと設定。
CentOSでNginxとPHP、MySQLを動かす。

その他の記事
さくらVPSでCentOS+Nginx+WordPressを動かす
CentOS+NginxにWordPressをインストールする。

役に立ったらこの記事のシェアをお願いします

ブログのフォロー・RSS購読は下記ボタンから