Шлюз печати на основе CUPS для терминального сервера на базе MS WS 2008 R2 и его клиентов на базе MS Win 2k/XP с подключёнными к ним принтерами

в 10:29, , рубрики: cups, GNU/Linux, windows 7, windows server 2008 r2, лвс, Песочница, печать, системное администрирование, старое железо, метки: , , , , , ,

Вам будет интересно ознакомиться с данным отчётом, если картина развития Вашей ЛВС подходит под следующее описание

  • Новый терминальный сервер MS Windows Server 2008 R2 — на смену старенькому Windows Server 2003 R2
  • Клиентские рабочие станции на MS Windows 2000 или на MS Windows XP с подключенными к ним принтерами, к которым открыт доступ через сеть Microsoft, нормально работающими как автономно, так и при подключении к ним с других клиентов, так и при подключении к терминальному серверу на базе Windows Server 2003 R2 через сеть Microsoft
  • Принтеры — старые, возможно даже не HP, для которых нет драйвера для MS WS 2008 R2

    • Либо сам принтер HP и поддерживается универсальным драйвером, но ОС, стоящая на клиентской машине — MS Windows 2000, т.е. не подразумевает его установку
    • Либо принтер — HP, и ОС клиентской машины совместимы с универсальным драйвером, и проблема его установки решила бы проблему несовместимости с MS Windows Server 2008 R2, но на одной из клиентских машин есть, к примеру, виртуальая машина с унаследованной системой на базе ОС MS Windows 98, также использующая этот принтер, что также не подразумевает установку HP Universal Printer Driver, т.к. его реализации для Win98 нет
  • Очевидно, что печатаете на Ваш принтер не только Вы, но и Ваши соседи по кабинету, т.е. редирект с средствами клиента удалённого рабочего стола здесь не рассматривается; да и не всегда, как показывает практика, работает: как по причине несовместимости драйверов, так и из-за неизученности применимости нюансов таких узкоспециализированных технологий, как EasyPrint
  • В сети появляются новые клиенты, на базе ОС Windows 7, которым, возможно, и не нужен доступ к терминальному серверу, но которым надо будет печатать по сети на такие старые принтеры
  • Предполагается, что даже для таких проблемных принтеров есть драйвера в системе CUPS
  • Вы, как администратор системы, не боитесь использовать UNIX-подобные операционные системы в повседневных задачах, и имеете с ними опыт общения

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

Практическая необходимость данного решения

Несколько экземпляров печатающих устройств подпали под некоторые случаи, рассмотренные в преамбуле отчёта. К примеру: один XEROX DocuPrint P8ex (клиентская ОС Windows XP) и два экземпляра HP LaserJet 1005 (один подключён к клиентскому компьютеру на базе Windows 2000, другой — на базе Windows XP).

Маршрут, по которому проходит задание на печать

  1. Прикладная программа на сервере Windows 2008 R2 или на рабочей станции Windows 7; клиент IPP
  2. Шлюз на GNU/Linux с системой печати CUPS и с клиентом SAMBA
  3. Клиентское рабочее место Win 2k/XP с локально подключённым принтером, к которому предоставлен доступ из сети Microsoft

Идея шлюза

Пришла в голову после ознакомления с [1] и поиском альтернативы установки GNU/Linux на клиентские машины; вероятно, также, подсознательно на возникновение такой архитектуры повлияло знакомство с трёхзвенной архитектурой доступа к БД [2] и поиск вариантов использования её как таковой, так и её аналогий.
Само понятие шлюза не вполне подходит к данному контексту, а только по аналогии: согласно [3, с.313]

«Шлюз — ретрансляционная система, обеспечивающая взаимодействие двух информационных сетей.»

Точней было бы назвать его виртуальным шлюзом печати или как-нибудь иначе; далее, для краткости это звено маршрута будем называть просто шлюзом.

Самое интересное уже изложено, пора переходить к рутине. Далее приводится…

