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
$ 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するコマンドの作成 - <%@ しまむーの備忘録 %>
コマンドのログ
サーバー上でいつどんなコマンドをうったのか知りたいので、個人的に同様に以下を導入.
自分でつかったコマンドのログを取る - <%@ しまむーの備忘録 %>
とりあえずここまで.
サーバーのセキュアな設定をもっと知りたい....