В проекте по внедрению RedOS для замены Windows-инфраструктуры вопрос с CUPS я оттягивал до последнего. Я прекрасно знаю какой это глюкодром, но выбора у меня особо нет да и тема интересная. Ну, что, погнали разбираться и по старой традиции все максимально документировать.

Установка CUPS
# dnf install cups cups-filters cups-ipptool samba
Устанавливаем Samba с поддержкой KADM5SRV_MIT.
# dnf install samba-4.19.9-9m.red80
# smbd -b | grep HAVE_KADM5SRV_MIT
HAVE_KADM5SRV_MIT
Настраиваем автозапуск и запускаем.
# systemctl enable smb
# systemctl enable cups
# systemctl start smb
# systemctl start cups
Открываем порт в Firewall (если он запущен).
# firewall‑cmd --permanent --add-service=ipp
# firewall‑cmd --reload
Проверяем, что сервис доступен на порту 631, но обратите внимание, что сервис по умолчанию доступен только с хоста где сервис и установлен.
# curl http://127.0.0.1:631
Разрешаем удаленный доступ к сервису.
# cupsctl --remote-admin
# cupsctl --remote-any
Перезапуск сервиса не требуется и можно сразу попробовать подключиться при помощи WEB-браузера.

Генерируем SSL сертификат для CUPS
При переходе в раздел администрирование будет запрошен пароль любого локального пользователя с правами SUDO и будет выведено предупреждение о некорректном сертификате.

Получаем SSL-сертификат по инструкции для FreeIPA PKI.
Файл конфигурации ключа и сертификата cups-files.conf.
ServerKey /etc/cups/ssl/rprint01-vm-nux.ipa.sngp.su.key
ServerCertificate /etc/cups/ssl/rprint01-vm-nux.ipa.sngp.su.key
Устанавливаем обязательный запрос SSL сессии, для чего в файл cupsd.conf добавляем параметр:
DefaultEncryption required
Настраиваем логирование в файл
По умолчанию логирование производится в SysLog, но нам было бы полезно логировать в файлы и для этого правим файл cups-files.conf.
AccessLog /var/log/cups/access_log
ErrorLog /var/log/cups/error_log
PageLog /var/log/cups/page_log
Используя WEB-интерфейс администрирования CUPS добавим принтер
Переходим в раздел Администрирование.

Так как мой тестовый принтер поддерживает протокол IPP, то его мы и будем использовать.

URI для подключения принтера обычно можно узнать в панели управления принтером.

Название, описание и расположение принтера лучше все же указывать осмысленными, а не с потолка взятые разного рода printer1. Так-же надо разрешить совместный доступ к принтеру.

Выбираем модель принтера или используем PPD файл от производителя или совместимый (тут конечно головная боль, но с учетом того, что MacBook использует эту подсистему печать, то дела не так уж и плохи).

Принтер отображается в списке принтеров.

Выполним печать пробной страницы.

Базовая настройка сервера печати
На главной странице управления сервером есть несколько параметров которые мы можем активировать сразу из панели управления.

Нас интересуют параметры.
- Разрешить совместный доступ к принтерам, подключенным к этой системе
- Разрешить печать из интернет
- Разрешить удаленное администрирование
- Разрешить аутентификацию Kerberos
- Разрешить пользователям отменять любое задание(не только их собственные)
Подключаем принтер с сервера печати CUPS на рабочую станцию
Проверяем, что локально подключенный принтер отображается в графической панели управления.

Аналогично подключения сетевого принтера добавим в локальный CUPS на хосте подключение к опубликованному на сервере печати принтеру.

Путь до подключаемого принтера мы смотрим в строке браузера на сервере.

Тип подключения будет http или https и модель принтера или PPD-файл как на сервере. Собственно на этом и все.




