AmazonLinux2 に初期設定をします

Webサイト構築の前提となるLAMP環境を作成する前に、Amazon Web Services の初期設定をします。

 

タイムゾーンの変更手順

 

1⃣ /etc/sysconfig/clockの編集して、timezoneファイル差し替えて、再起動

/etc/sysconfig/clockのバックアップを作成してから、/etc/sysconfig/clockの中を、ZONE=UTCからZONE=”Asia/Tokyo”に変更

[ec2-user@ip-172-28-0-214 ~]$ sudo cp /etc/sysconfig/clock /etc/sysconfig/clock.org
[ec2-user@ip-172-28-0-214 ~]$ sudo vi /etc/sysconfig/clock

#ZONE=”UTC”
ZONE=”Asia/Tokyo”
UTC=true

 

2⃣ timezoneの変更

/etc/localtimeを日本時間ファイル(/usr/share/zoneinfo/Asia/Tokyo)に置き換え

[ec2-user@ip-172-28-0-214 ~]$ sudo cp /etc/localtime /etc/localtime.org
[ec2-user@ip-172-28-0-214 ~]$ sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

 

3⃣ root パスワード設定

[root@ip-10-0-0-220 ~]# sudo passwd root
Changing password for user root.
# ユーザー root のパスワードを変更
New password: (パスワード入力)
Retype new password: (パスワード再入力)
passwd: all authentication tokens updated successfully.

su 実行 (rootになっている場合には、rootを抜けて、ec-userで実行)

[ec2-user@ip-10-0-0-220 ~]$ su
Password: (パスワード入力)

設定した root のパスワードを入力して root ユーザになれる事を確認

 

4⃣ 再起動を実施

[ec2-user@ip-172-28-0-214 ~]$ sudo reboot
[ec2-user@ip-172-28-0-214 ~]$ date
Tue Sep 15 10:10:02 JST 2020

※ SELinuxはこの手順ではおこなわない

 

SSHのポート番号を変更

 

/etc/ssh/sshd_config を編集します。

[root@ip-10-0-0-220 ec2-user]# sudo vi /etc/ssh/sshd_config

以下内容(抜粋)で編集します。

#Port 22
Port XXX(ポートを変更する)
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

※ 標準では22番ポートを使うが、セキュリティ対策のために、任意のポート番号に変更する。

編集したら、設定に問題ないか確認します。問題がない場合何も表示されません。
[root@ip-10-0-0-220 ec2-user]# sudo /usr/sbin/sshd -t

設定に問題がなければsshdを再起動します。

(Amazon Linux 2 の場合)
[root@ip-10-0-0-220 ec2-user]# sudo systemctl restart sshd

新たなポート番号で接続可能かどうかを確認
※ 現在のセッションはそのままで、別セッションで接続確認。下手にログアウトして繋がらなくなると戻せなくなり途方に暮れること多数。
※ EC2 Security Group設定で、ポート番号22の許可を、変更したポート番号許可に変更。これをやらないとTeraTermで接続できない。

 

メンテナンスユーザ追加 (miko)

(miko というユーザを作成して鍵設定。鍵はec2-user用のものを再利用 ※作っても良いが)

 

初期ユーザの ec2-user は攻撃者に知れているので使用しない。
ec2-user は削除しないで、SSHできないようにします。

[root@ip-10-0-0-220 ec2-user]# sudo useradd miko
[root@ip-10-0-0-220 ec2-user]# ls /home
ec2-user miko
作成したユーザーは /home ディレクトリで確認

 

miko の設定変更

 

miko にパスワードを設定
パスワードを2回問い合わせてくるので、適当なパスワードを設定

 

[root@ip-10-0-0-220 ec2-user]# sudo passwd miko
Changing password for user miko.
New password: (パスワード入力)
Retype new password:  (パスワード再入力)
passwd: all authentication tokens updated successfully.

 

新規ユーザーで管理コマンドを実行できるようにする

 

追加ユーザーは、初期設定では sudo実行できない。
sudoコマンドを実行するに、ユーザーを wheel と呼ばれるグループに登録する。
wheel はスーパーユーザー(root)権限をもつグループで、ec2-user もこのグループ。

 

[root@ip-10-0-0-220 ec2-user]# sudo usermod -aG wheel miko

wheelに所属しているユーザー確認

[root@ip-10-0-0-220 ec2-user]# less /etc/group | grep wheel
wheel:x:10:ec2-user,miko

 

公開鍵のコピーとパーミッション設定

 

mikoユーザが、インスタンスへ接続するためには、EC2に登録した公開鍵を、miko ホームディレクトリ配下に登録する必要がある。

$ su
[root@ip-10-0-0-220 ec2-user]# mkdir /home/miko/.ssh
[root@ip-10-0-0-220 ec2-user]# cp -a /home/ec2-user/.ssh/authorized_keys /home/miko/.ssh/

.ssh ディレクトリとファイルのパーミッションを設定。

コピーした .ssh ディレクトリとその配下にあるキーの所有者をec2-userから新規ユーザーへ変更

