はじめに
前回はSambaの導入を行い、ファイルサーバとしての設定を行いました。今回はCUPSの導入を行い、プリントサーバとして設定します。
インストール
CUPSはすでにインストールされているはずですので、特に作業は必要ありません。もしインストールされていない場合はyumでcupsパッケージをインストールしましょう。
設定
/etc/cups/cupsd.confを編集します。
アクセス制限
CUPSにはWebベースの管理ツールが付属していますが、初期状態では外部からアクセスできないようになっています。家庭内LANからのアクセスを許すように設定を変更しましょう。
もともと記述されているlocalhost onlyのListen設定をコメントアウトして無効にします。代わりに全てのホストをListenするように設定を追加しましょう。
# Only listen for connections from the local machine. #Listen localhost:631 Listen /var/run/cups/cups.sock Listen *:631
LAN内のコンピュータからのみアクセスを受け付けるようにします。
# Restrict access to the server... <Location /> Order deny,allow Deny All Allow localhost Allow 192.168.1.* </Location> # Restrict access to the admin pages... <Location /admin> Encryption Required Order deny,allow Deny All Allow localhost Allow 192.168.1.* </Location>
印刷ドライバ
サーバ側には特にドライバをインストールする必要はありません。Windowsからの印刷データをそのままプリンタに投げるような設定にして使います。
RAWドライバを有効にするために/etc/cups/mime.convsを編集し、次の行をアンコメントして有効にします。
application/octet-stream application/vnd.cups-raw 0 -
/etc/cups/mime.typesについても同様に。ただし、こちらはデフォルトでアンコメントされていると思います。
application/octet-stream
サービスの起動
いつものようにsetupコマンドを使って、サービスの起動設定とファイアウォールの設定を行います。
# setup システムサービス > cups にチェック ファイアウォールの設定 > カスタマイズ > その他のポート に631を設定
サーバを起動します。
# /etc/init.d/cups start
プリンタの接続
ここではUSB接続のインクジェットプリンタを扱います。パラレル接続の場合は多少手順が異なるかもしれません。
まずプリンタをUSBで接続し、電源を入れます。プリンタが正しく認識されたことを確認するためにlsusbを実行します。プリンタらしき文字列が見えればOKです。
筆者の環境では下記の通りになります。なお、接続したプリンタはCanonのiP1700です。
# lsusb Bus 002 Device 001: ID 0000:0000 Bus 001 Device 005: ID 04a9:10b4 Canon, Inc. Bus 001 Device 001: ID 0000:0000
プリンタの追加
CUPSにプリンタを認識させます。クライアント機のブラウザで管理コンソールにアクセスします(IPアドレスは適時読替)。
http://192.168.1.2:631/
管理ツールのトップページが表示されたら、[プリンタの追加]を押します。https経由でのアクセスを促されるので、リンクをクリックします。場合によってはここで次の画面が現れるまでしばらく時間がかかるかもしれません。これは、バックグラウンドでSSLの証明書を作っているためです。
しばらくすると「信頼できない証明書*1」に関する注意が表示されますが、アクセス先はサーバで間違いないためここは続行して問題ありません*2。
プリンタに名前をつけてください。この名前は共有名として使われます。
デバイスを選択します。ここでは、先ほど接続したUSBプリンタを選択します。
メーカを選択します。しかし、ここでは[Raw]を選択します。前述したとおり、サーバにはドライバをインストールせず、クライアントから送られたデータをそのままプリンタに転送するためです。
モデルに[Raw Queue (en)]が現れるので、それを追加します。
ユーザに権限を割り当て
/etc/groupを編集して、lpグループにプリンタを使う一般ユーザを追加します。
lp:x:7:daemon,lp,ymkn
Sambaでプリンタの共有設定
/etc/samba/smb.confを編集してプリンタの共有できるようにします。とはいっても基本的な設定は既に終わっているので、[printers]セクションに次の行を追加するだけでOKです。この行を追加しないと、ジョブのキャンセルなどがうまくできないようです。
[printers] use client driver = yes
設定を変更したらSambaサービスを再起動しましょう。
# /etc/init.d/smb restart
これでサーバ側の設定は終わりです。
Windowsの設定
Windowsでプリンタの設定を行います。設定は非常に簡単です。
まず、エクスプローラでサーバにアクセスします。アドレスバーにサーバのIPアドレスかNetBIOS名のUNCパスを入力してください。
\\saba\
設定がうまくいっていれば追加したプリンタ[iP1700]が見えているはずです。プリンタのアイコンを右クリックして[接続...]をクリックしましょう。あとはWindows上でプリンタを追加するときの手順に従って追加すればOKです。
テストページなどを印刷して、正しくプリンタが使えることを確認しましょう。
Windowsからのジョブ管理 (2009/2/8追記)
Windows機から共有されたプリンタのプロパティを開き、[セキュリティ]タブで必要なユーザーに[ドキュメントの管理]権限を与える必要があります。
おわりに
今回はCUPSを導入してプリントサーバを構築しました。次回はApacheを導入してWebサーバを構築します。
*2:余談ですが、オレオレ証明書の危険性についてはオレオレ証明書とは - はてなダイアリーが詳しいです