2011年07月29日

CISCO VPN Client GUI For Ubuntu(v 1.0)を作ってみました

先日Ubuntuでのインストール、利用手順を整理したCISCO VPN Clientですが、やっぱり残念なのは操作画面(GUI)が無いことですね。僕だけが利用するなら問題無いのですが、それ自体は目的では無いという人(一般ユーザ)にはCLIからコマンドを直接実行するのは難しい場合があります。僕自身、管理者として都度説明するのも手間ですしね。
ということでJavaでCISCO VPN Client 用デスクトップ・アプリケーション(C-VPN Client)を作ってみました。

あくまでも操作専用画面なので事前にCISCO VPN Clientがインストールされている必要があります。
  続きを読む
Posted by netbuffalo at 19:07TrackBack(0)

2011年07月22日

Apple TV + aTV FlashでNASサーバ上に保存した動画を見る

前回Apple TVにインストールしたaTV Flash環境を使ってファイル・サーバ(NAS)上に保存した動画ファイルをApple TVで再生してみます。
  続きを読む
Posted by netbuffalo at 19:17TrackBack(0)

Tips:Mac OS X LionでDropboxが動かない?

遂に出ましたねぇーMac OS X Lion。僕も早速インストールしましたよ。

 07)
  続きを読む
Posted by netbuffalo at 15:13TrackBack(0)

2011年07月21日

Apple TV 2GにaTV Flashをインストール

最近自宅のApple TV(第二世代/黒)とiTunesのAirPlayを組み合わせてテレビで動画をよく見るようになったのですが、いちいち1台しかないPCを立ち上げる必要がある、PCに動画ファイルを保存しておくのもディスク容量上好ましく無いでaTV FlashでNAS(ファイルサーバ)上に保存した動画ファイルの再生にチャレンジしてみることにしました。
今日はFireCore aTV Flashダウンロードからインストールまでをまとめてみます。

08
  続きを読む
Posted by netbuffalo at 19:13TrackBack(0)

2011年07月16日

Ubuntu 11.04 NattyでHamachiとHaguchiする

HamachiはLogMeIn社の提供するVPNソフトウェアで、これを使うと自宅のルータ、ファイヤーウォールに特別な設定を行うこと無く、自宅やリモートのPCにアクセスすることが出来るようになります。

特にHamachiにはLinux系OS用のパッケージも用意されている点が嬉しいところです。

これをUbuntuでも動かさなければ、ということで整理してみました。
  続きを読む
Posted by netbuffalo at 00:59TrackBack(0)

2011年07月14日

Ubuntu 11.04(Desktop)でCISCO VPN Clientを使う

その昔、僕のSONY VAIO VPCX119KJでWindows 7が動いていた頃にはCISCO VPN Clientを使っていたんですが、Ubuntuにしたら使えないというのも不便なのでUbuntu 11.04上で動かしてみました。
  続きを読む
Posted by netbuffalo at 12:45TrackBack(0)

2011年07月13日

Ubuntu Tips: 端末(Terminal)を完全透過にする

結構な頻度で端末を使うタイプなんですが、背景は透明にした方が色々と作業し易いのですよね。
早速、「編集」メニュー/「プロファイルの設定」で透過にしてみると、

term-setting

Ubuntu(11.04)のインストール直後だと背景を透過に設定しても背景にあるウインドウは透過されず、壁紙だけが透過されてしまいす。
  続きを読む
Posted by netbuffalo at 12:30TrackBack(0)

2011年07月12日

syslog-ngでYAMAHAルータのパケットをダンプする

YAMAHA製ルータのパケットを少しだけダンプ(キャプチャ)したいと思ったらsyslogサーバが必要になるんですね・・・では手順をまとめてみましょうか。
今回はRT58iを使って、WAN(LAN2インタフェース)側のパケットをLAN(LAN1インタフェース)側に存在するSyslogサーバにダンプ手順を整理してみたいと思います。

43)
  続きを読む
Posted by netbuffalo at 18:48TrackBack(0)

2011年07月11日

JavaでSSHサーバを動かそう(Apache MINA/SSHD)

ふと、Javaだけで動くSSHサーバってあるんだろうか?と思い探してみたところApache MINAプロジェクトからSSHDとして提供されているのを見つけました。

15)


バージョンが0.5ですからまだベータ版といったところでしょうか。
早速使ってみましょう。

ダウンロードしたzipファイルを解凍し、libフォルダに含まれる以下のjarをクラス(ビルド)パスに含めます。

