Ubuntu szerver általános biztonsági beállításai (Fossa)
Ez a fejezet egy Ubuntu Fossa szervergép nyilvános elérésűvé tételéhez minimálisan szükséges beállításokkal foglalkozik. Feltételezzük, hogy a szerver saját csomagszűrő tűzfallal már rendelkezik.
TODO: SELinux, PaX, grsecurity
Általános szigorítások, beállítások
Az alábbi beállítások jó része a Securing Debian Manual illetve a közismert Zákány-dolgozat alapján készült.
Kernel paraméterek
Célszerű lehet a syn flood elleni védelem beállítása, esetleges kernel pánik esetén az automatikus reboot kérése, illetve hasznos lehet az alapértelmezésben 5 napos established connection tracking time lecsökkentése 0,5 napra (paranoid beállítás esetén 10 percre).
Mindezeket egy, az alapértelmezett kernel paramétereket felülbíráló állományban lehet előírni:
-rw-r--r-- root root /etc/sysctl.d/local.conf # Uncomment the next line to enable TCP/IP SYN cookies # See http://lwn.net/Articles/277146/ # Note: This may impact IPv6 TCP sessions too net.ipv4.tcp_syncookies=1 ################################################################### # Extra settings # Reboot after 1 minute on kernel panic kernel.panic=60 # reduce TCP conntrack time net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=43200 # paranoid restriction # net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=600
A beállított paraméterek az alábbi paranccsal (vagy a számítógép újraindításával) érvényesíthetőek:
deb-systemd-invoke restart procps.service
A sudo és az umask beállításai
Az Ubuntu alapértelmezett umask-ja 002 (vagyis az újonnan létrehozott file-ok 664-es [rwxrw-r--] jogokkal jönnek létre), ami nézetem szerint nagyon engedékeny (640-et [rw-r--r--] szeretnénk). A root számára szeretnénk meghagyni a 644-es [rw-r--r--] alapértelmezett jogokat (akár sudo-val, akár su-val tettünk szert a root jogosultságra).
Az umask system-wide beállításához
- egyrészt a /etc/login.defs-ben módosítsuk az UMASK értékét:
-rw-r--r-- root root /etc/login.defs [...] UMASK 027 [...]
- másrészt a PAM beállítások között módosítsuk a pam_umask meghívását a /etc/pam.d/common-session állomány vége felé:
-rw-r--r-- root root /etc/pam.d/common-session [...] #session optional pam_umask.so session optional pam_umask.so debug umask=027
- Ez a beállítás valamennyi (ezután bejelentkező, shell, system, stb.) felhasználóra érvényes lesz (a root-ra is - korábban kivétel volt), ezért speciálisan a root login shelljénél hagyjuk meg a megszokott 022-t:
-rw-r----- root root /root/.profile [...] umask 022 [...]
Így ha a virtuális root konzolt a su - paranccsal indítjuk vagy valódi konzolon root-ként jelentkezünk be (de csak ekkor!) az umask értéke 022 lesz.
- A sudo módosításához a visudo paranccsal szerkesszük meg a /etc/sudoers állományt, adjuk hozzá ezt a két paramétert:
[...] Defaults umask_override Defaults umask=0022 [...]
A beállítások a következő újraindításkor lépnek életbe.
Figyelem: ezt ne toljuk el! - root-ként a 027-es umask pl. azt eredményezheti, hogy szerencsétlen esetben egy apt install után a /var-ra nem lesz semmilyen other's jog. Ezért most, egy reboot után, sysadmin felhasználóként végezzük el az alábbi tesztet:
touch user-test sudo touch sudo-test sudo -i touch /home/$SUDO_USER/root-test exit ls -l *-test
Az elvárt eredmény:
-rw-r--r-- 1 root root [...] root-test -rw-r--r-- 1 root root [...] sudo-test -rw-r----- 1 sysadmin sysadmin [...] user-test
Sikeres teszt esetén takarítsuk el a teszt állományokat:
sudo rm *-test
Ügyeljünk arra, hogy ha valamiért a későbbiekben a su-t használnánk, azt mindig su - formában tegyük!