サーバを公開するときってハラハラするよね。
構築したときの初期設定とかセキュリティ対策とか
調べながら色々やっていくのですが、すぐに忘れます。
(OS インストール後に1回しかやらないものも稀に良くあるし。)
ということで、
今このサーバに適応している設定のうち
最低限やっておいた方が良いものをピックアップしてメモしておきます。
選んだ基準は、以下の通り。
・どの書籍やサイトでも必ず行おうと書いてあるもの
・設定作業時間は短いけど効果が割とあるもの
では、順にいってみましょー。
(対象環境は、さくらの VPS 上で動いてる CentOS 6.7 です)
目次
作業用アカウント設定
root アカウントは何でも出来ちゃうんです。怖いっす。
なので普段は一般ユーザで操作して、必要なときだけ権限を付与する運用にしておく。
一般ユーザの作成
1 2 3 4 5 6 7 8 9 |
centos login: root (← ログインユーザ名としてrootと入力 Password: (← rootのパスワード入力 [root@hoge] # (← rootでログインした状態 [root@hoge] # useradd ユーザ名 (← 一般ユーザを作成 [root@hoge] # passwd ユーザ名 (← のパスワード設定を開始する 新しいパスワード: ← パスワード入力 新しいパスワードを再入力してください: ← パスワード入力(確認) |
root になれるユーザを管理者のみにする
1 2 3 4 5 |
[root@hoge] # sudo usermod -G wheel ユーザ名 ← 管理者ユーザをwheelグループに追加 [root@hoge] # sudo vi /etc/pam.d/su #auth required pam_wheel.so use_uid ↓ auth required pam_wheel.so use_uid (← コメント解除 |
wheel グループに sudo 権限付与
1 2 3 4 |
[root@hoge] # sudo /etc/sudoers # %wheel ALL=(ALL) ALL ↓ コメントアウト(#)を外す %wheel ALL=(ALL) ALL |
root アカウントの設定
VPS 契約時に root の仮パスワードが送られてきますが、忘れずに変えよう。
1 2 3 4 5 6 |
(root でログインしておく) # passwd Changing password for user root. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. |
リモートからの root ログイン禁止の設定
作業用のアカウントに sudo 権限を与えたのでもう root でログインする必要はなくなったです。
余計なログインは禁止しちゃおう。
1 2 3 4 5 |
[root@hoge] # sudo vi /etc/ssh/sshd_config #PermitRootLogin yes ↓ コメントアウト(#)を外し、"yes"を"no"に変更 [root@hoge] # sudo service sshd restart # sshd -t |
パッケージ管理システムの設定
Windows Update と同じようなやつっす。
必要なパッケージを最新の状態に保つことは大事。
1 2 |
[ユーザ名@hoge] $ sudo yum -y update (←インストール済みパッケージの一括アップデート (色々ダウンロードするので時間かかる) |
以上!これで終わり。
[optional]
毎回手動でやるのではなく、定期的に自動更新するようにしておくのも良い。
そんな人は yum-cron で検索だ!
自動でアップデートまでやられちゃうと何かあったとき困るよ。。
って人は、自動ではダウンロードまでしかやらないって手もあります。
DOWNLOAD_ONLY=yes あたりで検索。
root宛 メールを転送
システムから重要なメールが送られてくることもあるので
普段使っているメアドに転送しよう
1 2 3 4 5 6 7 |
[@hoge] $ sudo sed -i '/^root:/d' /etc/aliases ← 旧root宛メール転送設定削除 [@hoge] $ sudo vi /etc/aliases root: メアド@gmail.com (← 最後の行にメアドを記入 [@hoge] $ sudo newaliases (← 転送設定反映 [@hoge] $ sudo echo test|mail root (← テストメールをroot宛に送信する |
SSH ポート変更
デフォルトの SSH ポート(22)のままだと攻撃されやすいです。
攻撃者はまず 22 とか 10022 とかを叩いてきます。
well known port (0-1023) 以外にしよう。
動的ポート(49152-65535) あたりがオススメ。
1 2 3 4 |
[@hoge] $ sudo vi /etc/ssh/sshd_config #Port 22 ↓ コメントアウト(#)を外し、"22" を任意の番号に変更 Port 適当な忘れない数字(49152-65535) |
この数字は後で使うので忘れないように。
公開鍵認証とパスワードによるログイン禁止
パスワード認証による SSH 接続より安全なので公開鍵認証にします。
1 2 3 4 |
[@hoge] $ mkdir ~/.ssh [@hoge] $ chmod 700 ~/.ssh [@hoge] $ touch ~/.ssh/authorized_keys [@hoge] $ chmod 600 ~/.ssh/authorized_keys |
で、秘密鍵・公開鍵を作って、
公開鍵の方を上記 authorized_keys に上書き保存。
公開鍵認証を有効にし、パスワードによるログインを禁止する。
同時に SSH を許可するユーザを制限しておく。
1 2 3 4 5 6 7 8 9 10 11 12 |
[@hoge] $ sudo vi /etc/ssh/sshd_config #PubkeyAuthentication yes ↓ コメントアウト(#)を外す PubkeyAuthentication yes PasswordAuthentication yes ↓ "yes"を"no"に変更 PasswordAuthentication no AllowUsers ユーザ名 (← ファイル末尾に追記 [@hoge] $ sudo service sshd restart |
ファイアウォール設定
iptables の設定をします。
SSH のポートを 22 から、上で設定した数字に変えます。
後はこの辺を参考に少しいじる。
さいごに
とりあえず、最初にやっておくことを列挙してみました。
アンチウィルスとか rootkit 検地ツールとかログ監視とかはまた別途書きます。
ふぅ。