2011年1月19日水曜日

ServersMan@VPSの2010年12月アップデートの結果

私はServersMan@VPSのEntryプラン(debian)を契約して便利に使っております。
昨年の暮れも押し迫った12月27日に毎月恒例のアップグレードが実施されました。
その内容はというと

  1. 選択可能なディストリビューションにUbuntuが追加

  2. AirDisplay@VPSでウェブブラウザからコンソールにログインが可能に

  3. 毎日1回までできるルーレットで当たったらストレージ+1GB(8日間)


なのですが、1番目は再インストールが面倒なので試していません。
Debianで特に困ってませんし。
3番目は正確に言うとただのキャンペーンですが+5GBをゲットしました。

さて2番目のAirDisplay@VPSです。
実はこれ、さくらインターネットの"さくらのVPS"で提供されているような
シリアルコンソールのリダイレクトではなく、
ウェブブラウザからsshにログインできるというものです。
機能的には同じですが、これが似て非なるもので、
つまり、AirDisplay@VPSはレンタルしている仮想サーバで
httpdが動いておりsshdがそれなりの設定で正常に動作しているが前提となるわけで、
下手をしてにっちもさっちもいかなくなったときの最終手段にはならないということです。
このあたりまだ"さくらのVPS"に利があります。

まあそう言っても使えるものは親でも使おうということで、
私が行ったカスタマイズ等を紹介しておきます。
ちなみに、先のアップデートと時を同じくして
sshの待ち受けポート番号が22から3843に変更されているので
それについても触れておきます。

まずはsshのポート番号を変更します。
ファイル"/etc/ssh/sshd_config"の

Port 22



Port 3843

に変更します。次に同ファイルの最後に

Match Address 127.0.0.1
PasswordAuthentication yes

を追加します。
私はセキュリティ強化のため公開鍵暗号方式でしかログインできないよう

PasswordAuthentication no

を設定しているのですが、
これだとAirDisplay@VPSからログインできないので例外設定のためです。
ファイル編集後

# /etc/init.d/ssh restart

を実行すれば、セキュリティを確保しながらもAirDisplay@VPSが使えるようになります。
ウェブブラウザから

https://<サーバのFQDN>/airdisplay/?x=30&y=12

にアクセスしてみましょう。
公式には Internet Explorer が推奨されていますが、
Google Chrome でも特に問題ありません。
なお、設定変更しているとターミナルが時々表示されなくなることがありましたが、

# /etc/init.d/ssh restart
# /etc/init.d/ajaxterm restart
# /etc/init.d/apache2 restart

などと実行すると直るようです。
ところでポート番号を変更したのでついでにファイル"/etc/services"の

ssh 22/tcp # SSH Remote Login Protocol
ssh 22/udp

の"22"を"3843"に変更しておきます。
こうすると"netstat"等の実行結果でプロトコル名が正しく表示されるようになります。
またsshやsftpのクライアントからアクセスする場合は

$ ssh -p 3843 <サーバのFQDN>
$ sftp -o Port=3843 <サーバのFQDN>

のようにポート番号を指定してあげないとアクセスできません。

これでAirDisplay@VPSが使えるようになりますが、
間違えてhttpでアクセスしてしまうといろいろ漏洩してしまうかもしれません。
で、httpsでしかアクセスできないようにしておきます。
ファイル"/etc/apache2/conf.d/proxy_ajaxterm.conf"の

<Proxy *>
Order deny,allow
Allow from all
</Proxy>

の部分を

<Proxy http://localhost:8022/ >
Order deny,allow
Allow from all
SSLRequireSSL
</Proxy>

のように変更します。
また、sshのログインが秘密鍵が必要なくてもパスワードのみで可能で、
しかもこのページが他人に見える状態になっていること自体にも問題があるので、
さらにウェブサーバの方でもパスワード認証を掛けることにします。

# htpasswd -c /etc/apache2/conf.d/.htpasswd <ユーザ名>

でユーザ名とパスワードを設定して
ファイル"/etc/apache2/conf.d/proxy_ajaxterm.conf"の

SSLRequireSSL

の直後に

AuthUserFile /etc/apache2/conf.d/.htpasswd
AuthGroupFile /dev/null
AuthName "適当な文字列"
AuthType Basic
Require valid-user

を追加し、

# /etc/init.d/apache2 restart

を実行します。
これで一応セキュアになったということで。

0 件のコメント:

コメントを投稿