さくらVPSサーバ構築構想


目標

目標は11月中に形が出来上がっていること!!

概要

さくらVPSを使ってWEBアプリを公開してみたい。
今あるCentOSでPHPアプリを作って、作成手順などと一緒に公開とか…

サーバ構築の練習

1. ssh 
2. メールサーバ
3. クラウドサーバ
4. webサーバ
5. Subversionをつかったソースコード管理

HP内容の構想

atcoderの問題の解説(ブログ形式)
サーバ構築手順

クラウドとして使用する

* http://ryogan.org/blog/2012/05/25/さくら-vps-の余ったスペースを-dropbox-のように利用する/

など…

試用期間が2週間あるので、死ぬほど情報を集めてとりあえず一気にサーバを作ってしまう!!
という作戦をかんがえた。
以下、必要と思われる情報↓↓↓

(注)全ての作業において,設定ファイルなどを編集するときはコピーを作成しておくこと

CentOSの最新版へのバージョンアップ

 rpm -qa | grep centos-release //バージョンの確認
 yum upgrade -y                //アップグレード
 rpm -qa | grep centos-release //アップグレードされているかどうかの確認


SSH


ユーザの登録


rootで直接ログインするのは,避けるべきなのでSSHログインの為にアカウントを追加する.
#adduser suin
#passwd suin

設定の編集

SSHの設定は/etc/ssh/sshd_configの中にあるので,これを編集する.
#vi /etc/ssh/sshd_config

[編集内容]
SSHのポートの変更
 Port ****

SSHプロトコル2のみの許可に変更(さくらVPSはデフォルト??)
 Protocol 2

rootによるSSHのログインをオフにする.
 PermitRootLogin no

パスワードによるログインの禁止(公開鍵によるログイン成功後に変更する)
 PasswordAuthentication no



[編集内容終わり]

sshdの再起動

 # /etc/init.d/sshd restart

公開鍵認証方式によるログインに変更する

TeraTermの鍵生成機能を利用し,SSHカギを作成する.
「設定」→「SSHカギ生成」
RSAを選択し「生成」をクリック.
カギのパスフレーズを入力して「公開鍵の保存」「暗号鍵の保存」を選択する
公開鍵→サーバ側に配置
暗号鍵→クライアントが保持(漏えいしないように!!!)

サーバ側のユーザのディレクトリ直下に「.ssh」というフォルダを作成し,その中に公開鍵を入れておく.パーミッションの変更も忘れずにやっておく.

#su - ユーザ名
#mkdir ~/.ssh
#vi ~/.ssh/authorized_keys ← このファイルに公開鍵の内容をコピペ
#chmod 700 ~/.ssh
#chmod 600 ~/.ssh/authorized_keys

TeraTermによるログイン検証
失敗・・・

PuttyによるSSHログイン(windows7)

  1. puttyをダウンロードし解凍する
  2. puttygen.exeを実行する
    1. パラメータの「SSH-2 RSA」を選択する
    2. 公開/秘密鍵ペアの生成をクリック
    3. マウスを適当に動かす
    4. 「公開鍵の保存」「秘密鍵の保存」から各鍵を保存(このとき,上に表示されている文字列をコピーしておく)
  3. コピーした文字列を~/.ssh/authorized_keysに貼り付ける
  4. .sshディレクトリとauthorized_keysのパーミッションを変更
  5. putty.exeを起動する
    1. 「ホスト名(またはIPアドレス)」にIPアドレスを入力
    2. 「接続タイプ」のSSHを選択
    3. 左のメニューから「接続」→「SSH」→「認証」を選択
    4. 「認証のためのプライベートキーファイル」に先ほど作成した秘密鍵を選択
    5. 「開く」をクリック
  6. 「login as:」と表示されるのでログインするユーザ名を入力
  7. パスワードを要求されるのでログインするユーザのパスワードを入力
  8. SSH接続完了


apache


Apacheのがインストールされているかどうかの確認

