ServersMan@VPSの初期設定など

お借りしたServersMan@VPSでは、サーバーの用途に合わせて以下4つのコースが選択出来るのですが

1. シンプルセット
2. ディスクセット
3. ホームページセット
4. エンジニアセット

今回、ホームページ開設用にサーバーを利用したいのでホームページセットでサーバーを初期化しました。以下はその場合のサーバーの簡単な初期設定など、、、、

1.rootユーザーでのログインを禁止し、sshの接続ポート番号を変更する

まず、ホームページセットでサーバを初期化した場合、rootユーザーで直接サーバにログイン出来るように設定されるので、セキュリティー上、サーバーにrootユーザーでアクセス出来ないように設定を変更します。

(1) 管理用ユーザーを以下情報で追加します

ユーザー名 : admin
グループ名 : wheel
shell : /bin/bash
ホームディレクトリ : /home/admin

useradd -d /home/admin -s /bin/bash -G wheel admin
passwd admin

(2) 作成したユーザーadminのみ(実際にはwheelグループに所属しているユーザーのみ)が、rootアカウントになれるように設定する。

vi /etc/pam.d/su コマンドで/etc/pam.d/suでを以下に編集。

#%PAM-1.0
auth sufficient pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth sufficient pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth required pam_wheel.so use_uid
auth required pam_wheel.so use_uid # ←この行を追加
auth include system-auth
account sufficient pam_succeed_if.so uid = 0 use_uid quiet
account include system-auth
password include system-auth
session include system-auth
session optional pam_xauth.so

(3) sshでrootでログイン出来ないように設定を変更

vi /etc/ssh/sshd_config コマンドでPermitRootLoginパラメータの値をnoに変更

PermitRootLogin no

(4) sshの接続ポート番号を変更する

vi /etc/ssh/sshd_config コマンドでPortの値を使用したいポート番号に変更する
(簡単なポートスキャンではスキップされる、1024〜65535番のエフェメラルポートを使用するのがベター)

Port xxxx

変更後、sshデーモンを再起動 コマンド→ /etc/init.d/sshd restart


2.anonymousFTPユーザ(匿名ユーザ)のログイン禁止

vi /etc/vsftpd/vsftpd.conf コマンドにてanonymous_enableパラメータの値をNOに変更

anonymous_enable=NO

3. ロケーをja_JP.utf-8に変更

# rpm -qf /usr/share/i18n/charmaps/
glibc-common-2.5-24
yum install glibc-common

localedef -i ja_JP -c -f UTF-8 ja_JP.UTF-8
localedef -f UTF-8 -i ja_JP ja_JP.utf8

vi /etc/sysconfig/i18n コマンドにてLANGパラメータの値をja_JP.utf-8に変更

LANG="ja_JP.utf8"

これで、サーバーのコマンドの出力は日本語utf-8になります。

4. ServersManの削除

ServersMan@VPSにはクラウドディスク用のServersManというソフトが入ってますが、今回はWebページ公開用にサーバーを利用したいのでServersManはアンインストールすることに。。。

yum erase smadmin serversmanvi
/etc/init.d/httpd restart ←アンインストール後、httpdを再起動

5. ServersMan@VPSに導入済みのパッケージを最新のものにアップデート

yum update

6. gcc,g++のインストール

gcc,g++がないと色んなソフトのインストールが出来ないのでgcc,g++をインストール

yum install gcc gcc-c++

7.nkfのインストール

コマンドラインからファイルの文字コードを変換するのに便利なのでnkfもインストール

wget http://osdn.dl.sourceforge.jp/nkf/44486/nkf-2.1.0.tar.gz
tar xvzf nkf-2.1.0.tar.gz
cd nkf-2.1.0
make
cp -p nkf /usr/bin/.

8.Apache設定の変更

(1) ホームページセットでServersMan@VPSを初期化した場合、Apacheの実行時のユーザーとグループはapacheで初期化されているのですが、cgiなどを動かす場合、cgiからライブラリーを探す際のサーチパスなどの環境がちょっと不便なので、Apacheの実行ユーザーとグループをadminに変更。(この辺は、セキュリティの絡みもあるので自分の都合に合わせて適宜)

vi /etc/httpd/conf/httpd.conf コマンドにてUserとGroupのパラメータをadminに変更

User admin
Group admin


(2) ディレクトリの非表示化

index.htmlなのどインデックスファイルがディレクトリ内に存在しない場合、ブラウザーでそのディレクトリーにアクセスすると、ディレクトリー内に存在するファイル名のリストが、Apacheの初期インストール時では、デフォルトで表示されてしまう為、セキュリティー上、httpd.confから、「Indexes」というオプションを全て削除する。

(3) Apacheのデフォルト文字セットをoffにする。

CentOS 6.4では、Apachehttpd.confのAddDefaultCharsetディレクティブがUTF-8に設定されているため、UTF-8以外のコンテンツがある場合、ApacheからのレスポンスヘッダとHMTLのメタタグが以下のような感じで不整合になってしまい、そのままだとHMTLの表示が文字化けしてしまいますので、

# telnet chamu.org 80
Trying 127.0.0.1...
Connected to chamu.org.
Escape character is '^]'.

GET http://chamu.org/pagerank/linkapi/  HTTP/1.0

HTTP/1.1 200 OK
Date: Wed, 17 Apr 2013 17:40:00 GMT
Server: Apache/2.2.15 (CentOS)
Last-Modified: Wed, 03 Apr 2013 17:11:52 GMT
ETag: "162f03ec-9d43-4d977f33c6600"
Accept-Ranges: bytes
Content-Length: 40259
Connection: close
Content-Type: text/html; charset=UTF-8 ← ApacheからのレスポンスヘッダはUTF-8と返す

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML lang="ja">
<HEAD>
<META http-equiv=Content-Type content="text/html; charset=EUC-JP"> ← HMTLのメタタグで指定している文字セットはEUC-JP

全てのコンテンツをUTF-8に統一出来ない事がわかっている場合には、httpd.confのAddDefaultCharsetディレクティブをoffにしておく。

#AddDefaultCharset UTF-8
AddDefaultCharset off

変更後、Apacheを再起動 コマンド→ /etc/rc.d/init.d/httpd restart

9.python-devel をインストール

yum install python-devel

10.easy_installのインストール

yum install python-setuptools

11.ftpサーバーのアンインストール

ftpだと平文でパスワードなどが見えてしまうので、サーバーへのファイル転送にはsftpを使用することにして、vsftpdはアンインストールする

/etc/rc.d/init.d/vsftpd stop
yum remove vsftpd

sftpで接続出来るか確認

sftp -oPort=sshのポート番号 ユーザー名@サーバーアドレス