Pappa, poddare, Volvoman, chipsentusiast

Integrera Crowdsec:s blocklista i pfSense

CrowdSec Logo

Crowdsec är ett sånt där företag som gör bra saker lite i det dolda. Genom att driva en molntjänst som underhåller blocklistor med IP-adresser från enheter på Internet som ägnar sig åt dumma saker kan man, om man har rätt brandvägg för det, blockera trafik till sin infrastruktur redan innan den kommer fram till sitt mål. På detta sätt kan man undvika attacker och liknande otrevligheter, och det bästa av allt är att det är gratis för hemanvändare att använda tjänsten.

Man kan också köra en agent på en dator hemma som matar Crowdsec med IP-adresser när attacker och annat dyker upp, vilket väldigt många företag och organisationer redan gör. Kort sagt – det är win-win för alla som är inblandade.

Därmed inte sagt att det är helt enkelt att sätta upp om man har en brandvägg som inte stödjer Crowdsec. Jag kör fortfarande pfSense hemma. Jag har övervägt att byta till OPNSense just för att OPNSense har stöd för exempelvis Crowdsec utan en massa fulhack men har inte orkat komma till skott med mitt byte. Så hur löser man det då? Jag googlade runt och hittade en guide som denna guide delvis är baserad på. Jag har skrivit min varient på den och framför allt utökat den med information om hur man får det hela att fungera på ARM64-arkitekturen och försökt göra det hela tydligare.

Det första är att installera Crowdsec:s synkstjänst för deras IP-lista. Har man en dator med en x86-processor i så är detta inte överdrivet komplicerat men har man som jag ett Pimox-kluster så blir det genast en aning mer komplicerat, även om det inte är omöjligt. Programvaran för att installera Crowdsec-programvaran som regelbundet synkar IP-listan finns för ARM64 och låter sig installeras utan problem. Det man också behöver installera är deras repo och sedan själva paketet för Crowdsec för att få en programvara som heter cscli som krävs för att få en API-nyckel som i sin tur krävs för att kunna hämta hem IP-blocklistan. API-nyckeln får man fram genom att ge cscli -oraw bouncers add cloudflarebouncer, och därefter lägger man in den i filen
/etc/crowdsec/bouncers/crowdsec-blocklist-mirror.yaml.
På raden lapi_key lägger du in API-nyckeln, och raden lapi_url ska sättas till lapi_url: <a href="http://127.0.0.1:8080/">http://127.0.0.1:8080/</a> om den inte redan är det. Raden listen_uri sätter du till listen_uri: 0.0.0.0:41412 och under trusted_ips lägger du in adressen till din brandvägg.

När detta är inlagt och klart kan man starta tjänsten och samtidigt se till att den startar när servern bootar upp:
systemctl enable crowdsec-blocklist-mirror && systemctl start crowdsec-blocklist-mirror

Det var väl enkelt? Ja, så här långt är det inte så vansinnigt komplicerat. Det knepiga var att hitta rätt paket för ARM64 vilket tog en stund.

Det “roliga” är det som kommer nu: integrationen i pfSense.

Först pch främst skapar man ett alias i brandväggen i pfSense:

CrowdSec

URL:en till blocklistan visas när man har installerat Crowdsecs synktjänst, men för att göra det enkelt så ser den ut så här:
http://ip-adress-till-servern:41412/security/blocklist

Därefter får du logga in i pfSense via SSH. Har du inte slagit på den funktionen tidigare så är det dags att göra det nu.

När du befinner dig i shell på pfSense skapar du filen forceupdate.sh (eller vad du nu vill döpa den till) och lägger den i /root eller var du vill placera den. I filen ska följande text finnas:

/usr/bin/touch -t 1001031305 /var/db/aliastables/CrowdSec.txt
/usr/bin/nice>/usr/bin/nice -n20 /etc/rc.update_urltables now forceupdate

Notera att filnamnet på första raden (CrowdSec.txt) skapas utifrån vad du döpte alias:et till tidigare i brandväggsinställningarna så dessa två måste matcha.

Därefter lägger du in ett jobb i Crontab (installera tillägget Cron i pfSense om du inte redan gjort det) som ser ut så här:

CrowdSec

Spara jobbet och sedan kan du titta i loggarna för Crowdsec Blocklist Mirror på servern där du installerade det. Du borde se rader som ser ut så här:

==> crowdsec-blocklist-mirror_access.log <== 10.0.2.1 - - [15/Jul/2022:12:45:00 +0000] “GET /security/blocklist HTTP/1.1” 200 147224 "" “pfSense/2.6.0-RELEASE:f065cfff3e2c15c43528”

