PDF från bilder, Linux Mint 18.3

Hittade snabbt ett sätt att konvertera bilder till PDF. En som jag använt tidigare. Men denna gång stötte jag på ett hinder. Ett hinder som har med säkerhet att göra.

Jag använder ett kommando från ImageMagic. ”convert” används för att konvertera mellan olika format. Lite mer avancerat än så.

Hittade på Gentos forum information om vad som kunde vara problemet. Blockering av funktionen pga säkerhets-skäl. Har inte läst på vad problemen i säkerhet egentligen beror på. Men ImageMagic använder PostScript i sin hantering, och det verkar vara där som problemet ligger. Därför är vissa funktioner blockerade som standard. Det är bra. Dock kunde man ha bättre fel-meddelande om detta.

Nedan ett exempel på hur man kan skriva.

convert img*.png dokument.pdf

Lösningen är att kommentera en rad i ImageMagics policy-konfiguration.

/etc/ImageMagick-6/policy.xml

I denna fil kommenterade jag följande rad, som finns i slutet av dokumentet.

<policy domain="coder" rights="none" pattern="PDF" />

Så att den ändrades till följande.

<!--policy domain="coder" rights="none" pattern="PDF" /-->

När jag var klar med konverteringen så ändrade jag tillbaka, så att säkerheten återställdes.

Länkar:

https://forums.gentoo.org/viewtopic-t-1086410-start-0.html
https://www.imagemagick.org

Apache 2.4 – conf-fil som inte fungerar – löst

Har suttit och slitit mitt hår ett tag. Kör apache 2.4 under Debian stretch, och har inte upptäckt att conf-filer som fanns under ”/etc/apache2/conf.d” inte längre används. De verkar ha flyttats till ”/etc/apache2/conf-available” och ”/etc/apache2/conf-enabled”, på samma sätt som med moduler.

Suck, och inget jag har läst har gett den minsta signal om att detta skulle ha hänt. Undrar om jag har haft otur och mina sökningar har missat lösningarna.

Hur som helst, när jag hittade att det var så här det fungerar så var det enkelt löst. En symbolisk länk från ”/etc/apache2/conf-available” till den plats där jag hade apache.conf-filen, och sedan.

a2enconf <conf-filen utan avslutande .conf>

Sedan behövs så klart en omstart av apache.

systemctl reload apache2

 

ClamAv slutar uppdatera

Ibland slutar ClamAv att uppdatera, då behöver jag göra följande.

cd /var/lib/clamavservice clamav-freshclam stopmv mirrors.dat mirrors.dat.old
freshclam -v
service clamav-freshclam start

eventuellt även nedan kan behövas före ”freshclam”

mv daily.cld daily.cld.old

En av många länkar som beskriver detta i mer detalj.

https://nolabnoparty.com/en/clamav-update-error/

LetsEncrypt på sub-domän (uppdaterad)

Uppdatering – 2018-07-15 – Efter uppgradering till Debian 9 (Stretch) verkar det som att certbot slutat fungera. Klagade på att inte kunna importera jose! Vad det nu ska betyda. Men se längre ned för mer info om hur jag löste det problemet. Min första lösning med ”certbot standalone” visade sig också vara fel väg.

Jag har försökt att få LetsEncrypt att fungera en längre tid, men inte fått det att fungera. Deras mer automatiserade system har gett mig fel-meddelanden. Och jag har inte i stunden hittat något sätt att lösa de problem som eventuellt fanns.

Nu äntligen tog jag mig tid att verkligen försöka gå hela vägen.

Tack vare en sida på DigigtalOcean.com, tillsammans med en kommentar på LetsEncrypt.org lyckades jag hitta problemet.

I stort sett följde jag instruktionerna på DigitalOcean.  Punkt 3 att hämta certifikat var jag tvungen att göra lite annorlunda.

  1. Se till att ServerName är definierad i conf-filen under ”/etc/apache2/sites-enabled/” för webb-platsen.
  2. Se till att brandvägg är öppen för port 443 tcp.
  3. Hämta certifikat – gjorde enligt kommentar i länk 2
  4. Se till att certifikat kommer att uppdateras – certbot renew

Mer detaljerad vad jag gjorde

  1. Ser till att ”ServerName” är definierat i config-filerna för Apache.
    /etc/apache2/sites-available/000-default.conf
    ServerName = ”subdomain.domain.tld”
  2. Brandvägg såg jag till att jag öppnat port 443/tcp. Det är olika hur man gör för olika brandväggar, och beroende på om du kör något ramverk ovanpå. Tex Shorewall är rätt populär, men det finns ett antal andra.
  3. Enligt länk 2 skapar jag ett certifikat till den subdomän jag vill att den ska finnas för.
    certbot --authenticator standalone --installer apache -d sudbomain.domain.tld --pre-hook "service apache2 stop" --post-hook "service apache2 start"
    Jag kör apache 2, och instruktionerna var för NGINX. Så jag hoppas att de ändringar jag gjorde är rätt. Det verkade så i alla fall. Egentligen borde jag nog använda ”systemctl” som är det nya sättet att göra saker på.
  4. Se till att det finns ett cron-job som uppdaterar certifikaten. Det fanns redan installerat efter installation av certbot. Men jag hade stängt av den då jag först gjorde mina försök. I stort sett är det ett enkelt kommando:
    certbot renew
    Och det verkar fungera. Jag har iofs inte ännu sett något certifikat uppdateras, den säger ifrån att inget certifikat är på gång att gå ut. Så jag får vänta.

