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では、Apacheのhttpd.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のポート番号 ユーザー名@サーバーアドレス