Как настроить веб-конфигурируемый печатный сервер на Ubuntu Server с помощью SWAT, CUPS и SAMBA
О чём эта инструкция
Это руководство показывает, как превратить Ubuntu Server в головной (headless) печатный сервер, доступный через веб-интерфейс CUPS и общий для Windows через Samba. Мы используем SWAT для веб-конфигурации Samba. Материал основан на реальном опыте и проверенных шагах.
Ключевые термины:
- CUPS — система печати для UNIX-подобных систем. Однострочное определение: обеспечивает очередь печати и веб-интерфейс для управления принтерами.
- Samba — обеспечивает совместный доступ к файлам и принтерам для Windows-клиентов.
- SWAT — веб-интерфейс для конфигурации Samba.
Важно: перед началом используйте актуальную версию Ubuntu Server и обновите систему.
Требования и предпосылки
- Ubuntu Server (рекомендуется LTS).
- Доступ к интернету для скачивания пакетов.
- SSH-доступ с другой машины в локальной сети (например, PuTTY на Windows).
- Имя хоста для сервера: в примерах используется PRINTSERVER — замените на своё.
- Локальный пользователь UNIX, которого будете использовать для управления.
- Физически подключенный принтер или принтер в сети.
Примечание о сетях: если сервер за NAT/маршрутизатором, следите за настройками firewall/маршрутизатора; по умолчанию пример позволяет доступ к сервисам CUPS и SWAT из локальной сети.
Шаг 0. Установка Ubuntu Server и базовая конфигурация
- При установке включите openssh и LAMP (если требуются дополнительные web-функции). Для большинства задач достаточно openssh.
- Убедитесь, что сервер подключён к сети и получает IP от DHCP.
- После входа через консоль определите IP сервера:
ifconfigНайдите адрес в строке inet (не 127.0.0.1). Например: inet addr:192.168.2.8.
Шаг 1. Подключение по SSH с другой машины
Скачайте и запустите любимый SSH-клиент (например, PuTTY) и подключитесь к IP сервера по порту 22. Введите имя пользователя и пароль.
Шаг 2. Установка CUPS
sudo apt-get install cupsys cupsys-client xinetdДалее создаём резервную копию конфигурации CUPS и защищаем её от случайных изменений:
sudo cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.originalsudo chmod a-w /etc/cups/cupsd.conf.originalОтредактируйте основной конфигурационный файл:
sudo nano /etc/cups/cupsd.confНайдите и отредактируйте строку администратора и добавьте необходимые параметры:
ServerAdmin [email protected]
DefaultEncryption Never
Browsing on
BrowseAllow allЕсли в файле есть строки, запрещающие просмотр или разрешающие только локальную сеть, замените их или закомментируйте, добавив #:
#BrowseAllow @LOCAL
#BrowseAddress @LOCAL
#Browsing offВ блоках
Allow AllНапример:
Order allow,deny
Allow All
Добавьте прослушивание порта 631 (для доступа к веб-интерфейсу CUPS):
Listen 631Важно: Такая настройка разрешает доступ всем, кто может подключиться к серверу на порт 631. Для защищённой сети следует ограничить доступ по IP или использовать шифрование и аутентификацию.
Перезапустите службы:
sudo /etc/init.d/cups restartsudo /etc/init.d/xinetd restartПерезагрузка сервера необязательна, но при желании можно выполнить:
sudo rebootСоздайте пользователя CUPS (используйте уже существующее UNIX-имя):
lppasswd -a yourusernameПодключите принтер физически к серверу или убедитесь, что сетевой принтер доступен.
Шаг 3. Проверка веб-интерфейса CUPS
Откройте браузер на другом компьютере в сети и перейдите по адресу:
Если доступ закрыт, увеличьте логирование для отладки:
LogLevel warnзамените на
LogLevel debugПросмотр логов:
sudo nano /var/log/cups/error_logОчистите лог перед тестом (например, alt-T в nano для удаления), затем повторите попытку и изучите новые записи.
Через веб-интерфейс CUPS добавьте принтер, укажите драйвер или PPD-файл, если это необходимо. Многие принтеры HP распознаются автоматически.
Шаг 4. Установка Samba и SWAT для Windows-доступа
sudo apt-get install samba smbfs swatСоздайте пользователя Samba (должен совпадать с UNIX-пользователем):
sudo smbpasswd -a usernameДобавьте службу SWAT для xinetd. Отредактируйте файл:
sudo nano -w /etc/xinetd.d/swatВставьте или проверьте содержимое:
# description: SAMBA SWAT
{
service swat
disable = no
socket_type = stream
protocol = tcp
#should use a more limited user here
user = root
wait = no
server = /usr/sbin/swat
}Перезагрузите конфигурацию xinetd:
sudo dpkg-reconfigure xinetdПроверьте, запущен ли SWAT:
sudo netstat -tap | grep swatОткройте в браузере:
Вход: пользователь root и пароль Samba (тот, который вы указали командой smbpasswd).
В SWAT на вкладке globals укажите имя рабочей группы и установите security = user (рекомендуется для сетей с учётом разделения прав). Нажмите Commit changes.
После этого принтеры из CUPS должны быть доступны для Windows-клиентов как сетевые принтеры Samba.
Отладка и типичные проблемы
- Нельзя подключиться к CUPS по сети: проверьте Listen 631, firewall (ufw/iptables), маршрутизацию. Проверьте, не слушает ли CUPS только локальный интерфейс (127.0.0.1).
- SWAT недоступен: проверьте xinetd и netstat, убедитесь, что /usr/sbin/swat существует.
- Драйверы принтера отсутствуют: найдите PPD или драйвер для Linux на сайте производителя или в репозиториях.
- Права доступа: убедитесь, что пользователи Samba совпадают с UNIX-аккаунтами или применены соответствующие настройки security в smb.conf.
Безопасность и жёсткая конфигурация
Важно: по умолчанию приведённые настройки открывают порты CUPS (631) и SWAT (901) на сервере. Для продакшен-среды выполните следующее:
- Ограничьте доступ к портам через ufw или iptables только для доверенных подсетей.
- Настройте шифрование для CUPS (TLS) и включите аутентификацию администраторов.
- Не запускайте SWAT как root при открытом доступе из интернета; ограничьте доступ по IP.
- Используйте сложные пароли для Samba-пользователей и регулярную смену.
Пример базовой блокировки с ufw:
sudo ufw allow from 192.168.0.0/24 to any port 631 proto tcp
sudo ufw allow from 192.168.0.0/24 to any port 901 proto tcp
sudo ufw enableЗамените подсеть на ту, где находятся ваши клиенты.
Контрольный список перед вводом в эксплуатацию
- Ubuntu обновлён (sudo apt-get update && sudo apt-get upgrade).
- [ ] CUPS установлен и доступен по http://PRINTSERVER:631.
- Принтер добавлен в CUPS и тестовая печать проходит.
- [ ] Samba и SWAT установлены и доступны по http://PRINTSERVER:901.
- Samba-пользователи созданы (smbpasswd).
- Порты CUPS/SWAT ограничены в firewall для локальной сети.
- Документированы IP-адреса/имена хостов и пароли администратора.
Роль‑ориентированные чеклисты
Администратор сервера:
- Проверить журнал CUPS при проблемах: /var/log/cups/error_log.
- Проверить состояние xinetd и SWAT: sudo systemctl status xinetd или dpkg-reconfigure xinetd.
- Настроить резервное копирование /etc/cups и /etc/samba.
ИТ‑поддержка/пользователь сети:
- Подключиться к принтеру в Windows: Добавить сетевой принтер через адрес smb://PRINTSERVER/printername или через диалог “Добавить принтер“.
- Проверить права доступа к очереди печати и тестовую печать.
Мини‑методология развёртывания (повторяемый процесс)
- Подготовка сервера: обновление и базовая сеть.
- Установка CUPS и базовая настройка доступа.
- Подключение и добавление принтера в CUPS, тестовая печать.
- Установка Samba и SWAT, создание Samba‑пользователя.
- Ограничение доступа в firewall и проверка с клиентских машин.
- Документирование конфигурации и создание бэкапов.
Критерии приёмки
- Веб‑интерфейс CUPS доступен в браузере и показывает добавленный принтер.
- Windows‑клиент видит принтер и может распечатать тестовую страницу.
- Логи не содержат критических ошибок при выполнении тестовой печати.
- Порты 631 и 901 доступны только из доверенной подсети.
Когда этот подход не подходит (ограничения)
- Если требуется корпоративный уровень безопасности или интеграция с Active Directory — Samba+SWAT в базовой конфигурации может не соответствовать требованиям; рассмотрите SSSD/AD или защищённую конфигурацию Samba.
- Если у вас много удалённых пользователей через интернет, открывать CUPS/SWAT в Интернет нельзя; используйте VPN или прокси.
Быстрый план отката
- Откатить изменения cupsd.conf, восстановив /etc/cups/cupsd.conf.original.
- Удалить SWAT из xinetd (отключить /etc/xinetd.d/swat и перезапустить xinetd).
- Остановить службы CUPS и Samba до повторной настройки.
Пример взаимодействия Windows-клиента с сервером
- В Проводнике Windows в адресной строке ввести: smb://PRINTSERVER
- Найти нужный принтер и подключиться.
- При необходимости указать учётные данные Samba.
Мера предосторожности
Важно: не открывайте SWAT и CUPS в публичный интернет без дополнительных мер: VPN, TLS и ограничений по IP.
Часто задаваемые вопросы
Как найти PPD‑файл для принтера?
Поискать на сайте производителя или в репозиториях Linux/Ubuntu; часто PPD содержится в драйверных пакетах HPLIP для HP.
Нужен ли SWAT в современной конфигурации?
SWAT удобен в простых сценариях, но в современных системах часто предпочитают править smb.conf напрямую и использовать более безопасные инструменты или GUI‑утилиты.
Можно ли использовать статический IP для PRINTSERVER?
Да. Для стабильности сервера печати рекомендуется фиксировать IP либо по статике, либо через DHCP reservation на маршрутизаторе.
Резюме
- Установите CUPS, добавьте принтер и проверьте печать через http://PRINTSERVER:631.
- Установите Samba и SWAT, создайте Samba-пользователя и настройте рабочую группу.
- Ограничьте доступ через firewall и используйте шифрование при необходимости.
Желаю удачи при настройке. Если возникнут конкретные ошибки — опишите их вывод логов, и я помогу с отладкой.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента