この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
ども。あいしんくいっと(@ithinkitnet)です。
EC2でCENTOS7のAMIを使って起動した場合、SSHで接続は出来るものの、ホスト名がIPベースでおかしかったり、トラブルの元でしか無いSELINUXが動いていたりとそのまま使うのは非常に厳しい状態です。
ですので、今回は初回起動時に最低限設定しておいた方が良い基本的な部分について書いておきたいと思います。
クリック可能な目次
CentOS7で最低限やっておいた方が良い7つの設定
CentOS7を扱う上で最低限やっておきたい設定項目を7つピックアップしました。
あくまで最低限の設定ですので足りなかったらごめんなさい
それでは、本題です。
SELINUXの無効化
SELINUXには過去に幾度となく苦しめられて来ましたw
ithinkit
ってことが過去にたくさん。
ただ、セキュリティを物凄く強固なものにしたいのであれば、注意して設定すると良いと思います。(ただし、設定難しいです)
これまでの経験上、トラブルの元になりやすいので無効化する事が多いです。
SELINUX=enforcing
↓
SELINUX=disabled
上記編集後にOS再起動
設定ミスると「kernel panic」が発生したりするので気をつけて下さい!
firewalld(iptables)の無効化
CENTOS7からFirewalldに置き換わりました。
iptablesもレガシーな部分として残っていたりするのですが、今後はfirewalledを使う方が良いと思います。
ただ、今回は無効化しておきます。
別途ウイルス対策ソフトを導入することが多いので、firewalledも設定したりしなかったりします。
ちなみにAWSでNATを構築する時はiptablesを使ってたりします。
AWSのEC2上で確認したところ、firewalldは存在していない模様
# 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
# echo ithinkit > /etc/hostname
# 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キーの発行をお忘れなく。
タイムロケールの設定
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にタイムゾーンを書いておきましょう。
ZONE="Asia/Tokyo"
UTC=false
ARC=false
EC2デフォルトユーザーの変更
EC2のCentOSログインユーザーはデフォルトだと「centos」になります。
デフォルトのままだとセキュリティ的にアレなので(アレって何だw)、変更する事を強くオススメします。
過去のエントリでOS毎のログインユーザーを一覧にまとめてたりするので、興味のある方は是非。
EC2デフォルトログインユーザについて【Windows/Linux】
と何だかんだと書いていると結構な記事ボリュームになりましたが、これだけはやっておきたい事について書いたつもりです。
ithinkit
では。