Linux設定チェックリスト

本番環境を構築するときに個人的に使う目的で作ったチェックリストです。

チェックリスト

デフォルトユーザーを削除したかどうか

AWS EC2ならec2-uerというように、サービスごとにデフォルトで特定の名前のユーザーが作成されることがあります。

ただこちらは攻撃の対象になりやすいので削除して新しい作業用のユーザーを作成します。

以下はEC2でデフォルトユーザーのec2-userを削除してhogeuserを作成する場合です。

# rootにスイッチ
$ sudo su -

# hogeuserを作成してパスワードを設定
$ adduser hogeuser
$ passwd saratoga

# 鍵ファイルをコピーして権限変更
$ cp -r /home/ec2-user/.ssh /home/hogeuser/
$ chown -R hogeuser:hogeuser /home/hogeuser/.ssh

# hogeuserにsudo権限をつける
$ visudo
 ・・・
root ALL=(ALL) ALL
# 以下を追記して保存する
hogeuser ALL=(ALL) ALL

# ec2-userを削除
userdel -r ec2-user

SSHの設定を変更したかどうか

SSHの設定を変更しましょう。

$ sudo vi /etc/ssh/sshd_config

# ポート番号の変更
# デフォルトが22なのでそれ以外のポート番号がおすすめ
port ポート番号

# rootでのログインを禁止
PermitRootLogin no

# 公開鍵認証を有効化
PubkeyAuthentication yes

# パスワード認証を無効化
PasswordAuthentication no

# 空パスワードを無効
PermitEmptyPasswords no

# チャレンジレスポンス認証を無効化
ChallengeResponseAuthentication no

# 接続をSSH version2 のみに限定する
Protocol 2

# 同時に認証できる接続数の上限
MaxStartups 2

# ログインを許可するユーザーのリスト(スペース区切り)
AllowUsers tanaka yamada

# ログレベルの変更
SyslogFacility AUTHPRIV
LogLevel VERBOSE

修正後はsshdを再起動して反映します。

$ systemctl restart sshd

サーバー起動時の自動実行を設定したかどうか

サービスのシステム起動時の動きについてはchkconfig で設定することができます。

現在の設定は下記コマンドで確認でき、onとoffの前についている数字は下記を意味しています。

# 現在設定されているものの一覧を取得
$ chkconfig --list

# サービスを指定して検索
$ sudo chkconfig --list サービス名
ランレベル 意味
0 システムの停止
1 シングルユーザモード
2 マルチユーザモード
3 マルチユーザモード(コンソールログイン)
4 未使用
5 マルチユーザモード(ディスプレイマネージャ使用)
6 システム再起動

設定を変更するコマンドは下記

# サービス設定の追加
$ /sbin/chkconfig --add サービス名

# サービス設定の削除
$ /sbin/chkconfig --del サービス名

# ランレベルごとの設定
# 以下はサービスの2と3をonにする
$ /sbin/chkconfig --level 22 サービス名 on

システムによってまちまちですが、だいだい僕の場合はhttpd(apache)とmysqldは自動で起動するように設定します。

$ chkconfig httpd on
$ chkconfig mysqld on

ちなみにランレベルはこちらがとても分かりやすかったです。

おわり

随時追加していきます!