Om det inte dyker upp kan du gå in i Firewall -> Aliases -> URLs och sedan klicka på den lilla stapelikonen uppe till höger (bredvid frågetecknet). Välj därefter CrowdSec som Table och klicka till sist på Update:

CrowdSec

Kolla samtidigt i loggen på servern där du installerade Crowdsec för att se att en hämtning gjorts. Loggarna ligger under /var/log och är fyra till antalet:

crowdsec_api.log crowdsec-blocklist-mirror_access.log crowdsec-blocklist-mirror.log crowdsec.log

Till sist skapar du en blockregel i brandväggens regelverk:

CrowdSec

Notera att IP-adresslistan inte dyker upp direkt – det kan ta 30-60 minuter innan den är nedladdad första gången så få inte panik om inget händer direkt.

CrowdSec

Det du ser till höger är min statistik ungefär 30 minuter efter att jag implementerat blockregeln för IP-adresserna i Crowdsec:s lista. Detta om något är ett gott bevis på att det Crowdsec gör inte bara är bra utan också direkt nödvändigt och desto fler som är med och nyttjar, och bidrar, till tjänsten gör att vi alla får ett säkrare Internet.

För den som undrar: jodå, Crowdsec är installerat på alla mina publika servrar och både blockerar och rapporterar in attackförsök.

CrowdSec

Det tog inte ens fem minuter så hade den första fula fisken fångats och blockerats på en av mina servrar. Långnäsa på dig, var du nu befinner dig.


- = -

Elon Musk köper inte Twitter trots allt

Fail Whale

Matt Levine:

Still, one should remain open to the possibility that he was kidding when he first signed the deal. “Elon Musk had a well-thought-out business and financial plan for Twitter that worked in the economic conditions of early April 2022, but conditions have changed and the model no longer works” does not strike me as the most plausible description of what is going on here. “Elon Musk whimsically thought it might be fun to own Twitter, so he signed a merger agreement without taking it too seriously and then lost interest a week later” feels more true to the situation. My first reaction to his proposal to buy Twitter, that it was a joke, may have been the correct one. He was just a lot more committed to the bit than I expected.

På många sätt är detta det bästa sättet denna affär kunde slutat på. Musk får sig en påminnelse om den verklighet han annars inte tycks tillbringa nämnvärt mycket tid i, Twitters ägare får sig en påminnelse om varför de kanske inte skulle ha investerat i bolaget från första början, och resten av världen kan fortsätta använda Twitter som vanligt (och slippa vissa orange-färgade köttsäckars närvaro).

(via John Gruber)


- = -

FTP-servern är tillbaka

Efter att min Proxmox-installation på min gamla server brakade ihop ordentligt i vintras så flyttade jag webbsajter (inklusive denna) till en virtuell server hos OVH:s datacenter i London. Kvar på servern blev det dock en hel del grejer som jag gärna hade haft kvar i någon form, och en av dessa saker var min FTP-server som innehåller allsköns grejer för retrodatorer, gamla BBS-system och annat.

Idag tog jag mig för att slutligen åka den dryga milen mellan mig och serverhallen där maskinen stod avstängd och hämtade hem den, kopplade upp den på mitt lokala nät hemma och lite hackande för att ta mig in i Proxmox-installationen och en del filkopierande senare (en kopiering som fortfarande pågår när detta skrivs) är nu min FTP-server igång igen, i fortsättningen under namnet ftp.melin.org. Namnet till trots så är det fullt möjligt att det inte går att ansluta till servern via just FTP på grund av begränsningar jag inte har något inflytande över – testa gärna och rapportera vad du kommer fram till.

FTP-servern körs på en virtuell maskin i mitt PiMox-kluster och filerna ligger på min NAS.

Mycket nöje.


- = -

Mi Smart Standing Fan 2 Lite

Mi Smart Standing Fan 2 Lite

Att det råder värmebölja i landet har väl knappast undgått någon. Jag testade att lösa problemet genom att köpa tre små fläktar som man fyllde på med isvatten och även om de entusiastiskt (med en matchande hög och störande ljudnivå) försökte kyla ner lägenheten så tog kylvattnet slut ganska snabbt och så värst stor skillnad blev det egentligen inte.

Dags att kalla in det lite grövre artilleriet, således.

