# Sécuriser son serveur kimsufi FreeBSD en dix minutes 2012-03-07 Après réception d’un serveur dédié kimsufi[a] (pour ne pas de citer) sous FreeBSD[b], il est important de vite le sécuriser. Il est en effet configuré pour vous permettre de vous connecter via SSH avec le compte root et un mot de passe, reçu par email, le tout sans pare-feu. => http://www.kimsufi.com/fr [a] => http://www.freebsd.org/ [b] Au premier accès, il est donc conseillé de : * Créer un utilisateur et le mettre dans le groupe wheel * Uploader la clé publique dudit utilisateur * Reconfigurer le serveur SSH pour interdire l’accès root et l’accès par mot de passe et n’autoriser que l’accès par clé publique, changer le numéro de port est aussi bien vu * Activation et configuration basique du pare-feu PF (PacketFilter)[a] => http://www.openbsd.org/faq/pf/fr/index.html [a] ## OpenSSH Modification du fichier /etc/sshd\config ``` Port XXXX (chiffre à choisir) ... PermitRootLogin no #PermitRootLogin yes ... hugesmp.s root=/dev/partition rdinit= ro PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys ... PasswordAuthentication no #PasswordAuthentication yes... ``` Redémarrer le serveur SSH. Ne surtout pas l’arréter sinon vous perdrez votre accès. ``` /etc/rc.d/sshd reload ``` ## PF Oui il existe 3 pare-feux dans FreeBSD (‘tite comparaison[a]), mais PF c’est le bieng ;) => http://tar-jx.bz/notes/pf.html [a] Édition du fichier de configuration /etc/pf.conf ``` #MACROS ext_if="re0" # interface reseau ext_adr="xxx.xxx.xxx.xxx" # IP serveur #REGLES # Ne pas filtrer sur l'interface de bouclage set skip on lo0 #Normalisation des paquets entrants scrub in all #On stoppe tout par défaut block all #On laisse passer tout le traffic sortant pass out inet proto {tcp udp} from $ext_adr to any #SSH autorisé pass in inet proto tcp from any to $ext_adr port pppp (le port choisi dans le fichier sshd_config) #ping autorisé (sinon OVH ouvrira un ticket pour non réponse de votre serveur, on pourra par la suite peaufiner pour ne répondre qu'aux pings de OVH) pass proto { icmp icmp6 } #SSH bruteforce blacklistage (une 'tite rêgle pour envoyer promener les petits malins qui tentent une attaque par brute-force et qui encombrent vos logs) table persist block in quick on $ext_if proto tcp from port ssh pass in quick on $ext_if inet proto tcp from any to $ext_adr port ssh flags S/SA keep state ( max-src-conn-rate 2/10, overload flush global) ``` Vérification de votre configuration Vous pouvez tester votre configuration avant de démarrer PF : ``` pfctl -nvf /etc/pf.conf ``` Activation au démarrage de votre système Si tout est OK, vous pouvez modifier votre fichier /etc/rc.conf pour activer PF au démarrage du système, ses logs et son fichier de configuration. ``` ... # pf pf_enable="YES" pf_rules="/etc/pf.conf" pflog_enable="YES" pflog_logfile="/var/log/pflog" ``` Voilà, le minimum vital est assuré, on peut prendre son temps pour le reste. ## Quelques liens * pf (FreeBSDhandbook)[a] * pf pour les nuls[b] * man pf (OpenBSD)[c] * freebsd 8 en zfsroot sur un serveur dédié[d] => http://www.freebsd.org/doc/handbook/firewalls-pf.html [a] => http://www.unixgarden.com/index.php/gnu-linux-magazine-hs/pf-pour-les-nuls [b] => http://www.openbsd.org/faq/pf/fr/index.html [c] => http://www.unixgarden.com/index.php/gnu-linux-magazine/vasc0-installation-de-freebsd-8-en-zfsonroot-mirrore-sur-un-serveur-dedie [d] => ./ <-- ## Commentaires / Comments ? => https://lists.sr.ht/~fredg/public-inbox Envoyer un email à la liste de discussion publique / Send a mail to the public Inbox --- => https://creativecommons.org/licenses/by-sa/4.0/ -- Copyright © 2008–2023 Frédéric Galusik - CC BY-SA 4.0 --