DigitalOceanのエンジニアがオススメするらしいCentOS7の初期設定の日本語訳
(https://www.digitalocean.com/community/tutorials/initial-server-setup-with-centos-7)
この記事ではroot権限を持つユーザーの作成からSSHキーの登録、rootログインの禁止設定までをカバーしている。
ユーザーの作成
rootはUNIX系OSでは神の如き存在だけれど、基本的にrootユーザーで作業をすることはどんな状況でもオススメされない。なのでrootに代わる限定的な権限のユーザーを予め最初に作っておくことが望ましい。
新しいユーザーericの作成
$ adduser eric
ericにパスワードを設定
$ passwd eric
Root権限の付与
root権限を用いてコマンドを実行するsudo
コマンドを使えるようにするために、先ほど作成したユーザーをwheel
というグループに追加する。wheelはUNIX系システムでrootになれるグループ。
ericをwheelグループに追加
$ gpasswd -a eric wheel
SSHキーの登録
SSHキーを登録しておくことで、サーバログインの際のパスワード入力を省くことができる。予めSSHキーを作っていなければ作成する。
$ ssh-keygen
キーの保存先ディレクトリと名前を変更しなければ、~/.ssh/
の中にid_rsa
という秘密鍵ファイルが出力される。これと同時にid_rsa.pub
という公開鍵ファイルもできているので確認しておく。
ssh-copy-idコマンド
MacではなくUNIX系マシンを使っていれば、ssh-copy-idというローカルマシンの公開鍵を指定のリモートホストに登録できる便利ツールが使える。すでに他のマシンなりサーバなりを持っていれば/usr/bin
のあたりに入っているのでコピーするのもよい。
(以下をローカルマシンから実行)
$ ssh-copy-id eric@SERVER_ADDRESS
authorized_keysの手動編集
ssh-copy-idが使えなければ、実際にauthorized_keysを手で編集していく必要がある。まずは、先ほど作成したユーザーericでログインし、以下の手順を踏んでいく。
まずはホームディレクトリに.sshディレクトリを作成し、所有者のみにすべての操作を許可するパーミッションを付与する(700)
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
許可する公開鍵の一覧を登録するauthorized_keysファイルを作成し、その中にid_rsa.pubの中身を貼り付ける
$ touch ~/.ssh/authorized_keys
$ vi ~/.ssh/authorized_keys
編集が終わったら、authorized_keysファイルに所有者のみ読み書き可能のパーミッション(600)を付与し、シェルを抜ける。
$ chmod 600 ~/.ssh/authorized_keys
$ exit
Rootログインの禁止
よりセキュリティを強固にするために、SSH Daemonの設定を少し弄る。
$ vi /etc/ssh/sshd_config
先ほどユーザーericを作ったように、rootで何か作業を行うことはほぼオススメされない。ということでrootへのリモートログインを無効にする。
# この行をyesからnoに変更する
PermitRootLogin no
sshd_configを編集したのち、SSH Daemonを再起動する
$ systemctl reload sshd
終わりに
ここまでであらかたCentOSサーバを使うためのの基本的な設定は完了。次のステップとしてファイアウォールの設定などをカバーしたCentOS7の追加オススメ設定(英語)というドキュメントもあるので、よむといいかも。