プリントサーバ(cups)の構築(SuSE編)


おやじ宅では、現在、Planex の Mini2 というプリントサーバを使用していますが、印刷を中断したり空ページを印刷したりするとハングアップすることがあり、その度に電源を抜いてリセットしなければなりません。おやじが不在のときにこの状況になると、対処できないため家族からクレームが出ていました。
そこで、この機会にcupsでプリントサーバを動かしてみることにしました。cupsプリントサーバの動かし方はいくつかあるようですが、クライアントがWindows2000/XPしかないこと、シンプルな動作のほうが問題が出にくい、ドライバとしたはWindowsのほうが安心感があることから、ここではrawプリンタとして動作させてWindows2000/XPクライアントから直接IPPポートを使用して印刷するという方法を採りました。この方法は、サーバでHTTPを使用して、クライアントから送られてきたデータをそのままプリンタに中継する仕組みのため、クライアントでプリンタドライバが必要になる(言い換えるとLinuxのドライバはなくても動かせるということ)ほか、プリンタの登録も必要になりますが、サーバとしては単純な印刷データの中継動作しかしないため問題が出にくいと思います。
 
なお、SuSE では cups はデフォルトでインストールされていますので、設定を行うだけで使用できますが、プリンタは設定が完了するまで接続しないようにしたほうが間違いありません。

■cupsの設定

ここでは、cups のセキュリティ関係の設定と動作モードに関する設定を行います。

◆CUPS パスワードの設定

SuSEのcupsは、セキュリティ強化のために起動時にユーザが root から  lp へ変わるようになっており、デフォルトではCUPS 認証を使用するようになっています。そのため、root ユーザでコマンド "lppasswd -g sys -a root" を実行して CUPS パスワードを設定する必要があります。パスワードは英数字混在の6桁以上でないと蹴られます。

# lppasswd -g sys -a root
Enter password:
xxx123yyy
Enter password again:
xxx123yyy


上記により、/etc/cups/passwd.md5 ファイルが作成され、これを使用して CUPS 認証が行われます。

◆アクセス制限の設定

SuSEのcupsは、デフォルトでlocalhost及びcupsが動作しているサーバと同じセグメント内(@LOCAL)からアクセスできるようになっているので、そのままでも問題はないのですが、cupsはwebベースのツールで各種設定ができるようになっており、サーバ機以外からその設定を行う場合は、/etc/cups/cupsd.conf で一箇所設定が必要になります。

[/etc/cups/cupsd.conf の設定]

# 下記の赤字のパラメータを追加する。
<Location /admin>
#
# You definitely will want to limit access to the administration functions.
# The default configuration requires a local connection from a user who
# is a member of the system group to do any admin tasks. You can change
# the group name using the SystemGroup directive.
#

AuthType BasicDigest
AuthClass Group
AuthGroupName sys

## Restrict access to local domain
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From @LOCAL

#Encryption Required
</Location>

◆Rawプリントサーバ用の設定

cupsでRawプリントサーバとして使用する場合は、クライアントからのデータを一切加工せずに中継するため、下記によりバイナリデータを扱えるようにします。

[/etc/cups/mime.types の設定]

# 下記パラメータのコメントを外す(行頭の#を削除)
########################################################################
#
# Raw print file support...
#
# Uncomment the following type and the application/octet-stream
# filter line in mime.convs to allow raw file printing without the
# -oraw option.
#

#application/octet-stream

[/etc/cups/mime.convs の設定]

# 下記パラメータのコメントを外す(行頭の#を削除)
########################################################################
#
# Raw filter...
#
# Uncomment the following filter and the application/octet-stream type
# in mime.types to allow printing of arbitrary files without the -oraw
# option.
#

#application/octet-stream application/vnd.cups-raw 0 -


SuSEの場合、cupsはデフォルトで起動していますので、設定が完了したらcupsを再起動してください。

# /etc/init.d/cups restart


■プリンタの設定

通常は、ブラウザでcupsにアクセスしてプリンタの設定を行いますが、SuSEの場合はYaSTにもツールがあり、USB接続であれば接続しただけでYaSTが起動しますので、ここでは両方の設定方法を示します。なお、初めてプリンタを接続した場合は、プラグアンドプレイで検出されるので、システムに登録してください。以下は、おやじが使っているEPSON PM950Cの例で示します。

◆YaSTでの設定

