Les premières choses à faire sur un serveur OpenBSD

2024-09-12T09:23:06Z

J'ai récemment loué une machine virtuelle chez vultr pour quelques heures afin de tester des trucs, et je me suis aperçu qu'il y avait tout de même des petites étapes importantes que je serai amené à reproduire si je dois repartir de zéro.

Voici donc ma "check list" minimale après l'installation d'OpenBSD.

user et doas

Je crée un utilisateur "normal" et j'édite doas.conf

#/etc/doas.conf
permit persist user

Ensuite, je change le mot de passe root avec un truc que j'oublierai vite:

# su -
# jot -rcs '' $l 32 126
# passwd

aliases

J'ajoute mon mail dans /etc/mail/aliases

root: me@stuff.tld
# newaliases

SSH et root

Vultr donne par défaut un accès root via ssh. C'est pas très malin, alors on édite /etc/ssh/sshd.conf:

PermitRootLogin no

Pour protéger l'accès à ssh, on installe sshguard:

# pkg_add sshguard
# rcctl enable sshguard
# rcctl start sshguard

pf.conf

On modifie la configuration du parefeu pour:

On bloque tout par défaut, on bloque les listes noires, on autorise le ping et on prévoit l'ouvertur d'autres ports plus tard en décommentant les lignes avec "tcp_pass" et "udp_pass".

touch /var/prx-brutes.txt
touch /var/pf-badhost.txt
#/etc/pf.conf
ifaces = "{ egress }"

# maybe useful later
#tcp_pass = "{ www https }" # change me
#udp_pass = "{ domain }" # change me

table  persist
table  persist
table  persist file "/var/prx-brutes.txt"
table  persist file "/var/pf-badhost.txt"

set skip on { lo }
set limit table-entries 409600

antispoof for $ifaces

block

block quick from  label "BRUTES"
block quick from  label "SSHGUARD"
block quick from  label "PRX"
block quick from  label "PFBADHOST"

# allow ping
pass on $ifaces inet6 proto ipv6-icmp all #icmp6-type echoreq
pass on $ifaces inet proto icmp all # icmp-type echoreq

pass in on $ifaces proto tcp to port ssh modulate state \
        (source-track rule, \
        max-src-conn 8, max-src-conn-rate 15/5, \
        overload  flush global)

#pass in on $ifaces proto tcp to port $tcp_pass modulate state
#pass in on $ifaces proto udp to port $udp_pass

pass out on $ifaces proto { tcp udp }

Bien sûr, on recharge pf:

# pfctl -f /etc/pf.conf

Maintenant, on prévoit la mise à jour des listes noires chaque jour:

# /etc/daily.local
ftp -o- https://si3t.ch/pub/evils/prx-brutes.txt.gz | \
	gzcat > /var/prx-brutes.txt && \
	pfctl -t prx -T replace -f /var/prx-brutes.txt
ftp -o- https://si3t.ch/pub/evils/pf-badhost.txt.gz | \
	gzcat > /var/pf-badhost.txt && \
	pfctl -t pf-badhost -T replace -f /var/pf-badhost.txt

Pour aller plus loin avec le parefeu, j'installe aussi iblock avec une version modifiée pour ne pas avoir besoin d'inetd :

=> https://tildegit.org/prx/iblock/src/branch/icanserve


Une réaction?

Envoyez votre commentaire par mail :

=> mailto:prx@si3t.ch?subject=premieres-choses-a-faire-serveur-openbsd

Voici quelques instructions pour utiliser la liste de diffusion et recevoir les réponses à vos messages:

Proxy Information
Original URL
gemini://si3t.ch/log/2024-09-12-premieres-choses-a-faire-serveur-openbsd.txt
Status Code
Success (20)
Meta
text/plain
Capsule Response Time
487.672186 milliseconds
Gemini-to-HTML Time
0.967046 milliseconds

This content has been proxied by September (ba2dc).