CUPS 印刷サーバーの設定および使用

Red Hat Enterprise Linux 9

CUPS サーバーとして動作し、プリンター、印刷キュー、および印刷環境を管理するようにシステムを設定します。

概要

このドキュメントでは、cups サービスのアクティブ化、CUPS Web UI へのアクセスおよび設定、CUPS ログの操作、およびドライバーレス印刷の概要を説明します。

Red Hat ドキュメントへのフィードバック (英語のみ)

ご意見ご要望をお聞かせください。ドキュメントの改善点はございませんか。

  • 特定の部分についての簡単なコメントをお寄せいただく場合は、以下をご確認ください。

    1. ドキュメントの表示が Multi-page HTML 形式になっていて、ドキュメントの右上隅に Feedback ボタンがあることを確認してください。
    2. マウスカーソルで、コメントを追加する部分を強調表示します。
    3. そのテキストの下に表示される Add Feedback ポップアップをクリックします。
    4. 表示される手順に従ってください。
  • Bugzilla を介してフィードバックを送信するには、新しいチケットを作成します。

    1. Bugzilla の Web サイトに移動します。
    2. Component で Documentation を選択します。
    3. Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも記入してください。
    4. Submit Bug をクリックします。

第1章 印刷の設定

Red Hat Enterprise Linux 8 での印刷は、Common Unix Print System (CUPS) に基づいています。

本書は、システムを CUPS サーバーとして動作するように設定する方法を説明します。

1.1. cups サービスのアクティブ化

本セクションでは、システムの cups サービスを有効にする方法を説明します。

前提条件

  • Appstream リポジトリーで利用可能な cups パッケージがインストールされている。

    # dnf install cups

手順

  1. cups サービスを起動します。

    # systemctl start cups
  2. システムの起動時に、cups サービスが自動的に起動するように設定します。

    # systemctl enable cups
  3. 必要に応じて、cups サービスのステータスを確認します。

    $ systemctl status cups

1.3. CUPS Web UI へのアクセスおよび設定

本セクションでは、CUPS Web ユーザーインターフェース (Web UI) にアクセスし、このインターフェースで印刷を管理できるように設定する方法を説明します。

手順

CUPS Web UI にアクセスするには、以下のコマンドを実行します。

  1. /etc/cups/cupsd.conf ファイルに ポート 631 を設定して、CUPS サーバーがネットワークから接続をリッスンできるようにします。

    #Listen localhost:631
    Port 631
    警告

    CUPS サーバーがポート 631 でリッスンできるようにするには、サーバーがアクセスできるアドレスに対してこのポートを開きます。したがって、この設定は、外部ネットワークから到達できないローカルネットワークでのみ使用してください。Red Hat では、パブリックにアクセス可能なサーバーで CUPS サーバーを設定することは推奨されていません。

  2. /etc/cups/cupsd.conf ファイルに以下のディレクティブを追加して、システムが CUPS サーバーにアクセスできるようにします。

    <Location />
    Allow from <your_ip_address>
    Order allow,deny
    </Location>

    <your_ip_address> は、システムの実際の IP アドレスになります。サブネットに正規表現を使用することもできます。

    警告

    CUPS 設定では、<Location> タグに Allow from all ディレクティブが用意されていますが、Red Hat では、信頼できるネットワークでのみこのディレクティブを使用することを推奨しています。Allow from all を設定すると、ポート 631 からサーバーに接続できるすべてのユーザーがアクセスできるようになります。Port ディレクティブを 631 に設定し、サーバーが外部ネットワークからアクセスできる場合は、インターネット上の誰もがシステムの CUPS サービスにアクセスできます。

  3. cups.service を再起動します。

    # systemctl restart cups
  4. ブラウザーを開き、http://<IP_address_of_the_CUPS_server>:631/ に移動します。

    cups ui intro

    Administration メニュー以外のすべてのメニューが利用できるようになりました。

    Administration メニューをクリックすると、 Forbidden メッセージが表示されます。

    forbidden メッセージ

    Administration メニューへのアクセスを取得するには、CUPS Web UI への管理アクセスの取得 の手順に従います。

1.4. CUPS Web UI への管理アクセスの取得

本セクションでは、CUPS Web UI への管理アクセスを取得する方法を説明します。

