elogit/servere/ _sikkerhet på servere

Tiltaksliste

Vurder de enkeltvise punktene etter behov og nødvendighet:

  • Sett opp egen bruker utenom root som får tilgang til ssh og sudo

    sudo adduser elogit-admin && usermod -aG ssh elogit-admin && usermod -aG sudo elogit-admin
  • Fjern pålogging for root i sshd og endre standard ssh-port

    [/etc/ssh/sshd_config] PermitRootLogin yes -> PermitRootLogin no #Port 22 -> Port 2247

  • Generer EdDSA-nøkkel for bruker xxx som brukes som pålogging istedet for passord

    • Windows:

      • Kjør “puttygen” som følger med i pakka til putty
      • Velg å lage “EdDSA”-nøkkel under “Type of key to generate”
      • Klikk “Generate”
      • Skriv inn god og relevant info i “Key comment” (som f.eks. ditt navn, og navnet på maskinen du skal bruke nøkkelen fra)
      • Velg “Save private key” og lagre fila på et smart sted på maskinen (fortrinnsvis %USER%/.ssh)
      • Velg “Save public key” og lagre i samme mappe
      • Kopier teksten under “Public key for pasting into OpenSSH authorized_keys file:”
      • Logg inn på server, og legg inn den kopierte teksten på en ny linje i ~/.ssh/authorized_keys
    • Linux:

      ssh-keygen -t ed25519 -f "$HOME/.ssh/[navn på nøkkel]" -C "[Key comment]"

      ssh-copy-id -i "$HOME/.ssh/[navn på nøkkel]" "[brukernavn]"@"[serveradresse]"

  • Sett minimum passordlengde på 20 tegn og ikke mulighet å bruke brukernavn i passordtekst

    sudo apt install libpam-pwquality
    sudo micro /etc/pam.d/common-password
    På linjen hvor det står "password requisite", legg til "minlen=20 reject_username"
  • Aktiver brannmur og tillat kun følgende tjenester: ssh, http og https (husk riktig port på ssh hvis den ble endret istad)

    sudo ufw allow http
    sudo ufw allow https
    sudo ufw allow ssh
    #sudo ufw allow 2247/tcp
  • Sett opp daglige automatiske sikkerhetsoppdateringer ved hjelp av unattended-upgrades:

    sudo apt install unattended-upgrades apt-listchanges
    sudo dpkg-reconfigure -plow unattended-upgrades

fail2ban

fail2ban sperrer ute IPer basert på ondsinnet pålogging

  • Installere fail2ban

    apt-get install fail2ban

  • Legg inn regler for de forskjellige tjenestene:

Nextcloud

[/etc/fail2ban/filter.d/nextcloud.conf]

[Definition]
_groupsre = (?:(?:,?\s*"\w+":(?:"[^"]+"|\w+))*)
failregex = ^\{%(_groupsre)s,?\s*"remoteAddr":"<HOST>"%(_groupsre)s,?\s*"message":"Login failed:
            ^\{%(_groupsre)s,?\s*"remoteAddr":"<HOST>"%(_groupsre)s,?\s*"message":"Trusted domain error.
datepattern = ,?\s*"time"\s*:\s*"%%Y-%%m-%%d[T ]%%H:%%M:%%S(%%z)?"

 

[/etc/fail2ban/jail.d/nextcloud.local]

[nextcloud]
backend = auto
enabled = true
port = 80,443
protocol = tcpg
filter = nextcloud
maxretry = 3
bantime = 86400
findtime = 43200
logpath = /var/www/nextcloud/nextcloud.log

 

[/etc/fail2ban/jail.d/sshd.local]

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
findtime = 300
bantime = 3600
ignoreip = 127.0.0.1
sudo systemctl restart fail2ban

Referanser

Best practice VPS

https://docs.ovh.com/sg/en/vps/tips-for-securing-a-vps

https://www.namecheap.com/blog/9-ways-to-keep-your-vps-secure/

https://securityonline.info/8-ways-to-keep-your-vps-high-secured/

https://n6host.com/blog/vps-security-9-ways-to-keep-your-vps-secure/

Brannmur

https://linuxconfig.org/how-to-install-and-use-ufw-firewall-on-linux

Passord

https://www.xmodulo.com/set-password-policy-linux.html

https://www.netwrix.com/password_best_practice.html


Last modified: Fri Jul 7 14:31:46 2023