自宅サーバー初心者(@kyos_1704)のサーバーの構築をSkype経由で見たりしていたのでその時のSkypeログとかからおおまかな流れを抜粋。※初心者向けの記事ではない
事前準備
- ルーターにログインできることを確認する。
- デフォルトゲートウェイをipconfigで調べて、そのアドレスをブラウザのアドレスバーにいれて接続
- パスワードがわからなかったりするケースがある
- 自宅にグローバルIPアドレスが来ていることを確認する。
- ルーターにログインした時にでも調べる
ハードウェアを組む
- 好きなように
- 流用でもいいし、既成品でもいいし、自作できる人なら自作でもいいでしょう
- 具体的に何かに使いたいならそれに見合う性能や信頼性は必要
OSインストール
- OSを選んでダウンロードする
- 初心者ならとりあえずUbuntu Serverとかどうだろう
- ISOファイルをCDに焼く
- CDからブートする
- インストールする、ここで何か余計なものを入れる必要はない。
- 起動する
設定
- IPアドレスを設定する
- IPアドレスを決める
- 決め方が判らなかったらIPアドレスの仕組みの勉強は後回しにして決められる人が決めてあげる
- 設定ファイル(Ubuntuとかなら/etc/network/interfaces)に書き込む
- そのためにsudoのやり方を教える
- Ubuntu/インストール後の設定とかを参考に設定してもらう
- よく考えたらCUIのエディタの使い方を教えていないことに気づく
- Vimを布教する
- DNS設定も書き込む(新しいUbuntuなら/etc/network/interfaces)
- ネットワークをリロードする(Ubuntuならsudo service networking restart)
- ifconfigとかして新しいIPアドレスを確認する
- sshをインストールする
- sshを設定する
- 初期設定は22ポート、パスワード認証可なのでつなぐ
- WindowsならPuTTYGenとかで鍵を作る
- .ssh/authorized_keysに貼り付ける
- PuTTYでのコピペのやり方を教える(ドラッグするとコピー、右クリックで貼り付け)
- 鍵でつながることを確認する
- つながらない
- cat ~/.ssh/authorized_keysして結果を見せてもらう
- Vimのコマンドモードでそのまま右クリックして公開鍵の冒頭のssh-rsaの最初のsが挿入モードに入るだけになってて入力されてない
- 直す
- 鍵で繋がる
- /etc/ssh/sshd_configを開く
- 鍵認証のみ有効にする(PasswordAuthentication を見つけてyesからnoにする、コメントアウトされていたらコメントアウト外す)
- 必要に応じてポート番号も変える(そのままでいい気もする)
- sshdを再起動する
- 新しい設定でつながる(Ubuntuならservice ssh restart)
- ルータにログインして静的NAT(ポート開放などとも表現する)を設定する
- さっきのsshの他に80, 443あたりをつながるようにする
- DDNSを設定する
- ieServerとかにユーザー登録する
- スクリプトをホームディレクトリ上のディレクトリ(←作る)に設置する
- crontabを設定する
- 更新間隔10分とかになってるし、TTLがあるから最大15分とかかかる
- 酒でも飲む
- nslookupとかで更新されていることを確認する
- ついでにログファイルが吐き出されていることを確認する
- Apacheをインストールする
- とりあえずsudo aptitude install apache2とかすると起動はしてくれる
- サーバーのプライベートIPをブラウザに入れてつなぐ
- It works!
- さっき設定したDDNSのアドレスを入れてもらう
- 繋がらなくて絶望する
- ヘアピンNATは普通のルーターにはついてないので諦める
- 部屋の外にいる人が教えてあげるか、モバイル回線とか携帯電話を使って外からウェブページが見れていることを確認する
- とりあえず設定完了
- 中からもドメインで繋ぐ場合はいくつか方法があるが、面倒なので必要になってから教えることにする
- クライアントの/etc/hosts(WindowsはC:\Windows\System32\drivers\etc\hosts)をいじる方法はそのパソコンを持ちだした時面倒
- ヘアピンNATは多分ついてない
- そのサーバーにdnsmasqとかを突っ込んでそのサーバーの/etc/hostsをいじって、かつルーターのDNS設定を書き換える方法は教えるのが面倒
- そういえばルーター側でそういうのをいじる機能がついていたらありかもしれない