# 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: * utiliser sshguard * limiter le bruteforce sur le port ssh * pouvoir utiliser des listes noires d'IP (https://si3t.ch/evils/) 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 <bruteforce> persist table <sshguard> persist table <prx> persist file "/var/prx-brutes.txt" table <pf-badhost> persist file "/var/pf-badhost.txt" set skip on { lo } set limit table-entries 409600 antispoof for $ifaces block block quick from <bruteforce> label "BRUTES" block quick from <sshguard> label "SSHGUARD" block quick from <prx> label "PRX" block quick from <pf-badhost> 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 <bruteforce> 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 (votre adresse mail sera retirée des entêtes) : => mailto:bla@bla.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: => /log/_commentaires_.txt