Post instal·lació de servidor linux debian 13, i configuració de seguretat.
$ fastfetch
_,met$$$$$gg. debian@vps-58a7ea55
,g$$$$$$$$$$$$$$$P. -------------------
,g$$P"" """Y$$.". OS: Debian GNU/Linux 13 (trixie) x86_64
,$$P' `$$$. Host: OpenStack Nova (19.3.2)
',$$P ,ggs. `$$b: Kernel: Linux 6.12.57+deb13-cloud-amd64
`d$$' ,$P"' . $$$ Uptime: 55 mins
$$P d$' , $$P Packages: 417 (dpkg)
$$: $$. - ,d$$' Shell: bash 5.2.37
$$; Y$b._ _,d$P' Terminal: /dev/pts/1
Y$$. `.`"Y$$$$P"' CPU: 4 x Intel Core (Haswell, no TSX) (4) @ 2.39 GHz
`$$b "-.__ GPU: Cirrus Logic GD 5446
`Y$$b Memory: 409.91 MiB / 7.58 GiB (5%)
`Y$$. Swap: Disabled
`$$b. Disk (/): 1.59 GiB / 73.62 GiB (2%) - ext4
`Y$$b. Local IP (ens3): **.**.***.*/32
`"Y$b._ Locale: es_ES.UTF-8
`""""
Actualitzar
sudo apt update && sudo apt upgrade
Instal·lar locals
sudo dpkg-reconfigure locales
sudo apt-get install locales-all
rsyslog
sudo apt-get install --reinstall rsyslog
ssh
Canvi de port
sudo vim /etc/ssh/sshd_config
- # Port 22
+ Port 3333 # El que vulguis en realitat.
Reiniciem servei:
sudo systemctl restart sshd
Ara per entrar de nou haurem d'especificar el port.
ssh -p port user@server
Fins i tot afegir-lo en el ~/.ssh/config per no haver-ho d'especificar tot el
rato.
Host server
IdentityFile ~/.ssh/id_rsa
User ubuntu
Hostname server.com
Port 1111
Clau ssh
Copiar clau pública al servidor per poder entrar sense contrasenya.
ssh-copy-id -i ~/.ssh/CLAU USUARI@SERVIDOR
sshd_config
Configuració més que recomanada:
Si activem aquestes regles tenir en compte que heu de tenir configurat
prèviament la clau ssh en el vostre ordinador i afegida al servidor.
PermitRootLogin no # No es permet accés a root des de ssh.
AllowUsers USER1 USER2 # Llista d'usuaris que sí poden entrar.
PasswordAuthentication no # Només permetem entrar amb clau ssh.
Servidor de correu
sudo apt install postfix
Seleccionem "Internet site"
i posem el nom del servidor smtp.
Configuració de postfix
Configurem servidor de correu per poder rebre correus d'avís.
/etc/postfix/main.cf
Modifiquem configuració perquè no accepti correu de l'exterior.
inet_interfaces = loopback-only
/etc/aliases
mailer-daemon: postmaster
postmaster: root
root: EL_TEU_EMAIL
logcheck: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root
Activem els nous àlies i reiniciem servidor postfix.
sudo newaliases
sudo systemctl restart postfix
Enviar correu.
sudo apt-get install mpack
echo "Test" > /tmp/test.txt
mpack -s 'test' /tmp/test.txt el_teu@email.com
logcheck
sudo apt install logcheck
Configuració de logcheck
sudo vim /etc/logcheck/logcheck.conf
Modifiquem:
SENDMAILTO="EL_TEU_EMAIL"
MAILASATTACH=1
Editam el fitxer /etc/logcheck/ignore.d.server/custom
Tot i que es pot posar el nom que es vulgui.
.*.from\ 251.red-79-157-159.dynamicip.rima-tde.net*
.*Synchronized\ to\ time\ server*
.*.\[UFW\ BLOCK\]*
.*filtering\ via\ arp/ip/ip6tables\ is\ no\ longer\ available*
.*Initializing\ XFRM\ netlink\ socket*
.*Netfilter\ messages\ via\ NETLINK*
.*ctnetlink\ v0.93:\ registering\ with\ nfnetlink.*
.*systemd-udevd*
.*networkd-dispatcher*
.*systemd-networkd*
.*IPv6:*
.*Link\ UP*
.*entered\ promiscuous\ mode*
.*entered\ blocking\ state*
.*can\ be\ used\ to\ set\ a\ preferred\ IP\ address*
.*Network\ configuration\ changed*
.*docker0*
.*eth0*
.*snapd*
.*containerd*
.*ovpn-server.*peer\ info*
.*ovpn-server.*VERIFY\ OK*
.*ovpn-server.*Initial\ packet*
.*ovpn-server.*Connection\ Initiated*
.*ovpn-server.*Control\ Channel*
.*.from\ 251.red-79-157-159.dynamicip.rima-tde.net*
Evitam que ens avisi ja que es tracta dels nostres clients de nextcloud intentant connectar quan està l'ordinador de casa apagat.
.*.Synchronized\ to\ time\ server*.ntp.ubuntu.com*
Servidor actualitzant l'hora del sistema.
.*.\[UFW\ BLOCK\]*
Ips bloquejades, són massa.
Provam la sortida:
sudo -u logcheck logcheck -o -t
Referències:
• http://somebooks.es/recibir-informes-sobre-sucesos-de-ubuntu-server-18-04-lts-con-logcheck/
Actualitzacions de seguretat automàtiques
sudo dpkg-reconfigure --priority=low unattended-upgrades
Referències:
• https://help.ubuntu.com/community/AutomaticSecurityUpdates
Tallafoc
sudo apt install ufw
sudo ufw allow http
sudo ufw allow https
sudo ufw allow [SSH PORT]
sudo ufw disable && sudo ufw enable
Status
sudo ufw status
Status: active
To Action From
-- ------ ----
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
22/tcp ALLOW Anywhere
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
22/tcp (v6) ALLOW Anywhere (v6)
Veure regles del tallafoc:
sudo iptables -L -n --line-numbers
Veure IPs bloquejades:
sudo iptables -L -n --line-numbers | grep REJECT
fail2ban
Evitar accessos no autoritzats al servidor.
sudo apt-get install fail2ban
Copiam configuració per defecte a fitxer personalitzat.
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Editar configuració:
sudo vim /etc/fail2ban/jail.local
Podem afegir una llista d'IPs perquè siguin ignorades:
ignoreip = 127.0.0.1/8 ::1
Afegim regles per als wordpress:
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 1h
[wordpress]
enabled = true
filter = wordpress
logpath = /var/log/nginx/*.log
port = 80,443
bantime = 1h
Cream fitxer /etc/fail2ban/filter.d/wordpress.conf i afegim:
# Fail2Ban filter for WordPress
[Definition]
failregex = - - \[(\d{2})/\w{3}/\d{4}:\1:\1:\1 -\d{4}\] "POST /wp-login.php HTTP/1.1" 200
ignoreregex =
Reiniciem:
sudo systemctl restart fail2ban
Veure estat:
$ sudo fail2ban-client status
Status
|- Number of jail: 3
`- Jail list: ssh, sshd, wordpress
$ sudo fail2ban-client status ssh
Status for the jail: ssh
|- Filter
| |- Currently failed: 3
| |- Total failed: 11
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 5
|- Total banned: 6
`- Banned IP list: 104.248.176.46 106.12.125.140 163.172.166.223 37.187.181.182 51.68.89.100
Des de systemd:
sudo systemctl status fail2ban
Consultar logs de fail2ban
Nombre de vegades que han estat bloquejades les IPs:
zgrep -h "Ban " /var/log/fail2ban.log* | awk '{print $NF}' | sort | uniq -c
Referències:
- https://raiolanetworks.es/blog/bloquear-ataques-dos-con-fail2ban-en-linux/
- https://geekland.eu/como-consultar-logs-de-fail2ban/
Varis
Lynis
Lynis ens genera un informe molt complet sobre l'estat del nostre servidor i
ens dona suggeriments.
sudo apt-get install lynis
sodo lynis audit system
chkrootkit
Permet localitzar rootkits.
sudo apt install chkrootkit
sudo chkrootkit
Clamav
sudo apt install clamav clamav-daemon clamav-freshclam clamdscan
Actualitzar base de dades de virus.
sudo freshclam
Evitar que arrenqui a l'inici.
sudo systemctl disable clamav-freshclam.service
Scripts
He realitzat uns petits scripts per tenir una visió de l'estat
del servidor de forma ràpida.
Instal·lar
git clone https://github.com/edumag/magscripts
Els scripts estan separats per temes així que és fàcil eliminar els que no t'interessen o afegir altres.
Instal·lar dependències:
sudo apt-get install chkrootkit clamscan docker
Executar
cd magscripts/servidor
sudo ./magReportServer
Enviament de l'informe.
sudo ./magReportServer > /tmp/report.txt && mpack -s repor /tmp/report.txt EL_TEU_EMAIL