LinuxとMac OS Xの異種OS間ホームネットワークの構築

Windowsを含む異種OS間ネットワークの構築については多くのオンライン情報が存在するが、家庭またはSOHOにおけるMacとLinux PCとのネットワーク接続に関する情報はほとんどない。ただし、ドキュメントがないにもかかわらず、Mac OS XのUnixベースには、MacとLinux PCのネットワーク接続のための選択肢が数多くある。この記事では、MacとLinuxの共用プリンタの設定と、NFSおよびSSHを使ったファイル共有の方法を紹介する。
プリンタの共有

プリンタ共有の設定はとても簡単だ。MacとLinuxのどちらでもプリンタの物理的なホストマシンにすることができる。Mac側のプリンタをLinux PCと共有するには、Macの「System Preference」(Appleメニュー、または/Applicationsフォルダにある)を開き、「Sharing」を選択する。続いて「Services」タブの「Printer Sharing」ボックスにチェックを入れる。ファイアウォールを実行している場合は、適切なポートを開くために「Firewall」タブの「Printer Sharing」の隣にあるチェックボックスを選択する。プリンタの電源がオンでMacに接続されていること、Mac自体も電源がオンでネットワークにつながっていることを確認したら、MacのIPアドレスを書き残しておく。IPアドレスを参照するには、「Preferences」->「Network」を選択すればよい。インターネットへの接続方法を選んで「TCP/IP」タブをクリックする。

このプリンタをLinuxで使うには、

http://mac-ip-address:631/printers/mac-printer-queue-name または ipp://mac-ip-address:631/printers/mac-printer-queue-name

に新しいネットワークプリンタを追加し、「Raw」として指定する。KDE 3.4では、Printing Managerを使ってプリンタを追加できる。Printing Managerを開き、「Add」、「Add Printer/Class」を順に選択する。現れたウィザードで「Remote CUPS Server」、「Anonymous」を順に選択する。IPアドレスの入力を求められたら、先ほど確認したMacのIPアドレスをホストとして入力し、ポート番号を「631」にする。すると、Macプリンタの一覧が表示されるはずだ。適当なプリンタを選び、次のダイアログで「Raw printer(no driver needed)」を選択する。このあと現れるいくつかのダイアログで、適切なオプション(デフォルトのままでも問題はなさそうだが)とプリンタ名を設定することができる。この処理の最後で認証の問題に遭遇するようなら、管理者モードでの実行を試してもらいたい。

Linux PC側のプリンタをMacと共有する場合は、まず、プリンタポート(多くの場合は631)がファイアウォールで開かれていることを確認する。続いて、Linuxのプリンタを使うMac側で、(/Applications/Utilitiesにある)Printer Setup Utilityを開く。「Add」をクリックして、現れるメニューから「IP Printing」を選択する。「Printer Type」は「Internet Printing Protocol」を選び、LinuxマシンのIPアドレスを入力する。「Queue Name」にはLinuxのプリンタキューの名前を入力する。プリンタキューの名前を参照するには、KDEのPrinting Managerで該当するプリンタを選び、「Information」タブに表示されるプリンタのURIを確認する。次のようになっているはずだ。

ipp://computer-name-or-IP:631/printers/printer-queue-name

このURIの最後の部分(printer-queue-name)だけをPrinter Setup Utilityの「Queue Name」として入力し、「追加」をクリックすればよい (ドライバは「Generic」のままでかまわない)。これでMacからLinux側のプリンタを操作できるようになる。必要であれば、このプリンタを選択し、「Show Info」をクリックして、プリンタ名を変更することもできる。

ファイルの共有

MacとLinux PCとでファイル共有を行うには、FTP、SSH/SFTP、NFS、SMB/Samba、(Netatalkを用いた)AFPといった選択肢がある。それぞれに得手不得手があるが、ここでは、LinuxとMacのネットワークをはじめから構築する場合に有効だと思われた2つの方法、NFSとSSHを取り上げる。*nixとの親和性が高いのでどちらの構成(サーバがMacでクライアントがLinux、またはその逆)でもうまくいくのだが、対象とするユーザがそれぞれ異なっている。

NFS(Network File System)は、クライアントコンピュータのローカルファイルシステム上にリモートのディスクまたはディレクトリをマウントできる、ファイル共有のためのプロトコルである。こうした共有ディレクトリは、ファイルマネージャに表示され、見た目も機能もローカルディレクトリと同じように扱える。NFSを使えば、クライアントマシンがアクセスできるディレクトリやそのアクセス権限をサーバ側で設定でき、ログイン時に共有ディレクトリを自動的にマウントするようにクライアントを設定することもできる。適切に設定すれば、NFSは便利で安全性も高いが、設定を誤れば(たとえば、サブネット上のすべてのマシンに読み書きの権限を与えることも可能)、安全性が極めて低くなるおそれがある。

