【AWS】EC2でインスタンスを立てた際の初期設定メモ

AWS の EC2 でサーバーを立てたときに最初にやることのメモ.

環境

OS : Amazon Linux 2

パッケージのアップグレード

以下のコマンドでソフトウェアをアップデートしていく.

$ sudo yum update -y

ユーザの作成

$ sudo su -
$ passwd

root のユーザに切り替えて、パスワードを設定します.

$ adduser username

セキュリティ面を考えるとデフォルトのユーザを使っているのは怖いので, adduser コマンドで新しいユーザを作りましょう.

$ passwd username

パスワードを設定しましょう.

$ usermod -G wheel username

新しく作ったユーザに sudo の権限をつけて上げましょう.

$ grep wheel /etc/group
wheel:x:10:ec2-user,username

作ったユーザが sudo 権限を持つ group に入っていることを確認しましょう.

$ su - username
$ sudo id
uid=0(root) gid=0(root) groups=0(root)

sudo 権限がついているか id コマンドで確認しましょう.

新規ユーザのSSH設定

$ su - username
$ echo 'username ALL = NOPASSWD: ALL' | sudo tee --append /etc/sudoers.d/cloud-init

/etc/sudoers.d/cloud-initに設定を記入します.

$ sudo rsync -a /home/ec2-user/.ssh/authorized_keys ~/.ssh/

ec2-user の authorized_keys を username の .ssh ディレクトリにコピーします.

$ sudo chown -R username:username ~/.ssh
$ sudo chmod -R go-rwx ~/.ssh

パーミッションを変更します.

$ sudo ls -la ~/.ssh/
total 4
drwx------ 2 username username  29 Mar  6 07:16 .
drwx------ 3 username username  74 Mar  6 07:16 ..
-rw------- 1 username username 388 Mar  6 05:53 authorized_keys

パーミッションの確認.

ユーザの削除

$ sudo userdel ec2-user

新しくユーザを作ったので、デフォルトのユーザを削除します.

$ sudo vi /etc/ssh/sshd_config
# DenyUsers ec2-user を追加
$ sudo systemctl restart sshd.service

もしくは SSH でのログインを禁止しましょう.

時刻の設定

EC2 は初期の時刻の設定が UTC になっているので日本に変更します.

$ date
Wed Mar  6 05:25:37 UTC 2019

date コマンドで確認

$ sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
$ date
Wed Mar  6 14:26:31 JST 2019

変更を行って確認

$ sudo vi /etc/sysconfig/clock

ZONE="Asia/Tokyo"
UTC=true

$ sudo systemctl restart crond.service

clock の中身の設定を変更して cron を再起動.

バックアップ用のコマンドを入れる

ファイルのバックアップがほしいときがあるので、以下を導入する.

ファイルをbackupするコマンドの作成 - <%@ しまむーの備忘録 %>

コマンドのログ

サーバー上でいつどんなコマンドをうったのか知りたいので、個人的に同様に以下を導入.

自分でつかったコマンドのログを取る - <%@ しまむーの備忘録 %>

 

とりあえずここまで. 

サーバーのセキュアな設定をもっと知りたい....