serverman@VPSを借りてみたので、やった初期設定等の覚え書き

なぜか、個人ドメインだけ取ってそのまま放置だったので、serverman@VPSのentryプランを借りてみました

とりあえず、とってからやったことを覚え書きの意味でつらつらと並べておきます

ssh関係の初期設定

まず、何はともあれrootも使えて、外からも見れるサーバ1台が無造作な状態で放置されている状態なので、
ssh周りの設定は最優先で行いました

rootでのsshログイン禁止

rootでssh経由でログイン出来ない様に以下のファイルの設定を書き換えました

このファイルの以下の部分を

PermitRootLogin yes

以下のように書き換え

PermitRootLogin no

管理用のroot以外のユーザ・グループ作成+設定

rootでログインを禁止した場合、それ以外のアカウントがないと永久にログインできなくなるので、
管理用のグループとユーザを追加で作成します
管理用グループを"wheel"、管理ユーザ名を"username"とすると
シェルにて以下のようにして、設定

# useradd username (ユーザ追加)
# passwd username  (追加ユーザのパスワード設定)

# usermod -G wheel username (管理者グループに新規ユーザを追加)

さらにこれだけだと、root権限を使えないので、wheelグループはsu、およびsudoを使えるように設定

  • su設定
    • /etc/pam.d/su

以下の一文を追加(もしくはコメントアウト(#)を消す)

auth required pam_wheel.so use_uid

  • sudo設定
    • /etc/sudoers

wheelグループのsudo許可とsudoログ作成の設定文を追加

%wheel ALL=(ALL) ALL
Defaults logfile=/var/log/sudolog

鍵認証方式利用の設定

WindowsからのSSHクライアントはputtyを使うことが多いので、ひとまず
puttyを使った鍵作成と設定の仕方

  • puttyでの鍵の作成用の鍵作成

puttyに含まれるputtygen.exeを利用
[作成]を選択して作成後、テキスト部分をコピーして
"ログインするユーザのホームディレクトリ/.ssh/authorized_keys"にコピー
なお、authorized_keysの所有者はログインするユーザ、パーミッションは600に設定

鍵認証以外でのログインの禁止

鍵なしではログイン出来ない様にパスワード認証の禁止の設定

このファイルの以下の部分を

#PasswordAuthentication yes

以下のように書き換え

PasswordAuthentication no

すべての設定が終われば、シェルに以下のコマンドを打って、sshdを再起動

# /etc/rc.d/init.d/sshd restart

このあたりの設定は失敗すると、ログインができなくなるのでつながっているセッションを1つ残したままで、別端末から設定が適応されているかを確認するようにした方が良いと思います。
(私自身、このあたりを失敗して、借りてから数十分足らずで1回初期化してます)

iptablesの設定

iptablesを設定して不必要なポートを塞ぐ設定

…ですが、最初に現在の設定を確認しようとすると…

$ -bash: iptables: command not found

iptablesがない?

調べたところ、なぜかインストールされているにもかかわらず、
パスが通ってなかったので、PATHに"/sbin/;/usr/sbin/"を追加
その後、/etc/sysconfig/iptablesに以下の記述を追加して、
ssh,http,mysqlのポート以外は塞ぐ設定に
(sshのポートの9999は変更したポートに合わせて変更)

# SSH, HTTP, FTP1, FTP2, MySQL
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 9999 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

yumでのアップデート

そこまで設定できたら一応は最低限の設定はできたと思うので、
サービスのアップデートを以下のコマンドで実行

# yum update

emacsのインストール

vi,vimは個人的にあまり使えないのでemacsのインストール
ただ、CentOSyumリポジトリだとemacs21とかなり古いので、
CentOSにemacs23.2をインストールを参考に
手動でインストールしました。

# wget http://ftp.gnu.org/pub/gnu/emacs/emacs-23.3b.tar.gz
# tar zxvf emacs-23.3b.tar.gz
# cd ./emacs-23.3
# ./configure --without-x
# make
# make install

文字コード変更

システム全体の文字コードutf-8に変更

  • /etc/sysconfig/i18n

このファイルのLANG部分を以下に変更

LANG="jp_JP.UTF-8"

不要サービス停止

VPSは資源があまり多くないことも多いので使わない不要サービスは停止させます。

CentOSをサーバーとして活用するための基本的な設定 - さくらインターネット創業日記
↑のさくらインターネット社長プログで書かれている設定+個人的にftp等は使うつもりがなかった(ssh or sftp)ので、
そのあたりを考えて以下のサービスを以下のコマンドで停止

chkconfig [サービス名] off

acpid
auditd
autofs
avahi-daemon
bluetooth
cups
firstboot
gpm
haldaemon
hidd
irda
isdn
kudzu
lvm2-monitor
mcstrans
mdmonitor
messagebus
netfs
pcscd
portmap
rawdevices
restorecond
rpcgssd
rpcidmapd
smartd
xfs
ypbind

ただし、設定が微妙に違うので、ないものがあったり…

Apacheの設定

最低限、必要そうな設定のみ変更

#HTTPレスポンスの返却値の情報を最低限に
ServerTokens OS

ServerTokens ProductOnly

#index.html等がないときに、ディレクトリ内一覧を表示させない
Options Indexes FollowSymLinks

Options -Indexes FollowSymLinks

#エラーメッセージのフッターラインの隠蔽
ServerSignature On
↓ ↓ ↓
ServerSignature Off

ここまで設定して燃え尽きたので、
ブログにリダイレクションする設定だけして以下のアドレスでwebのみ公開
http://ik-fib.com

しかし、夜に設定してその後の設定を行う気力がなかったため、リダイレクションの方法がひどい事になってます。
近いうちに少なくともそれは直したい…