- PR -

NFSをSSHトンネリング

1
投稿者投稿内容
Jumpin'' Jack Flash
大ベテラン
会議室デビュー日: 2006/01/24
投稿数: 198
投稿日時: 2007-02-22 14:13
NFSをSSHトンネリングさせたいのですが、
仕組みを理解できていないようで、うまく行きません。

やったことは、下記のとおりです。

■リモート

リモートホストのポートを開け、TCPwrapperの設定を確認しました。

# vi /etc/exports
----
/home 127.0.0.1(rw)
----

# ssh root@192.168.1.1 -L 250:localhost:2049 -f sleep 60m

エラーは出ません。

■ローカル

# mount -t nfs -o rw,soft,intr,port=250 リモートホスト:/home /mnt/test
----
[udp] リモートホスト:/home: NFSPROC_NULL: RPC: Unable to receive; errno = Connection refused
----
というエラーになります。

また、
■リモートホストと同じネットワーク内のホスト
から試したところ、

# mount -t nfs -o rw,intr,port=250 192.168.1.1:/home /mnt/test
----
mount: mount to NFS server '192.168.1.1' failed: RPC Error: Success.
----
となります。

マウントできるようにしたいのですが、解決策を教えてください。

それと、疑問なのですが、NFSをセキュアにマウントしたいと思い、始めましたが、
この方法だと、外から誰でもマウントできてしまうのでしょうか?

そもそもSSHトンネルの仕組みが理解できていません。説明されているページが
ありましたら、ご紹介していただけないでしょうか。

よろしくお願いいたします。


[ メッセージ編集済み 編集者: Jumpin' Jack Flash 編集日時 2007-02-22 14:14 ]
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2007-02-22 15:28
こんにちは。
SSHトンネル上にNFSを通すのはキツいのではないかと思いますが。

可能かどうかは検証した事がないので分かりませんが、色々クリアすべき問題があります。
  • NFS over TCP
    SSHトンネルはTCPしか通しません。もしUDPの通信があればアウトです。
    お使いのサーバ・クライアント共に、TCPのみでのNFSが使用できないとマズいです。
  • 必要なポート
    mountd 以外にも、rquotad, lockd 等が関わってくる可能性があります。その場合、それらの通信もトンネルする必要が出てきます。
  • RPC
    RPCのことは私は不勉強なのですが…。
    NFSはRPCを使用しているプロトコルです。RPC通信のトンネルをどうすべきかも考えなければなりません。
  • 通信の方向
    クライアント→(SSHトンネル)→サーバ という通信であれば、SSHのローカルポートフォワーディングで良いですが、逆に、サーバ→(SSHトンネル)→クライアントの場合、リモートポートフォワーディングが必要です。
    通信の方向が精査できているかどうか。

引用:
それと、疑問なのですが、NFSをセキュアにマウントしたいと思い、始めましたが、この方法だと、外から誰でもマウントできてしまうのでしょうか?


SSHログインできるのであれば、同時にNFSマウントもできることになるのでしょう。
※ポートフォワーディングがユーザ単位で制限できるかどうかは知りませんが、もしできるなら、制御単位が細かくなりますね。

後、ネットワークの帯域や遅延がどれくらいか、通信量がどれくらいかは分かりませんが、TCP over TCP のSSHトンネルの場合は、何かあった時のペナルティーが大きいのでお勧めはしないですね。
素直に IPSec を使うか、UDPベースの OpenVPN とかの方がやりやすいと思います。
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2007-02-22 15:40
引用:

angelさんの書き込み (2007-02-22 15:28) より:
[*]RPC
RPCのことは私は不勉強なのですが…。
NFSはRPCを使用しているプロトコルです。RPC通信のトンネルをどうすべきかも考えなければなりません。



http://www.asahi-net.or.jp/~aa4t-nngk/nfs.html
ポートの固定はできるみたいですね。

portmapはもともと111に固定なので大丈夫でしょう。

ただ、通信内部でホスト名やIPアドレスをやり取りしていた場合は、
変換しないといけないので無理そうな気がします。
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2007-02-22 15:43
引用:
TCP over TCP のSSHトンネルの場合は、何かあった時のペナルティーが大きいのでお勧めはしないですね。


の元ネタが見つかったので、参考までに載せます。
なぜTCP Over TCPは悪いアイデアか

後は、VPN比較についてもどうぞ。
VPNの比較

※ NFS over SSH ではなく、NFS over PPP over SSH なら、プロトコル的な難点は出てこないでしょうね…

[ メッセージ編集済み 編集者: angel 編集日時 2007-02-22 15:46 ]
hito
会議室デビュー日: 2007/02/22
投稿数: 5
投稿日時: 2007-02-22 15:50
引用:

それと、疑問なのですが、NFSをセキュアにマウントしたいと思い、始めましたが、
この方法だと、外から誰でもマウントできてしまうのでしょうか?



・相手先SSHサーバにNFSマウントしておく。
・相手先SSHサーバのファイルシステムをSHFSでマウントする。

で、要求は満たせないでしょうか。
Jumpin'' Jack Flash
大ベテラン
会議室デビュー日: 2006/01/24
投稿数: 198
投稿日時: 2007-02-23 12:17
皆さん、たくさんのご意見ありがとうございます。
わからないことだらけで、いろいろ調べてたら目が回りそうです。
これは、うれしい悲鳴です。

さて、どうも『NFSをSSHトンネリングでセキュアに外部提供』は
無理がありそうですね。だったら、SHFS(初めて知った)の方が自然?

で、原点に立ち返りました。
何でこんなことをしようと思ったかと言うと、
ホスティングしている2台のホストがありまして、この2台で相互に
NFSマウントしたいのですが、ローカルネットワークで繋がって
いないため、外からマウントしようとしたのでした。
でも、あくまでもローカルっぽくマウントできたほうがベター
なので、VPNを使うのが良いと思いました。
OpenVPNなら運用経験があり、非常に安定している感触があるので、
これを使おうと思います。

皆様には様々な解決策を提示していただき感謝いたします。そして、
その博識に感服です。
このたびは、ありがとうございました。


[ メッセージ編集済み 編集者: Jumpin' Jack Flash 編集日時 2007-02-23 12:19 ]
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2007-02-23 15:08
引用:

angelさんの書き込み (2007-02-22 15:43) より:
引用:
TCP over TCP のSSHトンネルの場合は、何かあった時のペナルティーが大きいのでお勧めはしないですね。


の元ネタが見つかったので、参考までに載せます。
なぜTCP Over TCPは悪いアイデアか



スレ主さんの話題が解決した後で恐縮ですが、

この場合はTCP Over TCPは関係ないのでは?
TCP/IPを丸ごとトンネルさせるわけではないので。

PPP over SSHやSoftEther等をデータリンク層とした場合ですよね?
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2007-02-23 15:21
こんにちは。
引用:

あしゅさんの書き込み (2007-02-23 15:08) より:

スレ主さんの話題が解決した後で恐縮ですが、

この場合はTCP Over TCPは関係ないのでは?
TCP/IPを丸ごとトンネルさせるわけではないので。


ご指摘ありがとうございます。全くその通りですね。
NFSのSSHトンネリングと、TCP over TCP を混同していたようです。申し訳ないです。
1

スキルアップ/キャリアアップ(JOB@IT)