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