[root@ip-10-0-0-220 ec2-user]# chmod 700 /home/miko/.ssh
[root@ip-10-0-0-220 ec2-user]# chmod 600 /home/miko/.ssh/authorized_keys
[root@ip-10-0-0-220 ec2-user]# chown -R miko:miko /home/miko/.ssh

 

ユーザビリティ優先で、mikoユーザで sudo を許可する

 

[root@ip-10-0-0-220 ec2-user]# sudo visudo
miko ALL=(ALL) NOPASSWD:ALL

mikoユーザで、sudoを実行し、パスワード入力を求められるので、先に設定したパスワードを入力して root ユーザになれる事を確認

※ できなかったらリロード => $ sudo systemctl restart sshd

ec2-user 削除までは行わない

miko でSSHできること、rootになれることを確認
$ sudo su –

 

ec2-userのSSHを禁止する

 

[root@ip-10-0-0-220 miko]# sudo echo “DenyUsers ec2-user” >> /etc/ssh/sshd_config

設定後、sshdを再起動します。

[root@ip-10-0-0-220 miko]# sudo systemctl restart sshd
[root@ip-10-0-0-220 miko]# sudo systemctl status sshd

● sshd.service – OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-05-18 21:20:28 JST; 9s ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 4679 (sshd)
CGroup: /system.slice/sshd.service
mq4679 /usr/sbin/sshd -D

May 18 21:20:28 ip-10-0-0-220.ap-northeast-1.compute.internal systemd[1]: Starting OpenSSH server daemon…
May 18 21:20:28 ip-10-0-0-220.ap-northeast-1.compute.internal sshd[4679]: Server listening on 0.0.0.0 port 177.
May 18 21:20:28 ip-10-0-0-220.ap-northeast-1.compute.internal sshd[4679]: Server listening on :: port 177.
May 18 21:20:28 ip-10-0-0-220.ap-northeast-1.compute.internal systemd[1]: Started OpenSSH server daemon.

 

SSH接続高速化

 

SSHの接続が開始遅いときは有効

[root@ip-10-0-0-220 miko]# vi /etc/ssh/sshd_config
#UseDNS yes
UseDNS no

 

スワップファイル作成

 

通常スワップ無しでも問題なく動作しますが、アプリケーションに寄ってはある程度のスワップ領域があった方が安心

[root@ip-10-0-0-220 miko]# sudo dd if=/dev/zero of=/mnt/swapfile bs=1M count=1280
1280+0 records in
1280+0 records out
1342177280 bytes (1.3 GB) copied, 17.6196 s, 76.2 MB/s

作成したファイルをスワップ領域として設定します。

[root@ip-10-0-0-220 miko]# sudo mkswap /mnt/swapfile
mkswap: /mnt/swapfile: insecure permissions 0644, 0600 suggested.
Setting up swapspace version 1, size = 1.3 GiB (1342173184 bytes)
no label, UUID=a08c41fb-8dc2-4b2f-bc0c-bed9d29a3810

スワップを有効にします。

[root@ip-10-0-0-220 miko]# sudo swapon /mnt/swapfile
swapon: /mnt/swapfile: insecure permissions 0644, 0600 suggested.

有効になっているか確認

[root@ip-10-0-0-220 miko]# free
total used free shared buff/cache available
Mem: 1006960 64700 70784 460 871476 793320
Swap: 1310716 0 1310716

(再)起動時に自動的にマウントされるように設定を行います。

[root@ip-10-0-0-220 miko]# sudo vi /etc/fstab

以下内容で設定を追記

/mnt/swapfile none swap sw 0 0

 

パッケージもアップデート(rootユーザで実行)

 

$ su
パスワード: (パスワード入力)
[root@ip-10-0-0-220 miko]# yum -y update

Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core | 2.4 kB 00:00:00
Resolving Dependencies
–> Running transaction check
—> Package awscli.noarch 0:1.16.300-1.amzn2.0.1 will be updated
—> Package awscli.noarch 0:1.16.300-1.amzn2.0.2 will be an update
—> Package freetype.x86_64 0:2.4.11-15.amzn2.0.2 will be updated

Updated:
awscli.noarch 0:1.16.300-1.amzn2.0.2 freetype.x86_64 0:2.8-14.amzn2
gdisk.x86_64 0:0.8.10-3.amzn2 glib2.x86_64 0:2.56.1-5.amzn2.0.1
libdrm.x86_64 0:2.4.97-2.amzn2 microcode_ctl.x86_64 2:2.1-47.amzn2.0.6
selinux-policy.noarch 0:3.13.1-192.amzn2.6.1 selinux-policy-targeted.noarch 0:3.13.1-192.amzn2.6.1
yum.noarch 0:3.4.3-158.amzn2.0.4

Complete!

 

Amazon Linux インスタンスにリポジトリを追加する。

既にインストールされている yum レポジトリを調べる。

 

