最近EC2を触り始めたので設定メモでも残す。 ここの設定はプロトタイプを作る時の設定なので、正直言って緩い。ちゃんとしたサービスの場合はもうちょっとセキュリティ周りの設定を厳しくしたほうが良い。
セキュリティグループの設定
セキュリティグループはEC2インスタンスのすぐ外側の設定なので、サブネット内の他インスタンスに通信する時にも適応される。サブネット内のインスタンスに繋がらない、PINGも通らないって時は大体この設定がミスってる。
インバウンド
とりあえずSSHのみ
アウトバウンド
全開放
インスタンス上の設定
CentOSを想定 SSHで接続して設定すると思うんだけど、ここで躓いたのがユーザー名、普通のAMIなら「ec2-user」、たまーに「root」でしか接続できないAMIもある。ちなみにCentOS7は「centos」だった。面倒臭いので「ec2-user」で統一して欲しい
rootパスワードの設定
初期状態でrootにパスワードが設定されていないので、設定しておく。
$ sudo su - $ passwd パスワード入力
SSHパスワードログイン不許可設定
パスワード認証を不許可
#sudo vi /etc/ssh/sshd_config PasswordAuthentication no ChallengeResponseAuthentication no
設定を反映するためにSSHを再起動
#sudo systemctl restart sshd
日本語ロケールに変更
# localectl set-locale LANG=ja_JP.utf8
設定が反映されたことを確認する
# localectl status System Locale: LANG=ja_JP.utf8 VC Keymap: us X11 Layout: us
SELinuxの無効化
これも嵌った。インスタンス間のSSHが出来なくて小一時間悩んだ挙句原因がこれだったのはかなり疲れた
以下のコマンドを入力して現在のSELinuxの設定を表示する。「Enforcing」を表示されたら有効になっている
# getenforce Enforcing
SELinuxの一時無効化
# setenforce 0
SELinuxの一時有効化
# setenforce 1
上記の設定だけだとrebootしたときに設定が元に戻るので永続化するために設定ファイルを変更する
vi /etc/selinux/config SELINUX=enforcing ↓ SELINUX=disabled
時刻をJSTにする
元々の設定を一応バックアップしておく
# sudo cp /etc/localtime /etc/localtime.bk
Japanをコピー
# sudo cp -p /usr/share/zoneinfo/Japan /etc/localtime