CUPS 출력 서버 구성 및 사용

Red Hat Enterprise Linux 9

CUPS 서버로 작동하고 프린터, 인쇄 대기열 및 출력 환경을 관리하도록 시스템을 구성

Red Hat Customer Content Services

초록

CUPS(Common Unix Printing System)는 Red Hat Enterprise Linux에서 인쇄를 관리합니다. 사용자는 호스트의 CUPS에 프린터를 구성하여 출력하도록 합니다. 또한 CUPS에서 프린터를 공유하여 호스트를 출력 서버로 사용할 수 있습니다.
CUPS는 다음과 같은 출력을 지원합니다.
  • Air™ >-< 및 IPP Everywhere™ 프린터
  • 프린터 애플리케이션을 사용한 네트워크 및 로컬 USB 프린터
  • 기존PPD(PPD) 기반 드라이버를 사용하는 네트워크 및 로컬 USB 프린터

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.

Red Hat 문서에 관한 피드백 제공

문서에 대한 피드백에 감사드립니다. 어떻게 개선할 수 있는지 알려주십시오.

Jira를 통해 피드백 제출 (등록 필요)

  1. Jira 웹 사이트에 로그인합니다.
  2. 상단 탐색 모음에서 생성 을 클릭합니다.
  3. Summary (요약) 필드에 설명 제목을 입력합니다.
  4. Description (설명) 필드에 개선을 위한 제안을 입력합니다. 문서의 관련 부분에 대한 링크를 포함합니다.
  5. 대화 상자 하단에서 생성 을 클릭합니다.

1장. CUPS 설치 및 구성

CUPS를 사용하여 로컬 호스트에서 출력할 수 있습니다. 이 호스트를 사용하여 네트워크에서 프린터를 공유하고 인쇄 서버 역할을 할 수도 있습니다.

절차

  1. cups 패키지를 설치합니다.

    # dnf install cups
  2. CUPS를 출력 서버로 구성하는 경우 /etc/cups/cupsd.conf 파일을 편집하고 다음과 같이 변경합니다.

    1. CUPS를 원격으로 구성하거나 이 호스트를 출력 서버로 사용하려면 서비스에서 수신 대기하는 IP 주소와 포트를 구성합니다.

      Listen 192.0.2.1:631
      Listen [2001:db8:1::1]:631

      기본적으로 CUPS는 localhost 인터페이스(127.0.0.1::1)에서만 수신 대기합니다. 대괄호로 IPv6 주소를 지정합니다.

      중요

      인터넷과 같이 신뢰할 수 없는 네트워크에서 액세스를 허용하는 인터페이스에서 수신 대기하도록 CUPS를 구성하지 마십시오.

    2. < Location /> 지시문에서 각 IP 범위를 허용하여 서비스에 액세스할 수 있는 IP 범위를 구성합니다.

      <Location />
        Allow from 192.0.2.0/24
        Allow from [2001:db8:1::1]/32
        Order allow,deny
      </Location>
    3. &lt ;Location /admin& gt; 지시문에서 CUPS 관리 서비스에 액세스할 수 있는 IP 주소와 범위를 구성합니다.

      <Location /admin>
        Allow from 192.0.2.15/32
        Allow from [2001:db8:1::22]/128
        Order allow,deny
      </Location>

      이러한 설정을 사용하면 IP 주소 192.0.2.152001:db8:1::22 가 있는 호스트만 관리 서비스에 액세스할 수 있습니다.

    4. 선택 사항: 웹 인터페이스에서 구성 및 로그 파일에 액세스할 수 있는 IP 주소 및 범위를 구성합니다.

      <Location /admin/conf>
        Allow from 192.0.2.15/32
        Allow from [2001:db8:1::22]/128
        ...
      </Location>
      
      <Location /admin/log>
        Allow from 192.0.2.15/32
        Allow from [2001:db8:1::22]/128
        ...
      </Location>
  3. firewalld 서비스를 실행하고 CUPS에 대한 원격 액세스를 구성하려면 firewalld 에서 CUPS 포트를 엽니다.

    # firewall-cmd --permanent --add-port=631/tcp
    # firewall-cmd --reload

    여러 인터페이스가 있는 호스트에서 CUPS를 실행하는 경우 필요한 네트워크에 대한 액세스를 제한하는 것이 좋습니다.

  4. cups 서비스를 활성화하고 시작합니다.

    # systemctl enable --now cups

검증

  • 브라우저를 사용하고 http:// <hostname> :631 에 액세스합니다. 웹 인터페이스에 연결할 수 있는 경우 CUPS가 작동합니다.

    관리 탭과 같은 특정 기능에는 인증 및 HTTPS 연결이 필요합니다. 기본적으로 CUPS는 HTTPS 액세스를 위해 자체 서명된 인증서를 사용하므로 인증 시 연결이 안전하지 않습니다.

