web-dev-qa-db-ja.com

NFS4 + KerberosをダイナミックIPおよびダイナミックDNSセットアップと共有する方法(rdnsは機能しません)

私は2台のLinuxマシンを持っています。 1つは、一般的な動的IPケーブルモデム+ OpenWRTルーターの背後にあるマシンです。 NATの背後にあるマシンは、プロバイダーとのAPI呼び出しを介して転送DNSレコードを定期的に更新します(つまり、このマシンを識別するために動的DNSが設定されています)。ルーターはポート2049と22を転送します。パブリックインターネット上のマシンがKerberos認証を使用してこのマシンにsshしようとすると、オプションのおかげで機能します。

    ignore_acceptor_hostname = true

サーバーとクライアントの両方のkrb5.confにあります(これがないと、DNSの逆引き不一致が原因で「チケットは私たちにはありません」というエラーが発生します)。

ただし、パブリックインターネット上のマシンがセキュリティkrb5pを使用してこのマシンをnfs4マウントしようとすると、機能せず、

mount.nfs4:my-dynamic-dns.name.here:/ homeのマウント中にサーバーによってアクセスが拒否されました

クライアントマシンでrpc.gssd-v -v -v -fを実行すると、ダイナミックDNS名を検索し、そのIPアドレスを逆に検索して、Kerberosプリンシパルを取得しようとしていることがわかります。エラーメッセージは次のようになります。

警告:サーバーRNSのuid0を持つユーザーのkrb5コンテキストの作成に失敗しました-Record.from.my.isp.goes.here

IPアドレスがプロバイダーによって「所有」され、誰もがVPSなどを使用している現代のインターネットでは、RDNSレコードが何かを意味すると考える理由はまったくありません。

私が欲しいのは、rpc.gssdと他の関連するnfs4機構が、IPアドレスを検出しようとせず、代わりに、mountコマンドで指定した名前を使用することです。

IPアドレスが動的であるため、/ etc/hostsを変更しても機能しません。

動的IPの背後でこのマシンに接続するようにパブリックマシンを構成する方法に関する提案はありますか/ NAT kerberosセキュリティを備えたNFS4経由で?

/etc/krb5.confに次の行があることに注意してください

rdns=false

これは、KerberosがRDNSを実行するのを防ぎますが、NFS4が同じことを実行するのを妨げるようには見えません。

1
dlakelan

それがRDNSの問題であることを確認するために、ホストの現在のエントリを、パブリックインターネット上にあるクライアントの/ etc/hostsファイルに入れました。ディレクトリを問題なくマウントできました。したがって、逆引きDNSを無効にする方法はわかりませんが、使用するハックは、動的ホスト名から現在のIPを前方検索し、/ etc/Hostファイルを編集する頻繁なcronジョブを実行することです。クライアント。

1
dlakelan