Концепт инструкции по развёртыванию шлюза

  1. На клиентской машине с адресом 192.168.a.b есть пользователь prn_user с паролем secret — для печати через сеть Microsoft, подсистема печати настроена и работает в существующем виде в среде Windows 2000/XP/2003. Смотрим имя принтера в сети: контекстное меню принтера, пункт «Свойства», вкладка «Доступ», поле «Общий ресурс:» xerox. %computername% этого клиента: UHost01 — он будет нам нужен, например для генерации осмысленного имени в системе CUPS; хотя, если он совпадает с именем DNS внутри локальной зоны, и у Вас в хозяйстве хорошо работает разрешение имён в IP-адреса, и включен поиск внутри суффикса домена этой зоны, то его, возможно, можно использовать и в качестве замены адресу 192.168.a.b далее по тексту.
  2. Настраиваем шлюз печати
    1. Общесистемные работы с сервером CUPS
      1. Базовая часть шлюза. Выглядит так
        1. Железо шлюза: старенький серверный системный блок DELL PowerEdge 1400 2xCPU iP-III-800/1536 MB RAM/18 GB HDD
        2. ОС: Debian GNU/Linux 6.0 i386
        3. Адрес шлюза: 192.168.a.c
      2. Установка пакетов
        Если CUPS еще не установлен, даём команду на его установку

        # aptitude install cups

        0 пакетов обновлено, 52 установлено новых, 0 пакетов отмечено для удаления, и 0 пакетов не обновлено.
        Необходимо получить 26,7 MB архивов. После распаковки 83,2 MB будет занято.
        Хотите продолжить? [Y/n/?] Y
        ...

        Cмотрим, запущен ли CUPS

        # /etc/init.d/cups status
        Status of Common Unix Printing System: cupsd is running.

        Что и требовалось, идём дальше.
        Также, в системе необходимо наличие пакета smbclient, т.к. вывод на сетевой принтер будет по протоколу SMB, и в этом пакете есть backend для CUPS.

      3. Необходимо убедиться, что CUPS настроен на приём заданий извне
        Идём в админку, например, так: http://192.168.a.c:631/, жмём на вкладку «Администрирование», далее, в секции «Сервер» — «Параметры сервера:» необходимо, чтобы стояли галочки «Разрешить совместный доступ к принтерам, подключенным к этой системе» и «Разрешить печать из Интернета»; если нет, то жмём «Сохранить», после нажатия которой нас спросят логин и пароль, по умолчанию это логин/пароль от нашей линуксовой системной учётной записи суперпользователя, т.е. от root.
    2. Подключаем принтер в CUPS
      1. Вкладка «Администрирование», в секции «Принтеры», жмём кнопку «Добавить принтер»
      2. В секции «Другие сетевые принтеры:», выбираем значение радиокнопки «Windows Printer via SAMBA» и жмём «Продолжить»
      3. Секция «Добавление принтера», В поле «Подключение:» вводим значение "smb://prn_user:secret@192.168.a.b/xerox" (здесь и далее: вводить значение без кавычек) и жмём «Продолжить»
      4. Заполняем далее поля таким образом
        Название: вбиваем "Uhost01_xerox" — это будет именем принтера в системе CUPS
        Следующие два поля не так критичны, их значения должны быть придуманы Вами для Вашего же удобства:
        Описание: "Xerox DocuPrint P8ex"
        Расположение: "1 этаж, комната 13, Парфюмерия, пользователь Сидорова А.И."
        Подключение: "smb://prn_user:secret@192.168.a.b/xerox" (уже вбито, выводится для справки)
        «Совместный доступ:» — «Разрешить совместный доступ к этому принтеру» — сюда надо поставить галочку
        Жмём кнопку «Продолжить»
      5. Выбираем драйвер принтера с таким же именем, что и у нас, если же нет — то ближайший по названию; такой подход работает практически в большинстве случаев
        Создать: «Xerox» — жмём «Продолжить»
        Модель: выбираем «Xerox DocuPrint P8e Foomatic/hpijs-pcl5e (recommended) (черно-белый, дуплексная печать)», и внизу жмём кнопку «Добавить принтер»
      6. Попадаем на страницу «Установить параметры по умолчанию для Uhost01_xerox» — тут различные параметры лотков и размера бумаги; я оставил всё как есть и нажал на «Сохранить параметры по умолчанию»
      7. На несколько секунд появится окно, где сообщается, что наш принтер использует параметры по умолчанию
      8. Попадаем на страницу вновь добавленного принтера и даём команду «Обслуживание — печать пробной страницы»
    3. Если пробная страница напечаталась ОК, то принтер готов для работы в CUPS, можно идти далее
  3. Настраиваем сервер MS WS 2008 R2 или клиент Windows 7
    1. Предварительная настройка
      1. Включаем Клиент интернет-печати
        1. Для случая с ОС Windows 7
          Проверяем: в компонентах должен быть включен клиент интернет-печати: Пуск — Панель управления — Программы и компоненты — в появившемся окне нажать на надпись слева «Включение или отключение компонентов Windows» далее по дереву: «Службы печати и документов» — «Клиент интернет-печати» — у последнего галка должна стоять; если не стоит, то ставим. Нажимаем «ОК» для подтверждения внесённых изменений либо «Отмена», если изменения не вносили.
        2. Для случая с ОС MS Windows Server 2008 R2
          Этот компонент по умолчанию отключен [4, Tuesday, March 15, 2011 1:49 AM], и мне пришлось повозиться, чтобы понять, почему не работает добавление принтера, описанное в п.3.2.
          Пуск — Панель управления — Программы — Включение или отключение компонентов Windows
          В появившемся окне выбрать слева пункт «Компоненты» найти кнопку с зелёным плюсиком «Добавить компоненты» и в списке поставить галочку напротив «Клиент интернет-печати», нажать «Далее» «Установить».
      2. Если компонент «Клиент интернет-печати» был выключен, и мы его включили, т.е. выполняли пункт 3.1.1., то после этого перезапускаем сервер печати, для чего в командной строке:

        > net stop spooler
        > net start spooler

      3. Меняем настойки на прокси-сервер
        Все пользователи данного принтера должны отключить у себя прокси в свойствах обозревателя, либо прописать исключение, т.е. 192.168.a.c или для его подсети в целом, т.е. для 192.168.a.*.
    2. Настройка принтера
      Данный пункт делаем также с правами администратора; изначально, принтер будет доступен всем пользователям.

      1. Пуск — устройства и принтеры
      2. Установка принтера (появится окно мастера)
      3. Для MS Windows Server 2008 R2 будет дополнительный шаг, в котором жмём на «Добавить локальный или сетевой принтер от имени администратора.»
      4. Добавить сетевой, беспроводной или bluetooth принтер
      5. Нажать «нужный принтер отсутствует в списке»
      6. Радиокнопка должна стоять в позиции «Выбрать общий принтер по имени», рядом с ней — поле, куда вбиваем "http://192.168.a.c:631/printers/Uhost01_xerox", жмём «Далее»
      7. При удачном контакте с принтером появится «Мастер установки принтера», при неудачном — сообщение об ошибке. Если строка, указанная выше, открывается в браузере, то связь по сети есть, и мы просто забыли установить Клиент интернет-печати и/или перезагрузить спулер.
      8. Выбираем принтер: изготовитель «Generic», принтеры «MS Publisher Imagesetter». ОК
      9. «Вы успешно установили ....» — значит всё ок. жмём «Далее»
      10. Жмём «Печать пробной страницы» для распечатки пробной страницы. «Пробная страница была отправлена на принтер» — нажимаем «Закрыть». «Готово» — для закрытия мастера
  4. Радуемся вместе с пользователями

Источники

  1. avz.org.ua/wp/2011/06/17/printing-to-cups-from-windows/
  2. ru.wikipedia.org/wiki/Трёхзвенная_архитектура
  3. Якубайтис Э.А. Информационные сети и системы. Справочная книга. — М.: Финансы и статистика, 1996. — 386с.: ил.
  4. social.technet.microsoft.com/Forums/en-US/winserverprint/thread/8e6130df-acba-4a8c-b984-a455667e9e49/

Автор: Infra_HDC

Источник

  1. Антон:

    Спасибище тебе дружище! Твоя статья мне очень помогла… пол года бился чтоб CUPS принтер в 2008 подключить через интернет печать…..

  2. Олег:

    Небольшое добавление к этой статье – очень желательно установить в свойствах принтера MS Publisher Imagesetter на сервере сжатие рисунков (ПКМ на принтере – Настройки печати – Дополнительно – Параметры PostScript – Сжатие рисунков – “Да”. Иначе при печати графики, в т.ч. PDF, размер передаваемых по сети данных (на комп с принтером) увеличивается до неприличия

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js