2장. CUPS 서버에서 TLS 암호화 구성

CUPS는 TLS 암호화 연결을 지원하며 기본적으로 이 서비스는 인증이 필요한 모든 요청에 대해 암호화된 연결을 적용합니다. 인증서가 구성되지 않은 경우 CUPS는 개인 키와 자체 서명 인증서를 생성합니다. 이는 로컬 호스트 자체에서 CUPS에 액세스하는 경우에만 충분합니다. 네트워크를 통한 보안 연결의 경우 CA(인증 기관)에서 서명한 서버 인증서를 사용합니다.

주의

암호화 또는 자체 서명된 인증서가 없으면 MITTM(Man-in-the-middle) 공격은 다음과 같이 공개할 수 있습니다.

  • 웹 인터페이스를 사용하여 CUPS를 구성할 때 관리자의 인증 정보
  • 네트워크를 통해 인쇄 작업을 보낼 때 기밀 데이터

사전 요구 사항

  • CUPS가 구성되어 있습니다.
  • 개인 키 를 생성하고 CA에서 이에 대한 서버 인증서를 발급했습니다.
  • 서버 인증서의 유효성을 확인하는 데 중간 인증서가 필요한 경우 중간 인증서를 서버 인증서에 연결합니다.
  • CUPS는 서비스에서 키를 읽을 때 암호를 입력할 수 있는 옵션을 제공하지 않으므로 개인 키는 암호로 보호되지 않습니다.
  • 인증서의 Canonical Name (CN) 또는 Subject Alternative Name (SAN) 필드는 다음 중 하나와 일치합니다.

    • CUPS 서버의 FQDN(정규화된 도메인 이름)
    • DNS가 서버의 IP 주소로 확인되는 별칭
  • 개인 키 및 서버 인증서 파일은 Privacy Enhanced Mail (PEM) 형식을 사용합니다.
  • 클라이언트는 CA 인증서를 신뢰합니다.
  • 서버가 RHEL 9.2 이상을 실행하고 FIPS 모드가 활성화된 경우 클라이언트는 확장 마스터 시크릿(Extended Master Secret) 확장을 지원하거나 TLS 1.3을 사용해야 합니다. TLS 1.2 연결이 없는 경우 실패합니다. 자세한 내용은 TLS 확장 "Extended Master Secret" enforced Knowledgebase 문서를 참조하십시오.

절차

  1. /etc/cups/cups-files.conf 파일을 편집하고 다음 설정을 추가하여 자체 서명된 인증서 자동 생성을 비활성화합니다.

    CreateSelfSignedCerts no
  2. 자체 서명된 인증서 및 개인 키를 제거합니다.

    # rm /etc/cups/ssl/<hostname>.crt /etc/cups/ssl/<hostname>.key
  3. 선택 사항: 서버의 FQDN을 표시합니다.

    # hostname -f
    server.example.com
  4. 선택 사항: 인증서의 CN 및 SAN 필드를 표시합니다.

    # openssl x509 -text -in /etc/cups/ssl/server.example.com.crt
    Certificate:
      Data:
        ...
        Subject: CN = server.example.com
        ...
        X509v3 extensions:
          ...
          X509v3 Subject Alternative Name:
            DNS:server.example.com
      ...
  5. 서버 인증서의 CN 또는 SAN 필드에 서버의 FQDN과 다른 별칭이 포함된 경우 ServerAlias 매개변수를 /etc/cups/cupsd.conf 파일에 추가합니다.

    ServerAlias alternative_name.example.com

    이 경우 절차의 나머지 부분에서 FQDN 대신 대체 이름을 사용합니다.

  6. 개인 키와 서버 인증서를 /etc/cups/ssl/ 디렉터리에 저장합니다. 예를 들면 다음과 같습니다.

    # mv /root/server.key /etc/cups/ssl/server.example.com.key
    # mv /root/server.crt /etc/cups/ssl/server.example.com.crt
    중요

    CUPS를 사용하려면 개인 키 &lt ;fqdn > .key 및 서버 인증서 파일 &lt ;fqdn > .crt 를 지정해야 합니다. 별칭을 사용하는 경우 <alias> .key 및 <alias > .crt 파일의 이름을 지정해야 합니다.

  7. root 사용자만 이 파일을 읽을 수 있는 개인 키에 대한 보안 권한을 설정합니다.

    # chown root:root /etc/cups/ssl/server.example.com.key
    # chmod 600 /etc/cups/ssl/server.example.com.key

    인증서는 보안 연결을 설정하기 전에 클라이언트와 서버 간의 통신의 일부이므로 모든 클라이언트는 인증 없이 인증서를 검색할 수 있습니다. 따라서 서버 인증서 파일에 대한 엄격한 권한을 설정할 필요가 없습니다.

  8. SELinux 컨텍스트를 복원합니다.

    # restorecon -Rv /etc/cups/ssl/
  9. 기본적으로 CUPS는 작업에 인증이 필요한 경우에만 암호화된 연결을 적용합니다(예: 웹 인터페이스의 /admin 페이지에서 관리 작업을 수행할 때).

    전체 CUPS 서버에 암호화를 적용하려면 /etc/cups/cupsd.conf 파일의 모든 < Location > 지시문에 Encryption 을 추가합니다. 예를 들면 다음과 같습니다.

    <Location />
      ...
      Encryption Required
    </Location>
  10. CUPS를 다시 시작합니다.

    # systemctl restart cups

