"It-sikkerheden i Linux-systemer er god, men altså ikke bedre end den bruger, der installerer og vedligeholder systemet. Systemet har svagheder."
Det fortæller Martin Rosenkjær, der konfigurerer og administrerer Linux-servere primært baseret på distributionen OpenSUSE.
Han støder hver eneste dag på det, han kalder "udfordringer".
"Malware til Linux eksisterer. Jeg er bekendt med ondsindet kildekode, og det er bestemt ikke pænt, så det findes, men det er ikke et stort problem, fordi Linux er så svær at komme i kontakt med udefra, hvis der er opsat et sikkerhedslag på serveren."
Men det er nemt at afvikle kode og scripts på maskinen, fortæller han.
"Jeg har et godt eksempel på et lille script, der er skrevet i sproget Perl. Der er kun en linje i scriptet, og når det afvikles, så lægges en stribe kode ind i den virtuelle hukommelse på maskinen. Den kode har jeg ikke været i stand til at fjerne igen på mine testmaskiner."
Det er altså ikke synligt, hvad Perl-scriptet, der er et helt normalt script, afvikler, hvis man ikke kender det.
"Det er en ondsindet kode, der tager kontakt til en udefrakommende server og tillader folk, som bruger den server, at afvikle kode under rod-kontoen. Så i teorien giver den fuld adgang til maskinen."
Koden skal dog sniges ind på systemet eksempelvis via en usb-nøgle for at blive afviklet, og den kommer således ikke direkte fra internettet.
PHP kan drille
Martin Rosenkjær bruger da også mere af sin til på at være forebyggende for at holde de automatiserede angreb fra internet-siden væk.
"Den primære kilde til hovedpine som Linux-administrator er de automatiserede indbrudsforsøg. Lige nu sidder jeg eksempelvis med en mailserver, hvor folk forsøger at sende uautoriserede mails," fortæller han.
Mange af disse angreb er rettet mod webservere, fordi de afvikler kode på maskinen, eksempelvis i PHP.
"For et års tid siden var der en alvorlig sårbarhed i PHP, hvor kode blev sendt til den lokale maskine, der via CGI kunne få adgang til serveren - i værste fald med rod-adgang."
Sårbarheden i PHP blev opdaget i marts 2012, og var en 0-dagssårbarhed i mere end et år, før den blev lukket i september 2013. I den periode var der ingen rettelse til sårbarheden. I slutningen af 2013 kom et automatiseret angreb (exploit), som udnyttede sårbarheden.
"Da angrebet blev lagt ud som et automatiseret script, betød det en eksplosion af angreb i løbet af bare en måned. Har man ikke opdateret, så står man med håret i postkassen, for den sårbarhed tager førergreb på maskinen," fortæller Martin Rosenkjær.
Selv om sårbarheden nu har været lukket i et år, oplever han imellem ti og 100 daglige indbrudsforsøg dagligt fra it-kriminelle, der stadig leder efter maskiner, som ikke er opdateret.
"Oven i det antal kommer de forsøg, der fanges i en sikkerhedsforanstaltning, som via Iptables, en software baseret firewall, blokerer IP-adresser, der sender en forespørgsel som denne," fortæller han.
Du kan læse mere om PHP-sårbarhenden her.
Det handler om administratoren
Han forklarer, at sikkerheden på en Linux-server i stort omfang handler om, at administratoren bygger sikkerhedslag i systemet.
"Et eksempel er netop sikkerhedslag omkring PHP," fortæller han.
"Jeg kører ikke bare PHP, men også yderligere to sikkerhedslag. Jeg benytter FPM (FastCGI Process Manager), der filtrerer på header'en. Her lukker jeg eksempelvis for PHP 4, fordi der er en sårbarhed i versionen," eksemplificerer han, og fortsætter:
"Herefter sendes koden gennem suPHP, der sørger for, at det kun er kode med tilladelser fra filsystemet, som eksekveres. Jo flere sikkerhedslag man har, jo mere besværligt er det naturligvis også at komme igennem."
Det er også en af forskellene mellem en Windows-server og en Linux-server.
"Der er gennemsigtighed i Linux-verdenen. Det er langt nemmere at lægge sikkerhedslag ind i systemet. Nu er det lang tid siden, jeg har arbejdet med Windows, men som jeg husker det, virker Microsofts system ikke på den transparente måde."
Lidt for nørder
Som alle andre it-systemer skal Linux opdateres, men det er ikke bare lige noget, man gør, fortæller Linux-manden.
"Man skal være på forkant, men et problem i forbindelse med opdateringer er eksempelvis, at funktioner kan forsvinde. PHP blev opdateret for et par måneder siden, hvor en række standardfunktioner blev fjernet, fordi de ikke længere var sikre. Efter opdateringen virkede standard-kald til CMS'et ikke længere, hvilket krævede en masse justeringer. En enkelt opdatering kan således lægge et helt system ned, hvis man ikke lige er opmærksom."
Ændringerne skete for at højne sikkerheden, men satte samtidig administratoren på prøve, hvilke kan afholde folk fra at opdatere Linux-serverne.
"Jeg er faldet i vandet mange gange, hvor jeg har tænkt, at jeg bare kan opdatere, men hvor der har fået konsekvenser. Det kan give grå hår i hovedet."
Dokumentationen i forbindelse med sådan en rettelse er ofte ikke den bedste. Der er naturligvis masser af hjælp at hente i forskellige fora men for at få hjælp, så skal man også selv være fremme i skoene.
"Der er tusindvis af folk, som er på 24/7 - klar til at hjælpe og dele erfaringer. Man skal huske, at det er nørder, man sidder med, og de kræver, at man selv gør sit bedste for at løse problemet, før man spørger om hjælp. Man kan ikke spørge om, hvad to plus to er. Man skal engagere sig i miljøet."
Farvel til Kina
Et andet meget konkret sikkerhedslag består i at fjerne Kina. Landet er komplet blokeret fra enhver server, som Martin Rosenkjær har installeret.
"Det gør jeg altid. Det er selvfølgelig ikke pænt gjort, men det er ret praktisk, da jeg vil anslå, at denne manøvre reducerer angrebsforsøg med cirka 30 procent."
En anden udfordring er daglige MySQL-angreb, der gennem et hav af forespørgsler til MySQL-serveren prøver at "injecte" data for at få adgang til databaserne.
"Dette kan desværre ikke filtreres effektivt, men kan holdes fra døren ved at begrænse antallet af anmodninger MySQL-serveren tillader," fortæller han.
Oven i hatten skal Martin Rosenkjær naturligvis slås med massevis af forsøg på at spamme hjemmesider, hvilket han ikke overvåger, men filtrer med et honeypot-filter.
Husk port 22
Port 22 er en adgang, som uvedkommende i stor stil forsøger at udnytte og med god grund.
"Næsten alle Linux-systemerne har SSH-tilgang gennem port 22 som standard og bruteforce-angreb, der tester kodeord på porten, er der masser af. Et dårligt kodeord er nok det problem, som de fleste Linux-maskiner falder på."
"Jeg har mellem 10 til 20 gange dagligt forsøg på angreb, der forsøger at gætte kodeord, men dem filtrerer jeg ud med Iptables efter tre mislykkede forsøg."
Så han anbefaler kraftigt, at du ændrer den adgang til et andet port-nummer.
"Og så skal du altså huske dit rod-kodeord. Hvis du ikke kender det, så er maskinen helt ubrugelig, fordi du ikke kan få adgang til den."
Læs også:
Tag med i serverrummet, der gemmer Danmarks grønneste supercomputer