あいしんくいっとオススメ商品レビュー

EC2なCENTOS7の初期設定でやっておきたい7つの設定

この記事には広告を含む場合があります。

記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

本記事対象者
EC2なCENTOS7の初期設定でやっておきたい項目について知りたい方

ども。あいしんくいっと(@ithinkitnet)です。

EC2でCENTOS7のAMIを使って起動した場合、SSHで接続は出来るものの、ホスト名がIPベースでおかしかったり、トラブルの元でしか無いSELINUXが動いていたりとそのまま使うのは非常に厳しい状態です。

ですので、今回は初回起動時に最低限設定しておいた方が良い基本的な部分について書いておきたいと思います。

CentOS7で最低限やっておいた方が良い7つの設定

CentOS7を扱う上で最低限やっておきたい設定項目を7つピックアップしました。

MEMO

あくまで最低限の設定ですので足りなかったらごめんなさい

それでは、本題です。

SELINUXの無効化

SELINUXには過去に幾度となく苦しめられて来ましたw

ithinkit

うーん、上手くいかないなー。あぁ、SELINUXか!

ってことが過去にたくさん。
ただ、セキュリティを物凄く強固なものにしたいのであれば、注意して設定すると良いと思います。(ただし、設定難しいです)
これまでの経験上、トラブルの元になりやすいので無効化する事が多いです。

/etc/sysconfig/selinux編集

SELINUX=enforcing
↓
SELINUX=disabled

上記編集後にOS再起動

注意

設定ミスると「kernel panic」が発生したりするので気をつけて下さい!

firewalld(iptables)の無効化

CENTOS7からFirewalldに置き換わりました。
iptablesもレガシーな部分として残っていたりするのですが、今後はfirewalledを使う方が良いと思います。
ただ、今回は無効化しておきます。
別途ウイルス対策ソフトを導入することが多いので、firewalledも設定したりしなかったりします。
ちなみにAWSでNATを構築する時はiptablesを使ってたりします。

注意

AWSのEC2上で確認したところ、firewalldは存在していない模様

Firewalled設定コマンド

# systemctl status firewalld
firewalld.service
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)

# systemctl enable firewalld
Failed to issue method call: No such file or directory

うーむ。

ホスト名変更

これは必須ですね。
EC2はデフォルトだとIPベースの変なホスト名ですので、変更した方が良いでしょう。
環境に合わせてお好みで設定して下さい。
/etc/sysconfig/networkを変えたら終わりでしょ?
と思った方、甘いですよw

ホスト名設定1

# echo ithinkit > /etc/hostname
ホスト名設定2

# echo "preserve_hostname:true" >> /etc/cloud/cloud.cfg

上記編集後にOS再起動

EC2では「cloud-init」と呼ばれるキックスタートスクリプトが動いているので、/etc/sysconfig/networkを書き換えただけではホスト名は変更出来ません。
合わせて/etc/cloud/cloud.cfgにも設定を追加してやる必要があります。

不要サービス停止

不要なサービスはサーバーに負荷をかけるだけでなく、セキュリティホールの原因となったりしますので、出来る限り停止します。
特にpostfixは必要が無ければ停止した方が良いでしょう。

不要サービス停止

# systemctl disable postfix
rm '/etc/systemd/system/multi-user.target.wants/postfix.service'
# systemctl disable auditd
rm '/etc/systemd/system/multi-user.target.wants/auditd.service'
# systemctl disable rpcbind.service
rm '/etc/systemd/system/multi-user.target.wants/rpcbind.service'
rm '/etc/systemd/system/sockets.target.wants/rpcbind.socket'
# systemctl disable nfs-lock.service
rm '/etc/systemd/system/nfs.target.wants/nfs-lock.service'
# systemctl disable auditd.service

awscliの導入

必須です。重要です。テストに出ます。(冗談です)
というか、awscliが無いと駄目駄目です(笑)
AWSのAPIを叩けないとか、色々と損をしますし、今後の運用に困りますというか、運用出来無いと思います。

AWSコンソールは非常に優秀で使いやすいのですが、cliでしか出来ない事があったり、単純な反復作業はコレを使わないと時間の無駄使い&ケアレスミスの温床になりかねないのでたぶん怒られますw(言い過ぎか)

awscliのフィルタリングオプションである「–filter」や「–query」は取っ付きにくいものの、慣れると便利ですので是非マスターしておく事をオススメします。

あ、使うにはIAMでAPIキーの発行をお忘れなく。

参考 AWS CLI のインストールと設定

タイムロケールの設定

EC2はデフォルトだとUTCで何かと不便なので、理由が無い限りはJSTに変更した方が無難です。

日付設定

# date
Mon Apr 20 14:40:12 UTC 2015
# cp -p /usr/share/zoneinfo/Japan /etc/localtime
cp: overwrite ‘/etc/localtime’? y
# date
Mon Apr 20 23:40:23 JST 2015

さらにアップデートといった処理でデフォルトのUTCに戻らないように/etc/sysconfig/clockにタイムゾーンを書いておきましょう。

/etc/sysconfig/clock

ZONE="Asia/Tokyo"
UTC=false
ARC=false

EC2デフォルトユーザーの変更

EC2のCentOSログインユーザーはデフォルトだと「centos」になります。
デフォルトのままだとセキュリティ的にアレなので(アレって何だw)、変更する事を強くオススメします。

過去のエントリでOS毎のログインユーザーを一覧にまとめてたりするので、興味のある方は是非。
EC2デフォルトログインユーザについて【Windows/Linux】

と何だかんだと書いていると結構な記事ボリュームになりましたが、これだけはやっておきたい事について書いたつもりです。

ithinkit

また思いついたら書きたいと思います。
では。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)