Tor aktiboEU
Gotortzea — RedderOSMinimizatu (itzuli mahaigainera)Itxi (itzuli mahaigainera)
// docs

Gotortzea

Gotortzea buildaren overlay-ko testu-fitxategietan aplikatzen da. Hura ikuskatzeko, nahikoa da fitxategiak irakurtzea edo diff batekin alderatzea. Orri honek bakoitza laburbiltzen du.

Kernelaren abio-lerroa

GRUBeko sarrera guztiek parametro hauek dituzte (build.sh-k gehitzen ditu config/grub.cfg fitxategian):

ParametroaEragina
lockdown=confidentialityRoot-ek ere ezin du kernelaren memoria irakurri, ezta sinatu gabeko koderik kargatu ere.
init_on_alloc=1Memoria zerora jartzen da erreserbatzean.
init_on_free=1Memoria zerora jartzen da askatzean: datu gutxiago berreskuratzeko cold boot eraso batean.
slab_nomergeEz ditu kernelaren esleitzailearen cacheak nahasten; horrek gainezkatzeak ustiatzea zailtzen du.
page_alloc.shuffle=1Orri libreak ausaz banatzen ditu.
randomize_kstack_offset=onKernelaren pilaren ausazko desplazamendua sistema-dei bakoitzean.
pti=onKernelaren orri-taulen isolamendua (Meltdown).
mitigations=auto,nosmtCPUaren arintzeak aktibo, eta SMT (hyper-threading) desaktibatuta beharrezkoa bada.
vsyscall=noneHelbide finkoko vsyscall orri zaharra kentzen du.
debugfs=offdebugfs gabe.
apparmor=1 security=apparmorAppArmor aktibatzen du segurtasun-modulu gisa.
ipv6.disable=1IPv6 erabat desaktibatuta.

sysctl

Fitxategia: /etc/sysctl.d/99-redderos-hardening.conf.

Kernela

GakoaBalioaEragina
kernel.kptr_restrict2Kernelaren helbideak ezkutatzen ditu, baita root-i ere.
kernel.dmesg_restrict1Root-ek bakarrik irakurtzen du kernelaren erregistroa.
kernel.printk3 3 3 3Errore larriak bakarrik kontsolan.
kernel.unprivileged_bpf_disabled1BPF root-entzat bakarrik.
net.core.bpf_jit_harden2BPFren JIT konpilatzailea gotortzen du.
kernel.kexec_load_disabled1Ezin da beste kernel bat kargatu martxan dagoela.
kernel.yama.ptrace_scope2Root-ek bakarrik araz ditzake beste prozesu batzuk.
kernel.perf_event_paranoid3perf gabe erabiltzaile arruntentzat.
kernel.sysrq0SysRq tekla magikoak desaktibatuta.
kernel.core_pattern|/bin/falseMemoria-iraulketa bat ere ez da idazten.
kernel.unprivileged_userns_clone0Erabiltzaile-izen-esparrurik ez erabiltzaile arruntentzat.
dev.tty.ldisc_autoload0Ez ditu lerro-diziplinak eskaeraren arabera kargatzen.
vm.unprivileged_userfaultfd0userfaultfd root-entzat bakarrik.
vm.swappiness0Ez erabili swap-ik (gainera, ez dago bat ere).

Fitxategi-sistema

GakoaBalioaEragina
fs.protected_symlinks1/tmp-ko esteka sinbolikoen bidezko tranpen aurka babesten du.
fs.protected_hardlinks1Berdin esteka gogorrekin.
fs.protected_fifos2Berdin FIFOekin.
fs.protected_regular2Berdin fitxategi arruntekin.
fs.suid_dumpable0setuid programek ez dute iraulketarik sortzen.

Sarea

