Serversman@VPSを借りてみた
Serversman@VPSを借りてみた。
月額ワンコインの安さに惹かれてしまった。Servesrmanは、OpenVZで動いているらしい。
最近、LinuxのLXCに興味があるのだが、よく似たアーキテクチャだというのも、このサービスを選んだ理由のひとつだ。
実は私もフリーランスのため、最近流行のノマドワークができないことはない。
ネットに繋がれば、どこでも仕事はできるのだ。
と言いつつ、ネットにはつながっても、SSHがつながらない環境というのもある。
そんなときに困るので、stoneをVPSに導入してみた。
その時の備忘録を書いておく。
Serversman@VPSのOSは、Ubuntuにした。自分が使っているOSだということと、stoneがapt-getでインストールできるため。。(自分でビルドすればよいんだけどね。。)
申し込みをすると、IPアドレスとrootのパスワードが発行されるので、sshでアクセス。
(※デフォルトのSSHポートが3843であるため、注意が必要。)
$ ssh -p 3843 root@xxx.xxx.xxx.xxx
とりあえず、localeの設定
# apt-get install language-support-ja # dpkg-reconfigure locales
「sudo: unable to resolve host ***」対策として、/etc/hostsに「127.0.1.1」を追加
# vi /etc/hosts 127.0.1.1 foo.localdomain foo
localeとhostsの設定を行った所で、一旦再起動。
# shutdown -r now
何はともわれ一般ユーザを作成。
# adduser hoge
一般ユーザにsudo権限を追加。
# visudo hoge ALL=(ALL) ALL
これで、一般ユーザからsudoできるようになったので、一旦sshを終了して、再ログインする。
stoneのインストール
$ sudo apt-get update $ sudo apt-get install stone
今回は、サーバ側では、ポート443(※HTTPSのポート)で待ち受けて、SSHポート(3843)に中継させる。さらにクライアント側にもstoneを入れて、ssh over httpsを行う。つまり、sshをhttps通信に偽装するのだ。
まずは、サーバ側でstoneを動作させるのだが、その前にApacheのSSLとポートがぶつかるため、ApacheのSSLを無効にする。
$ sudo vi /etc/apache2/ports.conf # Listen 443
「Listen 443」となっている箇所をコメントアウトする。
$ sudo a2dissite default-ssl $ sudo /etc/init.d/apache2 restart
サーバ側で、stoneを実行。
$ stone -l localhost:3843 443/ssl
クライアント側で、stoneを実行。
$ stone -l localhost:10443/ssl 10022 -- xxx.xxx.xxx.xxx:443 10443
クライアント側で、10022ポートに対して、ssh接続を行う。
$ ssh -p 10022 hoge@localhost
これで、httpsポートが空いている環境であれば、sshできるようになった。
後は、サーバ側を自動起動するように設定しておく。
「/etc/init.d/stone-sshd」を以下の内容で作成しておく。
#! /bin/sh PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC="TCP/IP packet repeater in the application layer" NAME=stone DAEMON=/usr/bin/$NAME DAEMON_ARGS="-l localhost:3843 443/ssl" SCRIPTNAME=/etc/init.d/$NAME KILL=/usr/bin/killall [ -x "$DAEMON" ] || exit 0 case "$1" in start) echo "Starting $DESC:" "$NAME" $DAEMON $DAEMON_ARGS & ;; stop) echo "Stopping $DESC:" "$NAME" $KILL $NAME ;; *) echo "Usage: $SCRIPTNAME {start|stop}" >&2 exit 3 ;; esac
クライアント側で実行するコマンド「stone -l localhost:10443/ssl 10022 -- xxx.xxx.xxx.xxx:443 10443」はalias設定しておくと便利かも。
alias stone-ssl='stone -l localhost:10443/ssl 10022 -- xxx.xxx.xxx.xxx:443 10443'
自動起動するよう設定
sudo update-rc.d stone-sshd defaults
2012年7月27日 追記