sonickun.log

備忘録

VPSでWebサーバを構築した

 先日のTDUCTF in ConohaでConoha VPSのクーポン券を頂いたので,遊び半分,勉強目的半分でWebサーバ(sonickun.xyz)を構築してみた.

sonickun.xyz

f:id:sonickun:20150406202149p:plain

 とりあえず,自分のプロフィールページのようなものを作ってみた.ここまでの作業を備忘録的に書いていく.

Conoha VPS

今回VPSはConoha VPSを利用した.VPSの作成から管理まで,わかりやすいUIでとても簡単に行えた.www.conoha.jp
 今回のVPSのスペックは以下のとおり.

  • CPU: 2コア
  • メモリ: 1GB
  • HDD: 100GB
  • OS: CentOS 6.5 (64bit)

 これはConoha VPSの最小構成であり,お値段は月額930円とお手頃.

ユーザの設定

 最初にログインした時はrootになっているため,一般ユーザを作成する.ユーザ名は仮に"hoge"とする.

# adduser hoge
# passwd hoge

 また,visudoコマンドでsudoerを以下のように編集し,hogeがsudoを行えるようにする.

root   ALL=(ALL)   ALL
hoge   ALL=(ALL)   ALL

 

SSHの設定

 公開鍵認証でSSH接続を行えるように設定した.まずはssh-keygenで公開鍵と秘密鍵のペアを作成する.

# ssh-keygen -t rsa

 これにより,id_rsa(秘密鍵)とid_rsa.pub(公開鍵)のペアが生成される.サーバ側に公開鍵,クライアント側に秘密鍵を置くことにする.鍵の転送にはscpを使った.
 次に/etc/ssh/sshd_configを以下のように編集する.

# rootでのログインを禁止する
PermitRootLogin no
# 公開鍵認証の設定
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/id_rsa.pub
# パスワードでの認証を禁止する
PasswordAuthentication no

 最後にsshdを再起動する.

service sshd restart

 

ドメインの取得

 おなじみ「お名前ドットコム」を利用した.www.onamae.com
 今回ドメインとして"xyz"を選んだのは次の理由から.

  • セールで安くなってたから(1年で300円くらい)
  • どんな用途にも使えそうなドメインだから
  • 単純にカッコイイから.

 ドメインの登録が完了するとwhois情報の登録などは代行でやってもらえる.管理画面のDNSレコードの設定でVPSIPアドレスを登録し,Conoha側で逆引きの設定をしたら出来上がり.

参考

akb428.hatenablog.com

 

Webサーバ

Nginx

 WebサーバにはNginx(エンジンエックス)を使った.

 Nginxの特徴としては,リバースプロキシとして動作することがある.ロードバランサとしても使えるし,HTTPSにも対応しているためSSL/TLSアクセラレータとして使用することもできる.また,画像やHTMLテキストといった静的コンテンツもキャッシュすることが可能.
 Nginxのアクセス制御などのコンフィグは/etc/nginx/ngin.confに集約されており,簡潔に設定を行える.今回は,/etc/nginx/conf.d/server.confを作成し,このファイルを読み込ませるようにした.

/etc/nginx/conf.d/server.conf
server {
    listen       80;
    server_name  sonickun.xyz;

    location / {
	root	/var/www/html;
        index  index.html index.htm;
    }
}

これにより,sonickun.xyzにアクセスした時に/var/www/html以下のindex.htmlが表示されるという設定になる.

Bootstrap

 またWebフレームワークとして,Bootstrapを用いた.BootstrapはHTML5・CSS3・jQueryを使用したフレームワークであり,レスポンシブデザインにも対応している.また多彩なパッケージやテンプレートが存在し,デザインの能力があまりなくてもそこそこカッコイイサイトが作れる.getbootstrap.com

 「Bootstrap テンプレート」などで検索するといろいろ出てくるので,その中からシンプルで良さげなものを選んだ.

 これでほとんど雛形が完成してるので,あとは適当にHTMLを自分なりにアレンジするだけ.

 

所感と今後の予定

 Web初心者なのでサーバを構築しながらいくつも知見を得ることができてよかった.実際に自分で手を動かしたほうが理解が深まる.

 今後の予定としては

  • ファイアウォールの設定を見直す
  • CTF用のサイトを作る
  • パケットキャプチャしてパケットを愛でる

 などを考えている.