手順

  1. CUPS Web UIAdministation メニューにアクセスするには、/etc/cups/cupsd.conf ファイルに以下の行を追加します。

    <Location /admin>
    Allow from <your_ip_address>
    Order allow,deny
    </Location>
    注記

    <your_ip_address> を、システムの実際の IP アドレスに置き換えます。

  2. CUPS Web UI で設定ファイルにアクセスするには、/etc/cups/cupsd.conf ファイルに以下の内容を含めます。

    <Location /admin/conf>
    AuthType Default
    Require user @SYSTEM
    Allow from <your_ip_address>
    Order allow,deny
    </Location>
    注記

    <your_ip_address> を、システムの実際の IP アドレスに置き換えます。

  3. CUPS Web UI でログファイルにアクセスするには、/etc/cups/cupsd.conf ファイルに以下の内容を追加します。

    <Location /admin/log>
    AuthType Default
    Require user @SYSTEM
    Allow from <your_ip_address>
    Order allow,deny
    </Location>
    注記

    <your_ip_address> を、システムの実際の IP アドレスに置き換えます。

  4. CUPS Web UI で認証された要求の暗号化の使用を指定するには、/etc/cups/cupsd.conf ファイルに DefaultEncryption を追加します。

    DefaultEncryption IfRequested

    この設定では、管理 メニューにアクセスする際に、プリンターの追加を許可されたユーザーのユーザー名を入力する認証ウィンドウが表示されます。ただし、DefaultEncryption を設定する方法は他にもあります。詳細は、man ページの cupsd.conf を参照してください。

  5. cups サービスを再起動します。

    # systemctl restart cups
    警告

    cups サービスを再起動しないと、/etc/cups/cupsd.conf の変更は適用されません。その結果、CUPS Web UI への管理アクセスは取得できません。

関連情報

  • cupsd.conf の man ページ

1.5. ドライバーレス印刷の設定

管理者は、特別なソフトウェアなしでプリンターまたはリモート CUPS キューを使用するようにドライバーレス印刷を設定できます。

RHEL 9 は、以下のドライバーレス標準に対してドライバーレス印刷サポートを提供します。

  • CUPS の IPP Everywhere model は、AirPrint、IPP Everywhere、および Wi-FiDirect 標準仕様をサポートしています。
  • cups-filters の Driverless model は、CUPS と同じ標準仕様をサポートし、さらに PCLm ドキュメント形式もサポートします。

これらの標準仕様は、インターネット印刷プロトコル (IPP) 2.0 以降を使用してプリンターのセットアップを通信し、特定のプリンター用に特定のドライバーをインストールする必要をなくします。特定のドライバーなしでプリンターを使用するには、ドライバーレス標準の 1 つをサポートするプリンターが必要です。プリンターがドライバーレス標準仕様をサポートしているかどうかを判断するには、次のいずれかのオプションを選択します。

プリントサーバー上のキューを指す IPP Everywhere モデルを使用してクライアントにプリントキューをインストールするには、リモートプリントサーバーと RHEL 8.6 以降がインストールされているクライアントの両方が必要です。

注記

ipptool コマンド を使用して、プリントサーバーの属性に基づいてドライバーレスサポートを確認できます。

1.5.1. ipptool を使用したプリンター属性の判別

プリンターまたはプリントサーバーがドライバーレス標準をサポートしているかどうかを判断するには、ipptool パッケージで利用可能な ipptool コマンドを使用してプリンター属性を調べることができます。

手順

  • プリンターまたはプリントサーバーの属性を表示します。

    $ ipptool -tv <URI> get-printer-attributes.test
    注記

    <URI> をプリンターの URI に置き換えます。たとえば、プリンターの場合は ipp://<hostname_or_IP_address>:631/ipp/print、印刷サーバーからのリモート印刷キューの場合は ipp://<hostname_or_IP_address>:631/printers/<remote_print_queue> です。

次の場合、プリンターまたはプリントサーバーはドライバーレス印刷をサポートします。

  • ipp-version-supported 属性には、IPP プロトコル 2.0 の 2.0 以降が含まれています。
  • document-format-supported 属性には、ドライバーレス印刷標準 にリストされているサポートされているドキュメント形式の 1 つが含まれています。

