11.6. Zvláštní vlastnosti v systému SUSE Linux

V SUSE Linuxu je v systému CUPS řada zajímavých vlastností. O těch nejdůležitějších se píše v následujícím textu:

11.6.1. CUPS server a firewall

Existuje několik možností, jak nastavit CUPS jako klienta síťového serveru.

  • Ke každé frontě na síťovém serveru můžete nastavit lokální frontu, přes kterou lze přeposílat tiskové úlohy na správný server. Tento přístup nelze obecně doporučit, neboť v případě změny konfigurace na serveru je nutno přenastavit i všechny klienty.

  • Tiskové úlohy je též možno přeposílat přímo na jeden síťový server. Při použití tohoto typu konfigurace nespouštějte lokálního démona CUPS. lp (a odpovídající knihovní volání dalších programů) umožňuje zasílat úlohy přímo na síťový server. Tuto konfiguraci však nelze použít, pokud chcete používat lokální tiskárnu.

  • Démon CUPS může naslouchat oznamovacím IPP paketům vysílaným síťovými servery pro oznámení dostupných front. Je to nejlepší možná CUPS konfigurace pro tisk na vzdálených CUPS serverech. Existuje ovšem riziko, že útočník vyšle falešné IPP pakety a lokální démon pak zašle tisková data na podvrženou frontu. Při používání této konfigurace musí být port 631/UDP otevřen pro příchozí pakety.

YaST může použít dvě metody vyhledávání CUPS serverů. Může skenovat všechny počítače na síti a zjišťovat, zda nabízejí službu CUPS, nebo může naslouchat IPP paketům (metoda popsaná výše). Takto jsou také během instalace vyhledávány CUPS servery nabízející služby. Druhá metoda vyžaduje otevření portu 631/UDP pro příchozí pakety.

Výchozí nastavení firewallu zakazuje naslouchat IPP oznamovacím paketům na všech rozhraních. Proto nemůže fungovat druhá metoda vyhledávání vzdálených front ani třetí metoda pro přístup ke vzdáleným frontám. Je tedy potřeba změnit nastavení firewallu. Je možné některé ze síťových rozhraní nastavit jako vnitřní (na kterém je port defaultně otevřen) nebo explicitně otevřít port na vnějším rozhraní. Z bezpečnostních důvodů není žádný z portů ve výchozím nastavení otevřen. Otevření portu pro konfiguraci vzdálených front druhou metodou může znamenat bezpečnostní riziko.

Nabídnuté nastavení firewallu je nutno změnit, aby mohl CUPS server během instalace detekovat vzdálené fronty. Jinou možností je oskenovat všechny lokální počítače nebo nakonfigurovat fronty ručně. Z důvodů zmíněných výše to však nedoporučujeme.

11.6.2. Administrátor webového frontendu CUPS

Pro administraci přes webový frontend (CUPS) nebo nástroj pro administraci tiskáren v KDE je nutné nastavit uživatele root jako CUPS administrátora, CUPS administrační skupinu sys a CUPS heslo. Učinit tak může uživatel root následujícím příkazem:

lppasswd -g sys -a root

Pokud toto nastavení neprovedete, nebude možná administrace přes webové rozhraní nebo administrační nástroj v KDE, protože autentizace bez nastavení CUPS administrátora selže. Jako CUPS administrátor může být nastaven i jakýkoliv jiný uživatel (viz 11.6.3 – „Změny v tiskové službě CUPS (cupsd)“).

11.6.3. Změny v tiskové službě CUPS (cupsd)

Tyto změny byly poprvé provedeny v systému SUSE Linux 9.1.

11.6.3.1. cupsd běží pod uživatelem lp

Při spuštění se program cupsd přepne z běhu pod uživatelem root na uživatele lp. Tím je dosaženo vyšší bezpečnosti, protože služba CUPS tak běží jen s potřebnými právy.

Nicméně autentizace (lépe řečeno kontrola hesla) nemůže být provedena přes /etc/shadow, protože uživatel lp k němu nemá přístup. Místo toho je použita autentizace specifická pro CUPS přes soubor /etc/cups/passwd.md5. Proto je do tohoto souboru nutné vložit CUPS administrátora, CUPS administrační skupinu sys a heslo. Provést to může uživatel root následujícím příkazem:

lppasswd -g sys -a CUPS-administrátor

Pokud běží cupsd pod uživatelem lp, nemůže vygenerovat soubor /etc/printcap, neboť nemá právo zapisovat do adresáře /etc/. Místo toho cupsd vytvoří /etc/cups/printcap. Aby nebyla ohrožena funkce aplikací, které umí číst jména front pouze z /etc/printcap, je /etc/printcap symbolickým odkazem na /etc/cups/printcap.

Když cupsd běží pod uživatelem lp, nelze otevřít port 631. Proto nelze použít příkaz rccups reload. Místo něj použijte rccups restart.

11.6.3.2. Obecná funkce BrowseAllow a BrowseDeny

Přístupová práva nastavená pro BrowseAllow a BrowseDeny platí pro všechny pakety zaslané na cupsd. Výchozí nastavení v souboru /etc/cups/cupsd.conf jsou následující:

BrowseAllow @LOCAL
BrowseDeny All

a

<Location />
  Order Deny,Allow
  Deny From All
  Allow From 127.0.0.1
  Allow From 127.0.0.2
  Allow From @LOCAL
</Location>

Při tomto nastavení mohou ke cupsd na CUPS serveru přistupovat pouze LOCAL počítače, tj. počítače, jejichž IP adresa náleží non-PPP rozhraní (přesněji rozhraní, jehož IFF_POINTOPOINT příznak není nastaven) a jejichž adresa náleží do stejné sítě jako CUPS server. Pakety z ostatních počítačů jsou okamžitě odmítnuty.

