Print server

Bilde av Joshua Fuller fra Unsplash

Bilde av Joshua Fuller fra Unsplash

Det er ikke alle printere som har støtte for nettverks printing, og av de som har nettverksprinting er det ikke alltid det funker så bra som man skulle håpt og trodd. Bakgrunnen for at jeg ville gjennomføre dette prosjektet var at jeg hadde en multifunksjons printer fra HP. Dette var en printer av en litt eldre årgang, som hadde støtte for nettverksprinting. Dessverre funket driverne veldig dårlig med siste versjon av Windows 10, så da bestemte jeg meg for å sette opp en enkel print server med en RaspberryPi.

Prosjektet består av to programmer CUPS og Samba. CUPS er et program som gjør det lett å administrere printere, og Samba er en ett program som gjør at windows maskiner lett kan kommunisere med serveren over SMB protokollen. I dette tilfellet skal vi bruke Samba til å dele printeren med nettverket i huset mitt.

CUPS

Common Unix Print Service

Første steg er å sette opp en løsning for å kunne administrere printeren som er tilkoblet print serveren. Der er CUPS godt egnet siden man kan få opp ett ryddig web grensesnitt som er intuitivt og lett å bruke.

Start med å installere CUPS:

sudo apt install cups

For at du skal kunne administrere printerne via CUPS må Linux brukeren din legges til i brukergruppen lpadmin:

usermod -aG lpadmin stanley

Av sikkerhetsmessige hensyn er CUPS satt opp slik at man kun kan administrere printeren fra den datamaskinen printeren er koblet til. Dette er litt upraktisk når vi skal sette opp en nettverksprinter, derfor må vi endre litt på config filen.

sudo nano /etc/cups/cupsd.conf
/etc/cups/cupsd.conf
...
# Only listen for connections from the local machine.
Port 631
Listen /run/cups/cups.sock

# Show shared printers on the local network.
Browsing On
BrowseLocalProtocols dnssd

# Default authentication type, when authentication is required...
DefaultAuthType Basic

# Web interface setting...
WebInterface Yes

# Restrict access to the server...
<Location />
  Order allow,deny
  Allow @LOCAL
</Location>

# Restrict access to the admin pages...
<Location /admin>
  AuthType Default
  Require valid-user
  Order allow,deny
  Allow @LOCAL
</Location>
...

For at innstillingene vi har satt opp skal tas i bruk må CUPS restartes.

sudo systemctl restart cups

Nå skal du kunne nå CUPS fra en nettleser på din egen datamaskin. Skriv inn i nettleseren din http://<IP-adressen-til-print-serveren>:631/admin du vil da havne på en nettside som ser slik ut:

Screenshot fra CUPS

Screenshot fra CUPS

Chrome og andre nettlesere vil bombardere deg med advarsler om at nettsiden ikke er trygg. Disse advarslene kan du ignorere siden print serveren vil bruke selv-signed TLS sertifikater, som moderne nettlesere advarer deg som bruker mot å stole på. Hadde denne nettsiden vært på internett ville det vært naturlig å bli skeptisk, men siden denne siden er lokal på nettverket vårt og vi har selv satt den opp er det ikke noe å bekymre seg for.

Herifra er det bare å navigere seg til Administration, og legge til printeren din. Når den funker og du kan skrive ut en test side kan du gå videre til neste steg. Nemlig å dele printeren over nettverket.

Samba

Deling av printeren over SMB protokollen

Samba er ett program som jeg virkelig liker. Det er utrolig lett å komme i gang med for å dele filer over nettverket, og det er like lett å sette opp for printer deling. I denne guiden setter vi ikke krav til at man må ha logget inn noe sted for å kunne ta i bruk den delte printeren.

Samba installeres med denne kommandoen:

sudo apt install samba

Nå må samba config filen endres slik at at printeren kan deles.

sudo vim /etc/samba/smb.conf
/etc/samba/smb.conf
...
[printers]
   comment = All Printers
   browseable = yes
   path = /var/spool/samba
   printable = yes
   guest ok = yes
   read only = yes
   create mask = 0700
...

Det er bare en linje som må endres her. Det er "browsable", som settes til yes, og "guest ok" som settes til yes.

Test endringene av filen, og restart samba

testparm
sudo systemctl restart smbd nmbd

Ta i bruk printeren

Nå som printeren er delt over SMB protokollen vil Windows og andre operativsystem raskt oppdage den, og det skal være lett å legge den til.

Screenshot fra Windows Settings

Screenshot fra Windows Settings, hvor printeren dukker opp

I Windows legges den til ved å gå til Settings -> Printers and scanners. Trykk på refresh. Nå skal printeren dukke opp. Hvis du legger til denne printeren vil riktig driver bli automatisk lastet ned fra print serveren og du kan ta den i bruk med en gang.

Gratulerer! Du har nå satt opp en enkel print server