검증

  1. 브라우저를 사용하고 https:// <hostname> :631 /admin/ 에 액세스합니다. 연결에 성공하면 CUPS에서 TLS 암호화를 올바르게 구성했습니다.
  2. 전체 서버에 암호화가 필요한 경우 http:// <hostname > :631/ 에 액세스합니다. CUPS는 Upgrade Required 오류를 반환합니다.

문제 해결

  • cups 서비스의 systemd 저널 항목을 표시합니다.

    # journalctl -u cups

    저널에 HTTPS 프로토콜을 사용하여 웹 인터페이스에 연결하지 못한 후 파일을 읽는 동안 오류 발생: 개인 키 및 서버 인증서 파일의 이름을 확인합니다.

3장. 웹 인터페이스에서 CUPS 서버를 관리할 수 있는 관리 권한 부여

기본적으로 sys,rootwheel 그룹의 멤버는 웹 인터페이스에서 관리 작업을 수행할 수 있습니다. 그러나 다른 서비스도 이러한 그룹을 사용합니다. 예를 들어 wheel 그룹의 멤버는 기본적으로 sudo 를 사용하여 root 권한으로 명령을 실행할 수 있습니다. CUPS 관리자가 다른 서비스에서 예기치 않은 권한을 얻지 않도록 하려면 CUPS 관리자 전용 그룹을 사용합니다.

사전 요구 사항

  • CUPS가 구성되어 있습니다.
  • 사용하려는 클라이언트의 IP 주소에는 웹 인터페이스의 관리 영역에 액세스할 수 있는 권한이 있습니다.

절차

  1. CUPS 관리자 그룹을 생성합니다.

    # groupadd cups-admins
  2. 웹 인터페이스에서 서비스를 관리해야 하는 사용자를 cups-admins 그룹에 추가합니다.

    # usermod -a -G cups-admins <username>
  3. /etc/cups/cups-files.conf 파일에서 SystemGroup 매개변수 값을 업데이트하고 cups-admin 그룹을 추가합니다.

    SystemGroup sys root wheel cups-admins

    cups-admin 그룹만 관리 액세스 권한이 있는 경우 매개 변수에서 다른 그룹 이름을 제거합니다.

  4. CUPS를 다시 시작합니다.

    # systemctl restart cups

검증

  1. 브라우저를 사용하고 https:// <hostname_or_ip_address > :631/admin/ 에 액세스합니다.

    참고

    HTTPS 프로토콜을 사용하는 경우에만 웹 UI의 관리 영역에 액세스할 수 있습니다.

  2. 관리 작업 수행을 시작합니다. 예를 들어 프린터 추가 를 클릭합니다.
  3. 웹 인터페이스에서 사용자 이름과 암호를 입력하라는 메시지를 표시합니다. 계속하려면 cups-admins 그룹의 멤버인 사용자의 자격 증명을 사용하여 인증합니다.

    인증이 성공하면 이 사용자는 관리 작업을 수행할 수 있습니다.

4장. 프린터 드라이버가 있는 패키지 개요

RHEL(Red Hat Enterprise Linux)은 CUPS용 프린터 드라이버를 사용하여 다른 패키지를 제공합니다. 다음은 이러한 패키지에 대한 일반적인 개요와 드라이버를 포함하는 공급업체에 대한 개요입니다.

표 4.1. 드라이버 패키지 목록

패키지 이름프린터용 드라이버

cups

Zebra, Dymo

c2esp

Kodak

foomatic

대만, Canon, Epson, Gestson, Gestetner, HP, Infotec, Kyocera, Lanier, Lexmark, NRG, Ricoh, Cryostat, Savin, Sharp, Toshiba, Xerox 및 기타