1.5.2. CUPS Web UI にドライバーレスプリンターの追加

RHEL 8.6 以降、CUPS Web UI にドライバーレスプリンターを追加し、特定のプリンター用の特定のドライバーやソフトウェアをインストールしなくても、CUPS を使用してアプリケーションからネットワークプリンターまたはプリントサーバーに直接印刷するのに使用できます。

前提条件

  • CUPS Web UI への管理アクセスの取得 で説明されているように、CUPS Web UI への管理アクセスがあります。
  • プリンターまたはプリントサーバーには、IPP Everywhere の標準実装があります。
  • IPP ポートを開きます。IPP の場合はポート 631、IPPS で安全に印刷する場合はポート 443 を開きます。
  • プリントサーバーのファイアウォールで ipp および ipp-client 通信を有効にします。
  • 宛先が別の CUPS サーバーである場合は、リモートサーバーでのリモートアクセスを許可するか、ネットワークプリンターを使用している場合は、Web ユーザーインターフェイスを開き、IPP 関連の設定 (IPP または AirPrint) を検索して、それらの設定を有効にします。

手順

  1. CUPS へのアクセスおよび設定 の説明に従って、CUPS Web UI を開始します。
  2. ブラウザーで、localhost:631 に移動し、Administration タブを選択します。
  3. Printers で、Add printer をクリックします。

    CUPS UI でプリンターの追加 2
  4. ユーザー名およびパスワードで認証します。

    CUPS UI で 認証 n へのプリンターの追加
    重要

    CUPS web UI を使用して新しいプリンターを追加できるようにするには、/etc/cups/cups-filesSystemGroup ディレクティブで定義されたグループに属するユーザーとして認証する必要があります。デフォルトのグループは次のとおりです。

    • root
    • sys
    • ホイール
  5. Administrator タブの Add Printer で、次のいずれかのオプションを選択します。

    • Internet Printing Protocol (ipp)、または
    • Internet Printing Protocol (ipps) オプションをクリックし、Continue をクリックします。

      プリンターの IPP フレームの追加
  6. Connection フィールドにデバイスの URI を入力し、Continue をクリックします。

    プリンタ接続フレームの追加
    注記

    URI は次の部分で設定されています。

    • プリンターまたはプリントサーバーが暗号化をサポートしている場合は、プロトコル ipp:// または ipps://
    • プリンタのホスト名または IP アドレス
    • ポート
    • プリンターの場合はリソース部分の /ipp/print、リモート CUPS キューの場合は /printers/<remote_queue_name>

      たとえば、ipp://myprinter.mydomain:631/ipp/print または ipp://myserver.mydomain:631/printers/myqueue となります。

  7. 新しいプリンターに関する詳細 (名前、説明、場所) を追加します。ネットワーク経由で共有するプリンターを設定する場合は、Share This Printer チェックボックスをチェックします。

    プリンタロケーションフレームの追加
    注記

    「Name」は唯一の必須フィールドであり、他のフィールドはオプションです。

  8. Make ドロップダウンメニューから、プリンターの製造元を選択し、Continue をクリックします。

    プリンターの make フレームの追加
  9. ドライバーレスプリンターのインストールを続行するには、ドロップダウンメニューから IPP Everywhere を選択し、Add Printer をクリックします。

    プリンタモデルの IPP フレームの追加
  10. 新しいプリンターを追加した後、選択したデフォルトの印刷オプションを設定できます。

    CUPS の Web UI でデフォルトを設定 n2

最後のウィンドウは、ドライバーレスプリンターを設定し、使用する準備ができていることを確認します。

プリンターの最終画面フレームの追加

1.6. CUPS Web UI でクラシックドライバーを使用してプリンターの追加

本セクションでは、CUPS Web ユーザーインターフェース を使用して新しいプリンターを追加する方法を説明します。

前提条件