11.6.3.3. cupsd je defaultně aktivní

Ve standardní instalaci je cupsd automaticky aktivní, což umožňuje pohodlný přístup ke CUPS frontám bez manuálního nastavování. Dvě předchozí vlastnosti (viz 11.6.3.1 – „cupsd běží pod uživatelem lp“ a 11.6.3.2 – „Obecná funkce BrowseAllow a BrowseDeny) jsou podmínkou k tomuto automatickému spuštění, neboť jinak by nebyla zajištěna dostatečná bezpečnost.

11.6.4. PPD soubory v různých balíčcích

V této části jsou popsány zdroje PPD souborů a jejich použití.

11.6.4.1. Konfigurace tiskáren pouze pomocí PPD souborů

Modul pro konfiguraci tiskáren nástroje YaST nastavuje CUPS fronty pouze s využitím PPD souborů v /usr/share/cups/model/. Vhodný PPD soubor vybírá YaST porovnáním modelu tiskárny zjištěného během rozpoznávání hardwaru a modelů v PPD souborech v adresáři /usr/share/cups/model/. Za tímto účelem si YaST vytváří databázi modelů tiskáren získaných z PPD souborů. Když vyberete model ze seznamu výrobců a typů tiskáren, bude automaticky přiřazen vhodný PPD soubor.

Konfigurace s využitím pouze PPD souborů a žádných jiných informací má výhodu v tom, že je možné PPD soubory v adresáři /usr/share/cups/model/ volně modifikovat. Modul YaST pro nastavení tiskáren si všímá všech změn a obnovuje svou databázi. Pokud například máte jen postscriptové tiskárny, nepotřebujete Foomatic PPD soubory z balíčku cups-drivers ani Gimp-Print PPD z balíčku cups-drivers-stp. Místo toho můžete prostě překopírovat PPD soubory pro vaše postscriptové tiskárny přímo do adresáře /usr/share/cups/model/ (pokud nejsou již součástí balíčku manufacturer-PPDs).

11.6.4.2. PPD soubory v balíčku cups

Obecné PPD soubory v balíčku cups byly doplněny upravenými Foomatic PPD soubory pro tiskárny PostScript level 1 a 2:

  • /usr/share/cups/model/Postscript-level1.ppd.gz

  • /usr/share/cups/model/Postscript-level2.ppd.gz

11.6.4.3. PPD soubory v balíčku cups-drivers

Normálně je pro nepostscriptové tiskárny používán Foomatic tiskový filtr foomatic-rip spolu s Ghostscriptem. Vhodné Foomatic PPD soubory s položkami *NickName: ... Foomatic/Ghostscript driver a *cupsFilter: ... foomatic-rip jsou umístěny v balíčku cups-drivers.

YaST upřednostňuje Foomatic PPD soubory za následujících podmínek:

  • Foomatic PPD soubor s položkou *NickName: ... Foomatic ... (recommended) odpovídá modelu tiskárny.

  • Balíček manufacturer-PPDs neobsahuje vhodnější PPD soubor (viz níže).

11.6.4.4. Gimp-Print PPD soubory v balíčku cups-drivers-stp

Místo foomatic-rip lze s mnoha nepostscriptovými tiskárnami použít CUPS filtr rastertoprinter z projektu Gimp-Print. Tento filtr a vhodné Gimp-Print PPD soubory jsou dostupné v balíčku cups-drivers-stp. Gimp-Print PPD soubory jsou umístěné v adresáři /usr/share/cups/model/stp/ a mají položky *NickName: ... CUPS+Gimp-Print a *cupsFilter: ... rastertoprinter.

11.6.4.5. PPD soubory od výrobců tiskáren v balíčku manufacturer-PPDs

Balíček manufacturer-PPDs obsahuje PPD soubory od výrobců tiskáren, pokud jsou uvolněny pod dostatečně volnou licencí. Postscriptové tiskárny by měly být nakonfigurovány s příslušným PPD souborem od výrobce, protože jsou tak dostupné všechny funkce tiskárny. YaST upřednostňuje PPD soubor z balíčku manufacturer-PPDs za následujících podmínek:

  • Výrobce a model tiskárny zjištěný během detekce hardwaru odpovídá výrobci a modelu tiskárny uvedeným v PPD souboru z balíčku manufacturer-PPDs.

  • PPD soubor z balíčku manufacturer-PPDs je jediný vhodný PPD soubor pro danou tiskárnu nebo existuje Foomatic PPD soubor s položkou *NickName: ... Foomatic/Postscript (recommended), který rovněž odpovídá dané tiskárně.

YaST nepoužije žádný soubor z balíčku manufacturer-PPDs v následujících případech:

  • PPD soubor z balíčku manufacturer-PPDs neodpovídá výrobci a modelu tiskárny. To se může stát v případě, že balíček obsahuje jen jeden PPD soubor pro několik podobných tiskáren.

  • Foomatic PostScript PPD soubor není recommended (doporučený). To může být v případě, kdy daná tiskárna nefunguje v postscriptovém režimu efektivně, například je v tomto režimu nespolehlivá pro nedostatek paměti či pomalá kvůli slabému procesoru. Dalším důvodem může být to, že tiskárna nepodporuje PostScript ve výchozí konfiguraci (je např. dostupný jako rozšiřující výbava).

Pokud je některý PPD soubor z balíčku manufacturer-PPDs pro postscriptovou tiskárnu vhodný, ale YaST ho nepoužije z výše zmíněných důvodů, zvolte vybraný model tiskárny v nástroji YaST ručně.