Larm till mobilen med ntfy
ntfy är en gratis tjänst med öppen källkod som skickar pushnotiser till mobilen. Du skickar ett meddelande med ett enda HTTP-anrop, och det dyker upp i appen på telefonen inom någon sekund. Det gör ntfy till ett enkelt sätt att få larm från säkerhetskopiering, övervakning och honeypots, utan att bygga en egen app eller betala för sms.
Kom igång på två minuter
- Installera appen ntfy från App Store eller Google Play.
- Prenumerera på ett ämne (topic). Välj ett långt namn som ingen kan gissa, till exempel
larm-vejby-k9x2m7q4w8. - Skicka ett testmeddelande från en dator:
curl -d "Testlarm från kontoret" ntfy.sh/larm-vejby-k9x2m7q4w8
Meddelandet visas direkt i appen. Fungerar det har du ett larmsystem.
Rubrik, prioritet och ikoner
Med HTTP-headers kan du ge meddelandet en rubrik, en prioritet och taggar som visas som ikoner:
curl -H "Title: Intrangsforsok" \
-H "Priority: urgent" \
-H "Tags: rotating_light" \
-d "192.168.1.47 forsokte logga in pa NAS-EKONOMI" \
ntfy.sh/larm-vejby-k9x2m7q4w8
- Prioritet går från 1 (min) till 5 (urgent). Högsta prioritet ger ett tydligare larm i telefonen. Använd den bara för sådant som kräver handling direkt, annars slutar man reagera.
- Taggar som
warningochrotating_lightvisas som ikoner framför rubriken. - Använd bara vanliga bokstäver utan å, ä och ö i headers. I själva meddelandet fungerar svenska tecken som vanligt.
Skicka från skript och program
Från PowerShell i Windows, till exempel i slutet av ett backupskript:
Invoke-RestMethod -Method Post -Uri "https://ntfy.sh/larm-vejby-k9x2m7q4w8" `
-Headers @{ Title = "Backup"; Priority = "high"; Tags = "warning" } `
-Body "Nattens backup misslyckades"
Från Python:
import requests
requests.post(
"https://ntfy.sh/larm-vejby-k9x2m7q4w8",
data="Disken på filservern är 95 % full".encode("utf-8"),
headers={"Title": "Filserver", "Priority": "high"},
)
Många program har dessutom ntfy inbyggt, till exempel övervakningsverktyget Uptime Kuma. Program som bara kan skicka en webhook fungerar också: innehållet visas då som meddelandetext.
Håll larmen privata
På den publika servern ntfy.sh är ämnen öppna. Den som känner till eller gissar namnet kan både läsa och skicka meddelanden. Det räcker för många, men följ tre regler:
- Använd ett långt, slumpmässigt ämnesnamn och sprid det inte.
- Skicka inga känsliga uppgifter, som lösenord, personuppgifter eller kunddata. Ett larm ska säga vad som hänt, inte innehålla data.
- Tänk på att meddelanden lagras en tid på servern. På ntfy.sh sparas de i tolv timmar så att telefoner som varit offline ska hinna hämta dem.
För företag finns två bättre alternativ: ett betalabonnemang på ntfy.sh med reserverade ämnen och åtkomstnycklar, eller en egen server.
Kör en egen ntfy-server
ntfy är ett enda program och går att köra på en liten server, en NAS eller en virtuell maskin. Med Docker:
docker run -d --name ntfy --restart unless-stopped \
-p 8080:80 \
-v /etc/ntfy:/etc/ntfy \
-v /var/cache/ntfy:/var/cache/ntfy \
binwiederhier/ntfy serve
Stäng sedan servern för obehöriga i /etc/ntfy/server.yml:
base-url: "https://ntfy.exempel.se"
auth-file: "/etc/ntfy/user.db"
auth-default-access: "deny-all"
Skapa en användare och en åtkomstnyckel för den som ska skicka larm:
docker exec -it ntfy ntfy user add --role=admin anders
docker exec -it ntfy ntfy token add anders
Nyckeln börjar med tk_ och skickas med varje meddelande:
curl -H "Authorization: Bearer tk_dinnyckel" -d "Testlarm" https://ntfy.exempel.se/larm
Servern behöver vara nåbar via HTTPS för att mobilappen ska kunna ansluta, till exempel bakom en omvänd proxy med certifikat.
Larm som någon faktiskt ser
- Bestäm vem som tar emot larmen, även på kvällar och helger, och låt minst två personer prenumerera.
- Skicka bara larm som kräver handling. Dagliga "allt ok"-meddelanden gör att de viktiga drunknar.
- Testa en gång i månaden genom att utlösa ett larm med flit.
- Koppla ihop med upptäckt av intrång. En honeypot eller Canarytokens som skickar till ntfy gör att du får veta inom sekunder när någon snokar i nätverket.
Vanliga frågor
Kostar ntfy något?
Appen och den publika servern ntfy.sh är gratis att använda. Det finns betalabonnemang med reserverade ämnen och högre gränser, och du kan alltid köra en egen server gratis.
Fungerar ntfy på iPhone?
Ja, det finns en app för både iPhone och Android, och meddelanden kan också visas i webbläsaren.
Är ntfy säkert nog för ett företag?
Med en egen server eller reserverade ämnen och åtkomstnycklar, ja. På den publika servern utan nycklar ska larmen inte innehålla något känsligt, eftersom den som känner till ämnesnamnet kan läsa dem.
Kan ntfy ersätta sms-larm?
För de flesta ja. Pushnotiser når fram så länge telefonen har internet. Vill du ha en extra väg kan larm också skickas till e-post.