Problem

Hade jag haft den senaste versionen av ”certbot” hade det varit enkelt att sätta upp certifikaten för mina subdomäner. Nu visade det sig att certbot i Debian är lite för gammal, och LetsEncrypt har uppdaterat sina protokoll så den äldre fungerade inte med det enkla kommandot:

certbot --apache

Nu hittade jag åt hur man kunde göra på ett alternativt sätt, enligt kommentar på länk 2.

Problem efter uppgradering till Debian 9 – Stretch

Fick fel som klagade på att certbot inte kunde importera ”jose”. Letade på nätet ett tag tills jag fick reda på att vissa kunnat lösa problemet med att aktivera ”backports”, så jag gjorde också det.

deb http://ftp.debian.org/debian stretch-backports main

Med detta kunde jag installera följande.

apt-get install certbot python3-certbot python3-acme python3-cryptography  python3-josepy python3-setuptools -f -t stretch-backports

Det verkar fungera nu. Bara att avvakta till nästa cron-jobb och se om det fungerar.

https://backports.debian.org/Instructions/

https://github.com/certbot/certbot/issues/5599

Efter ett dygn väntan och kolla om uppdatering fungerar, så visar det sig att det var ytterligare problem. Hittade dokumentation till certbot.

https://certbot.eff.org/lets-encrypt/debianstretch-apache.html

sudo certbot --authenticator webroot --installer apache

Ovan kod verkar löst problemet. Återstår att se om det blir några fler problem. Scriptet frågar efter ”webroot” för varje domän som läggs till. Eller först frågar om man vill lägga till en ny. Jag hoppas att jag kommer ihåg hur jag gjorde nästa gång jag behöver detta. Det lär dröja i alla fall 2,5 månader.

Scriptet avslutar med att rekommendera att testa domänen på:

https://www.ssllabs.com/ssltest/analyze.html

Tankar

Jag hoppas att jag kan förstå vad jag skrivit. Om jag i framtiden behöver göra om detta, så hoppas jag att jag förstår. Det är inte helt enkelt att förstå allt, då man inte jobbar med detta. Jag tycker mig ha en god grund-kunskap, men det är detaljerna som ofta gör det.

Jag har skrivit ett dokument som jag kan titta i, om det skulle behövas. ”LetsEncrypt – 2018-04-28.odt”.

Länkar

  1. https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-debian-8
  2. https://community.letsencrypt.org/t/solution-client-with-the-currently-selected-authenticator-does-not-support-any-combination-of-challenges-that-will-satisfy-the-ca/49983
  3. https://backports.debian.org/Instructions/
  4. https://github.com/certbot/certbot/issues/5599
  5. https://certbot.eff.org/lets-encrypt/debianstretch-apache.html
  6. https://certbot.eff.org/docs/using.html

Linux Mint 18 – Cups slutar fungera

Efter en uppdatering så blir Cups obrukbar. Någon har gjort en tabbe, och vad det verkar har något satt dependencies som inte går att uppfylla för Cups. Efter en vecka, så har de fortfarande inte fixat det i repo. Många vet vad det beror på, men trots det så fixas det inte i paket-förådet. Ingen info om varför, som jag hittat i alla fall. Hur som helst, hur jag fixade det.

Enligt beskrivningar på nätet, så laddade jag hem paketen från Ubuntus arkiv. Dessa paket installerades sedan med pakethanteraren GDebi.

Efter att ha följt en anvisning där man rekommenderade bara ett paket som skulle installeras, och det inte fungerade, så lät jag det bero i någon dag. Då jag sedan tog tag i det, så började jag med ”cups…” och såg vilket paket som den ville ha. Det paket som cups ville ha, den försökte jag installera med GDebi, och ville den ha något så installerade jag det. Och nu fungerar det. För hur länge, det är en annan sak. Vad som händer när paket-förrådet uppdateras, det får vi se.

Paket som jag kommer ihåg att jag uppdaterade, jag vet att det var fler.
cups-core-drivers_2.1.3-4ubuntu0.2_amd64.deb
cups_2.1.3-4ubuntu0.2_amd64.deb

Länkar:
http://archive.ubuntu.com/ubuntu/pool/main/c/cups/
https://bugs.launchpad.net/ubuntu/+source/cups/+bug/1676621
https://forums.linuxmint.com/viewtopic.php?t=242497