GakoaBalioaEragina
net.ipv4.tcp_syncookies1SYN uholdeei eusten die.
net.ipv4.tcp_rfc13371TIME-WAIT babesa (RFC 1337).
net.ipv4.tcp_timestamps0TCP denbora-markarik gabe, erlojua salatzen baitute.
net.ipv4.conf.*.rp_filter1Jatorri faltsuko paketeak baztertzen ditu.
net.ipv4.conf.*.accept_redirects0ICMP birbideratzeei ez die jaramonik egiten.
net.ipv4.conf.all.secure_redirects0Berdin, baita «seguruei» ere.
net.ipv4.conf.all.send_redirects0Ez du birbideratzerik bidaltzen.
net.ipv4.conf.all.accept_source_route0Jatorriko bideratzeari ez dio jaramonik egiten.
net.ipv4.icmp_echo_ignore_all1Ez dio ping-i erantzuten.
net.ipv4.ip_forward0Ez du trafikorik birbidaltzen.

Autotestak egiaztatzen du gako bakoitzak espero den balioa duela (erabiltzen ari den kernelean ez daudenak saltatu egiten dira, eta hala adierazten da).

Blokeatutako moduluak

Fitxategia: /etc/modprobe.d/redderos-blacklist.conf. Modulu bakoitza /bin/false-rekin ordezten da; beraz, ezin da kargatu, ezta eskuz ere.

TaldeaModuluak
Gutxi erabiltzen diren sare-protokoloakdccp, sctp, rds, tipc, n-hdlc, ax25, netrom, x25, rose, decnet, econet, af_802154, ipx, appletalk, psnap, p8022
Gutxi erabiltzen diren fitxategi-sistemakcramfs, freevxfs, jffs2, hfs, hfsplus, udf
Kanpoko DMA eta haririk gabeko periferikoakfirewire-core, thunderbolt, bluetooth, btusb

Kamerak (uvcvideo) lerro bat prest du, baina iruzkindua: kendu iruzkina buildean erabat desaktibatzeko.

AppArmor

Debianek eta Ubuntuk ez dituzte AppArmor profilak kargatzen live sistemetan. RedderOSek baldintza hori baliogabetzen du (/etc/systemd/system/apparmor.service.d/redderos-live.conf) eta apparmor-profiles paketeko profilak kargatzen ditu.

Amnesia: systemd eta mugak

FitxategiaEragina
systemd/journald.conf.d/redderos.confErregistroak RAMean bakarrik (gehienez 32 MB), syslog-era birbidali gabe.
systemd/coredump.conf.d/redderos.confMemoria-iraulketarik gabe.
systemd/system.conf.d/redderos.confDefaultLimitCORE=0 systemd-k abiarazten duen guztiarentzat.
security/limits.d/redderos.confIraulketen muga 0 erabiltzaile guztientzat.
systemd/logind.conf.d/redderos.confSaioa amaitzean, erabiltzailearen prozesu bat ere ez da bizirik geratzen.

Gainera, buildak apt, motd-news, e2scrub eta fstrim tenporizadoreak maskaratzen ditu, eta desaktibatu egiten ditu ordenagailuaren diskoko swap-a aktibatzen duten live sistemaren scriptak, akats-txostenak (apport) eta pollinate.

Erabiltzaileak eta pribilegioak

  • root blokeatuta dago: ezin da harekin saioa hasi.
  • anon erabiltzaileak, saio amnesikoarenak, ez du pasahitzik ezta sudo ere. Administrador temporal sarrerak bakarrik ematen dio sudo, eta saio horretan bakarrik.
  • Salbuespen bakarra redder-wipe da: edozein erabiltzailek exekuta dezake root gisa, pasahitzik gabe eta argumenturik gabe (/etc/sudoers.d/redderos-wipe). RAMa ezabatu eta itzali besterik ez du egiten.
  • Profilen erabiltzaileak RAMean sortzen dira profila irekitzean, eta ezabatu egiten dira ixtean.
  • umask 077: fitxategi berriak haien jabeak bakarrik irakur ditzake.

Administratzailerik gabe, anon gisa exekutatzen den programa arriskatu batek ezin du root izatera iritsi, ezta suhesia aldatu ere.

ISOaren osotasuna

Buildak md5sum.txt eta sha256sum.txt sortzen ditu irudiko fitxategi bakoitzaren baturarekin, eta ISO osoaren .sha256 bat. ISOaren GPG sinadura egiteke dago.