MacでさくらVPS CentOSの初期設定
※本ページはプロモーションが含まれていますさくら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をインストールする。