初めてプリンタを接続し登録が完了するとYaSTが自動的に起動しますので、以下により設定していきます。なお、既にプリンタが登録されている場合は、手動で、「YaST」->「ハードウェア」->「プリンター」で設定画面を起動してください。
  1. 設定可能なプリンタとして、EPSON PM-950C : //EPSON/PM-950C があるのでそれを選択し、「設定」を押す。

  2. キュー名とスプーラ設定に、「印刷用の名前:後でクライアントの設定で使用するプリンタ名」、「プリンタの記述:プリンタの名前等」、「プリンタの場所:プリンタの設置場所等に関するコメント」が入っているので、必要に応じて変更する。デフォルトでも可能だが日本語表記があると、後でcupsでプリンタ表示したりすると、文字化けするので修正したほうがよい。ブラウザでUTF-8でエンコードしなおせばきっちり表示できるが、家族などはおかしくなったと勘違いしやすい。

  3. Rawプリンタとして登録するので、「ローカル・フィルタリング」のチェックを外し、「次へ」を押す。

  4. 下欄に設定内容を表示されるので、確認して「完了」を押せばおしまい。

◆cupsでの設定

cupsを使用してもプリンタの設定ができるほか、こちらでは状態管理も可能です。なお、cupsへのアクセスにはTCP:631番ポートを使いますので、サーバ機以外からアクセスする場合は設定にもよりますが、firewallの見直しが必要になるかもしれません。(おやじがガチガチに止めているので開放が必要でした)

  1. クライアントのブラウザで「http://サーバ機のIPアドレス:631」(おやじはDNSがあるので、「http://www.aconus.com:631/」)でcupsにアクセスすると以下の画面が表示される。



  2. 「Do Administration Tasks」を選択すると、以下のような認証画面が表示されるので、先に登録したユーザ名とCUPSパスワードを入力して認証する。



  3. 以下のような画面が表示されるので、「Printers」の「Add Printer」を選択する。



  4. プリンタ情報をわかりやすい任意の内容で登録する。日本語表示は、文字化け(UTF-8でエンコードすれば問題ないが・・。)するので避けたほうがよい。

    ・Name: PM950C 「印刷用の名前:後でクライアントの設定で使用するプリンタ名」
    ・Location: www.aconus.com/USB1 「プリンタの場所:プリンタの設置場所等に関するコメント」
    ・Description: EPSON PM950C 「プリンタの記述:プリンタの名前等」



  5. プリンタのデバイスをメニューから選択する。おやじの場合は、USB接続なので、「USB Printer #1 [EPSON PM-950C]」を選択した。



  6. プリンタのモデルやドライバの選択画面が表示されるが、今回はRawプリンタとして動作させるので、「Raw」を選択する。



  7. 「Raw Queue(en)」を選択して「Continue」を押す。



  8. 下記の登録完了画面が表示される。



  9. 「Printers」を押すと、登録したプリンタの登録内容と現在のステータスが表示されるので確認する。



■クライアントでのプリンタの設定

続いて、各クライアントへのプリンタの登録を行います。なお、作業に先立ち、使用プリンタのドライバをインストールしておいてください。機種によっては、プリンタがつながっていないとドライバがインストールできない場合もあり、そのときは、4項でディスク使用を指定して設定する必要があるかもしれません。
以下は、WindowsXPベースですが、Windows2000でも同様です。
  1. 「スタート」->「プリンタとFAX」から「プリンタのタスク」の「プリンタのインストール」を選択すると、以下のプリンタの追加ウィザードが起動するので、「次へ」を押す。



  2. 「ネットワークプリンタ、またはほかのコンピュータに接続されているプリンタ」を選択し、「次へ」を押す。



  3. プリンタの指定で、「インターネット上または自宅/会社のネットワーク上のプリンタに接続する」を選択し、URL欄に「http://サーバ機のIPアドレス:631/printers/PM950C」(おやじはDNSがあるので、「http://www.aconus.com:631/printers/PM950C」)と入力し、「次へ」を押す。URLはcupsへのアクセスと同じで、URIとして「/printers/登録時にNameで指定したプリンタ名」を指定する。printersは固定値。



  4. ドライバの選択画面が出るので、「製造元」、「プリンタ」から使用しているプリンタを選択して「OK」を押す。機種によっては「ディスク使用」でドライバを入れる必要があるかもしれません。



  5. 通常使うプリンタに設定するか聞いてくるので、状況にあわせて選択し、「次へ」を押す。



  6. 以上で、設定が完了するので、テスト印刷をしてみてください。





Top Pageへ