手順

  1. CUPS Web UI の起動 の説明に従って、CUPS Web UI を起動します。
  2. ブラウザーで、localhost:631 に移動し、Administration タブを選択します。
  3. Printers で、Add printer をクリックします。

    CUPS UI でプリンターの追加 2
  4. ユーザー名とパスワードを使用して認証します。

    CUPS UI で 認証 n へのプリンターの追加
    重要

    CUPS Web UI を使用して新しいプリンターを追加できるようにするには、/etc/cups/cups-filesSystemGroup ディレクティブで定義されたグループに属するユーザーとして認証する必要があります。

    デフォルトのグループ

    • root
    • sys
    • ホイール
  5. ローカルプリンターが接続されている場合、または CUPS が利用可能なネットワークプリンターを検出した場合は、プリンターを選択します。ローカルプリンターまたはネットワークプリンターが使用できない場合は、Other Network Printers からいずれかのプリンタータイプ (例: APP Socket/HP Jet direct) を選択し、プリンターの IP アドレスを入力し、Continue をクリックします。

    CUPS UIでプリンターの追加 4
  6. 上記のように APP Socket/HP Jet direct などを選択した場合は、プリンターの IP アドレスを入力し、Continue をクリックします。

    CUPS UIでプリンターの追加 5
  7. 名前、説明、場所など、新しいプリンターに関する詳細を追加できます。ネットワーク経由で共有するプリンターを設定する場合は、Share This Printer チェックボックスをチェックします。

    CUPS UIでプリンターの追加 6
  8. プリンターの製造元を選択し、Continue をクリックします。

    Cups ui 7 でプリンターを追加

    または、下部の Browse… をクリックして、プリンターのドライバーとして使用するpostscript printer description (PPD) ファイルを指定できます。

  9. プリンターのモデルを選択し、プリンターの Add Printer をクリックします。

    CUPS UIでプリンターの追加 8
  10. プリンターを追加したら、次のウィンドウでデフォルトの印刷オプションを設定できます。

    CUPS の Web UI でデフォルトを設定 n2

Set Default Options をクリックすると、新しいプリンターが正常に追加されたことを確認するメッセージが表示されます。

CUPS UI のプリンターの追加で最終確認

検証手順

  • 特にプリンターを設定している場合は、テストページを印刷します。

    • Printers メニューに移動し、 MaintenancePrint Test Page をクリックします。

      テストページの Cups Web UI

1.7. CUPS Web UI でのプリンターの設定

本セクションでは、新しいプリンターの設定方法と、CUPS Web UI を使用してプリンターの設定を維持する方法を説明します。

前提条件

手順

  1. 設定可能なプリンターを表示するには、Printers メニューをクリックします。

    プリンターの CUPS の設定 1
  2. 構成するプリンターを選択します。

    プリンターの CUPS の設定 2
  3. 利用可能なメニューのいずれかを使用して、選択したタスクを実行します。

    • 最初のドロップダウンメニューから Maintenance を選択します。

      プリンターの CUPS の設定 3
    • 2 番目のドロップダウンメニューから Administration を選択します。

      プリンターの CUPS の設定 4
    • また、Show Completed Jobs ボタンまたは Show All Jobs ボタンをクリックして、完了した印刷ジョブまたはアクティブなすべての印刷ジョブを確認することもできます。

検証手順

  • 特にプリンター設定を変更した場合は、テストページを印刷します。

    • Printers メニューに移動し、 MaintenancePrint Test Page をクリックします。

      テストページの Cups Web UI

1.8. CUPS Web UI で印刷オプションの設定

本セクションでは、CUPS Web UI で、メディアのサイズと種類、印刷の品質カラーモードなどの一般的な印刷オプションを設定する方法を説明します。

前提条件

CUPS Web UI への管理アクセスの取得 で説明されているように、CUPS Web UI への管理アクセスがあります。

手順

  1. Administration メニューに移動し、MaintenanceSet Default Options をクリックします。

    CUPS の Web UI でデフォルトを設定 n1
  2. 印刷オプションを設定します。

    CUPS の Web UI でデフォルトを設定 n2

1.9. プリントサーバーの証明書のインストール

プリントサーバーの証明書をインストールするには、以下のいずれかのオプションを選択します。

  • 自己署名証明書を使用した自動インストール
  • 証明書と、認証局が生成した秘密鍵を使用した手動インストール

前提条件

サーバーの cupsd デーモンの場合:

  1. /etc/cups/cupsd.conf ファイルの以下のディレクティブを設定します。

    Encryption Required

  2. cups サービスを再起動します。

    $ sudo systemctl restart cups