gutenprint-cups

대만, Canon, Epson, Fujitsu, HP, Infotec, Kyocera, Lanier, NRG, Oki, Minolta, Ricoh, Cryostat, Savin, Xerox 및 기타

hplip

HP

pnm2ppa

HP

splix

retries, Xerox 및 기타

일부 패키지에는 동일한 프린터 공급 업체 또는 모델에 대한 드라이버가 포함되어 있지만 기능이 다를 수 있습니다.

필수 패키지를 설치한 후 CUPS 웹 인터페이스에서 드라이버 목록을 표시하거나 lpinfo -m 명령을 사용하여 표시할 수 있습니다.

5장. 프린터가 드라이버 없는 인쇄를 지원하는지 여부 확인

CUPS는 드라이버 없는 인쇄를 지원하므로 프린터 모델에 대한 하드웨어별 소프트웨어를 제공하지 않고 출력할 수 있습니다. 이를 위해 프린터는 고객에게 해당 기능에 대해 알리고 다음 표준 중 하나를 사용해야 합니다.

  • AirPrint™
  • IPP Everywhere™
  • Mopria®
  • Wi-Fi 직접 인쇄 서비스

ipptool 유틸리티를 사용하여 프린터가 드라이버 없는 인쇄를 지원하는지 확인할 수 있습니다.

사전 요구 사항

  • 프린터 또는 원격 인쇄 서버는 IPP(Internet Printing Protocol)를 지원합니다.
  • 호스트는 프린터 또는 원격 인쇄 서버의 IPP 포트에 연결할 수 있습니다. 기본 IPP 포트는 631입니다.

절차

  • ipp-versions-supporteddocument-format-supported 속성을 쿼리하고 get- Cryostat-attributes 테스트가 전달되었는지 확인합니다.

    • 원격 프린터의 경우 다음을 입력합니다.

      # ipptool -tv ipp://<ip_address_or_hostname>:631/ipp/print get-printer-attributes.test | grep -E "ipp-versions-supported|document-format-supported|get-printer-attributes"
      Get printer attributes using get-printer-attributes      [PASS]
          ipp-versions-supported (1setOf keyword) = ...
          document-format-supported (1setOf mimeMediaType) = ...
    • 원격 인쇄 서버의 대기열의 경우 다음을 입력합니다.

      # ipptool -tv ipp://<ip_address_or_hostname>:631/printers/<queue_name> get-printer-attributes.test | grep -E "ipp-versions-supported|document-format-supported|get-printer-attributes"
      Get printer attributes using get-printer-attributes      [PASS]
          ipp-versions-supported (1setOf keyword) = ...
          document-format-supported (1setOf mimeMediaType) = ...

    드라이버 없는 인쇄가 작동하는지 확인하려면 출력에서 확인합니다.

    • get- Cryostat-attributes 테스트에서 PASS 를 반환합니다.
    • 프린터에서 지원하는 IPP 버전은 2.0 이상입니다.
    • 형식 목록에는 다음 중 하나가 포함됩니다.

      • application/pdf
      • 이미지/urf
      • image/pwg-raster
    • 색상 프린터의 경우 출력에는 언급된 형식 중 하나를 포함하며, 또한 image/jpeg.

6장. 웹 인터페이스를 사용하여 CUPS에 프린터 추가

사용자가 CUPS를 통해 인쇄하려면 먼저 프린터를 추가해야 합니다. 예를 들어 USB를 통해 CUPS 호스트에 직접 연결된 네트워크 프린터와 프린터를 모두 사용할 수 있습니다.

CUPS 드라이버 없는 기능을 사용하거나 PPD(PPD) 파일을 사용하여 프린터를 추가할 수 있습니다.

참고

CUPS는 드라이버 없는 인쇄를 선호하며 드라이버 사용은 더 이상 사용되지 않습니다.

RHEL(Red Hat Enterprise Linux)은 mDNS 응답자를 쿼리하여 요청을 확인하는 이름 서비스 스위치 멀티캐스트 DNS 플러그인(nss-mdns)을 제공하지 않습니다. 결과적으로 mDNS를 사용하여 로컬 드라이버 없는 프린터에 대한 자동 검색 및 설치는 RHEL에서 사용할 수 없습니다. 이 문제를 해결하려면 단일 프린터를 수동으로 설치하거나 cups-browsed 를 사용하여 원격 인쇄 서버에서 사용할 수 있는 많은 양의 인쇄 대기열을 자동으로 설치합니다.

절차

  1. 브라우저를 사용하고 https:// <hostname> :631 /admin/ 에 액세스합니다.

    HTTPS 프로토콜을 사용하여 웹 인터페이스에 연결해야 합니다. 그렇지 않으면 CUPS를 사용하면 보안상의 이유로 이후 단계에서 인증할 수 없습니다.

  2. 프린터 추가를 클릭합니다.
  3. 아직 인증되지 않은 경우 CUPS에서 관리자의 자격 증명을 입력하라는 메시지를 표시합니다. 권한이 부여된 사용자의 사용자 이름과 암호를 입력합니다.
  4. 드라이버 없는 인쇄를 사용하지 않고 추가할 프린터가 자동으로 감지되면 해당 프린터를 선택하고 Continue 를 클릭합니다.
  5. 프린터가 감지되지 않은 경우:

    1. 프린터에서 지원하는 프로토콜을 선택합니다.

      cups에서 인쇄 프로토콜 선택

      프린터에서 드라이버 없는 인쇄를 지원하고 이 기능을 사용하려면 ipp 또는 ipps 프로토콜을 선택합니다.

    2. Continue 를 클릭합니다.
    3. 프린터 또는 원격 인쇄 서버의 대기열에 대한 URL을 입력합니다.

      cups 프린터 URL 추가
    4. Continue 를 클릭합니다.
  6. 이름 및 설명 및 위치를 입력합니다. CUPS를 출력 서버로 사용하고 다른 클라이언트가 이 프린터에서 CUPS를 통해 출력할 수 있어야 하는 경우 이 프린터 공유 도 선택합니다.

    cups 프린터 세부 정보 추가
  7. Make 목록에서 프린터 제조업체를 선택합니다. 프린터 제조업체가 목록에 없는 경우 일반 을 선택하거나 프린터에 대한 PPD 파일을 업로드합니다.

    cups에서 프린터 만들기 추가
  8. Continue 를 클릭합니다.
  9. 프린터 모델을 선택합니다.

    • 프린터가 드라이버 없는 인쇄를 지원하는 경우 IPP Everywhere 를 선택합니다. 이전에 프린터별 드라이버를 로컬에 설치한 경우 목록에 < Cryostat _name > - IPP Everywhere 와 같은 항목도 포함될 수 있습니다.
    • 프린터에서 드라이버 없는 인쇄를 지원하지 않는 경우 모델을 선택하거나 프린터에 대한 PPD 파일을 업로드합니다.
    cups 프린터 모델 추가
  10. Add Cryostat를 클릭합니다.
  11. 프린터 옵션 설정 페이지의 설정 및 탭은 드라이버와 프린터에서 지원하는 기능에 따라 달라집니다. 이 페이지를 사용하여 문서 크기와 같은 기본 옵션을 설정합니다.

    cups에서 프린터 기본값 추가
  12. 기본 옵션 설정을 클릭합니다.

검증

  1. 웹 인터페이스에서 Cryo stat 탭을 엽니다.
  2. 프린터 이름을 클릭합니다.
  3. 유지 관리 목록에서 테스트 출력 페이지를 선택합니다.

    cups 인쇄 테스트 페이지

문제 해결

7장. lpadmin 유틸리티를 사용하여 CUPS에 프린터 추가

사용자가 CUPS를 통해 인쇄하려면 먼저 프린터를 추가해야 합니다. 예를 들어 USB를 통해 CUPS 호스트에 직접 연결된 네트워크 프린터와 프린터를 모두 사용할 수 있습니다.

CUPS 드라이버 없는 기능을 사용하거나 PPD(PPD) 파일을 사용하여 프린터를 추가할 수 있습니다.

참고

CUPS는 드라이버 없는 인쇄를 선호하며 드라이버 사용은 더 이상 사용되지 않습니다.

RHEL(Red Hat Enterprise Linux)은 mDNS 응답자를 쿼리하여 요청을 확인하는 이름 서비스 스위치 멀티캐스트 DNS 플러그인(nss-mdns)을 제공하지 않습니다. 결과적으로 mDNS를 사용하여 로컬 드라이버 없는 프린터에 대한 자동 검색 및 설치는 RHEL에서 사용할 수 없습니다. 이 문제를 해결하려면 단일 프린터를 수동으로 설치하거나 cups-browsed 를 사용하여 원격 인쇄 서버에서 사용할 수 있는 많은 양의 인쇄 대기열을 자동으로 설치합니다.

사전 요구 사항

절차

  • CUPS에 프린터를 추가합니다.

    • 드라이버 없는 지원이 포함된 프린터를 추가하려면 다음을 입력합니다.

      # lpadmin -p Demo-printer -E -v ipp://192.0.2.200/ipp/print -m everywhere

      모든 위치에 있는 -m 옵션이 프린터에서 작동하지 않는 경우 -m driverless: <uri >를 사용해 보십시오(예: -m driverless:ipp://192.0.2.200/print ).

    • 드라이버 없는 지원이 포함된 원격 인쇄 서버의 큐를 추가하려면 다음을 입력합니다.

      # lpadmin -p Demo-printer -E -v ipp://192.0.2.201/printers/example-queue -m everywhere

      -m everywhere 옵션이 프린터에 대해 작동하지 않는 경우 -m driverless: <uri >를 시도합니다. 예를 들면 -m driverless:ipp://192.0.2.200/example-queue.

    • 파일에서 드라이버가 있는 프린터를 추가하려면 다음을 입력합니다.

      # lpadmin -p Demo-printer -E -v socket://192.0.2.200/ -P /root/example.ppd
    • 파일에 드라이버가 있는 원격 인쇄 서버의 큐를 추가하려면 다음을 입력합니다.

      # lpadmin -p Demo-printer -E -v ipp://192.0.2.201/printers/example-queue -P /root/example.ppd
    • 로컬 드라이버 데이터베이스에 드라이버가 있는 프린터를 추가하려면 다음을 수행합니다.

      1. 데이터베이스의 드라이버를 나열합니다.

        # lpinfo -m
        ...
        drv:///sample.drv/generpcl.ppd Generic PCL Laser Printer
        ...
      2. 데이터베이스의 드라이버에 URI가 있는 프린터를 추가합니다.

        # lpadmin -p Demo-printer -E -v socket://192.0.2.200/ -m drv:///sample.drv/generpcl.ppd

    이러한 명령은 다음 옵션을 사용합니다.

    • -p < Cryostat_name > : CUPS에서 프린터 이름을 설정합니다.
    • - e: 프린터를 활성화하고 CUPS는 해당 프린터에 대한 작업을 허용합니다. p 뒤에 이 옵션을 지정해야 합니다. 자세한 내용은 도움말 페이지에서 옵션의 설명을 참조하십시오.
    • -v <uri > : 프린터 또는 원격 인쇄 서버 대기열로 URI를 설정합니다.
    • -m <driver_uri > : 로컬 드라이버 데이터베이스에서 가져온 제공된 드라이버 URI를 기반으로 PPD 파일을 설정합니다.
    • -p <PPD_file > : PPD 파일의 경로를 설정합니다.

검증

  1. 사용 가능한 프린터를 표시합니다.

    # lpstat -p
    printer Demo-printer is idle. enabled since Fri 23 Jun 2023 09:36:40 AM CEST
  2. 테스트 페이지를 인쇄합니다.

    # lp -d Demo-printer /usr/share/cups/data/default-testpage.pdf

8장. 웹 인터페이스를 사용하여 CUPS 프린터에서 유지 관리 및 관리 작업 수행

프린터 관리자는 인쇄 서버에서 다른 작업을 수행해야 하는 경우가 있습니다. 예를 들면 다음과 같습니다.

  • 기술자가 프린터를 복구하는 동안 프린터를 일시적으로 일시 정지하는 것과 같은 유지 관리 작업
  • 프린터의 기본 설정 변경과 같은 관리 작업

CUPS 웹 인터페이스를 사용하여 이러한 작업을 수행할 수 있습니다.

사전 요구 사항

절차

  1. 브라우저를 사용하고 https:// <hostname> :631 / Cryostats/ 에 액세스합니다.

    HTTPS 프로토콜을 사용하여 웹 인터페이스에 연결해야 합니다. 그렇지 않으면 CUPS를 사용하면 보안상의 이유로 이후 단계에서 인증할 수 없습니다.

  2. 구성할 프린터 이름을 클릭합니다.
  3. 유지 관리 또는 관리 작업을 수행할지 여부에 따라 해당 목록에서 필요한 작업을 선택합니다.

    cups 프린터 작업
  4. 아직 인증되지 않은 경우 CUPS에서 관리자의 자격 증명을 입력하라는 메시지를 표시합니다. 권한이 부여된 사용자의 사용자 이름과 암호를 입력합니다.
  5. 작업을 수행합니다.

9장. Samba를 사용하여 Kerberos 인증이 있는 Windows 인쇄 서버에 인쇄

samba-krb5-printing wrapper를 사용하면 RHEL(Red Hat Enterprise Linux)에 로그인한 Active Directory(AD) 사용자는 Kerberos를 사용하여 Active Directory(AD)에 인증한 다음 출력 작업을 Windows 인쇄 서버로 전달하는 로컬 CUPS 인쇄 서버로 출력할 수 있습니다.

이 구성의 이점은 RHEL의 CUPS 관리자가 고정된 사용자 이름과 암호를 구성에 저장할 필요가 없다는 것입니다. CUPS는 출력 작업을 전송하는 사용자의 Kerberos 티켓을 사용하여 AD에 인증합니다.

참고

Red Hat은 로컬 시스템에서 CUPS에 출력 작업만 제출하고 Samba 인쇄 서버에서 프린터를 다시 공유하지 않도록 지원합니다.

사전 요구 사항

  • 로컬 CUPS 인스턴스에 추가하려는 프린터는 AD 출력 서버에서 공유됩니다.
  • AD에 RHEL 호스트를 멤버로 가입했습니다.
  • CUPS가 RHEL에 설치되고 cups 서비스가 실행 중입니다.
  • 프린터의 PPD(PPD) 파일은 /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_ Cryostat 는 URI를 Windows 프린터로 설정합니다. smb://host_name/printer_share_name 형식을 사용합니다.
    • -m PPD_file 은 프린터가 사용하는 PPD 파일을 설정합니다.
    • -O auth-info-required=negotiate 는 출력 작업을 원격 서버로 전달할 때 Kerberos 인증을 사용하도록 CUPS를 구성합니다.
    • - e 프린터 및 CUPS는 프린터에 대한 작업을 허용합니다.

검증

  1. AD 도메인 사용자로 RHEL 호스트에 로그인합니다.
  2. AD 도메인 사용자로 인증합니다.

    # kinit domain_user_name@AD_KERBEROS_REALM
  3. 로컬 CUPS 출력 서버에 추가한 프린터에 파일을 출력합니다.

    # lp -d example_printer file

10장. cups-browsed를 사용하여 원격 인쇄 서버의 프린터를 로컬로 통합

cups-browsed 서비스는 DNS 서비스 검색(DNS-SD) 및 CUPS 검색 기능을 사용하여 로컬 CUPS 서비스에서 공유 원격 프린터의 모든 또는 필터링된 하위 집합을 자동으로 사용할 수 있도록 합니다.

예를 들어 관리자는 워크스테이션에서 이 기능을 사용하여 애플리케이션의 인쇄 대화 상자에서 사용할 수 있는 신뢰할 수 있는 인쇄 서버의 프린터만 만들 수 있습니다. 인쇄 서버가 많은 수의 프린터를 공유하는 경우 나열된 프린터 수를 줄이기 위해 특정 기준에 따라 검색되는 프린터를 필터링하도록 cups-browsed 를 구성할 수도 있습니다.

참고

애플리케이션의 출력 대화 상자에서 DNS-SD와 같은 다른 메커니즘을 사용하여 원격 프린터를 나열하는 경우 cups-browsed 는 영향을 미치지 않습니다. cups-browsed 서비스는 사용자가 수동으로 목록에 없는 프린터에 액세스하는 것을 방지하지 않습니다.

사전 요구 사항

  • CUPS 서비스는 로컬 호스트에 구성됩니다.
  • 원격 CUPS 출력 서버가 존재하며 다음 조건이 이 서버에 적용됩니다.

    • 서버는 클라이언트에서 액세스할 수 있는 인터페이스에서 수신 대기합니다.
    • /etc/cups/cups.conf 파일의 서버의 < Location / > 지시문의 Allow from 매개 변수는 클라이언트의 IP 주소에서 액세스할 수 있습니다.
    • 서버는 프린터를 공유합니다.
    • 방화벽 규칙을 사용하면 클라이언트에서 서버의 CUPS 포트로 액세스할 수 있습니다.

절차

  1. /etc/cups/cups-browsed.conf 파일을 편집하고 다음과 같이 변경합니다.

    1. 폴링하려는 각 원격 CUPS 서버에 대해 BrowsePoll 매개변수를 추가합니다.

      BrowsePoll remote_cups_server.example.com
      BrowsePoll 192.0.2.100:1631

      원격 CUPS 서버가 631과 다른 포트에서 수신 대기하는 경우 호스트 이름 또는 IP 주소에 : <port>를 추가합니다.

    2. 선택 사항: 로컬 CUPS 서비스에 표시되는 프린터를 제한하도록 필터를 구성합니다. 예를 들어 이름에 sales_ 가 포함된 큐를 필터링하려면 다음을 추가합니다.

      BrowseFilter name sales_

      다른 필드 이름으로 필터링하고 필터를 무효화하고 정확한 값과 일치시킬 수 있습니다. 자세한 내용은 cups-browsed.conf(5) 도움말 페이지의 매개변수 설명 및 예제를 참조하십시오.

    3. 선택 사항: 폴링 간격 및 타임아웃을 변경하여 검색 주기 수를 제한합니다.

      BrowseInterval 1200
      BrowseTimeout 6000

      동일한 비율로 BrowseIntervalBrowseTimeout 을 모두 늘리면 프린터가 검색 목록에서 사라지는 상황을 방지합니다. 즉, BrowseInterval 의 값을 5 또는 더 높은 정수로 곱하고, BrowseTimeout 에 대해 이 결과 값을 사용합니다.

      기본적으로 cups-browsed 는 60초마다 원격 서버를 폴링하고 시간 초과는 300초입니다. 그러나 큐가 많은 인쇄 서버에서 이러한 기본값은 많은 리소스가 필요할 수 있습니다.

  2. cups-browsed 서비스를 활성화하고 시작합니다.

    # systemctl enable --now cups-browsed

검증

  • 사용 가능한 프린터를 나열합니다.

    # lpstat -v
    device for Demo-printer: implicitclass://Demo-printer/
    ...

    프린터 출력에 암시적 클래스 가 포함된 경우cups-browsed 는 CUPS에서 프린터를 관리합니다.

추가 리소스

  • cups-browsed.conf(5) 도움말 페이지

11장. systemd 저널의 CUPS 로그에 액세스

기본적으로 CUPS는 로그 메시지를 systemd 저널에 저장합니다. 여기에는 다음이 포함됩니다.

  • 오류 메시지
  • 로그 항목 액세스
  • 페이지 로그 항목

절차

  • 로그 항목을 표시합니다.

    • 모든 로그 항목을 표시하려면 다음을 입력합니다.

      # journalctl -u cups
    • 특정 출력 작업의 로그 항목을 표시하려면 다음을 입력합니다.

      # journalctl -u cups JID=<print_job_id>
    • 특정 기간 내에 로그 항목을 표시하려면 다음을 입력합니다.

      # journalectl -u cups --since=<YYYY-MM-DD> --until=<YYYY-MM-DD>

      YYYY 를 연도로 바꾸고, MM 을 월로, DD 를 하루로 바꿉니다.

추가 리소스

  • journalctl(1) 도움말 페이지

12장. systemd 저널 대신 파일에 로그를 저장하도록 CUPS 구성

기본적으로 CUPS는 로그 메시지를 systemd 저널에 저장합니다. 또는 로그 메시지를 파일에 저장하도록 CUPS를 구성할 수 있습니다.

절차

  1. /etc/cups/cups-files.conf 파일을 편집하고 AccessLog,ErrorLogPageLog 매개변수를 이러한 로그 파일을 저장하려는 경로로 설정합니다.

    AccessLog /var/log/cups/access_log
    ErrorLog /var/log/cups/error_log
    PageLog /var/log/cups/page_log
  2. /var/log/cups/ 이외의 디렉터리에 로그를 저장하도록 CUPS를 구성하는 경우 이 디렉터리에 cupsd_log_t SELinux 컨텍스트를 설정합니다. 예를 들면 다음과 같습니다.

    # semanage fcontext -a -t cupsd_log_t "/var/log/printing(/.*)?"
    # restorecon -Rv /var/log/printing/
  3. cups 서비스를 다시 시작하십시오.

    # systemctl restart cups

검증

  1. 로그 파일을 표시합니다.

    # cat /var/log/cups/access_log
    # cat /var/log/cups/error_log
    # cat /var/log/cups/page_log
  2. /var/log/cups/ 가 아닌 다른 디렉터리에 로그를 저장하도록 CUPS를 구성한 경우 로그 디렉터리의 SELinux 컨텍스트가 cupsd_log_t:인지 확인합니다.

    # ls -ldZ /var/log/printing/
    drwxr-xr-x. 2 lp sys unconfined_u:object_r:cupsd_log_t:s0 6 Jun 20 15:55 /var/log/printing/

13장. CUPS 문서에 액세스

CUPS는 CUPS 서버에 설치된 서비스 문서에 대한 브라우저 기반 액세스를 제공합니다. 이 문서에는 다음이 포함됩니다.

  • 명령줄 프린터 관리 및 회계와 같은 관리 문서
  • 도움말 페이지
  • 관리 API와 같은 프로그래밍 문서
  • 참고 자료
  • 사양

사전 요구 사항

절차

  1. 브라우저를 사용하고 http:// <hostname_or_ip_address > :631/help/ : 에 액세스합니다.

    cups 도움말
  2. 온라인 도움말 문서에서 항목을 확장하고 읽을 문서를 선택합니다.

법적 공지

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.