なにも表示されなければApacheはインストールされていない.
#rmp -qa httpd

Apacheのインストール

#sudo yum -y install httpd

(バージョンの確認)
#httpd -v

ユーザの確認

Apacheは稼働専用のユーザを作成しなければならないが,yumでインストールしたらapacheというユーザができているらしい.
ユーザの確認は以下のコマンドで行うことができる.

 #cat /etc/passwd | grep apache

Apacheの設定

Apacheの設定を編集するのは「/etc/httpd/conf/httpd.comf」というファイル.

44行目:Webサーバにアクセスしたクライアントに返す情報の設定
初期設定はOSを表示させるが,OSを教えても良いことはない(むしろ,攻撃対象にされやすい?)ので変更しておく.

 ServerTokens Prod


265行目:サーバ名
コメントアウトを解除しIPアドレスを登録するか,DNSに登録しているのならそのホスト名を記述する.

 ServerName XXX..XXX.XXX.XXX

281行目:サーバのルートディレクトリの設定

 DocumentRoot ”***”

320行目:オプション設定
アクセスされたディレクトリにindex.htmlのようなDirectoryIndexで指定されたファイルが存在しない場合にファイル一覧ページが表示される.
セキュリティを考えると良くないので無効化しておいたほうがよい.

 Option Indexes FollowSymlinks → Option -Indexes FollowSymlinks

524行目:エラーページに表示される情報
これもクライアントに必要以上の情報を与えることになるので見えないようにしておく.

 ServerSignature Off

設定の変更が完了したら,httpdの再起動を行う.

自動起動の登録

 sudo chkconfig httpd on

サービスの起動・確認

これまでの設定を問題なく完成していることを前提とする.
Apacheの起動はapachectlコマンドにstartを指定することで行うことができる.
 sudo service httpd start

起動できたらブラウザを起動し,ServerNameに指定したアドレスにアクセスしてみる.
問題なければ,Apacheのテストページが表示される.テスト用にWebサーバのルートディレクトリにindex.htmlを作成してみて反映されているか確認を行う.

MySQL


インストールコマンド

 yum -y install mysql-server

設定の変更

設定ファイルは/etc/my.cnf

 [mysqld]
 datadir=/var/lib/mysql
 socket=/var/lib/mysql/mysql.sock
 user=mysql
 # Disabling symbolic-links is recommended to prevent assorted security risks
 symbolic-links=0
 character-set-server = utf8 //ここを追加(文字コードをUTF-8にする)

起動

 /etc/rc.d/init.d/mysqld start

自動起動の設定

 chkconfig mysqld on

初期設定

 mysql_secure_installation
いろいろ聞かれるがとりあえずENTERを押していればいい(?)
rootのパスワードを入力するところだけ,ちゃんと入力する

確認作業

ルート権限でのログインの方法
 mysql -u root -p


WordPress


WordPressによってブログサイトを構築する
apache,PHP,MySQLが既に構築されていないとめんどくさい.

MySQL

wordpressデータベースとユーザの登録を以下のコマンドで行う
 mysql -u root -p
 <以下mysql>
 create database wordpress;
 grant all privileges on wordpress.* to wordpress@localhost identified by '(パスワード)';
 exit

インストール

 yum -y install php-mysql
 wget http://ja.wordpress.org/latest-ja.zip
 unzip latest-ja.zip
 mv wordpress /var/www/
 chown -R apache:apache /var/www/wordpress/
 rm -f latest-ja.zip

設定

設定ファイルをコピーする
 cp /var/www/wordpress/wp-config-sample.php /var/www/wordpress/wp-config.php
設定ファイルの編集
 vim /var/www/wordpress/wp-config.php



dropbox化の方法

(未作成)

DNSサーバ

(未作成)

メールサーバ関係

(未作成)

SElinux関係資料

(未作成)

セキュリティ関係

(未作成)

iptables

(未作成)
最終更新:2012年11月13日 09:02
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。