自己署名証明書を使用した自動インストール

このオプションを使用すると、CUPS は証明書とキーを自動的に生成します。

注記

自己署名証明書は、Identity Management (IdM)、Active Directory (AD)、または Red Hat Certificate System (RHCS) の認証局が生成する証明書と同様に、強力なセキュリティーを提供しませんが、セキュアなローカルネットワーク内にあるプリントサーバーに使用できます。

手順

  1. CUPS Web UI にアクセスするには、ブラウザーを開き、https://<server>:631 に移動します。

    <server> は、サーバーの IP アドレスまたはサーバーのホスト名のいずれかです。

    注記

    CUPS が初めてシステムに接続すると、ブラウザーは自己署名証明書が潜在的なセキュリティーリスクであることを示す警告を表示します。

  2. 続行しても安全であることを確認する場合は、Advanced… を選択します。

    cups ui 証明書警告
  3. Accept the Risk and Continue を選択します。

    cups ui certificate warning2

CUPS が自己生成された証明書と鍵の使用を開始するようになりました。

注記

自動インストール後に CUPS Web UI にアクセスすると、ブラウザーのアドレスバーに警告アイコンが表示されます。これは、セキュリティーリスクの警告を確認してセキュリティー例外を追加したためです。この警告アイコンを永続的に削除する場合は、証明書と、認証局が生成した秘密鍵を使用して手動インストールを実行します。

証明書と、認証局が生成した秘密鍵を使用した手動インストール

パブリックネットワーク内にあるプリントサーバー、またはブラウザーで警告を永続的に削除するには、証明書とキーを手動でインポートします。

前提条件

  • IdM、AD、または RHCS 認証局により生成される証明書および秘密鍵ファイルがある。

手順

  1. CUPS Web UI を使用するシステムの /etc/cups/ssl ディレクトリーに .crt ファイルおよび .key ファイルをコピーします。
  2. コピーしたファイルを <hostname>.crt および <hostname>.key に変更します。

    <hostname> を CUPS Web UI に接続するシステムのホスト名に置き換えます。

  3. 以下のパーミッションを名前変更ファイルに設定します。

    • # chmod 644 /etc/cups/ssl/<hostname>.crt
    • # chmod 644 /etc/cups/ssl/<hostname>.key
    • # chown root:root /etc/cups/ssl/<hostname>.crt
    • # chown root:root /etc/cups/ssl/<hostname>.key
  4. cups サービスを再起動します。

    • # systemctl restart cupsd

1.10. Samba で Kerberos 認証による Windows 印刷サーバーへの印刷

samba-krb5-printing ラッパーを使用すると、Red Hat Enterprise Linux にログインした Active Directory (AD) ユーザーは、Kerberos を使用して Active Directory (AD) に対して認証して、Windows 印刷サーバーに印刷ジョブを転送するローカルの CUPS 印刷サーバーに印刷できます。

この設定の利点は、Red Hat Enterprise Linux 上の CUPS の管理者が、設定で固定ユーザー名およびパスワードを保存する必要がないことです。CUPS は、印刷ジョブを送信するユーザーの Kerberos チケットで AD に対して認証します。

本セクションでは、このシナリオに CUPS を設定する方法を説明します。

注記

Red Hat は、ローカルシステムから CUPS への印刷ジョブの送信のみに対応し、Samba 印刷サーバーでプリンターを再共有しません。

前提条件

  • ローカルの CUPS インスタンスに追加するプリンターが、AD 印刷サーバーで共有されている。
  • Red Hat Enterprise Linux ホストを、AD のメンバーとして参加させている。
  • CUPS が Red Hat Enterprise Linux にインストールされており、cups サービスが実行している。詳細は、CUPS サービスのアクティブ化 を参照してください。
  • プリンターの PPD (PostScript Printer Description) ファイルは、/usr/share/cups/model/ ディレクトリーに保存されます。

