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-adminFjern 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:
~/.ssh/authorized_keysLinux:
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/tcpSett opp daglige automatiske sikkerhetsoppdateringer ved hjelp av unattended-upgrades:
sudo apt install unattended-upgrades apt-listchanges
sudo dpkg-reconfigure -plow unattended-upgradesfail2ban sperrer ute IPer basert på ondsinnet pålogging
Installere fail2ban
apt-get install fail2ban
Legg inn regler for de forskjellige tjenestene:
[/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
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/
https://linuxconfig.org/how-to-install-and-use-ufw-firewall-on-linux
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