一方のSSH(セキュアシェル)は、従来のファイル共有プロトコルとは異なったものだ。SSHを使うと、ユーザはクライアント経由でリモートマシンにログオンし、そのマシン上で持つ通常の権限をすべて利用することができる。IPアドレスによってアクセスと権限を制限するのではなく、ユーザに応じた制限が適用されるのだ。ローカルファイルシステム上にリモートディレクトリがマウントされるわけではないが、Linuxのファイルマネージャは、SSHアカウントでグラフィカルな表示や操作を(URLの「fish://」プレフィクスとして実装されているFish(FTP over SSH)プロトコルを介して)行うことができる。ただし、Mac FinderではFishが使えない(代替のファイルマネージャやFTP/SFTPアプリケーションでは使用可能)。

両プロトコルには、対象としているセキュリティのニーズやネットワーク処理状況に違いがある。

NFSの設定

MacからLinuxの共有フォルダにアクセスするためには、まず、Linuxマシン上にNFSエクスポートを設定する必要がある。Linuxのサーバとクライアントの両方の設定を詳しく説明したチュートリアルがLinux.comにある。また、多くのディストリビューションのそれぞれに対応した簡単な設定ツール(SUSE LinuxのYaSTなど)も用意されている。しかし、NFS共有を設定するなら ― これもKDEの場合だが ― Konqueror上で共有したいディレクトリを右クリックし、「Share」をクリックして、開いたダイアログの「Share with NFS(Linux/Unix)」チェックボックスを選択する、というやり方がおそらく一番簡単だろう。ここで「More NFS Options」というボタンを押すと、許可されたホスト(アクセスを許可するマシンのIPアドレスを使用する ― ワイルドカードによりサブネット全体のアクセスも許可できる)と、そのホスト用のアクセスパラメータ(exportのmanページで全パラメータの一覧を参照可能)を設定するダイアログが開く。ファイアウォールで「NFS Server」のサービスが許可されていることを確認して、NFSサーバを起動または再起動する(一番簡単なのはクイックリブート)。これでうまくエクスポートできたはずだ。

Macでこの共有ディレクトリへのアクセスとマウントを行うには、NFS Managerというユーティリティを利用する。このユーティリティには、フリーでフル機能を備えたデモ版がある。ダウンロードとインストールを行ってからNFS Managerを実行する。錠マークをクリックし、管理者のユーザ名とパスワードを入力して認証を行う。認証が済んだら「Add Entry」をクリックする。ダイアログの「NFS Server」にNFSサーバ(Linuxマシン)のIPアドレスとNFS共有ディレクトリのパスを入力する (サーバのIPアドレス入力後、利用可能な共有の一覧からの選択も可能)。マウントポイントを指定し、必要に応じてデフォルトのオプションを変更して、「OK」をクリックする。接続を完了するために、Macを再起動するか、NFS Managerの「Activate Changes…」をクリックする。すべてうまくいっていれば、Finderの「Network」か指定したマウントポイントにNFS共有ディレクトリが表示される。この共有ディレクトのマウントは、Macのブート時に毎回自動的に行われる。サーバの共有ディレクトリを変更した場合は、変更を有効にするために両方のマシンでNFSサービスの再起動(リブートまたは「変更の適用」)を行う必要がある。

NFS Managerでは、MacのフォルダまたはドライブをLinuxマシンと共有させることもできる。NFS Managerで認証を行い、「NFS Shares」タブの「Add Entry」をクリックする。現れるダイアログで、共有するフォルダのパスを選択または入力し、適切なアクセスパラメータを設定して、「OK」をクリックする。再び、「Activate Changes」をクリックすれば、エクスポートの完了だ。LinuxマシンからこのMacの共有フォルダにアクセスするには、MacのIPアドレス、共有フォルダのパス、適当なローカルマウントポイントを指定して、別のLinuxマシンのNFS共有ディレクトリにアクセスする場合と同じようにNFSクライアントの設定を行う(手順の詳細については、Linux.comのチュートリアルを参照するか、ディストリビューションの設定ツールを利用すること)。Linuxマシンのリブート、またはDNSサービスの再起動を行えば、ローカルファイルシステムでこのリモートフォルダにアクセスできるようになる。Macクライアントの場合と同様に、最近のLinuxディストリビューションのほとんどは、ブート時にリモートの共有ディレクトリを自動的にマウントしてくれる。

SSHの設定

SSHの設定は簡単に行える。LinuxマシンからMacにアクセスするには、まず、Macの「System Preference」->「Sharing」->「Services」を選択して「Remote Login」を有効にする。次に、「Firewall」タブをクリックし、ファイアウォールでSSHポート(22番)が開いていることを確認する。最後に、Linuxのターミナルで以下のように実行すれば、Macにアクセスできるようになる。

ssh username@mac-ip-address

通常、SSHは、ターミナルでのリモート管理や、リモートサーバとのSFTP転送に使われるが、ファイル共有プロトコルとしても利用できる。ファイルマネージャのアドレスバーに次のように入力すると、

fish://username@mac-ip-address/path または fish://username:password@mac-ip-address/path

右クリックやドラッグアンドドロップのGUI操作でMacのファイルシステムにアクセスできる。fish://で始まるURLへのデスクトップショートカットを作成すれば、ワンクリックでアクセスすることも可能だ。SSHはLinuxファイルシステム内にMacのファイルシステム(またはユーザアカウントでアクセスできる部分も)をマウントするわけではないが、SSHには固有の機能以外にも、NFSファイル共有機能のほとんどが用意されている。また、SSHは、ブート時ではなく要求された時点で接続を行うだけだが、NFSよりも容易かつ短時間でファイル共有が行える。

MacからSSH経由でLinuxマシンにアクセスするには、LinuxマシンのSSHポートがファイアウォールによってブロックされないようにする必要がある。ターミナルで次のように実行すると、Linuxマシンにリモートログインできる。

ssh username@ip-address

SSHによるリモート接続ではMacファイルシステムへのマウントが行われず、Finderの(「Go」メニューにある)「Connect to Server」コマンドがSSHもSFTPもサポートしていないため、SSH/SFTP経由で接続されたリモートファイルシステムをMac OS XのFinderで表示できないことを多くのMacユーザは残念に思うだろう。主要なアクセス手段は、ターミナルまたは、CyberduckのようなFTP/SFTPクライアントになる。しかし、Mac OS Xで利用可能なアプリケーションのなかには、RBrowserrsyncなど、SSHをそのまま実行できたり、ローカルのファイルやフォルダをリモートサーバに定期的にバックアップまたはミラーリング(またはそれらの逆方向の操作)できるものがいくつかある。Mac OS XクライアントによるSSHのサポートは、少なくともグラフィカルな面では、Linuxクライアントほど行き届いていないが、リモート管理に加えて一定のファイル共有機能を利用するには、安全性が高く使い勝手のよいソリューションであることは間違いない。

どちらを使うべきか

MacとLinuxでホームネットワークを構築しようとする大部分の人々のニーズには、NFSかSSHのどちらかで応えることができる。同居者や訪問客に、メディアファイルへの読み取り専用アクセスを許可しようとする場合は、おそらくNFSがふさわしいだろう。また、複数の個人または家族でコンピュータを2台以上所有していて、全員がそれぞれのコンピュータにアクセスする場合は、マシンのIPアドレスではなくユーザの権限に基づいてパーミッションを割り当てられるSSHを使うことで、より良いフレームワークを構築できるだろう。私の場合は、ノートPCのデータを、ハードディスクが大容量でDVDの書き込みができるデスクトップPCに定期的にバックアップしている。この作業はどちらのプロトコルでも行えるが、新規および更新ファイルの転送だけを行う定期的バックアップのスケジューリングやその他のリモート管理作業も実行できるという理由から、SSHを利用している。また、SSHでは、ノートPCを別のネットワークに接続しても、ほとんど手間をかけずにそのネットワーク上のマシンからのアクセスが可能になるため、友人や同僚のコンピュータに一時的に接続して大きなファイルの転送を簡単に行うことができる。

このように、MacとLinux PCをうまく共存させることは比較的容易だ。また、NFSやSSH、その他多くのプロトコル(FTP、SMB、AFP)により、あなたのニーズにあったネットワーク構成をきっと発見できるだろう。

Kris Shaffer氏は、イェール大学(Yale University)の音楽理論を専攻する大学院生で、熱烈なオープンソースソフトウェア信者。若い作曲者や音楽研究家向けのオンラインリソースAmSteg.orgの共同編集長を務める一方、Linux Journal、Newsforge.com、Linux.comにもLinuxとオープンソースソフトウェアの記事を寄稿している。

NewsForge.com 原文