手順

  1. samba-krb5-printing パッケージ、samba-client パッケージ、および krb5-workstation パッケージをインストールします。

    # dnf install samba-krb5-printing samba-client krb5-workstation
  2. 必要に応じて、ドメイン管理者として認証を行い、Windows 印刷サーバーで共有されるプリンターの一覧を表示します。

    # smbclient -L win_print_srv.ad.example.com -U administrator@AD_KERBEROS_REALM --use-kerberos=required
    
    	Sharename       Type      Comment
    	---------       ----      -------
    	...
    	Example         Printer   Example
    	...
  3. 必要に応じて、CUPS モデルの一覧を表示して、プリンターの PPD 名を指定します。

    lpinfo -m
    ...
    samsung.ppd Samsung M267x 287x Series PXL
    ...

    次の手順でプリンターを追加する場合は、PPD ファイルの名前が必要です。

  4. CUPS にプリンターを追加します。

    # lpadmin -p "example_printer" -v smb://win_print_srv.ad.example.com/Example -m samsung.ppd -o auth-info-required=negotiate -E

    コマンドは、以下のオプションを使用します。

    • -p printer_name は、CUPS にプリンターの名前を設定します。
    • -v URI_to_Windows_printer は、Windows プリンターに URI を設定します。smb://host_name/printer_share_name 形式を使用します。
    • -m PPD_file は、プリンターが使用する PPD ファイルを設定します。
    • -o auth-info-required=negotiate は、印刷ジョブをリモートサーバーに転送する際に CUPS が Kerberos 認証を使用するように設定します。
    • -E はプリンターを有効にし、CUPS はプリンターのジョブを受け付けます。

検証手順

  1. AD ドメインユーザーとして Red Hat Enterprise Linux ホストにログインします。
  2. AD ドメインユーザーとして認証します。

    # kinit domain_user_name@AD_KERBEROS_REALM
  3. ローカルの CUPS 印刷サーバーに追加したプリンターにファイルを出力します。

    # lp -d example_printer file

1.11. CUPS ログの使用

1.11.1. CUPS ログの種類

CUPS には、以下のようなログがあります。

  • エラーログ - エラー、警告、およびデバッグのメッセージを保存する
  • アクセスログ - CUPS クライアントおよび Web UI にアクセスした回数を示すメッセージを保存する
  • ページログ - 各プリントジョブに出力されるページの合計数を示すメッセージを保存する

Red Hat Enterprise Linux 8 では、その他のプログラムのログと一緒に、3 つのすべてのタイプが、systemd-journald のログに集中的に記録されます。

警告

Red Hat Enterprise Linux 8 では、ログが、Red Hat Enterprise Linux 7 で使用されていた /var/log/cups ディレクトリーの特定のファイルに保存されなくなりました。

1.11.2. すべての CUPS ログへのアクセス

systemd-journald で利用可能な CUPS ログをすべて一覧表示できます。

手順

  • CUPS ログのフィルター
$ journalctl -u cups

1.11.3. 特定の印刷ジョブの CUPS ログへアクセス

特定の印刷ジョブの CUPS ログを検索する必要がある場合は、印刷ジョブの数を使用してログをフィルタリングすることで、CUPS ログを検索できます。

手順

  • 特定の印刷ジョブのログにフィルターをかけます。
$ journalctl -u cups JID=N

ここで、N は、印刷ジョブの番号になります。

1.11.4. 特定の時間枠による CUPS ログへのアクセス

指定した期間に CUPS ログにアクセスする必要がある場合は、systemd-journald でログをフィルターにかけることができます。

手順

  • 指定した時間枠内でログにフィルターをかけます。
$ journalctl -u cups --since=YYYY-MM-DD --until=YYYY-MM-DD

ここで、YYYY は年、MM は月、DD は日です。

関連情報

  • journalctl(1) の man ページ

1.11.5. CUPS ログの場所の設定

本セクションでは、CUPS ログの場所を設定する方法を説明します。

Red Hat Enterprise Linux 8 では、CUPS ログはデフォルトで systemd-semanaged に記録されます。これは、/etc/cups/cups-files.conf ファイルの以下のデフォルト設定で保証されます。

ErrorLog syslog
重要

Red Hat は、CUPS ログのデフォルトの場所を保持することを推奨します。

ログを別の場所に送信する場合は、/etc/cups/cups-files.conf ファイル内の設定を以下のように変更する必要があります。

ErrorLog <your_required_location>
警告

CUPS ログのデフォルトの場所を変更すると、SELinux の問題が発生する可能性があります。