[root@ip-172-28-0-58 manaka]# yum repolist all

Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
repo id repo name status
!amzn2-core/2/x86_64 Amazon Linux 2 core reposit enabled: 21,018
amzn2-core-debuginfo/2/x86_64 Amazon Linux 2 core reposit disabled
amzn2-core-source/2 Amazon Linux 2 core reposit disabled
amzn2extra-docker/2/x86_64 Amazon Extras repo for dock enabled: 28
amzn2extra-docker-debuginfo/2/x86_64 Amazon Extras debuginfo rep disabled
amzn2extra-docker-source/2 Amazon Extras source repo f disabled
repolist: 21,046

Amazon Linux 2 で EPEL レポジトリを有効にする

[root@ip-172-28-0-58 manaka]# sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
epel-release-latest-7.noarch.rpm | 15 kB 00:00
Examining /var/tmp/yum-root-Gc9a5s/epel-release-latest-7.noarch.rpm: epel-release-7-12.noarch
Marking /var/tmp/yum-root-Gc9a5s/epel-release-latest-7.noarch.rpm to be installed
Resolving Dependencies
–> Running transaction check
—> Package epel-release.noarch 0:7-12 will be installed
–> Finished Dependency Resolution
amzn2-core/2/x86_64 | 3.7 kB 00:00

Dependencies Resolved

================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
epel-release noarch 7-12 /epel-release-latest-7.noarch 24 k

Transaction Summary
================================================================================
Install 1 Package

Total size: 24 k
Installed size: 24 k
Is this ok [y/d/N]: y                [ y を入力 ]
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : epel-release-7-12.noarch 1/1
Verifying : epel-release-7-12.noarch 1/1

Installed:
epel-release.noarch 0:7-12

Complete!

[root@ip-172-28-0-58 manaka]# yum repolist all

Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
194 packages excluded due to repository priority protections
repo id repo name status
amzn2-core/2/x86_64 Amazon Linux 2 core rep enabled: 21,018
amzn2-core-debuginfo/2/x86_64 Amazon Linux 2 core rep disabled
amzn2-core-source/2 Amazon Linux 2 core rep disabled
amzn2extra-docker/2/x86_64 Amazon Extras repo for enabled: 28
amzn2extra-docker-debuginfo/2/x86_64 Amazon Extras debuginfo disabled
amzn2extra-docker-source/2 Amazon Extras source re disabled
epel/x86_64 Extra Packages for Ente enabled: 13,252+194
epel-debuginfo/x86_64 Extra Packages for Ente disabled
epel-source/x86_64 Extra Packages for Ente disabled
epel-testing/x86_64 Extra Packages for Ente disabled
epel-testing-debuginfo/x86_64 Extra Packages for Ente disabled
epel-testing-source/x86_64 Extra Packages for Ente disabled

 

Amazon Linux インスタンスでソフトウェアのコンパイルを準備する

 

重要!! これらの手順は Amazon Linux専用

ソフトウェアのコンパイルはすべての Amazon EC2 インスタンスで必要なタスクではないため、そのようなツールはデフォルトでインストールされていません。
ただし、「Development Tools」という名前のパッケージグループで利用でき、yum groupinstall コマンドでインスタンスに簡単に追加されます。

 

[root@ip-172-28-0-58 manaka]# yum groupinstall “Development Tools”

Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core | 3.7 kB 00:00
194 packages excluded due to repository priority protections
Resolving Dependencies
–> Running transaction check
—> Package autoconf.noarch 0:2.69-11.amzn2 will be installed
–> Processing Dependency: m4 >= 1.4.14 for package: autoconf-2.69-11.amzn2.noarch
–> Processing Dependency: perl(Data::Dumper) for package: autoconf-2.69-11.amzn2.noarch
—> Package automake.noarch 0:1.13.4-3.1.amzn2 will be installed
:  :  :  :
:  :  :  :
:  :  :  :
:  :  :  :
systemtap-client.x86_64 0:4.2-1.amzn2.0.1
systemtap-devel.x86_64 0:4.2-1.amzn2.0.1
trousers.x86_64 0:0.3.14-2.amzn2.0.2
zlib-devel.x86_64 0:1.2.7-18.amzn2

Complete!

 

vim のインストール&設定

 

①Vim インストール

[root@ip-10-0-0-220 miko]# yum -y install vim-enhanced

 

②コマンドエイリアスを適用
(全ユーザーに適用する。ユーザー個別に適用するならばそれぞれのユーザーの「~/.bashrc」等に記述)

 

[root@ip-10-0-0-220 miko]# vi /etc/profile

# 最終行にエイリアス追記
alias vi=’vim’

[root@ip-10-0-0-220 miko]# source /etc/profile

 

③vim の設定
(ユーザー個別に適用する。全ユーザーに適用するならば「/etc/vimrc」に記述。
「/etc/vimrc」にはデフォルトである程度設定されている)

 

[root@ip-10-0-0-220 miko]# cp /etc/vimrc ~/.vimrc
[root@ip-10-0-0-220 miko]# vi ~/.vimrc

set ignorecase
set smartcase
set number
set showmatch
set wrap

 

AWS TIPS はこちら!