„Ubuntu szerver általános biztonsági beállításai (Fossa)” változatai közötti eltérés

Innen: AdminWiki
Ugrás a navigációhoz Ugrás a kereséshez
78. sor: 78. sor:
Sikeres teszt esetén takarítsuk el a teszt állományokat:
Sikeres teszt esetén takarítsuk el a teszt állományokat:
<pre>sudo rm *-test</pre>
<pre>sudo rm *-test</pre>
Ügyeljünk arra, hogy ha valamiért a későbbiekben a ''su''-t használnánk, azt mindig ''su -i'' formában tegyük!
Ügyeljünk arra, hogy ha valamiért a későbbiekben a ''su''-t használnánk, azt mindig ''su -'' formában tegyük!

A lap 2020. május 18., 18:05-kori változata

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!