・mina-core-2.0.1.jar
・slf4j-api-1.4.3.jar
・slf4j-simple-1.4.3.jar
・sshd-core-0.5.0.jar
・sshd-pam-0.5.0.jar

 次にSSHサーバのサンプルコードです。

  SshServer sshd = SshServer.setUpDefaultServer();
  sshd.setPort(9191);

  //
  // It's usually a good idea to give the host key generator a path,
  // so that if you restart the sshd server, the same key will be
  // used to authenticate the server.
  //
  sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider("hostkey.ser"));

  // auth object
  PasswordAuthenticator myAuthenticator = new MyPasswordAuth();
  sshd.setPasswordAuthenticator(myAuthenticator);
  
  //
  // That's the part you will usually have to write to customize the SSHD server.
  // The shell factory will be used to create a new shell each time a user logs in.
  // SSHD provides a single implementation that you can use if you want.
  // This implementation will create a process and delegate everything to it,
  // so it's mostly useful to launch the OS native shell.
  //
  //sshd.setShellFactory(new ProcessShellFactory(new String[] { "cmd", "/c" }));
  sshd.setShellFactory(new ProcessShellFactory( new String[] { "/bin/sh", "-i", "-l" }));
  
  //
  // SSHD provides a CommandFactory to support SCP that can be configure
  //  in the following way:
  ///
  sshd.setCommandFactory(new ScpCommandFactory());
  
  try {
    sshd.start();
    System.out.println("pure java sshd server started.");
  } catch (IOException e) {
    e.printStackTrace();
  }

1行目でSshServerオブジェクトを生成し、ポート番号に9191ポートを設定しています。
13行目で認証用オブジェクトを設定していますが、これはPasswordAuthenticatorインターフェースを実装したクラスを用意します。今回は次のようなMyPasswordAuthクラスを用意しました。

public class MyPasswordAuth implements PasswordAuthenticator {

  public boolean authenticate(String username, String password, ServerSession session) {
    System.out.println("username: "+username+", password: "+password);
    return true;
  }

}

authenticateメソッドに渡されるユーザID、パスワード、ServerSessionを使って認証しますが、この例ではとにかくture(認証OK)としています。

23行目でSshServerに設定しているProcessShellFactoryオブジェクトがサーバ側でコマンドを実行しており、内部ではProcessBuilderを使って外部コマンドを呼び出しています。

29行目ではSCP用のファクトリ・オブジェクトを設定しています。

ここまで出来たらSSHサーバを起動して、クライアントから接続してみましょう。

$ ssh -p 9191 username@localhost
The authenticity of host '[localhost]:9191' can't be established.
DSA key fingerprint is 09:8b:d5:47:5d:c6:3a:c3:05:41:23:85:ad:f5:d0:fc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[localhost]:9191' (DSA) to the list of known hosts.
username@localhost's password:
sh: no job control in this shell

sh-3.00#  

確かにログインできます。但し、余分な空白が入ったり、対話的なコマンドは実行出来ないなどの制限があります(残念・・・)。
このあたりはサンプルコード23行目で設定しているProcessShellFactoryクラスを独自のクラス(Factory<Command>インタフェースを実装したクラス)に置き換えることで多少は改善しそうですが、僕は改行コードの動きが改善できず途中で諦めました。

これに対してSCPは特に問題無く動作します。性能面でも僕の環境ではネイテイブのSFTP/SCPツールと同等のスピードが出ました。さらにWidnows上で動作させた場合でもコピー可能です。

$ scp -P 9191 ~/Downloads/file.zip username@192.168.0.20:c:/tmp/tmp2.txt
username@192.168.0.20's password:
htmlparser1_6_20060610.zip                                                            100% 4244KB   2.1MB/s   00:02

リモート・シェル用途で使うにはきついですが、リモートのWindows PCにSCPでファイル転送したい場合には使えるかもしれませんね。



実用SSH 第2版―セキュアシェル徹底活用ガイド
Daniel J. Barrett Richard E. Silverman Robert G. Byrnes
オライリー・ジャパン
売り上げランキング: 219605


Java ネットワーク プログラミング 基礎からわかる 完全入門
永嶋 浩
技術評論社
売り上げランキング: 370959
  
Posted by netbuffalo at 18:55TrackBack(0)

2011年07月06日

UbuntuでPPTP(VPN)サーバを構築する

知人から自宅のUbuntuにPPTPサーバ環境を構築して外出先から自宅のLANに接続しようと色々と試行錯誤したがうまく動かなかったという話を聞きまして、先日インストールした僕のUbuntuに環境を作ってみることにしました。

今回検証用として用意した環境は次の通りです。

51)

Ubuntuサーバ自体にグローバルIPアドレスを設定し、直接インターネットに接続します。
  続きを読む
Posted by netbuffalo at 21:17TrackBack(0)