Jag har redan en portabel AC, en sån där som drar 930 watt och som skickar ur sig mer varm luft än kall, och den har fått jobba under begränsade stunder (med tanke på elpriset i det här landet…) och resterande tiden har vi vackert fått lida… och svettas. Nu handlade det om att skaffa fläktar som kan trycka in luften i lägenheten från de öppna fönstren till där vi faktiskt sover. Givetvis vore det ju dumt om dessa inte gick att styra från mobiltelefonen, så jag köpte tre stycken Mi Smart Standing Fan 2 Lite.

Precis som allt annat som Xiaomi tillverkar så fungerar det inte med Homekit, men det fungerar med deras hyfsat vedervärdiga applikation för iOS och det får duga. Skillnaden mellan den här modellen och den 200 kronor dyrare Mi Smart Standing Fan 2 är att den dyrare kan forcera mer luft i den riktning du vill ha den. Jag kan inte påstå att Mi Smart Standing Fan 2 lite har något problem med den saken, åtminstone inte i de rum där de tre fläktarna placerats.

Installation

Inte för att solen inte har sina fläckar – Mi Smart Standing Fan 2 lite har en del av dem. Monteringen av fläkten gick snabbt och var tämligen enkel även om draget att trycka ljusgrå text på vit bakgrund i manualen kanske inte var det smartaste ur läsbarhetssynpunkt.

Installationen till mitt wifi-nät var däremot inget vidare. Fläkten har inget stöd för Bluetooth så jag kunde inte installera den genom att bara hålla telefonen nära fläkten (trots att applikationen var väldigt tydlig med att jag skulle kunna göra just det). Det fanns heller ingen etikett jag kunde scanna in med telefonens kamera varför jag fick göra installationen manuellt.

I praktiken går det till så att man ser till att fläkten är fabriksåterställd (vilket bekräftas av ett högljutt pip från fläkten… dessa pip går tack och lov att slå av sen) och efter det uppmanas man av applikationen att ansluta telefonen till fläktens egna ad-hoc-wifi som den skapar. Det är enkelt. Det knepiga är när applikationen ändå inte kan ansluta till fläkten i fråga och man får inga vettiga felmeddelanden utöver dessa:

Mi Smart Standing Fan 2 Lite

Det visar sig efter lite testande att man måste ge Xiaomi Home-applikationen rätten att komma åt ditt lokala nätverk. När man väl gjort det så ansluter fläkten snällt till wifi-nätverket.

Mi Smart Standing Fan 2 lite stödjer för övrigt endast 2,4GHz wifi-nät och inget annat, vilket känns lite år 2005 men det fungerar åtminstone hyfsat. Ett par gånger efter installation har jag haft problem att styra fläkten från appen men efter att den stått och snurrat i ett dygn i sträck så har problemen upphört, åtminstone i skrivande stund.

Design och funktion

Designen hade inte fått en designer på Apple att skämmas för sig. Det är vitt, diskret och lysdioderna på fläkten är fina att titta på.

Mi Smart Standing Fan 2 Lite

En ordentlig fördel med Mi Smart Standing Fan 2 lite är hur tyst den är. Jag är inte överdrivet ljudkänslig men jag vill å andra sidan inte ligga och lyssna på en högljudd fläkt hela nätterna, men med Mi Smart Standing Fan 2 lite kan jag ha den på sin lägsta fläkthastighet och utan problem sova i samma rum. Efter att ha legat i princip sömnlös den senaste veckan fick jag inatt sova ordentligt och bekvämt så det har jag den här fläkten att tacka för.

Jag är nöjd med köpet. De här fläktarna löser problemet och givetvis är hela wifi-kopplingen rätt fånig och på många sätt helt onödig men är man en prylnörd så är man. En vacker dag kanske de går att köra med Homekit, vad vet jag…

Tillägg 2022-07-07: Jodå, de kan prata Homekit… om man kopplar dem via Homebridge vilket visar sig fungera utmärkt:

Mi Smart Standing Fan 2 Lite

Man behöver det här scriptetför att hämta ut tokens från alla enheter man vill ansluta till Homebridge (tack Victor) för tipset. Detta fungerar faktiskt så pass bra så jag överväger att ta bort Xiaomis applikation, som verkligen inte har någon plats i ett civilicerat samhälle.


- = -

BMÅ, avsnitt 314: Darth Vaders prisbasbelopp

Det är sommar och man kan tycka att det inte finns så mycket att prata om. Tänk så fel man kan ha. Denna vecka tog Christian semester och min namne, den eminente Joakim Ewensson, gästade podden, där vi pratar om mikrofoner, Youtube-skapande, myser över våra M1-Mac:ar och konstaterar att Obi-Wan Kenobi-serien inte var så dum ändå.

Mer läsning (och lyssning) här.


- = -

© 2000 - 2025 Joakim Melin.