Re: Tips / Hjälp med server.
Markus Viitamäki wrote:
> Jag är i behov av lite råd och föresalg, har nämligen ett litet problem.
> Jag har fått på mig en uppgift att driva en server för shell-konton. Och
> ja, de kommer bli en heldel såna, så nu frågar jag er hur nu skulle
> installera den, med säkerhet och så. Tanken är att de inte ska ha rätt att
> köra annat än vissa binärer, och sedan ha en viss diskquota.
> Så hurudana lösningar finns de för detta om man har debian som
> utgångspunkt?
Jag vet inte om det finns några direkt debian-specifika lösningar, men
här är några varianter man kan tänka sig:
* Montera /home och övriga publikt skrivbara utrymmen (/tmp, /var/tmp) med
'noexec' flaggan.
Strippa sedan execute-flaggan för alla binärer (typ chmod o-x /bin/*
/sbin/* /usr/bin/* /usr/sbin/* och så vidare)
Sätt tillbaka execute-flaggan för de kommandon som ska kunna köras,
typ chmod o+x /bin/bash /bin/ls
Lägg till admin/staff-användarna i root-gruppen, så kan de köra alla
kommandon som förut (förutsatt att grupp har kvar executerättigheter).
* Installera en kärna med grsecurity-patchen. Här finns bl.a. "TPE", trusted
path execution, där användare i en viss grupp (shellusers?) bara får
köra program som finns i root-ägda kataloger. Grsecurity har också andra
bra funktioner för att hindra t.ex. stack overflows och andra
attack-vektorer.
grsecurity har även funktioner för att begränsa åtkomst till /proc,
så att användare bara kan se sina egna processer.
* Det kommer alltid finnas skojare som tycker att det är kul att köra
fork() bomber, och kan man inte kompilera en själv är det lätt att
göra i bash. :(){ :|:& };: (Jaromil 2002)
Ett tips är då att förutom disk-quota sätta limits på nproc,
minnesutnyttjande och kanske också cpu-tid. Se /etc/security/limits.conf
* Med många användare på systemet är det svårt att veta vem som
ev. försökt hacka andra system eller t.ex. skickat spam. Sätt upp
brandväggsregler för utgående trafik med --log-uid och SYN-paket,
så blir det lättare att hålla ryggen fri.
Mvh,
Stefan
Reply to: