概要

IPv6への移行がこれほどまでに叫ばれているのに、世の中は全くIPv6に移行する気配がない。IPv4の枯渇はであり、そうなるとグローバルアクセス可能なインターネットサーバーというのは極めて難しい。重大な問題は、グローバルIPアドレスの価値が高すぎること、そしてISPが自宅サーバーを阻む方向にあることだ。

そこでよい対応方法のひとつとして、グローバルアクセス可能なVPSをリバースプロキシとして、という方法があり、さらにいえばVPNを汲むことでVPSをフロントエンド(ルーター)とするサイトを構築することも可能だ。

今回はとりあえず、「VPSを使ってインターネットにサービスを公開する」ところまで事を進めた。

事前準備

少なくともVPSと独自ドメインが必要不可欠だ。別に無料サブドメインでも問題はない。ただし、VPSは将来的にはVPNを汲むことが可能な、つまりはpppあるいはtunデバイスが利用可能なrootサーバーである必要がある。

私は今回、サーバーとしてDTI ServerMan、ドメインはXDomainを利用した。契約書を熟読するのに、何より時間がかかった。契約そのものは簡単で、特にクレジットカード決済ができる人ならあっという間だが。

そして、VPSを安全な状態にセットアップするまでがまた一手間。基本的手順としては、

  • 一般ユーザーを作る
  • 一般ユーザーのパスワードを強固なものにする
  • SSHのポートを変える
  • rootパスワードを強固なものにする
  • usermodでwheelグループに追加
  • visudo
  • FirewallをConnected/ICMP/SSHのみ透過するように変更
  • アップデート
  • 不要なサービスを止める

といったところになる。CentOSでのこうした個々の作業は情報が豊富なので、私は繰り返さない。各自調べてほしい。

この状態では基本的に何もできないので、サーバーを停止しておいたほうが安全である。

レジストラの方でリゾルバの設定(DNSレコードの設定)を行えばVPSに名前でアクセスできるようになる。普通はここで、VPS自身でサービスを起動し、ファイアウォールを設定してサービスを提供する。

私はとりあえずXDomain側でサービスを開始した。XDomainで設定しても独自ドメインでのサービスは提供できるのだが、フルカスタマイズはできないし、将来的にフロントエンドの変更が生じる場合があるので、やめておいた。

DeleGate

DeleGateは汎用のプロキシデーモンだ。HTTP/FTP/NTP/NNTP/Socks/SSH/SMTP/POP3/IMAP4などのアプリケーションゲートウェイ(リバースプロキシを含む)として機能するばかりでなく、ネットワークレベルゲートウェイとしても機能する。つまり、TCP/UDPパケットを転送することも可能。単純にこれをリバースプロキシとして動作させるだけでもかなり多くのサービスが提供できる。

ただ、CentOSにはDeleGateのパッケージがない。かつてはプロキシサーバーといえば、というほど有名だったが、今はマイナーなようだ。そこで手動導入したのだが、思わぬ問題が立ちふさがった。テスト環境はx86_64で、本番環境はi586ということが判明し、同じパッケージが導入できないのだ。そこで、本番環境はRPMで導入、一方テスト環境は

yum install gcc gcc-c++ make openssl-devel
# wget URI
# tar xvf file
# cd delegate9.9.8
# make
# cp src/delegated /usr/local/sbin/

これで最低限動作はするようになる。セキュリティや細かな設定は別として。

さて、テスト環境では

delegated -P 80 MOUNT=”/journal/* blogURI/*”

で動作してくれたのだが、本番はそうはいかず、checksum生成をした上で

delegated -P 80 MOUNT=”/journal/* blogURI/*” PERMIT=”http:*:*”

としてあげる必要があった。

おまけ

無事動作したので、一区切りついたということでお祝いに寿司を食べてきた。

さらっと書いているが、結構大変な作業でトラブル続きだったことを報告しておく。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA