10.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 인증서를 신뢰합니다.
프로세스
/etc/cups/cups-files.conf
파일을 편집하고 다음 설정을 추가하여 자체 서명된 인증서 자동 생성을 비활성화합니다.CreateSelfSignedCerts no
CreateSelfSignedCerts no
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 자체 서명된 인증서 및 개인 키를 제거합니다.
rm /etc/cups/ssl/<hostname>.crt /etc/cups/ssl/<hostname>.key
# rm /etc/cups/ssl/<hostname>.crt /etc/cups/ssl/<hostname>.key
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 서버의 FQDN을 표시합니다.
hostname -f
# hostname -f server.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 개인 키와 서버 인증서를
/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
# mv /root/server.key /etc/cups/ssl/server.example.com.key # mv /root/server.crt /etc/cups/ssl/server.example.com.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요CUPS를 사용하려면 개인 키 <
;fqdn > .key
및 서버 인증서 파일 <fqdn > .crt
를 지정해야 합니다. 별칭을 사용하는 경우 <alias>.key 및 <alias
>.crt 파일의
이름을 지정해야 합니다.root
사용자만 이 파일을 읽을 수 있는 개인 키에 대한 보안 권한을 설정합니다.chown root:root /etc/cups/ssl/server.example.com.key chmod 600 /etc/cups/ssl/server.example.com.key
# chown root:root /etc/cups/ssl/server.example.com.key # chmod 600 /etc/cups/ssl/server.example.com.key
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 인증서는 보안 연결을 설정하기 전에 클라이언트와 서버 간의 통신의 일부이므로 모든 클라이언트는 인증 없이 인증서를 검색할 수 있습니다. 따라서 서버 인증서 파일에 대한 엄격한 권한을 설정할 필요가 없습니다.
SELinux 컨텍스트를 복원합니다.
restorecon -Rv /etc/cups/ssl/
# restorecon -Rv /etc/cups/ssl/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 인증서의
CN
및 SAN 필드를 표시합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버 인증서의
CN
또는 SAN 필드에 서버의 FQDN과 다른 별칭이 포함된 경우ServerAlias
매개변수를/etc/cups/cupsd.conf
파일에 추가합니다.ServerAlias alternative_name.example.com
ServerAlias alternative_name.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 경우 절차의 나머지 부분에서 FQDN 대신 대체 이름을 사용합니다.
기본적으로 CUPS는 작업에 인증이 필요한 경우에만 암호화된 연결을 적용합니다(예: 웹 인터페이스의
/admin
페이지에서 관리 작업을 수행할 때).전체 CUPS 서버에 암호화를 적용하려면
/etc/cups/cupsd.conf
파일의 모든 <Location
> 지시문에Encryption
을 추가합니다. 예를 들면 다음과 같습니다.<Location /> ... Encryption Required </Location>
<Location /> ... Encryption Required </Location>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CUPS를 다시 시작합니다.
systemctl restart cups
# systemctl restart cups
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
-
브라우저를 사용하고
https:// <hostname> :631 /admin/
에 액세스합니다. 이렇게 하려면 브라우저가 CA 인증서를 신뢰해야 합니다. 연결에 성공하면 CUPS에서 TLS 암호화를 올바르게 구성했습니다. -
전체 서버에 암호화가 필요한 경우
http:// <hostname > :631/
에 액세스합니다. CUPS는Upgrade Required
오류를 반환합니다.
문제 해결
cups
서비스의systemd
저널 항목을 표시합니다.journalctl -u cups
# journalctl -u cups
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 저널에 연결을 암호화할 수 없는
Unable이 포함된 경우 다음을 수행합니다. HTTPS 프로토콜을 사용하여 웹 인터페이스에 연결하지 못한 후 파일을 읽는 동안 오류가 발생했습니다. 개인 키 및 서버 인증서 파일의 이름을 확인합니다.