[3] CUPS – Testowanie

15 lutego 2023 Wyłączono przez Adam [zicherka] Nogły

Zainstalujemy najpierw sterowniki dla obu rodzajów drukarek – czyli Gutenprint oraz HPLIP.

Sterownik Gutenprint

Sterowniki Gutenprint można znaleźć pod adresem Gutenprint Printer Drivers (sourceforge.net) [https://gimp-print.sourceforge.net/]. Sterowniki te można zainstalować na dwa sposoby. Albo kompilując je z portu, albo instalując z pakietu. Aby zainstalować je z kolekcji portów wykonaj (przygotuj się na dłuższą przerwę 😉 ), no i oczywiście także tutaj zalecam pozostawienie domyślnych ustawień:

root@vfbsd01:~ # cd /usr/ports/print/gutenprint/
root@vfbsd01:/usr/ports/print/gutenprint # make install clean

Aby zainstalować sterowniku Gutenprint z pakietu wykonaj:

root@vfbsd01:~ # pkg install gutenprint

Sterownik HPLIP

Sterownik HP Linux Imaging and Printing został opracowany przez firmę Helwett-Packard, a co za tym idzie 99,9% drukarek tego producenta jest obsługiwanych przez ten sterownik. Można go znaleźć pod adresem HP Linux Imaging and Printing download | SourceForge.net [https://sourceforge.net/projects/hplip/]. Sterowniki te można zainstalować na dwa sposoby. Albo kompilując je z portu, albo instalując z pakietu. Aby zainstalować je z kolekcji portow wykonaj (przygotuj się na dłuższą przerwę 😉 ), no i oczywiście także tutaj zalecam pozostawienie domyślnych ustawień:

root@vfbsd01:~ # cd /usr/ports/print/hplip/
root@vfbsd01:/usr/ports/print/hplip # make install clean

Aby zainstalować sterowniku HPLIP z pakietu wykonaj:

root@vfbsd01:~ # pkg install hplip

Dodawanie drukarki

Upewnij się, że drukarka jest podłączona (USB, LPT, LAN/WiFi) i posiada włączone zasilanie. Dobrze by było gdyby nie była także w stanie czuwania – niekiedy są problemy z jej wybudzeniem.
Przejdź na stronę https://nazwa_hosta lub adres_IP:631/admin i zaloguj się jako [root] do interfejsu administracyjnego CUPS.

Kliknij [Add Printer].

Ja posiadam drukarkę Canon serii MG6300, a dokładnie model MG6350. Taka też została wykryta przez serwer CUPS. Drukarka jak widać jest dostępna pod adresem IP [192.168.100.21] i podłączona jest za pośrednictwem sieci LAN. Wykryto także drugą drukarkę – Canon LBP 6650. Jest to czarno-biała laserowa drukarka. Klikamy na naszą drukarkę – w tym przypadku wybieramy MG6300 i klikamy [Continue].

Uzupełniamy informacje o drukarce w polach [Name], [Description] oraz [Location], następnie klikamy [Continue]. Jeśli chcemy w przyszłości udostępnić ta drukarkę innym komputerom w sieci zaznacz opcję [Shere This Printer].

W oknie [Model] wybieramy model naszej drukarki, następnie klikamy [Add Printer].

W tym oknie otrzymaliśmy informację, że dodawanie drukarki zakończyło się sukcesem. To jednak nie koniec. Klikamy [Printers].

W kolumnie [Queue Name] klikamy na naszą drukarkę.

Wybieramy z pierwszego rozwijanego menu [Print Test Page].

Jeśli strona testowa zostanie poprawnie wydrukowana, możemy uznać za ukończone dodawanie drukarki do serwera CUPS.

Dodawanie drukarki (wirtualna drukarka PDF)

Wiem, że systemy Microsoft Windows 10 i 11 posiadają wbudowaną drukarkę wirtualna PDF, ale jak się bawić to się bawić. Dlatego też zainstalujemy wirtualną drukarkę PDF dla/na serwerze CUPS.
Zainstalujemy najpierw dodatkowe pakiety, aby nie było po drodze żadnych problemów. Zatem do dzieła.

root@vfbsd01:~ # pkg install cups-pdf cups-filters cups-pk-helper dymo-cups-drivers

Następną czynnością jaką musimy wykonać to dodać wpis do pliku konfiguracyjnego CUPS, a mianowicie:

root@vfbsd01:~ # mcedit /usr/local/etc/cups/cupsd.conf
# linia 7: dodaj
Listen 192.168.100.106:9100 # oczywiście wpisz adres serwera CUPS

No i oczywiście po wprowadzeniu zmian restart serwera CUPS.

root@vfbsd01:~ # service cupsd restart

Przechodzimy w przeglądarce na adres serwera CUPS – czyli w naszym przypadku https://192.168.100.106:631/admin], zostanie wyświetlony monit z prośbą o logowanie. Zatem wpisujemy nazwę użytkownika [root] oraz jego hasło i klikamy [Zaloguj].

Nastepnie klikamy [Add Printer].

Wybieramy pierwsza pozycję, czyli [CUPS-PDF (Virtual PDF Printer)] i klikamy [Continue].

W tym oknie wpisujemy nazwę pod jaka ma widnieć nasza wirtualna drukarka, następnie opis oraz jej lokalizację. Jeśli zamierzamy korzystać z tej drukarki także na innych komputerach w sieci zaznaczamy [Shate This Printer]. Klikamy [Continue].

Wybieramy jako [Make] producenta [Generic] i klikamy [Continue].

W wyświetlonym oknie wybieramy model wirtualnej drukarki PDF, czyli w oknie [Model] zaznaczamy [Generic CUPS-PDF Printer (w/ options) (en)] i klikamy [Add Printer].

Drukarka dodana. Jeżeli chcesz możesz ustawić opcje drukarki. Dokonasz tego klikając w [Set Printer Options].

Zalecam zmienić ustawienie rozmiaru papieru, z wszędobylskiego amerykańskiego US Letter na europejski A4. Klikamy zatem w listę rozwijaną [Page size] i wybieramy [A4]. Następnie klikamy [Set Default Options].

Zostanie wyświetlone okno z informacją, że domyślne ustawienia zostały zmienione i zapisane. Po chwili przeniesieni zostaniemy do następnego okna.

W tym oknie z listy [Maintenace] wybieramy [Print Test Page], aby wydrukować stronę testową, której obecność potwierdzi prawidłowość ustawień i działania wirtualnej drukarki PDF.

Na chwilę pokaże się okno z informacja, że strona testowa została wysłana do drukarki i powrócimy na stronę naszej drukarki wirtualnej PDF. Jeśli teraz klikniemy teraz na [Show All Job] rozwinie się lista z informacją, że wydruk się wykonał, o czym świadczy wpis [completed at] w kolumnie [State].

Wszystko OK, wydrukw formacie PDF wydrukowany, lecz gdzie on się znajduje? Dla użytkownika [root] jest to lokalizacja [/var/spool/cups-pdf/root/], jeśli zaś drukowałeś z „normalnego” konta, które istnieje w systemie, to lokalizacja Twoich wydruków jest w [/var/spool/cups-pdf/[nazwa_użytkownika]/]. Jeśli wydruki były prowadzone anonimowo – po prostu skorzystałeś z wirtualnej drukarki PDF, to wydrukowane pliki są w [/var/spool/cups-pdf/ANONYMOUS/]. Jednak kłopotliwe jest wyszukiwanie ciągle tego folderu w czeluściach komputera. Zatem utwórzmy dowiązanie do tej lokalizacji.
Jeśli posiadasz już konto w systemie to stwórz jakikolwiek katalog, do którego będzie dowiązany wcześniej wymieniony folder z wydrukowanymi PDF’ami.

fbsduser@vfbsd01:~ $ mkdir wydruki_pdf
fbsduser@vfbsd01:~ $ ln -s /var/spool/cups-pdf/$USER/*.* /home/fbsduser/wydruki_pdf
fbsduser@vfbsd01:~ $ ls /home/fbsduser/wydruki_pdf
Strona_testowa-job_6.pdf Strona_testowa-job_8.pdf
Strona_testowa-job_7.pdf p.pdf

Udostępnianie i dodawanie drukarki do Windows 10

Aby można było podłączyć się do drukarki, która jest dodana do serwera wydruków CUPS, należy pamiętać, aby w czasie jej dodawania zaznaczyć opcję [Share This Printer] oraz włączyć udostępnianie drukarek – opisane to zostało w: Włączanie udostępniania drukarek.
Rodzi się zapewne pytanie dlaczego używam adresów IP, a nie FQDN? Otóż dlatego, że po skonfigurowaniu drukarek, jak padną DNS’y to będzie dużo bardziej kłopotliwe zmieniać FQDN na adresy IP w ustawieniach drukarek. Dlatego sądzę, że warto poświęcić troszkę więcej klikania z adresami IP teraz, aniżeli w czasie awarii zmieniać ustawienia drukarek – które zapewne wtedy będą najbardziej potrzebne.
Przechodzimy w dowolnej przeglądarce na adres [https://192.168.100.106:631/printers/] i klikamy na nazwę drukarki, która jest linkiem, a którą chcemy zainstalować w systemie Microsoft Windows 10. My chcemy drukować na drukarce Canon MG6300-COLOR.

W tym momencie interesuje nas adres, jaki wyświetla się w pasku adresu przeglądarki. Należy go zapamiętać/zapisać – ALE z przedrostkiem http a nie jak wpisane jest z https. Czyli w naszym przypadku adres do zapamiętania to:

http://192.168.100.106:631/printers/Canon_MG6300-COLOR

W systemie Microsoft Windows 10 klikamy: [Panel Sterowania] > [Urządzenia i drukarki].

Wybieramy/klikamy [Dodaj Drukarkę].

System wyszuka drukarki, lecz nie naszą, obsługiwaną przez CUPS. Dlatego też klikamy na Łącze [Drukarki, której szukam, nie ma na liście].

Wybieramy drugą opcję, czyli: [Wybierz drukarkę udostępnioną według nazwy], zaś w pole wpisu-jemy adres, który prosiłem zapamiętać troszkę wcześniej – oczywiście w formaci http, a nie https. Czyli w naszym przykładzie jest to adres: [http://192.168.100.106:631/printers/Canon_MG6300-COLOR] i klikamy [Dalej].

Przyszedł teraz czas na instalację sterowników. Zazwyczaj są dostępne na dołączonej płycie CD/DVD do urządzenia. Względnie można je pobrać ze strony producenta. Jednak nie instalujmy posiadanego/pobranego zestawu sterowników, lecz rozpakujmy je do wybranego folderu. Klikamy [Z dysku] i poszukujemy lokalizacji naszego sterownika.

Wybieramy w następnym okienku [Przeglądaj] i szukamy pliku sterownika, zaznaczamy go i klikamy, następnie klikamy [Otwórz], w kolejnym oknie klikamy [OK].
Pokaże się okno z drukarka, która jest obsługiwana przez instalowany właśnie sterownik – jeśli wszystko się zgadza klikamy [OK].

Następuje łączenie z drukarką i instalacja sterownika. Może dojść do sytuacji, że system zapyta nas o pozwolenie na wprowadzenie zmian w systemie. Skoro chcemy zainstalować sterownik, to po-winnismy zezwolić na wprowadzenie tych zmian klikając [TAK].

Po kilku chwilach, naszym oczom ukazuje się okienko z informacją o pomyślnym zainstalowaniu/dodaniu drukarki. Klikamy [Dalej].

Podsumowanie instalacji. Dla pewności i kontroli czy wszystko jest OK, zalecam wydrukowanie strony testowej poprzez kliknięcie [Drukuj stronę testową]. Jeśli drukarka „wypluje” wydruk to można uznać za udane zakończenie dodawania drukarki.

Wirtualna drukarka PDF

Dodawanie tej drukarki wygląda identycznie z wyjątkiem sterowników. No bo jakże dodać sterowniki do wirtualnej drukarki PDF? Z pomocą przychodzą wielkie tuzy tego rynku – w tym przypadku HP. Ściągamy ze strony HP Universal Print Driver for Windows 64-bit PCL 6 Pobieranie oprogramowania i sterowników | Pomoc techniczna HP® dla klientów [https://support.hp.com/pl-pl/drivers/selfservice/hp-universal-print-driver-series-for-windows/503548/model/3271552] sterowniki dla odpowiedniego systemu operacyjnego. Dla Microsoft Windows 10 jest to plik [upd-ps-x64-7.0.1.24923.exe].

Ograniczanie uprawnień

Ograniczenia do korzystania z serwera drukarek można wykonać za pomocą adresów IP lub uwierzytelnianiu klientów.
Aby ograniczyć możliwość drukowania tylko dla uwierzytelnionych użytkownikownależy dodać na końcu pliku [/usr/local/etc/cups/cupsd.conf] następujące wiersze:

root@vfbsd01:~ # mcedit /usr/local/etc/cups/cupsd.conf
# dodaj na końcu
<Location /printers>
AuthType Basic
AuthClass User
</Location>

Po dokonaniu powyższej modyfikacji restartujemy serwer CUPS.

root@vfbsd01:~ # service cupsd restart

Teraz każdy użytkownik, który będzie chciał przesłać zadanie do druku do dowolnej drukarki, będzie musiał podać nazwę użytkownika i hasło. Muszą to być użytkownicy systemowi, którzy posiadają konto w systemie. Nazwa użytkownika i hasło jest przesyłane otwartym tekstem. To powoduje ogromny spadek zabezpieczeń systemu.
Rozwiązaniem może być ograniczenie drukowania za pomocą adresów IP. W poniższym przykładzie zezwolimy na drukowanie ze stacji o adresach IP [192.168.100.108] i [192.168.100.109].

root@vfbsd01:~ # mcedit /usr/local/etc/cups/cupsd.conf
# dodaj na końcu
<Location /printers>
Order Deny,Allow
Deny from All
Allow from 192.168.100.108
Allow from 192.168.100.109
</Location>

Po dokonaniu powyższej modyfikacji restartujemy serwer CUPS.

root@vfbsd01:~ # service cupsd restart

Powyższe metody to jedynie proste reguły kontroli dostępu. Bardziej zaawansowane metody można wykorzystać wraz z użyciem SAMBA.

Certyfikaty SSL

Standardowe certyfikaty, które są instalowane wraz z serwerem wydruku CUPS, można zastąpić swoimi certyfikatami. Wymaga to dodania na końcu pliku [/usr/local/etc/cups/cupsd.conf] dwóch wierszy, które poinformują serwer CUPS o lokalizacji pliku certyfikatu i pliku klucza. Przykładowo wykorzystamy nasze certyfikaty, które wcześniej utworzyliśmy:

root@vfbsd01:~ # mcedit /usr/local/etc/cups/cupsd.conf
# dodaj na końcu
ServerCertificate /usr/local/openssl/certs/vfbsd01.zicher.lab-cert.pem
ServerKey /usr/local/openssl/vfbsd01.zicher.lab-unencrypted-key.pem

No i oczywiście po wprowadzeniu zmian restart serwera CUPS.

root@vfbsd01:~ # service cupsd restart