ここからは具体的にサーバーの設定を行う。
ちなみに、ここからの内容は
http://akibe.com/centos-setup-01-login/さんのサイトからの引用です。
ユーザーの設定関係
sshからログインして、ルートのパスワードを変更する。ちなみに、sshのクライアントは、Poderosaを使用する。その他の補足ようとして、WinSCPを使用する。
WinSCPはファイルの移動やコピーするときなどに主に使用する。
[root@ ~]# passwd Changing password for user root. New UNIX password: 任意のパスワードを設定 Retype new UNIX password: もう一回入力 passwd: all authentication tokens updated successfully.
上記を実行してルートのパスワードを変更する。
その後、作業用のユーザーを作る
useradd admin
passwd admin
Changing password for user admin.
New UNIX password: 任意のパスワードを設定
Retype new UNIX password: もう一回入力
passwd: all authentication tokens updated successfully.
新しいパスワードを2回入力すれば設定完了です。
そして「admin」ユーザーを管理者グループに追加します。
usermod -G wheel admin
sudoの設定
作業ユーザーでログインした時に、管理者の権限を使う方法としてユーザー変更の su コマンドでroot ユーザーになる方法がありますが、以下のようなセキュリティ上の問題があります。
- rootのパスワードを入力する必要がある。
- 実行したユーザーのログが残らない。
- 権限の範囲が指定できない。
そのため、より安全な sudo コマンドを使う事が推奨されています。
初期状態ではroot以外のユーザーが sudo を実行することができないので、先程設定した wheel グループでsudoができるように設定を変更します。
[root@ ~]# visudo
visudo は vi というテキストエディタでファイルを開くコマンドです。vi はOSに標準でインストールされてるテキストエディタで、慣れないうちは使いづらいですが慣れるとシンプルですし、UNIX系ならほぼインストールされているので、覚えておくと便利です。
詳しい説明はしませんが、次のコマンドだけ知っておくと簡単な編集はできるでしょう。
操作 | コマンド |
---|---|
1文字削除 | x |
左に文字挿入 | i |
右に文字挿入 | a |
入力モード終了 | ESC |
UNDO | u |
最終行に移動 | G |
保存して終了 | :wq |
保存しないで終了 | :q |
ファイル中の下記の部分のコメントアウト文字「#」にカーソル合わせ、 x キーで削除します。
# %wheel ALL=(ALL) ALL ↓ %wheel ALL=(ALL) ALL
そして :wq を入力して保存終了します。これで管理者グループの wheel だけが sudo を使う事が可能になりました。
suの設定
wheel グループが設定されたので、su コマンドもグループ内のユーザーだけが使用できるように設定します。
[root@ ~]# vi /etc/login.defs
先ほどのように vi で設定ファイルが開きます。
そしたら、ファイルの末尾に以下の行を追加して保存してください。
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: もう一回入力
これで、 ~/.ssh/ に id_rsa と id_rsa.pub が生成されます。
id_rsa.pub の内容が公開鍵ですが、Finderからは見えないので、viコマンドでファイルを開きます。
$ vi ~/.ssh/id_rsa.pub
内容をコピーしたら、:q
コマンドで保存せずに vi を終了します。
公開鍵の登録
続いて公開鍵をサーバに登録するため、「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 を編集します。sshd_config ファイルのオーナーは root の為、sudo で実行します。
[admin@ ~]$ sudo vi /etc/ssh/sshd_config
sudo 初回起動時は説明が表示されたあとにパスワードを聞いてきます。
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 に変更します。項目の詳しい説明は 日本語マニュアルをどうぞ
#PermitRootLogin yes ↓ PermitRootLogin no #PasswordAuthentication yes ↓ PasswordAuthentication no UsePAM yes ↓ UsePAM no
SSHを再起動します。
[admin@ ~]$ sudo /etc/init.d/sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]
これで、リモートコンソールからと、秘密鍵を持ったPCから作業ユーザーでログインすることしかできなくなりました。
コマンドのパス設定
admin ユーザーでログインした状態でシステム系のコマンドを簡単に実行する為に、バイナリファイルへのパスを設定します。
[admin@ ~]$ vi ~/.bash_profile PATH=$PATH:$HOME/bin ↓ 上記の下に以下を追加 PATH=$PATH:/sbin PATH=$PATH:/usr/sbin PATH=$PATH:/usr/local/sbin
パス設定を反映させます。
[admin@ ~]$ source ~/.bash_profile
root宛メールの転送
いろいろなサービスを起動すると、root宛にメールが送られるようになります。rootでログインして
[root@ ~]# mail
で確認してもいいのですが、rootでのログインを減らす為にも、普段使用しているメールに転送すると楽です。
まず、旧root宛メール転送設定を削除し、
[root@ ~]# sed -i '/^root:/d' /etc/aliases
普段使用しているメールアドレス(例:xxx@xxx.com)宛に転送設定し、
[root@ ~]# echo "root: xxx@xxx.com" >> /etc/aliases
転送設定を反映させます。
[root@ ~]# newaliases
最後にroot宛にテストメールを送信します
[root@ ~]# echo test|mail root
テストメールが転送先に届いていれば完了です。
※ さくらのVPSの場合、試用期間中は外部へのメール送信はできないので、本契約後に確認しましょう。