VPSでWebサーバを構築した
先日のTDUCTF in ConohaでConoha VPSのクーポン券を頂いたので,遊び半分,勉強目的半分でWebサーバ(sonickun.xyz)を構築してみた.
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レコードの設定でVPSのIPアドレスを登録し,Conoha側で逆引きの設定をしたら出来上がり.
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用のサイトを作る
- パケットキャプチャしてパケットを愛でる
などを考えている.