-
FreeBSD
Bienvenue sur la page consacrée à l'univers FreeBSD
Vous y trouverez :- Script de configuration global
- Toutes les commandes de base
- Liste des Paquets (applications) de Base pour la formationInstallation de FreeBSD et configuration d'un environnement de bureau :
- Créer une VM FreeBSD 14 sur le cloud Contabo
- Installer FreeBSD sur un serveur OVH dédié : le "KS-STOR | Intel Xeon-D 1521"
- Installer un environnement de bureau sur FreeBSD
- Liste des modules de l'environnement de bureau KDE
- Liste des modules de l'environnement de bureau XFCE
- Liste des modules de l'environnement de bureau GNOME
- Installer FreeBSD/Linux : compatibilité du matériel
- Installer FreeBSD sur un Dell Precision 7560
- Installer FreeBSD avec XFCE/SDDM sur un Lenovo T495
- Installer FreeBSD avec XFCE/Slim sur Virtualbox
- Installer HardenedBSD avec XFCE/Slim sur un CHUWI Larkbox
- Installer FreeBSD avec KDE/SDDM sur un Fujitsu Esprimo Q920
- Installer FreeBSD avec KDE/SDDM sur un Lenovo T495
- Installer FreeBSD avec KDE/SDDM sur un CHUWI Larkbox
- Installer FreeBSD avec XFCE/SLIM sur XFCE/slim sur un HP Z440 (i5-1650 v4 et GPU NVS 510)
- Installer FreeBSD avec CINNAMON/lightdm sur un Fujitsu Esprimo Q920
- Passer du dépôt quarterly au latest et vice-versa
- S'identifier automatiquement avec sddm
- NomadBSD, un FreeBSD tout en un !
- Réglages du BIOS/UEFI du Dell 7720 pour l'installation de FreeBSD/OI
- Mettre FreeBSD à jour
- Tous les modules pour XFCE
- Configurer Slim/SDDM/KDE/XFCE avec le clavier Français
- Configurer SDDM afin que l'affichage soit en Français
- Le cas d'une carte graphique intégrée au CPU, non reconnue
- Changer le thème de Slim
- Exécutez une commande via un raccourci clavier
- Désactiver le démarrage verbeux de FreeBSD
- Configurer le client mail Mutt (en CLI) avec les adresses mail YahooConfiguration personnalisée de XFCE/lightdm :
- S'identifier automatiquement avec lightdm
- Personnaliser les dossiers "Bureau", "Documents", "Images"... avec XFCE
- Mettre XFCE en Français
- Le Whisker Popup Menu sous XFCE, équivalent du menu Windows sous XFCE
- Raccourcis pour redimensionner les fenêtres automatiquement avec XFCE
- Démonter automatiquement les périphériques USB avec XFCE
- Ajouter "Formater da0 en NTFS" au menu contextuel (clic-droit) de thunar (XFCE)
- Ajouter "Compresser en .zpaq" et "Décompresser le .zpaq" au menu contextuel (clic-droit) de thunar (XFCE)Virtualisation :
- Créer une VM avec VirtualBox, en ligne de commande !
- Installer VirtualBox sur FreeBSD 13.2/14
- Installer Phpvirtualbox sur FreeBSD
- Qu'est-ce que Bhyve ?
- Créer simplement une VM avec Bhyve et ZFS (pour pouvoir faire des snapshots !)
- Créer une machine virtuelle FreeBSD avec Bhyve
- Créer une machine virtuelle Debian 11.6 avec Bhyve
- Répliquer des labos d'entraînement pour stagiaires avec Bhyve sous FreeBSD
- Transformer votre serveur en serveur de virtualisation avec bhyve et BVCP-NetPulse
- BVCP (bhyve) : Ma VM Debian ne boot pas après l'installation. Que faire ?
- Régler le problème de boot de Lunar avec BVCP (bhyve)
- Recommandations pour l'installation de VMs avec BVCP-NetPulse
- Installer Virtualbox sur FreeBSD 13.0 +
- Installer MacOS Catalin/Ventura sur VirtualBox
- Faire fonctionner la souris sur une VM FreeBSD avec Kamatera
- Déployer l'environnement de bureau XFCE/SLIM sur Kamatera
- Exécuter un .msi en PowerShell (utile pour installer le driver virtio sur un serveur windows Core)
- Convertir une VM Hyper-V pour VirtualBox
- Redimensionner la partition /dev/da0p2 sur une VM KamateraVMWare :
- Régler le problème de souris qui ne bouge pas sur VMWareBoîte à outils, usage bureautique et avancé
- Comment imprimer sous FreeBSD (cups)
- Meilleurs clients Mail sous FreeBSD
- Meilleure suite Office et traitements de texte pour FreeBSD
- Créez un stockage en RAIDz sur FreeBSD
- Configurer une cible iSCSI sur un volume ZFS (avec raidz)
- Encrypter un "dossier" (créer une image encryptée avec geli)
- En cas d'erreur lors du boot (mauvaise syntaxe fstab)
- Formater un disque dur ou une clef USB, en UFS, FAT32, NTFS
- Monter un DVD, un ISO, un périphérique USB en NTFS/exFAT
- Graver un CD/DVD/Blu-ray
- Graver une image .iso sur une clef USB
- Utilisation du cloud Mega
- Utiliser Netflix sur FreeBSD
- Installation de Tor
- Compresser/décompresser en zip, bzip2 (.bz2, .tbz2, .tbz, .tar.bz2)
- Séparer/Fusionner (split/merge) un fichier PDF
- Installer un serveur de courriels Postfix
- Réglages Son & Luminosité en commandes
- Utilisation d'une webcam (intégrée au T495 ou C920 HD de Logitech)
- Activer automatiquement la Webcam pour un utilisateur au démarrage de l'ordinateur
- Convertir un disque dynamic en fixed et réciproquement (VirtualBox)
- ffmpeg : x264, x265, AV1
- Script en BASH sur FreeBSD
- Exécuter un Script à distance
- CPU Multi-coeur : Assigner un coeur du CPU à un processus en particulier
- Découper un fichier en plusieurs et le réassembler (Split et Cat)
- Empêcher l'affichage des notifications intempestives sur la console
- Télécharger des vidéos Youtube et autres sites
- Voir les processus (PID) en cours et les arrêter
- Musiciens ! l'éditeur de partition MuseScore existe sur FreeBSD !!
- Incompatibilité du dongle USB Wi-FI MU-MIMO, D-Link DWA-181, AC1300 USB2.0
- Copier un DVD/Blu-ray (protégé ou non protégé)
- Exécutez une tâche au démarrage avec Cron
- Aspirer un site web avec wget
- Configurer NTPD et le fuseau horaire pour régler la date et l'heure
- Faciliter les recherches de fichiers avec "locate"
- Installer un serveur de logs (Rsyslog) sur FreeBSD 13.2 et configurer un client debian 12
- Créer une clef/périphérique USB en ZFS
- Installer VScode (Code OSS) sur FreeBSD 13.2
- Se connecter à un réseau Wifi en CLI sur FreeBSD
- Rendre les alias permanents sur FreeBSD
- qutebrowser, un navigateur web minimaliste mais complet, ultra rapide
- password-store : un gestionnaire de mots de passe en CLI
- Haute Disponibilité avec HAST et CARP et ZFS
- Créer une borne Wifi avec un serveur FreeBSD
- Effectuer un benchmark avec sysbench
- Empêcher la mise en veille de l'écranSe connecter à distance :
- Configurer tigervnc-server avec certificat SSL X509
- Utiliser AnyDesk sous FreeBSD
- Se connecter en VNC à un serveur/bureau OpenIndiana en créant un tunnel SSH avec Putty
- RDP : se connecter à un serveur FreeBSD depuis Windows, Linux, MacOS
- Se connecter en RDP à un bureau à distance (rdesktop)Webmin
- Installation de webmin sur FreeBSD 13.1+Base SQL : (voir la rubrique MySQL)
- Installer MySQL/MariaDB
- Installer MySQL 8.0 sur FreeBSD 13.1+Configuration d'un serveur Web et outils d'administration
- Configurer un site internet en http sur Nginx (FreeBSD 13.0 STABLE)
- Configurer un site internet en http sur Apache24 (FreeBSD 13.0 STABLE ou HardenedBSD)
- Configurer un site intranet en https sur Apache24 (AUTO-SIGNE)
- Configurer un site internet en https sur Apache24 (signé par une autorité distante)
- Configurer un site internet en https sur apache24 (SCRIPT)
- Mise en place d'un Reverse Proxy sur Nginx
- Installer GLPI 10.0.6
- Connectez votre AD à GLPI (Merci à Louis et Mathias)
- Installer Wordpress
- Installer Wordpress avec SSL (SCRIPT)
- Installer Wordpress avec SSL (certificat auto-signé)
- Installer Wordpress avec SSL (signé par une autorité distante)
- Installer TikiWiki 23
- Installer TikiWiki 25.0
- Installer Concrete5
- Héberger un site web avec une adresse IP dynamique (NOIP)
- Rsync
- Rediriger les requêtes HTTP vers HTTPS, avec ou sans changement des ports par défaut d'Nginx
- Rediriger les requêtes HTTP vers HTTPS, avec ou sans changement des ports par défaut d'Apache
- SSL - Comment retrouver les informations entrées dans votre demande de signature .csr
Sécuriser son serveur et outils d'administration
- Sécuriser l'accès en SSH
- sshpass, pour facilier la connexion SSH via mots de passes
- Installation de l'antivirus ClamAV avec base de signatures SecuriteInfo/SaneSecurity
- Configurer Fail2ban (blocage IP tentant de se connecter en SSH pour un temps donné)
- IPFW sur FreeBSD 13/14
- PF sur FreeBSD 13/14
- Faire un scan de ports avec Nmap
- Sécuriser un Serveur FreeBSD
- Génerer des clefs SSH pour se connecter à un serveur distant
- Configurer rkhunter sur FreeBSD
- Installation du VPN OVPN
Serveur FTP
- Configurer un serveur SFTP avec OpenSSH
- Installation d'un serveur FTP (ProFTPd)
- Installation d'un serveur FTP (Pure-FTPd)
- Déployer un serveur sFTP en un seul script, avec stockage externe
- Afficher un volume SFTP sur le bureau avec XFCE
- Afficher un volume SFTP sur le bureau avec KDEHaute-Disponibilité :
- Mise en Haute-Disponibilité avec RSF-1 ZFSStockage décentralisé :
- Connecter un bucket STORJ à FreeBSD grâce à rclone-browser
- Compiler Sia sous FreeBSD 14.1Serveur DNS
- Déployer un serveur DNS local avec Bind918Chats :
- Configurer simplement un serveur XMPP (Openfire) avec salons de discussions
- Configurer miniIRCd sur FreeBSD 14.1 -
Par majekla le 15 Novembre 2024 à 12:06
Il y a des activités où un écran doit rester allumé en continu (monitoring etc..)
Sauf que même avec un environnement de bureau minimaliste (avec Xorg, comme twm...), l'écran continue de s'éteindre... Pourquoi ?
C'est à cause de DPMS.
Pour afficher les valeurs, ouvrez un terminal et tapez :xset q
Vous devriez voir un encart :
DPMS (Display Power Management Signaling):
Standby: 600 Suspend: 600 Off: 600
DPMS is Enabled
Monitor is On
Nous allons simplement le désactiver :xset -dpms
Et également exécuter cette commande pour désactiver un éventuel screensaver :
xset s off
Et voilà. L'écran ne s'éteindra plus.
votre commentaire -
Par majekla le 7 Novembre 2024 à 23:51
Il est tout à fait possible d'installer FreeBSD 14.1 sur ce serveur dédié chez OVH.
La technique est simple :
- Passer le boot rescue (debian-10), connectez-vous en SSH, listez les supports de stockage connectés au serveur :lsblk
- Effacer les disques :
nohup dd if=/dev/zero of=/dev/sda bs=1M &
nohup dd if=/dev/zero of=/dev/sdb bs=1M &
[...]
nohup dd if=/dev/zero of=/dev/nvme0n1 bs=1M &
- Surveiller lorsque les opérations d'effacement sont terminées :
ps -ef | grep 'dd if=' | grep -v grep
- Installer parted
apt update
apt install parted -y
- Créer des tables GPT sur les disques :
parted /dev/sda mklabel gpt
parted /dev/sdb mklabel gpt
[...]
parted /dev/nvme0n1 mklabel gpt
- Téléchargez l'image memstick de FreeBSD :wget https://download.freebsd.org/releases/amd64/amd64/ISO-IMAGES/14.1/FreeBSD-14.1-RELEASE-amd64-memstick.img
- Graver l'image sur l'un des disques HDD :
dd if=FreeBSD-14.1-RELEASE-amd64-memstick.img of=/dev/sda bs=1M status=progress
Sur votre interface OVH, régler le boot sur disk (au lieu de rescue).
Redémarrez le serveur et utilisez la console IPMI/KVM (depuis votre navigateur web par exemple.. ça fonctionne très bien avec Firefox contrairement à ce qui est dit) pour assister au boot du serveur sur l'image FreeBSD.
Faîtes l'installation de FreeBSD normalement sur le NVMe... configurez statiquement le réseau grâce aux informations données sur la page IP/passerelle... (ça ne fonctionne pas via DHCP.. alors que ça fonctionne sur NetBSD.. bizarre...).Après avoir passé 2 jours à essayer de faire fonctionner ce serveur avec omniosce et netbsd, je dois dire que je suis soulagé de voir que ça fonctionne au moins pour un BSD !!! :-D
votre commentaire -
Par majekla le 30 Octobre 2024 à 15:35
A mon grand mécontentement, le cloud Kamatera n'a pas jugé utile de déployer ZFS sur ses images de FreeBSD..
Non mais franchement !?!? C'est une blague ?!?
En gros, chargez vos propres images !!
Non pas qu'il y ait à redire d'UFS, mais le switch entre les deux est extrêmement délicat dans une VM hébergée !!
Ils pourraient proposer de facto !
Et plus rigolo encore, leur image est tellement pourrie que la partition système (/dev/da0p2) ne fait que 4Go alors que vous pouvez parfois avoir demandé 50Go de SSD !!!Et les objections sur leurs choix de configuration d'image sont relativement nombreux par ailleurs (me concernant tout du moins !!!).
Donc un petit tuto rapide pour savoir comment faire pour récupérer la totalité de l'espace que vous payez pour le système !
Evidemment, si vous comptez créer des partitions séparées pour chaque truc, ce sera différent !
Au moins vous aurez les bases en UFS !!
1) Faire un état des lieux :df -h
gpart show da0
Voici ce que vous pouvez typiquement obtenir :
root@image-kamatera:~ # df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/da0p2 4.6G 3.8G 431M 90% /
devfs 1.0K 0B 1.0K 0% /dev
root@image-kamatera:~ # gpart show da0
=> 40 104857520 da0 GPT (50G)
40 1024 1 freebsd-boot (512K)
1064 9958400 2 freebsd-ufs (4.7G)
9959464 524288 3 freebsd-swap (256M)
10483752 94373808 - free - (45G)Encore une fois, non mais franchement !! Votre système occupe 90% de la partition principale !!
Pour récupérer les 50G promis (hormis le fait que vous souhaitiez créer des partitions séparées, encore une fois).
Voici ce qu'il faut faire :
2) Redimensionner :
# Arrêter le swap :swapoff /dev/da0p3
# Supprimer la partition de swap :
gpart delete -i 3 da0
# Redimensionner la partition UFS (da0p2) pour récupérer les 50GB, mais laisser 4G pour un nouveau swap :
gpart resize -i 2 -s 96179504 da0
# Redimensionner le système de fichiers UFS pour occuper la nouvelle taille !
growfs /dev/da0p2
## (vous devez impérativement confirmer par 'yes')
# Recréer la partition swapgpart add -t freebsd-swap -s 4G da0
# Réactiver le swap
swapon /dev/da0p3
Voilà, c'est terminé !
Voici un résultat typique après les résultats ci-dessus :root@image-kamatera:~ # df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/da0p2 44G 3.8G 37G 9% /
devfs 1.0K 0B 1.0K 0% /dev
root@image-kamatera:~ # gpart show da0
=> 40 104857520 da0 GPT (50G)
40 1024 1 freebsd-boot (512K)
1064 96179504 2 freebsd-ufs (46G)
96180568 8388608 3 freebsd-swap (4.0G)
104569176 288384 - free - (141M)
votre commentaire -
Par majekla le 29 Octobre 2024 à 16:38
sysbench a le gros avantage d'être multi-plateforme, et d'être "simple" !
Il existe dans le monde linux comme dans le monde BSD.
Un script complet, analysant les résultats et donnant une note globale est présenté tout en bas.
ATTENTION : l'objectif n'est pas de comparer Debian à FreeBSD.
Les versions de sysbench ne sont pas les mêmes et celles de LuaJIT non plus, et les noyaux fonctionnent très différemment.. C'est plutôt pour vous aider lors de vos optimisations de ces systèmes respectifs, en comparant des sytèmes optimisés à d'autres qui ne le sont pas.L'installer sur Debian :
apt update
apt install sysbench -y
L'installer sur FreeBSD :pkg ins -y sysbench
Maintenant que sysbench est installé, voici une petite procédure de tests globaux :
1) Préparer un dossier pour des fichiers testsmkdir sysbench-test ; cd sysbench-test
2) Préparer des fichiers tests
sysbench fileio --file-total-size=4G prepare
3) Exécuter la série de tests :
sysbench cpu --threads=$(nproc) --cpu-max-prime=20000 run ; sysbench memory --threads=$(nproc) --memory-oper=read --memory-access-mode=seq run ; sysbench fileio --file-total-size=4G --file-test-mode=rndrw --time=60 --max-requests=0 run ; sysbench fileio --file-total-size=4G --file-test-mode=seqrd --time=60 --max-requests=0 run ; sysbench fileio --file-total-size=4G --file-test-mode=seqwr --time=60 --max-requests=0 run
Le résultat des tests s'affiche sur le shell.
4) A la fin des tests, nettoyer les fichiers de tests (ne pas les réutiliser)sysbench fileio cleanup
------------------------------------------------------------------------------------------------------------------------------
Voici un script qui fait tout le travail, de l'installation à la réalisation du bench, et qui donne une note globale.
Il est compatible Debian et FreeBSD.
Vous devez être root pour l'exécuter.Télécharger « script_benchmark.sh »
wget http://ekladata.com/AiHHnwllxAp7lVLwEMweFNELXZU/script_benchmark.sh -P /tmp
Voici le code :
#!/bin/sh
clear
system="0"
# Vérifier quel est le système (debian ou freebsd) et installer sysbench
if uname -a | grep -iq FREEBSD >/dev/null 2>&1; then
echo "-------------------------------------------------------"
echo "| Votre Système est un Système FreeBSD" ; echo
if ! pkg info -e sysbench; then
if pkg ins -y sysbench >/dev/null 2>&1; then
echo " - Sysbench vient de s'installer."
fi
else
echo " - Sysbench est déjà installé"
fi
system="1"
fi
if uname -a | grep -iq 'debian' >/dev/null 2>&1; then
echo "-------------------------------------------------------"
echo "| Votre Système est un Système Debian" ; echo
if ! dpkg -l | grep -q sysbench >/dev/null 2>&1; then
if apt update >/dev/null 2>&1; then
if apt-get install sysbench bc -y >/dev/null 2>&1; then
echo " - Sysbench vient de s'installer."
fi
fi
else
echo " - Sysbench est déjà installé."
fi
system="1"
fi
if [ ! "$system" -eq "1" ]; then
echo
echo "Système non reconnu, désolé..."
exit 0
fi
# Création du répertoire pour les fichiers de test :
[ -d /root/sysbench-test ] && { echo " - Le répertoire /root/sysbench-test existe, nous nous positionnons dedans."; cd /root/sysbench-test; } || { mkdir /root/sysbench-test && cd /root/sysbench-test && echo " - Le répertoire /root/sysbench-test a été créé, nous nous positionnons dedans."; }
# Créer les fichiers nécessaires pour le benchmark
echo " - Préparation des fichiers pour le benchmark en cours..."
sysbench fileio --file-total-size=4G prepare > /dev/null 2>&1
# Reposer le système avant le début du test
echo " - Pause de 30 secondes pour reposer le système avant démarrage du benchmark..."
sleep 30
# Démarrage du benchmark
echo
echo "-------------------------------------------------------"
echo "| Démarrage du benchmark..."
echo
echo " - Test du CPU..."
sysbench cpu --threads=$(nproc) --cpu-max-prime=20000 run > resultats.txt
echo " - Test de la mémoire..."
sysbench memory --threads=$(nproc) --memory-oper=read --memory-access-mode=seq run >> resultats.txt
sysbench fileio --file-total-size=4G --file-test-mode=rndrw --time=60 --max-requests=0 run >> resultats.txt
echo " - Tests IO... (ce test dure plusieurs minutes, patience...)"
sysbench fileio --file-total-size=4G --file-test-mode=seqrd --time=60 --max-requests=0 run >> resultats.txt
sysbench fileio --file-total-size=4G --file-test-mode=seqwr --time=60 --max-requests=0 run >> resultats.txt
# Supprimer les fichiers de test (ils ne peuvent pas être réutilisés après un bench)
echo " - Nettoyage des fichiers de test..."
sysbench fileio cleanup > /dev/null 2>&1
# Partie de l'analyse des résultats :
# Fichier contenant les résultats
fichier="/root/sysbench-test/resultats.txt"
# Initialisation des variables pour stocker les résultats
cpu_events_per_sec=0
memory_transfer_rate=0
random_rw_read_rate=0
sequential_read_rate=0
sequential_write_rate=0
# Lecture du fichier et extraction des données
while read -r line; do
case "$line" in
*"events per second:"*)
cpu_events_per_sec=$(echo "$line" | sed 's/.*events per second: *\([0-9.]*\).*/\1/')
;;
*"MiB transferred"*)
memory_transfer_rate=$(echo "$line" | sed 's/^\([0-9.]*\).*/\1/')
;;
*"reads/s:"*)
if [ "$random_rw_read_rate" = "0" ]; then
random_rw_read_rate=$(echo "$line" | sed 's/.*reads\/s: *\([0-9.]*\).*/\1/')
fi
;;
*"read, MiB/s:"*)
if [ "$sequential_read_rate" = "0" ]; then
sequential_read_rate=$(echo "$line" | sed 's/.*read, MiB\/s: *\([0-9.]*\).*/\1/')
fi
;;
*"written, MiB/s:"*)
if [ "$sequential_write_rate" = "0" ]; then
sequential_write_rate=$(echo "$line" | sed 's/.*written, MiB\/s: *\([0-9.]*\).*/\1/')
fi
;;
esac
done < "$fichier"
# Normalisation des scores (valeurs de référence basées sur des benchmarks moyens)
cpu_norm=$(echo "scale=6; ($cpu_events_per_sec / 5000000) * 100" | bc)
mem_norm=$(echo "scale=6; ($memory_transfer_rate / 40000) * 100" | bc)
rw_norm=$(echo "scale=6; ($random_rw_read_rate / 8000) * 100" | bc)
read_norm=$(echo "scale=6; ($sequential_read_rate / 1000) * 100" | bc)
write_norm=$(echo "scale=6; ($sequential_write_rate / 500) * 100" | bc)
# Calcul de la moyenne des scores normalisés
note_globale=$(echo "scale=6; ($cpu_norm + $mem_norm + $rw_norm + $read_norm + $write_norm) / 5" | bc)
# Affichage des résultats
echo
echo "-------------------------------------------------------"
echo "| Résultats du benchmark système |"
echo "-------------------------------------------------------"
echo "| CPU : $cpu_events_per_sec events/sec"
echo "| Mémoire : $memory_transfer_rate MiB/sec"
echo "| I/O Random R/W : $random_rw_read_rate reads/sec"
echo "| I/O Sequential Read : $sequential_read_rate MiB/sec"
echo "| I/O Sequential Write : $sequential_write_rate MiB/sec"
echo "|------------------------------------------------------"
echo "| Note globale : $note_globale %"
echo "-------------------------------------------------------"
echo
echo "Résultats détaillés dans le fichier '/root/sysbench-test/resultats.txt'"
echo
votre commentaire -
Par majekla le 22 Octobre 2024 à 16:40
Comme je l'ai déjà souligné, Contabo est un cloud vraiment très abordable et pratique.
Il faut un peu de temps lorsqu'on se lance sur leur API, mais pour du basique via l'interface web, c'est top !!
Et surtout... on peut y installer une VM FreeBSD .. sans toucher à l'API ni manipuler cloud-init (enfin.. vous apprendrez ça plus tard !)Contabo ne propose pas par défaut la possibilité de créer un VPS avec FreeBSD, mais en réalité c'est parfaitement possible !! Et sans aucune ligne de commande ! L'installation de l'image FreeBSD se fait APRES l'achat du VPS... en 3 clics !
Pour ce faire, il y a 3 étapes : (en plus d'avoir ouvert un accès chez eux - gratuit)
1) Acheter un VPS (une VM) avec image custom
2) Installer l'image standard de FreeBSD 14 sur le VPS
3) Configurer immédiatement le VPS (!).Tout va très vite !
On y va. (Je présuppose que vous avez déjà un compte sur contabo.com)
1) Acheter un VPS !
Dans votre espace web, dans le menu latéral de gauche, en bas, (New Order), cliquez sur "VPS"
Choisissez les caractéristiques de votre serveur, et en bas, lors du choix de l'image (4.), choisissez "Popular > Custom Images > Use your existing Custom Image Storage" surtout !
Payez... et revenez dans votre espace web.
Attendez quelques minutes (oui j'insiste, je me suis déjà retrouvé planté plusieurs fois car le déploiement n'était fini avant que je tente l'installation de l'image !!) que le déploiement se fasse2) Installer l'image standard de FreeBSD
Dans votre espace web, dans le menu latéral de gauche (control panel), cliquez sur "Control VPS".
Vous allez voir votre VPS, avec une adresse IP publique attribuée et l'a possibilité d'Install VPS/VDS
Cliquez sur le bouton...
ATTENTION ici :
Vous choisissez donc une image standard, déroulez la liste, FreeBSD 14 !Ne rentrez pas de mot de passe administrateur, activer root et fournissez une clef SSH publique !
Une fois l'installation terminée (attendez 3min), puis connectez-vous via SSH au serveur :
ssh root@IP-PUBLIQUE-SERVEUR
Dès lors que vous avez réussi à vous connecter via SSH, allez sur votre console web de Contabo, control panel > VPS control et faîtes un snapshot de la VM !3) Configurer immédiatement le VPS
Une fois connecté au VPS via SSH, il faut impérativement effectuer les opérations suivantes RAPIDEMENT :
- Désactiver cloud-init :
service cloudinit stop
sysrc cloudinit_enable=NO
N'oubliez pas de le désactiver également depuis votre interface web.
- modifier le mot de passe de root
passwd root
- Installer nano (uniquement pour ceux qui ne sont pas familiers de vi, car on va avoir besoin d'éditer des fichiers):
pkg ins -y nano
- Créer un utilisateur administrateur (pour l'instant il n'y a que root). Ici ce sera marcel.
adduser
(Invite marcel into other groups? : wheel)
- restreindre la connexion SSH à root et/ou omnios :
nano /etc/ssh/sshd_config
# chercher les lignes suivantes et effectuer les modifications comme ci-dessous :
PermitRootLogin prohibit-password
PasswordAuthentication yes
KbdInteractiveAuthentication yes
# Ajouter la directive suivante :
AllowUsers root marcelBien entendu, vous adapterez la configuration SSH en fonction de vos besoins !!
Ici vous permettez uniquement à root d'être contacté via des clefs SSH et à marcel d'être contacté par mot de passe et/ou clefs SSH.
N'oubliez pas de redémarrer le service ssh pour mettre à jour les modifications :service sshd restart
- profitez-en pour mettre le serveur à jour : (Il faut passer à la 14.1 impérativement ! La 14.0 n'est plus supportée par FreeBSD !)freebsd-update fetch ; freebsd-update install
Puis
freebsd-update upgrade -r 14.1-RELEASE
Puis à nouveau :
freebsd-update fetch ; freebsd-update install
- Corriger un petit bug de la conf cloudinit de Contabo :
Dans le fichier /etc/rc.conf, la ligne hostname apparaît 10 fois.. (allez savoir pourquoi), growfs_enable apparaît 5 fois, zfs_enable 2 fois, zpool_rguid et zpool_upgrade 2 fois !
N'en gardez qu'une seule de chaque !nano /etc/rc.conf
Si vous ne voulez pas d'adressage IPv6, commentez la ligne ifconfig_eth0_ipv6 !
- Redémarrer le serveur :
reboot
Reconnectez-vous et faîtes votre préparation habituelle d'un serveur freebsd.
votre commentaire -
Par majekla le 11 Octobre 2024 à 21:55
On veut transformer un serveur FreeBSD en borne Wifi (point d'accès) sécurisée, simplement.
Le serveur possède 2 interfaces réseaux (a minima)
- une ethernet (re0 pour l'exemple), configurée et connectée à internet.
- une wifi (wlan0 - l'interface logique, rtwn0 étant la carte wifi physique (realtek))Je ne vais pas détailler tout le processus, (demandez à n'importe quel modèle d'IA, il vous expliquera le pourquoi du comment), simplement vous donner des fichiers de configurations fonctionnels, avec une configuration pf un minimum sécurisée (pour éviter le bruteforce etc..).
1) Installer les programmes nécessaires:
pkg info -e hostapd >/dev/null 2>&1 || pkg ins -y hostapd
pkg info -e isc-dhcp44-server >/dev/null 2>&1 || pkg ins -y isc-dhcp44-server2) Ce qui concerne le schmilblick dans /etc/rc.conf : (ce n'est pas le fichier entier !! juste la partie point d'accès). Veillez à ne pas avoir d'instructions redondantes ou concurrentes.
ifconfig_re0="DHCP"
wlans_rtwn0="wlan0"
create_args_wlan0="wlanmode hostap"
ifconfig_wlan0="inet 172.18.19.1 netmask 255.255.255.0 ssid MonSuperWifi mode 11g channel 6"
gateway_enable="YES"
hostapd_enable="YES"
dhcpd_delay="10"
dhcpd_conf="/usr/local/etc/dhcpd.conf"
dhcpd_enable="YES"
dhcpd_ifaces="wlan0"
dhcpd_flags="-q"
pf_enable="YES
pf_rules="/etc/pf.conf"3) Le contenu du fichier /etc/hostapd.conf (le point d'accès wifi)
interface=wlan0
ssid=MonSuperWifi
hw_mode=g
channel=6
wpa=2
wpa_passphrase=SuperMotDePasse
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP4) Le fichier de configuration pour /etc/pf.conf (pour le NAT et la protection du réseau wifi)
# Définition des interfaces
ext_if = "re0" # Interface ethernet reliée à Internet
int_if = "wlan0" # Interface wifi du hotspot
# Tables pour les adresses bloquées et les limites de connexion
table <bruteforce> persist
table <conn_limit> persist
# Options de normalisation
scrub in all
# NAT pour le trafic sortant
nat on $ext_if from $int_if:network to any -> ($ext_if)
# Règles par défaut
block all
pass out quick keep state
# Autoriser le trafic entrant sur l'interface WiFi
pass in on $int_if keep state
# Protection contre les attaques par force brute
block quick from <bruteforce>
# Limiter les nouvelles connexions
pass in on $int_if proto tcp to port { 22 80 443 } flags S/SA \
keep state (max-src-conn 100, max-src-conn-rate 15/5, \
overload <conn_limit> flush global)
# Bloquer les adresses qui dépassent la limite de connexion
block quick from <conn_limit>
# Autoriser le trafic DNS
pass out proto udp to port 53 keep state
# Journalisation
pass log (all)5) Le contenu du fichier /usr/local/etc/dhcpd.conf (pour le serveur DHCP qui fournira les configurations IP des clients connectés au wifi)
authoritative;
default-lease-time 600;
max-lease-time 7200;
lease-file-name "/var/db/dhcpd/dhcpd.leases";
subnet 172.18.19.0 netmask 255.255.255.0 {
interface wlan0;
range 172.18.19.100 192.168.1.200;
option routers 172.18.19.1;
option domain-name-servers 8.8.8.8, 8.8.4.4;
}6) Activer le routage des paquets :
sysctl net.inet.ip.forwarding
sysctl net.inet.ip.forwarding=1
echo "net.inet.ip.forwarding=1" >> /etc/sysctl.conf7) Lancer les services
service netif restart ; sleep 2
service routing restart ; sleep 2
service hostapd restart ; sleep 2
service isc-dhcpd restart
service pf restart
votre commentaire -
Par majekla le 10 Octobre 2024 à 16:13
Pour ceux/celles qui utilisent zpaq au quotidien, 2 petites entrées contextuelles pour compresser en .zpaq et décompresser un .zpaq plus vite.
Pré-requis :
- Xfce bien sûr, avec le gestionnaire de fichiers Thunar
- le paquet "zpaqfranz" installéOn y va !
1) Ouvrez le gestionnaire de fichiers Thunar.
2) Cliquez sur "Modifier" > "Configurer les actions personnalisées..."
3) Cliquez sur le + pour ajouter une action personnalisée.
ONGLET "Base" :
- Nom : Compresser en .zpaq
- Description : (laisser vide)
- Sous-menu : (laisser vide)
- Commande :zpaqfranz add /tmp/'%n'.zpaq '%f' -method 2 && mv /tmp/'%n'.zpaq '%d'
- Icône : sélectionnez l'icone "add-files-to-archive" par exemple.
ONGLET "Conditions d'apparition" :
- Motif des fichiers : *
- Etendu (min-max) : *
- Apparaît si la sélection contient : TOUT COCHER
Valider.
Faîtes l'essai, ça marche pour n'importe quel fichier ou dossier.
Ils sont d'abord compressés dans un dossier temporaire et n'apparaissent qu'une fois la compression terminée.Il faut à présent créer l'action inverse, qui décompresse un fichier .zpaq :
1) Ouvrez le gestionnaire de fichiers Thunar.
2) Cliquez sur "Modifier" > "Configurer les actions personnalisées..."
3) Cliquez sur le + pour ajouter une action personnalisée.
ONGLET "Base" :
- Nom : Décompresser le .zpaq
- Description : (laisser vide)
- Sous-menu : (laisser vide)
- Commande :zpaqfranz extract '%f'
- Icône : sélectionnez l'icone "extract-archive" par exemple.
ONGLET "Conditions d'apparition" :
- Motif des fichiers : *.zpaq
- Etendu (min-max) : *
- Apparaît si la sélection contient : TOUT COCHER
Valider.
votre commentaire -
Par majekla le 10 Octobre 2024 à 15:28
Voilà une configuration bien agréable, étant donnée que pour le moment, il n'est pas encore possible de formater "simplement" un périphérique USB en NTFS pour un utilisateur à partir de l'interface graphique d'xfce sur FreeBSD.
Nous allons donc créer une entrée dans le menu contextuel (clic-droit de la souris) qui ne s'affichera QUE lorsque vous cliquerez-droit sur le volume da0 (ou l'une de ses partitions, type da0p1..) dans l'explorateur Thunar et qui vous permettra de formater automatiquement en NTFS.
Pré-requis :
- Xfce bien sûr, avec le gestionnaire de fichiers Thunar
- le paquet "fusefs-ntfs" installé et chargé (kldload fusefs)On y va !
1) Ouvrez le gestionnaire de fichiers Thunar.
2) Cliquez sur "Modifier" > "Configurer les actions personnalisées..."3) Cliquez sur le + pour ajouter une action personnalisée.
ONGLET "Base" :
- Nom : Formater da0 en NTFS
- Description : Formater le périphérique USB da0 en NTFS
- Sous-menu : (laisser vide)
- Commande :gpart destroy -F da0 ; gpart create -s GPT da0 ; gpart add -t ms-basic-data da0 ; chmod 760 /dev/da0p1 ; export NTFS_USE_UBLIO=0 ; mkntfs -vFQ /dev/da0p1
- Icône : sélectionnez l'icone "drive-harddisk-usb" par exemple
ONGLET "Conditions d'apparition" :
- Motif des fichiers : da0*
- Etendu (min-max) : laisser vide
- Apparaît si la sélection contient : ne cocher que "Répertoires **"
Valider.
Faîtes l'essai, ça marche !Bien entendu, cette manoeuvre peut être répétée (via l'ajout d'une nouvelle action personnalisée à chaque fois) pour d'autres disques (da1*, da2*, ada0*, ada1* etc..) et dans d'autres formats !!
Pour intégrer cela de manière scriptée, ces configurations personnalisées se trouve dans ~/.config/Thunar/uca.xml
à bons entendeurs ... ;-)
votre commentaire -
Par majekla le 10 Octobre 2024 à 14:17
FreeBSD n'est pas permissif, c'est un fait (et tant mieux).
Il n'est donc pas possible pour des utilisateurs ayant un environnement de bureau comme Xfce de démonter et d'éjecter eux-mêmes leurs périphériques USB.
Il leur est possible de les monter automatiquement grâce à automount mais ils ne peuvent, en revanche, pas les démonter et les éjecter... un comble.. c'est agaçant pour un usage de bureau !Il existe plusieurs méthodes pour palier ce problème : DSBMC+DSBMD, configurer polkit etc..
Je vous en montre une qui utilise sudo et un script wrapper.
On ne pas donne de droits sudo complets, juste celui d'utiliser la commande umount.ATTENTION !! Ne réexécutez pas ces commandes 2 fois, où vous allez perdre le véritable binaire umount !
Pré-requis :
- Avoir installé sudo
- L'utilisateur doit avoir un environnement xfce fonctionnel.Passez en root avant de continuer !
1) Ecrire un script wrapper pour umount :
echo '#!/bin/sh' > /usr/local/bin/umount-wrapper
echo 'sudo /sbin/umount.original "$@"' >> /usr/local/bin/umount-wrapper2) Rendre le script exécutable
chmod +x /usr/local/bin/umount-wrapper
3) Renommez le binaire "umount" originel et créer un lien symbolique depuis notre wrapper :
(surtout, ici, ne réexécutez pas la commande mv 2 fois !!)mv /sbin/umount /sbin/umount.original
ln -s /usr/local/bin/umount-wrapper /sbin/umount
4) Modifier le fichier sudoers pour permettre à l'utilisateur d'exécuter la commande umount originelle sans mot de passe : (remplacez VOTRE-UTILISATEUR par le login de l'utilisateur qui doit être autorisé à démonter/éjecter les périphériques USB !)
printf "\n" >> /usr/local/etc/sudoers
echo "# Démonter les périphériques USB :" >> /usr/local/etc/sudoers
echo "VOTRE-UTILISATEUR ALL=(ALL) NOPASSWD: /sbin/umount.original" >> /usr/local/etc/sudoers5) Redémarrer le système
reboot
Votre utilisateur pourra désormais démonter et éjecter un périphérique USB simplement en cliquant sur l'icône éjecter !
votre commentaire -
Par majekla le 9 Octobre 2024 à 10:27
Voici une procédure simple et complète de configuration d'un serveur VNC avec certificat X509 afin de permettre la connexion entre un ordinateur client et un ordinateur serveur (srvweb) avec environnement de bureau - xfce4 ici.
La connexion se fait depuis l'ordinateur client vers l'ordinateur serveur.
L'objectif : afficher la session de bureau xfce4 de l'utilisateur "marcel" de l'ordinateur serveur depuis l'ordinateur client.On va installer le logiciel serveur sur l'ordinateur serveur, configurer le logiciel afin qu'un utilisateur distant puisse se connecter à la session de bureau de marcel sur le serveur et créer un certificat (autosigné) SSL X509.
Il faudra transférer le certificat X509 créé sur l'ordinateur serveur sur l'ordinateur client car c'est lui qui permettra la connexion (sinon impossible de se connecter au serveur).
Pré-requis : marcel a un environnement de bureau fonctionnel sur l'ordinateur serveur.
1. Installation du serveur TigerVNC sur l'ordinateur serveur :
(il faut être root)pkg ins -y tigervnc-server
2. Configurer VNC pour l'utilisateur "marcel" sur le serveur
2.1 Se connecter en tant que marcel depuis le serveur :user="marcel"
su - $user
Recréer la variable utilisateur lorsque vous êtes connecté à marcel :
user="marcel"
2.2. Configurer le serveur VNC pour "marcel"
Crée les fichiers de configuration VNC pour cet utilisateur en démarrant le serveur VNC pour la première fois :vncserver :1 -rfbport 42654
Le serveur demandera de définir un mot de passe pour l'accès VNC (exemple ici : P@ssw0rd) puis d'entrer un view-only password (répondre non).
Les fichiers de configuration initiaux se créent et le serveur se lance pour la première fois.
Arrêter le serveur tout de suite pour pouvoir continuer la configuration :vncserver -kill :1
2.3. Configurer l'affichage graphique dans la session VNC
Modifier le fichier xstartup pour utiliser un environnement de bureau comme XFCE (ou GNOME/KDE selon ce qui est installé sur le serveur) via VNC :echo '#!/bin/sh' > /home/$user/.vnc/xstartup
echo 'unset SESSION_MANAGER' >> /home/$user/.vnc/xstartup
echo 'unset DBUS_SESSION_BUS_ADDRESS' >> /home/$user/.vnc/xstartup
echo 'startxfce4 &' >> /home/$user/.vnc/xstartup
echo '# gnome-session &' >> /home/$user/.vnc/xstartup
echo '# startkde &' >> /home/$user/.vnc/xstartup4. Configuration du certificat X509 pour l'utilisateur "marcel"
4.1 Génération du certificat X509 sur le serveur
(toujours en tant qu'utilisateur marcel)openssl req -new -x509 -days 365 -nodes -out /home/$user/.vnc/x509_ca.pem -keyout /home/$user/.vnc/x509_key.pem
(Remarque importante : lorsque OpenSSL demande un Common Name (CN), il faut entrer le hostname du serveur (srvweb))
4.2 Editer le fichier ~/.vnc/config pour y inclure les informations sur le certificat créé plus haut :echo 'securitytypes=x509vnc' > /home/$user/.vnc/config
echo "X509Cert=/home/$user/.vnc/x509_ca.pem" >> /home/$user/.vnc/config
echo "X509Key=/home/$user/.vnc/x509_key.pem" >> /home/$user/.vnc/config
echo "AlwaysShared=1" >> /home/$user/.vnc/config
echo "NeverShared=0" >> /home/$user/.vnc/config
5. Redémarrer le serveur VNC avec un port personnalisé (42654 par exemple)vncserver :1 -rfbport 42654
Pour visualiser le log en direct :tail -f /home/$user/.vnc/srvweb:1.log
6. Sur l'ordinateur client, installer un client VNC (tigervnc-viewer par exemple si Unix..)
(il faut être root)pkg install -y tigervnc-viewer
7. Transmettre le certificat au client
Transférer le fichier /home/marcel/.vnc/x509_ca.pem depuis l'ordinateur serveur vers l'ordinateur client.
Tout dépend du système sur l'ordinateur client, mais s'il s'agît de FreeBSD, alors il vaut mieux copier le certificat dans l'arborescence de l'utilisateur qui se connectera à l'utilisateur distant marcel :
/home/UTILISATEUR-CLIENT/.vnc/
L'échange peut être fait via scp entre les 2 marchines (par exemple)
8. Configurer le client VNC sur l'ordinateur client
8.1. DNS ou /etc/hosts sur le client
Sur le client, ajouter l'enregistrement DNS (ou dans /etc/hosts) entre l'adresse IP de l'ordinateur serveur et son nom :echo '45.56.67.78 srvweb' >> /etc/hosts
8.2. Lancer TigerVNC Viewer sur l'ordinateur client :
Ouvrir TigerVNC Viewer et entrer le nom d'hôte avec le port personnalisé :srvweb:42654
Avant de lancer la connection, cliquer sur Options > Sécurité :
Décocher "Aucun" et "TLS avec certificats anonymes"
Cocher "TLS avec certificat X509"
Dans la case Certificat du chemin pour X509 CA, entrer le chemin du certificat TLS de l'ordinateur serveur distant fraîchement transféré :
/home/UTILISATEUR-CLIENT/.vnc/x509_ca.pem
Ne pas remplir la case X509 CRL.
Initier à présent la connexion. Le mot de passe VNC sera alors demandé (P@ssw0rd).
9. Arrêter le serveur VNC (lorsque nécessaire)
Sur l'ordinateur serveur :vncserver -kill :1
votre commentaire -
Par majekla le 8 Octobre 2024 à 16:17
Pour choisir soi-même le nom et l'emplacement des répertoires usuels dans le répertoire de base d'un utilisateur, on peut utiliser xdg-user-dirs :
- Installer xdg-user-dirs (en root) :
pkg ins -y xdg-user-dirs
- Créer le fichier de configuration pour votre utilisateur ~/.config/user-dirs.dirs avec le contenu suivant :
(modifiez selon vos désirs)XDG_DESKTOP_DIR="$HOME/Bureau"
XDG_DOWNLOAD_DIR="$HOME/Téléchargements"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_MUSIC_DIR="$HOME/Musique"
XDG_PICTURES_DIR="$HOME/Images"
XDG_VIDEOS_DIR="$HOME/Vidéos"
XDG_TEMPLATES_DIR="$HOME/Modèles"
XDG_PUBLICSHARE_DIR="$HOME/Public"- Appliquez les bonnes permissions :
(mon utilisateur s'appelle marcel)chown marcel:marcel ~/.config/user-dirs.dirs
chmod 600 ~/.config/user-dirs.dirs
- Relancez la configuration :
xdg-user-dirs-update
A la rigueur, redémarrez même l'ordinateur.reboot
votre commentaire -
Par majekla le 20 Août 2024 à 17:55
Xfce4 est vraiment formidable, mais je ne lui trouve qu'un seul défaut : à la différence des autres bureaux, il ne permet pas par défaut de redimensionner les fenêtres des applications lorsqu'on les envoie sur un bord de l'écran... et c'est pourtant vraiment vraiment très pratique !!!
Qu'à cela ne tienne, on peut toujours écrire 3 raccourcis claviers pour le faire !
Et le résultat est pas mal du tout !
Aller dans le Gestionnaire de Paramètres (clic-droit sur le bureau, Applications, Paramètres, Gestionnaire de Paramètres) :
Ouvrez "Clavier", puis cliquez dans l'onglet Raccourcis d'applications et ajoutez les commandes suivantes :
D'abord un premier raccourci : pour envoyer la fenêtre active dans la partie gauche de l'écranwmctrl -r :ACTIVE: -e 0,0,0,1080,1440
Vous choisirez comme raccourci-clavier la combinaison des touches Windows (Super) + flèche de gauche
Puis un deuxième raccrouci :pour envoyer la fenêtre activedans la partie droite de l'écranwmctrl -r :ACTIVE: -e 0,1080,0,1080,1440
Vous choisirez comme raccourci-clavier la combinaison des touches Windows (Super) + flèche de droite
Enfin, le dernier raccourci : pour occuper tout l'écran
wmctrl -r :ACTIVE: -e 0,0,0,2160,1440
Vous devrez probablement adapter les valeurs chiffrées.
Sur mon écran, la résolution est de 2160x1440
Il est facile de voir comment je m'y suis pris.
Pour la première commande, j'ai divisé la largeur de l'écran (2160) par 2, ça donne 1080, mais j'ai gardé la hauteur normale (1440).
Pour la seconde commande, idem.. Mais regardez bien le positionnement des valeurs cette fois.C'est un moyen très simple de décupler la productivité sur Xfce4.
Bien entendu, vous devrez adapter ces valeurs à votre configuration !
J'entends par là que vous avez probablement des menus, tableaux de bords ou autres qui occupent déjà une partie de votre écran (sur xfce, par défaut, nous avons le tableau de bord 1 en haut). Ce qui signifie que lorsque vos fenêtres se placeront et se redimensionneront, elles n'occuperont pas l'espace déjà utilisé par ces barres, mais se positionneront en-dessous.
Il faudra donc réduire d'au moins 50/70 pixels la hauteur de vos fenêtres dans les commandes ci-dessus, où elles se redimensionneront trop bas (vous ne verrez pas le bas de la page !).
En tâtonnant 2min, on y arrive très bien :-).Suivant la même logique, vous pouvez créer des raccourcis pour occuper le 1er quart en haut à gauche etc...
votre commentaire -
Par majekla le 19 Août 2024 à 15:24
Méthode agressive... le mieux étant de créer un fichier dans /usr/local/etc/ ...
# Passer du quarterly au latest :sed -i "" 's/quarterly/latest/' /etc/pkg/FreeBSD.conf
pkg udpate -f
# (Re)passer du latest au quarterly :
sed -i "" 's/latest/quarterly/' /etc/pkg/FreeBSD.conf
pkg remove -yf pkg
pkg ins -y
pkg update -f
ça suppose que vous n'avez aucun paquet installé sur votre serveur... pour éviter de foutre le bazard !
votre commentaire -
Par majekla le 29 Juillet 2024 à 14:00
miniIRCd est un serveur IRC minimaliste.
Pas de contrôle des utilisateurs entrants, pas d'authentification (autre qu'un mot de passe d'accès), juste du SSL.
ça peut servir dans certains cas...
On peut facilement écrire un filtre fail2ban et configurer le pare-feu pour limiter les risques.
Passez en root pour toute la procédure
1) Installer git et python3pkg ins -y git python311 tmux
2) Télécharger installer miniIRCd
cd /tmp && git clone https://github.com/jrosdahl/miniircd.git && cd miniircd && cp miniircd /usr/local/bin/
3) Générer le certificat SSL autosigné et créer le chroot
mkdir -p /var/jail/miniircd ; cd /var/jail/miniircd ; openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout miniircd.key -out miniircd.crt
4) Créer un lien symbolique pour Python3
ln -s /usr/local/bin/python3.11 /usr/local/bin/python3
5) Lancer le serveur en arrière-plan
/usr/local/bin/miniircd --listen=0.0.0.0 --ssl-cert-file=/var/jail/miniircd/miniircd.crt --ssl-key-file=/var/jail/miniircd/miniircd.key --verbose --chroot=/var/jail/miniircd --setuid=nobody --password "Mon-Super-Mot-DE-PaSse" -d
Sur Android, l'application CoreIRC Go (ou sa version payante) sont compatibles avec miniIRCd
Rappel des commandes IRC de base (compatibles avec miniIRCd) :
- Rejoindre un canal ou en créer un :/join #NOM-DU-CANAL-A-CREER-OU-A-JOINDRE
- Quitter le canal "#CANAL" avec un message d'au-revoir
/part #CANAL Au revoir tout le monde
- Changer de pseudonyme
/nick NouveauPseudo
- Envoyer le message "Bonjour" à l'utilisateur "Utilisateur"
/msg Utilisateur Bonjour !
- Envoyer un fichier à un utilisateur
/dcc send UTILISATEUR-DESTINATAIRE
Comment sécuriser un peu miniIRCd.
1) Mettre en place IPFW :sysrc firewall_enable=YES firewall_script="/etc/ipfw.conf"
2) rédiger un fichier de règles pour IPFW : /etc/ipfw.conf :
(Attention à bien remplacer le nom de votre interface WAN !!)#!/bin/sh ipfw -q -f flush cmd="ipfw -q add" pif="vtnet0" # Interface WAN $cmd 00010 allow all from any to any via lo0 $cmd 00101 check-state # Autoriser les connexions sortantes sur le port 6697 et garder l'état $cmd 00112 allow tcp from any to any 6697 out via $pif keep-state # règle miniIRCd # Autoriser les connexions entrantes sur le port 6697 en mode stateful $cmd 00400 allow tcp from any to me 6697 in via $pif setup keep-state # Autoriser les connexions entrantes sur le port 22 (SSH) en mode stateful $cmd 00410 allow tcp from any to me 22 in via $pif setup keep-state # Bloquer et journaliser tout le reste entrant via l'interface WAN $cmd 00497 deny log all from any to any in via $pif # Bloquer et journaliser tout le reste $cmd 00999 deny log all from any to any
- Lancer IPFW :
service ipfw start
La connexion SSH saute, c'est normal... mais si vous ne vous êtes pas trompés dans le fichier de règles, vous pouvez vous reconnecter.
3) Ecrire un petit démon de ban d'IP : /var/jail/miniircd/banip.sh
#!/bin/sh
LOG_FILE="/var/jail/miniircd/miniircd.log"
IPFW_RULES_FILE="/etc/ipfw.rules"
LAST_LINE=""
ban_ip() {
IP=$1
# Vérifier si l'IP est déjà bannie
if ! ipfw list | grep -q "deny ip from $IP to any"; then
# Ajouter la règle pour bannir l'IP
ipfw add deny ip from "$IP" to any
# Sauvegarder la règle dans le fichier de configuration IPFW
echo "deny ip from $IP to any" >> "$IPFW_RULES_FILE"
echo "$(date): Banned IP $IP" >> /var/log/miniircd_bans.log
fi
}
# Utiliser tail -F pour suivre le fichier de log
tail -F "$LOG_FILE" | while read -r line; do
# Vérifier si la ligne contient le code d'erreur 464
if echo "$line" | grep -q "464 :Password incorrect"; then
# Extraire l'adresse IP
IP=$(echo "$line" | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}')
if [ -n "$IP" ]; then
ban_ip "$IP"
fi
fi
done- Autoriser son exécution :
chmod 740 /var/jail/miniircd/banip.sh
4) Lancer le serveur et exécuter le script banip. Le tout dans des sessions tmux différentes :
tmux new-session -d -s MINIIRCD "/usr/local/bin/miniircd --listen=0.0.0.0 --ssl-cert-file=/var/jail/miniircd/miniircd.crt --ssl-key-file=/var/jail/miniircd/miniircd.key --verbose --chroot=/var/jail/miniircd --setuid=nobody --password 'Super-Mot-De-Passe' --debug > /var/jail/miniircd/miniircd.log"
tmux new-session -d -s BANIP "/var/jail/miniircd/banip.sh"
En cas de redémarrage du serveur, relancer les 2 commandes ci-dessus ou mettre en place un démarrage au démarrage du serveur.5) Configurer SSH pour une connexion par clef uniquement... etc..
Comment débannir une IP :
ipfw list
relever le numéro de la règle (exemple 01099)
ipfw delete 01099
La désactivation est immédiate.
votre commentaire -
Par majekla le 11 Juillet 2024 à 11:44
Sia est un outil de stockage décentralisé accessible sous Linux et Windows, mais il est aisé de le compiler sous FreeBSD.
Voici comment faire.D'abord, installer les outils de build go :
(passer en root)pkg ins -y go git
Télécharger les sources pour Linux :
cd /tmp
git clone https://github.com/SiaFoundation/renterd.git
cd renterd/
Télécharger les outils de go :
go build ./...
répétez la commande une seconde fois
go build ./...
Compilez à présent renterd :
cd /tmp/renterd/cmd/renterd/
go build
A présent, un exécutable ./renterd est apparu.
Mais ne le lancez pas tout de suite ! Il manque notamment les autorisations.Créer un répertoire d'accueil pour le logiciel :
mkdir -p /usr/local/renterd
Déplacez le dossier /tmp/renterd dans le nouveau répertoire :
mv /tmp/renterd /usr/local/renterd/src
Octroyer les autorisations d'exécution à votre utilisateur standard (ici, c'est marcel comme toujours):
chown -R marcel:wheel /usr/local/renterd
Créer un lien symbolique pour faciliter l'exécution :
ln -s /usr/local/renterd/src/cmd/renterd/renterd /usr/bin/renterd
Voilà, il ne vous reste plus qu'à lancer renterd, puis à ouvrir votre navigateur web (http://127.0.0.1:9980)
(redevenez votre utilisateur normal)
./renterd
votre commentaire -
Par majekla le 11 Juillet 2024 à 10:30
RSF-1 ZFS est disponible pour FreeBSD, Debian (et d'autres Linux), OmniOSce ...
Sa licence pour une utilisation domestique est de l'ordre de 200€, beaucoup plus pour du commercial.
Il ne fonctionne qu'avec 2 serveurs. Son but est de mettre en place une haute disponibilité avec réplication des données périodique.
##############################################################################
# CONFIGURATION DE RSF-1
# But :
Monter 2 serveurs (s1 et s2) en un cluster de stockage avec réplication des données automatique entre les serveurs à l'intervalle voulu.
Il faut également pouvoir gérer le nombre maximal de snapshots accumulés.
Nous allons :
- Installer 2 serveurs FreeBSD 14.0 avec 3 supports de stockage par serveur (1 de 10G pour le système, 2 de 30G chacun pour le stockage)
- leur permettre de se contacter via SSH par clefs,
- installer RSF-1 ZFS sur les 2 serveurs
- Initialiser RSF-1 ZFS depuis la console web RSF de s1
- Créer le cluster HA-Cluster depuis la console web RSF de s1, en incluant s1 et s2 au cluster
- activer les heartbeats encryptés
- Créer le pool ZFS en miroir nommé "SFTP" depuis la console web RSF de s1
- Créer le pool ZFS en miroir nommé "SFTP" depuis la console web RSF de s2
- Mise en cluster du pool ZFS "SFTP"
# Pré-requis :
- 2 serveurs FreeBSD 14.0 (attention, RSF n'est pas encore compatible avec la 14.1) avec 4G de RAM, connectés à un même réseau local (pour commencer)
-- sX : 1 support de stockage système (10G) , 2 supports de stockage (pour les données) de taille identique (30G pour l'essai).
-- les 2 supports de stockage pour les données seront montés en raidz miroir directement depuis la console web de RSF-1 ZFS
# Préparation :
- Installer les serveurs, faire les MAJ sur chacun.
--- se loguer en root
--- faire les MAJ :
pkg ins -y ; pkg update
--- Repérer l'adresse IP de chaque serveur :
ifconfig
--- sur chaque noeud, y compris sur l'ordinateur hôte pour faciliter la gestion (notamment si les noeuds sont des VMs), ajouter les correspondances nom-IP dans le fichier /etc/hosts :
192.168.0.47 s1
192.168.0.48 s2
- Préparer les connexions SSH entre serveurs par clef (avec l'utilisateur root)
--- sur s1 et s2 : dans le fichier /etc/ssh/sshd_config, autoriser la connexion au compte root comme ceci:
PermitRootLogin yes
--- Relancer ssh :
service sshd restart
--- sur s1, créer la paire de clefs SSH en étant root :
------ se loguer en tant que root puis :
ssh-keygen -t ed25519
# (ne pas créer de passphrase !!)
------ envoyer la clef publique à l'autre serveur (exemple ici depuis s1) :
ssh-copy-id -i /root/.ssh/id_ed25519.pub root@s2
------ Initier une première connexion de test depuis s1 vers s2
ssh root@s2
exit
- Refaire la manip depuis s2 (et envoyer la publique à s1)
- Installer RFS-1 ZFS sur chaque serveur.
--- Télécharger le soft sur chaque serveur directement :
fetch https://packages2.high-availability.com/offline-packages/rsf-1-offline-latest-freebsd140.pkg -o /tmp
--- Installer le logiciel :
pkg install -y /tmp/rsf-1-offline-latest-freebsd140.pkg
--- Redémarrer le serveur (impératif) :
reboot
- Depuis un ordinateur client (ou depuis votre hôte), se connecter à l'interface web de s1
https://s1:8330
[...]
------ Créer l'utilisateur administrateur :
majekla
------ Nom Réel
------ Mot de passe
Il n'y a pas besoin de faire cette manip (créer cet utilisateur administrateur de la console web RSF) sur le noeud s2.
Lorsque le cluster des 2 noeuds sera créé depuis la console web RSF de s1, l'utilisateur administrateur deviendra automatiquement celui de s2 aussi.
- Une fois authentifié sur la console web de RSF sur s1, cliquer sur Create/Destroy cluster
--- Choisir "Shared-nothing" surtout car il s'agît de stockages distincts (chaque serveur a son propre stockage pour les données. Il ne s'agît pas d'un stockage mutualisé entre chaque serveur)
--- Logiquement, les 2 noeuds apparaissent dans la section "Node Selection" puisque nous avons correctement renseigné le fichier /etc/hosts de chaque noeud
--- Il faut entrer le numéros de licence des 2 noeuds puis créer le cluster.
- Activer les heartbeats encryptés dès maintenant !
--- Il est fondamental d'effectuer cette opération AVANT la mise en ligne d'un service de clustering !! Galère assurée autrement.
--- Aller dans le menu "Settings", "General", "Encrypted Heartbeats" sur "on". Sauvegardez le changement puis retourner dans le Dashboard pour démarrer le service.
- Une fois le cluster créé, il nous faut créer le service de stockage.
- Nous allons donc créer les pools sur s1 et s2, composés de nos 2 supports de stockage sur chaque serveur prévus à cet effet
Mais je dois faire ici un aparte. RSF ne permet pas, à ce jour, la création de pools et de datasets encryptés. C'est une énorme lacune du logiciel à mon sens !! (même si son objectif premier, rappelons-le, c'est la Haute Disponibilité.. pas la création des pool et datasets)
Les besoins en sécurité de ce type aujourd'hui sont fondamentaux, et cela m'a beaucoup interrogé lorsque j'ai testé ce logiciel. Il faut implémenter cette solution ! Impérativement.
Il est néanmoins tout à fait possible de réaliser les 2 étapes suivantes (création du pool et des datasets) directement en ligne de commande sur chaque serveur afin de créer ces pools encryptés puis de mettre en cluster le pool créé, c'est même la meilleure option.
Néanmoins, c'est toujours la même consigne : même nom de pool, et mêmes noms pour les datasets sur chaque serveur. Les caractéristiques doivent être rigoureusement identiques !!
Il faudra néanmoins bien réfléchir aux conséquences de l'encryption du pool et/ou des datasets lors d'un crash. Je n'ai pas pu tester cette caractéristique avec RSF, mais il est connu que les pool et datasets ZFS encryptés posent des problèmes plus particuliers lors des send/receive !
Je ferai d'ailleurs un article à ce sujet car ça n'a rien d'évident.
--- Toujours depuis la console web RSF de s1, Aller dans le menu ZFS, +Create.
--- Nommer le pool "SFTP", prendre le mode "mirror" et choisir les 2 disques (pas le premier car c'est généralement c'est celui du système)
-- Sélectionnez les disques en tant que DATA puis créer le pool ZFS.
- Il faut à présent créer le second pool ZFS "SFTP" (sur s2).
--- Se connecter à la console web RSF de s2, et faire la même manip pour créer le pool.
--- Attention, le nom du pool doit être IDENTIQUE (SFTP ici), le mode de pool (mirror) aussi, le type (DATA) aussi.
--- Une fois ce second pool créé, le pool SFTP devient soudainement "CLUSTERABLE" en bleu. (depuis la console web RSF de s1, rafraîchissez la page web pour la console de s1 et la ligne qui était rouge devient bleue !)
--- Vous pouvez fermer la console de s2, on en a plus besoin. On va faire le reste sur la console de s1
- Mise en cluster du pool ZFS "SFTP".
--- Sur la console web RSF de s1, aller dans le menu "Volumes" puis cliquer sur Actions (notre pool SFTP apparaît en bleu), "Cluster this pool".
--- Choisir le noeud préféré (s1), si vous ajoutez une VIP, attention à ne pas la nommer avec des majuscules !!! Elle ne fonctionnera pas autrement et vous allez tout faire foirer !!!! Donnez-lui un nom en minuscule et plutôt court.
--- Une fois créé, le pool ZFS "SFTP" va démarrer sur chaque noeud puis afficher "Running on s1".
- Créer les datasets sur le cluster de pools
--- Aller dans le menu ZFS, Datasets, Cliquer sur "CREATE DATASET"
--- Remplissez les champs. (Par exemple, vous pourriez dédier un dataset à un utilisateur et donc le nommer comme le nom de l'utilisateur...). Prenons USER1 par exemple
--- Mountpoint path : /SFTP/USER1
--- Activer la compression ("on")
- Configurer les intervalles entre 2 snapshots (i.e avant la synchronisation des données entre les noeuds)
--- Par défaut, elle est fixée à 15min pour le noeud actif. C'est souvent suffisant, inutile de le descendre d'avantage. Pour changer ce réglage, aller dans "Settings", "Shared Nothing".
--- Vous pouvez également régler le nombre de snapshots à conserver (ce qui peut être pratique si vous avez besoin de restaurer à une date précise).
- Attention aux pare-feux !
Ouvrir les ports :
--- 1195 (TCP & UDP)
--- 4330 (TCP)
--- 4331 (TCP)
--- 8330 (TCP)
- Comment faire pour updater dynamiquement le nom de domaine si l'un des serveurs tombe ?
Plusieurs solutions.
--- Utiliser uptimerobot par exemple, qui permet de déclencher un webhook en cas de soucis (on peut alors tricher et placer l'IP de l'API de no-ip pour modifier instantanément l'enregistrement AAAA)
--- Ecrire un simpe script qui teste la connexion SSH entre les serveurs. Dès qu'elle n'est plus disponible, on exécute l'API de No-IP (c'est une simple URL à taper).
... ce sont les solutions pas chères ça ! Mais ça fonctionne.
Sinon, il y a la grosse artillerie avec AWS & co !
votre commentaire -
Par majekla le 5 Juin 2024 à 08:54
Pour utiliser le célèbre logiciel, il vous faut un environnement de bureau ainsi que la librairie gtkglext
pkg ins -y gtkglext
Ensuite, télécharger la version d'AnyDesk pour FreeBSD via votre navigateur (ou via le shell :)
fetch https://download.anydesk.com/freebsd/anydesk-freebsd-6.1.1-x86_64.tar.gz
Décompresser le .tar.gz :
tar -xvzf anydesk-freebsd*
Entrer dans le dossier :
cd anydesk-6*
et double-cliquer sur "anydesk" ! (ou le lancer depuis le shell) :
./anydesk
C'est aussi simple.
Vous pouvez copier l'exécutable vers /usr/local/bin et créer un raccourci ou un lanceur !
OU encore utiliser le script freebsd-desktop dans un autre article qui fera l'installation pour vous.
votre commentaire -
Par majekla le 2 Juin 2024 à 13:52
Soit 2 serveurs nX sous FreeBSD 14.0.
On considère la configuration réseau effective sur les serveurs :
10.10.10.10 n1
10.10.10.20 n2
Chaque serveur possède 2 supports de stockage.
- Un support pour le système,
- l'autre pour le stockage des données, qui sera dévolu à HAST (genre 16Go).
Le second support fait la même taille sur les 2 serveurs.
Nous aurons besoin d'une IP libre sur le réseau 10.10.10.0/24 pour notre VIP
Décidons par exemple que la VIP aura pour IP : 10.10.10.50
### SUR n1
- Vérifier le nom de la carte réseau connectée :ifconfig # prenons em0 pour exemple
- Configurer le bon nom d'hôte, la bonne adresse IP et la route par défaut puis redémarrez
sysrc hostname=n1
sysrc ifconfig_em0="inet 10.10.10.10 netmask 255.255.255.0"
sysrc defaultrouter="10.10.10.1"
reboot
### SUR n2
- Vérifier le nom de la carte réseau connectée :ifconfig # prenons em0 pour exemple
- Configurer le bon nom d'hôte, la bonne adresse IP et la route par défaut puis redémarrez
sysrc hostname=n2
sysrc ifconfig_em0="inet 10.10.10.20 netmask 255.255.255.0"
sysrc defaultrouter="10.10.10.1"
eboot
### SUR n1 ET n2 :
- Ajouter le service pour un lancement au démarrage des serveurs :sysrc hastd_enable="YES"
- Renseigner le fichier /etc/hosts pour que chaque nX connaisse l'IP de l'autre :
10.10.10.10 n1
10.10.10.20 n2- Repérer les périphériques de stockage dévolus pour HAST :
camcontrol devlist
(on va dire que sur n1 j'ai ada1 et sur n2 ada1 aussi)
- Créer le fichier de configuration /etc/hast.confresource shared {
on n1 {
local /dev/ada1
remote n2
}
on n2 {
local /dev/ada1
remote n1
}
replication memsync
}
# Démarrer le service HAST :service hastd start
### SUR n1
# Définir n1 comme serveur primaire :hastctl role init shared
hastctl create shared
hastctl role primary shared
### SUR n2
# Définir n2 comme serveur secondaire :hastctl role init shared
hastctl create shared
hastctl role secondary shared
### SUR n1 ET n2
# Vérifier l'état de la configuration HAST :hastctl status shared # il doit être "completed" sur les n1 et n2
# LA CONFIGURATION DE HAST EST TERMINEE.
##############################
# CONFIGURATION DU POOL ZFS
### SUR n1
- Créer le pool ZFS sur le périphérique HAST :zpool create hastpool /dev/hast/shared
- Créer un système de fichiers ZFS
zfs create hastpool/shared
# LA CONFIGURATION ZFS EST TERMINEE.
##############################
# TESTER HAST MANUELLEMENT (AVANT DE METTRE CARP EN PLACE)
### SUR n1
# Créer un fichier de test :echo "Hello from n1" > /hastpool/shared/testfile.txt
- Changer le rôle de n1 à secondaire :
zpool export hastpool
hastctl role secondary shared
### SUR n2
# Changer le rôle de n2 à primaire :hastctl role primary shared
zpool import hastpool
- Regarder si le fichier y est :
cat /hastpool/shared/testfile.txt
# LE TEST EST CONCLUANT
# REFAIRE LE CHEMIN INVERSE POUR REMETTRE n1 EN PRIMARY
##############################
# QUE FAIRE EN CAS DE PLANTAGE ET DE REDEMARRAGE DES 2 SERVEURS :
### SUR n1 ET n2 :
# Démarrer le service HAST :service hastd start
### SUR n1
# Définir n1 comme serveur primairehastctl role init shared
hastctl create shared
hastctl role primary shared
### SUR n2
# Définir n2 comme serveur secondaire :hastctl role init shared
hastctl create shared
hastctl role secondary shared
### SUR n1
# Remonter le poolzpool import hastpool
##############################
# CONFIGURATION DE UCARP POUR LA HAUTE DISPONIBILITE (ECHANGE DE VIP)
### SUR n1 ET n2
- Installer ucarppkg ins -y ucarp
# Créer les scripts de montée et descente de la VIP :
- /usr/local/etc/ucarp-up.sh :#!/bin/sh
/sbin/ifconfig $1 alias $2 netmask 255.255.255.255- /usr/local/etc/ucarp-down.sh :
#!/bin/sh
/sbin/ifconfig $1 -alias $2 2>/dev/null- Ne pas oublier de les rendre exécutables :
chmod +x /usr/local/etc/ucarp-up.sh
chmod +x /usr/local/etc/ucarp-down.sh
- Créer un script de démarrage personnalisé : /usr/local/etc/rc.d/ucarp_custom
#!/bin/sh
# PROVIDE: ucarp_custom
# REQUIRE: NETWORKING
# BEFORE: DAEMON
# KEYWORD: shutdown
. /etc/rc.subr
name="ucarp_custom"
rcvar="ucarp_custom_enable"
start_cmd="${name}_start"
stop_cmd="${name}_stop"
ucarp_custom_start() {
/usr/local/sbin/ucarp -i ${ucarp_if} -s ${ucarp_src} -v ${ucarp_vhid} -p ${ucarp_pass} -a ${ucarp_addr} -b ${ucarp_advbase} -k ${ucarp_advskew} -P -u /usr/local/etc/ucarp-up.sh -d /usr/local/etc/ucarp-down.sh &
echo $! > /var/run/ucarp_${ucarp_vhid}.pid
}
ucarp_custom_stop() {
if [ -f /var/run/ucarp_${ucarp_vhid}.pid ]; then
kill $(cat /var/run/ucarp_${ucarp_vhid}.pid)
rm /var/run/ucarp_${ucarp_vhid}.pid
fi
}
load_rc_config $name
run_rc_command "$1"- Ne pas oublier de le rendre exécutable :
chmod +x /usr/local/etc/rc.d/ucarp_custom
### SUR n1 uniquement :
- Pour un lancement des options de ucarp au démarrage du service :sysrc ucarp_custom_enable="YES"
sysrc ucarp_if="em0"
sysrc ucarp_src="10.10.10.10"
sysrc ucarp_pass="testpass"
sysrc ucarp_vhid="1"
sysrc ucarp_addr="10.10.10.50"
sysrc ucarp_advbase="1"
sysrc ucarp_advskew="1"
### SUR n2 uniquement :
- Pour un lancement des options de ucarp au démarrage du service :sysrc ucarp_custom_enable="YES"
sysrc ucarp_if="em0"
sysrc ucarp_src="10.10.10.20"
sysrc ucarp_pass="testpass"
sysrc ucarp_vhid="1"
sysrc ucarp_addr="10.10.10.50"
sysrc ucarp_advbase="1"
sysrc ucarp_advskew="100"
### SUR n1 PUIS n2 :
# Démarrer le protocole CARP :service ucarp_custom start
# LE SYSTEME DE HA EST EN PLACE
##############################
# TEST FINAL DE LA HA :
### SUR n1service ucarp_custom start
### SUR n2service ucarp_custom start
### SUR n1ifconfig em0
# (vous devez voir l'attribution de la VIP sur em0)
### SUR n1
# A présent, c'est le grand test !
# Eteignez n1 ! et regardez ce qui se passe sur le prompt de n2 :poweroff
### SUR n2
# Regardez l'attribution de la VIPifconfig em0
# LE TEST EST CONCLUANT
### SUR n1
# Rallumer n1 à présent et regarder si la VIP revient sur n1ifconfig em0
# (oui, la VIP est revenue sur n1)
##############################
# importation forcée du pool
# Nous avons un problème.
# Si n1 tombe, n2 prend le relais de la VIP. Cela fonctionne !
# Mais, le pool hastpool ne se réimporte pas automatiquement... Il faut le remonter manuellement pour l'instant (je vous laisse scripter ça !)
votre commentaire -
Par majekla le 26 Avril 2024 à 11:19
Voici un exemple de configuration d'un pare-feu avec PF sur FreeBSD
Considérons que ma machine a 2 cartes réseaux (wlan0 et ue0).
Par défaut ici, je bloque tout accès entrant depuis le WAN mais permet à ma machine de communiquer sans restrictions avec internet (stateful).
Adaptez les règles en fonction de vos besoins :
- Passer en rootsu -
- Créez le fichier de règles : /etc/pf.conf avec le contenu suivant et adaptez-le à vos besoins.
#--- Variables pour les interfaces
wan1="ue0" # Première interface WAN
wan2="wlan0" # Seconde interface WAN
#--- Options de normalisation
set block-policy drop
set skip on lo0
#--- Définition de la table bruteforce
table <bruteforce> persist
#--- Scrub (nettoyage) tout le trafic passant par les interfaces
scrub in on {$wan1 $wan2} all fragment reassemble
#--- Règles de blocage et de passage par défaut : autoriser la machine à communiquer avec internet sans restriction (stateful)
block in all
pass out on {$wan1 $wan2} inet from any to any keep state
##############################################
# Exemples de règles pour autoriser des flux entrants spécifiques
#--- Limiter les tentatives de connexion SSH à 5 par minute par IP
#pass in on {$wan1 $wan2} proto tcp from any to any port 22 \
# flags S/SA keep state \
# (max-src-conn-rate 5/60, overload <bruteforce> flush global)
#--- Autoriser les pings ICMP entrants (IPv4) et ICMPv6 (IPv6)
#pass in on {$wan1 $wan2} inet proto icmp all icmp-type echoreq keep state
#pass in on {$wan1 $wan2} inet6 proto icmp6 all icmp-type echoreq keep state
#--- Autoriser SSH (port 22) de n'importe quelle adresse IP (IPv4 et IPv6)
#pass in on {$wan1 $wan2} all proto tcp from any to any port 22 keep state
#--- Autoriser HTTP (port 80) et HTTPS (port 443) uniquement depuis des plages IP spécifiques (IPv4 et IPv6)
#pass in on {$wan1 $wan2} all proto tcp from {192.0.2.0/24, 2001:DB8::/32} to any port {80 443} keep state
#--- Autoriser HTTP (port 80) en limitant les tentatives de connexion à 5 par minute par IP pass in on $wan1 proto tcp from any to any port 80 \ flags S/SA keep state \ (max-src-conn-rate 5/60, overload <bruteforce> flush global)
#--- Autoriser le trafic FTP (port 21) (IPv4 et IPv6)
#pass in on {$wan1 $wan2} all proto tcp from any to any port 21 keep state
#--- Autoriser le trafic vers un serveur DNS spécifique sur le port 53 (TCP et UDP) (IPv4 et IPv6)
#pass in on {$wan1 $wan2} all proto {tcp udp} from any to {198.51.100.5, 2001:DB8::1} port 53 keep state
#--- Autoriser les connexions DNS (Domain Name System)
#pass in on {$wan1 $wan2} all proto {tcp udp} from any to any port 53 keep state
#--- Autoriser NTP (Network Time Protocol)
#pass in on {$wan1 $wan2} all proto udp from any to any port 123 keep state
#--- Autoriser SMTP (Simple Mail Transfer Protocol) pour un serveur de messagerie
#pass in on {$wan1 $wan2} all proto tcp from any to any port 25 keep state
#--- Autoriser IMAP (Internet Message Access Protocol) pour un serveur de messagerie
#pass in on {$wan1 $wan2} all proto tcp from any to any port 143 keep state
#--- Autoriser POP3 (Post Office Protocol version 3) pour un serveur de messagerie
#pass in on {$wan1 $wan2} all proto tcp from any to any port 110 keep state
#--- Autoriser HTTPS (HTTP Secure)
#pass in on {$wan1 $wan2} all proto tcp from any to any port 443 keep state
#--- Autoriser les connexions entrantes pour un service de jeu en ligne (ex : port 27015 pour un serveur de jeux)
#pass in on {$wan1 $wan2} all proto tcp from any to any port 27015 keep state
#pass in on {$wan1 $wan2} all proto udp from any to any port 27015 keep state
#--- Autoriser les accès à un serveur de base de données MySQL
#pass in on {$wan1 $wan2} all proto tcp from any to any port 3306 keep state
#--- Autoriser les connexions entrantes pour un service VoIP (SIP sur le port 5060)
#pass in on {$wan1 $wan2} all proto tcp from any to any port 5060 keep state
#pass in on {$wan1 $wan2} all proto udp from any to any port 5060 keep state
#--- Autoriser le trafic pour les serveurs VPN (ex : OpenVPN sur le port 1194)
#pass in on {$wan1 $wan2} all proto udp from any to any port 1194 keep state
#--- Autoriser les connexions SSH seulement depuis une adresse IP spécifique
#pass in on {$wan1 $wan2} all proto tcp from {203.0.113.0/24, 2001:DB8:1234::/48} to any port 22 flags S/SA keep state
#--- Logger et passer le trafic autorisé spécifiquement
#pass in log on {$wan1 $wan2} all proto tcp from any to any port 80 keep state
#--- Logs spécifiques pour le trafic entrant non autorisé
#block in log on {$wan1 $wan2} all- Activez le pare-feu au démarrage du serveur :
sysrc pf_enable=YES pf_rules="/etc/pf.conf"
- Démarrer le pare-feu pf :
service pf start
- Voir la liste de règles actives :
pfctl -s rules
- Voir l'état et les stats :
pfctl -s info
- Arrêter le pare-feu (si besoin)
service pf stop
votre commentaire -
Par majekla le 6 Avril 2024 à 20:10
Nouvelle version stable : 01-10-2024, compatible avec la 14.1
Voici un script graphique pour automatiser l'installation d'un environnement de bureau sur FreeBSD :Télécharger « freebsd-desktop.sh »
Pour télécharger et exécuter le script directement depuis votre machine :
1) Passez en root :su -
2) Télécharger le script :
fetch https://lstu.fr/freebsd-desktop1401 -o /tmp
3) Exécuter le script :
cd /tmp
chmod 740 freebsd-desktop1401
./freebsd-desktop1401
Une version CLI est présente dans le script de configuration global
votre commentaire -
Par majekla le 31 Mars 2024 à 01:19
Passer en root :
su -
Modifier /usr/local/etc/lightdm/lightdm.conf
sed -i "" 's/#autologin-user=/autologin-user=VOTRE-UTILISATEUR/' /usr/local/etc/lightdm/lightdm.conf
sed -i "" 's/#autologin-user-timeout=0/autologin-user-timeout=0/' /usr/local/etc/lightdm/lightdm.conf
Redémarrez
votre commentaire -
Par majekla le 28 Mars 2024 à 17:03
Pour démarrer l'ordinateur et attérir directement sur l'environnement de bureau installé (LXQT ici en exemple) :
Passer en root :su -
Puis créez le fichier /usr/local/etc/sddm.conf avec le contenu suivant :
[Autologin]
User=VOTRE-UTILISATEUR
Session=lxqt.desktopou copiez/collez le bloc suivant dans le terminal après avoir mis votre nom d'utilisateur :
{
echo '[Autologin]'
echo 'User=VOTRE-UTILISATEUR'
echo 'Session=lxqt.desktop'
} > /usr/local/etc/sddm.confRedémarrez ensuite l'ordinateur.
reboot
votre commentaire -
Par majekla le 23 Novembre 2023 à 16:13
password-store (ou "pass" pour les intimes) est un gestionnaire de mots de passe en ligne de commande, existant sur tous les sytèmes de type Unix (Linux et BSD).
Bien qu'en ligne de commandes, il est extrêmement polyvalent, permettant la création d'un git privé et assurant la synchronisation de votre base de mots de passes entre plusieurs machines.
Nous allons voir les bases :
1) l'Installer :
(en root)pkg ins -y password-store
2) Créer votre clef GPG
(en tant que votre utilisateur, pas root ici)gpg --full-gen-key
Vous devrez répondre à plusieurs questions.
Prenez les choix par défaut.
Remplissez une adresse mail (ce sera plus facile pour la suite).
A la fin, vous obtiendrez 2 informations :
- une clef pub (clef publique), série de chiffres et de lettres, qu'il faut impérativement noter
- un uid, votre email, si vous l'avez rentré.3) Initialiser votre password-store
pass init votre@mail.truc
Voilà, c'est terminé pour la configuration
Comment s'en servir à présent :
#) Créer un mot de passe
Principalement 2 commandes, mais très vite, vous n'en utiliserez plus qu'une seule, celle-ci :pass edit LOGICIELS/MICROSOFT/WINDOWS/LICENCES-WINDOWS/WINDOWS-11PRO
Cette très longue ligne ci-dessus sert d'exemple pour vous montrer comment vous pouvez organiser l'architecture de votre password-store. Mettez des minuscules et des accents si ça vous chante, personnellement je reste très vieux jeu.
J'ai créé plusieurs "dossiers" en une seule ligne (appelez ça "catégories" si vous le souhaitez).
Tout au bout, je veux créer une entrée pour une licence windows 11 pro.
C'est assez pratique.
Cette commande vous ouvre directement l'éditeur par défaut de votre système (attention pour FreeBSD, c'est vi ! Vous devrez apprendre à vous servir de vi ou changer l'éditeur par défaut. Une fois vos entrées tappées, on quitte comme on quitte vi :wq ).
Il y a un ordre précis dans lequel entrer les informations lorsque l'éditeur se lance :
1) La première ligne sert EXCLUSIVEMENT pour le mot de passe (la clef de license Windows 11 pro dans notre cas ici). Vous ne devez rien mettre d'autre que le mot de passe, sans phrase du style "mot-de-passe : ...."
2) Mettez ce que vous voulez sur les autres lignes !
Traditionnellement, on mettra :
Utilisateur: ...
URL : ...
Commentaire : ...Pourquoi est-ce que je dis qu'il y a 2 commandes, parce que la commande de base pour créer une entrée est :
pass insert LOGICIELS/MICROSOFT/WINDOWS/LICENCES-WINDOWS/WINDOWS-11PRO
Sauf que là, vous n'aurez droit qu'à une ligne : le mot de passe. Rien d'autre.
Pour obtenir une entrée multi-ligne (telle qu'avec la commande plus haut), vous devrez tapper :pass insert --multiline LOGICIELS/MICROSOFT/WINDOWS/LICENCES-WINDOWS/WINDOWS-11PRO
Et vous arriverez alors dans un éditeur de merde où il faut tapper CTRL+D 2 fois pour quitter et où on ne peut pas revenir à la ligne précédente pour faire une modification.
Donc, passez par la commande pass edit... ce sera beaucoup plus rapide, d'autant que c'est cette commande qu'il faut utiliser pour modifier une entrée..#) Voir toute l'architecture de votre password-store
pass
C'est là que vous comprendrez l'importance de faire des catégories !
#) Afficher une entrée
(mot de passe, utilisateur etc..)pass EMAIL/GMAIL
#) N'afficher que le mot de passe d'une entrée :
pass show EMAIL/GMAIL
#) Supprimer une entrée :
pass rm EMAIL/GMAIL
Je vous laisse approfondir le sujet. Si besoin d'une explication pour la création du git et la synchro, je rajouterai.
Pour transférer sur une autre machine (autre que par un git), il faut bien garder ~/.password-store
votre commentaire -
Par majekla le 22 Novembre 2023 à 21:00
Configurer une adresse mail avec un client mail en CLI relève de plus en plus de l'exploit, tant il devient compliqué de s'accommoder des mesures de sécurité requises par les géants du web.
Néanmoins, ce n'est pas difficile avec les adresses Yahoo.. et mutt.mutt est un petit client mail en ligne de commandes qui s'installe et se configure très facilement.
Nous allons créer une configuration IMAP avec un stockage du corps et des en-têtes de mails en local.
Pré-requis :
- avoir installé mutt... ! ("pkg ins -y mutt" sur FreeBSD, ou "pkgin -y in mutt" sur NetBSD) ainsi, au besoin, d'un module pour l'authentification "plain" demandée par Yahoo. Plusieurs paquets existent selon les BSD. Sur NetBSD, c'est "cy2-plain".
- obtenir un mot de passe d'application sur le compte yahoo.
- avoir créé quelques dossiers :mkdir -p ~./mutt/cache
Pour cela, allez dans vos mails sur le site de Yahoo, cliquez sur la bulle avec votre nom en haut à droite, "infos compte", puis l'onglet "Sécurité.
Vous y trouverez "Autres méthodes de connexion", "Mot de passe d'application".
Il suffit tout simplement d'en générer un.. ET DE LE NOTER !! Parce que vous ne pourrez pas le revoir ensuite.
A savoir, éviter d'en créer/supprimer trop souvent ou cette fonctionnalité se bloque plusieurs jours...
C'est un peu pénible [...].Désormais, avec mutt, ce n'est pas votre mot de passe d'accès à votre interface web de yahoo mail dont vous aurez besoin, mais du mot de passe d'application !
Pour la configuration :
1) Créer un fichier .muttrc dans votre répertoire racine (home/marcel/.muttrc) et y mettre les éléments suivants (en changeant selon vos coordonnées bien entendu !)# IDENTITE
set realname = "Marcel Dublog"
set date_format="%A %d %b %Y à %H:%M:%S (%Z)"
set attribution="Le %d, %n a écrit :"
set forward_format="[Fwd: %s]"
set forward_quote
# SECURITE
set ssl_starttls = yes
set ssl_force_tls = yes
# [RECEPTION] : IMAP
set imap_authenticators="gssapi:cram-md5:login:plain"
set imap_user = "marcel.dublog@yahoo.com"
set imap_pass = "mot-de-passe-dapplication-yahoo"
set folder = "imaps://imap.mail.yahoo.com/"
set spoolfile = "+INBOX"
set postponed ="+Drafts"
set record = "+Sent"
set mail_check_stats=yes
# [ENVOI] : SMTP
set smtp_authenticators="gssapi:cram-md5:login:plain"
set smtp_url = "smtp://marcel.dublog@smtp.mail.yahoo.com:587"
set smtp_pass = "mot-de-passe-dapplication-yahoo"
set from = "marcel.dublog@yahoo.com"
set use_from = yes
set use_envelope_from = yes
# [STOCKAGE LOCAL]
set header_cache=~/.mutt/cache/headers
set message_cachedir=~/.mutt/cache/bodies
# [AFFICHAGE] : CONFIGURATION PERSONNALISEE
message-hook "~N" "tag-new"
set index_format="%4C %Z %{%b %d} %-15.15L (%4l) %{%f %3n %4.4k %s%}\n"
set pager_index_lines=7
set pager_stop
set date_format="%A %d %b %Y à %H:%M:%S (%Z)"
set attribution="Le %d, %n a écrit :"
set forward_format="[Fwd: %s]"
set forward_quote
color attachment magenta default
color body brightred default "(ftp|http)://[^ ]+"
color body brightcyan default [-a-z_0-9.]+@[-a-z_0-9.]+
color bold brightblue default
color error brightwhite red
color hdrdefault magenta default
color header brightmagenta default ^(From):
color header brightwhite default ^(Subject):
color header brightwhite default ^(Date):
color header white default ^(In-Reply-To):
color indicator brightred default
color markers brightblue default
color message brightblack green
color normal default default
color quoted yellow default
color quoted1 green default
color quoted2 brightblue default
color quoted3 blue default
color search black yellow
color signature red default
color status default blue
color tilde brightblue default
color tree green default
color underline brightgreen default2) Ensuite, lancez simplement mutt dans un shell sur votre session... (tappez "mutt")
Mutt est hautement configurable et léger. Vous pouvez même changer les raccourcis claviers...Par contre, il vous faudra des rudiments de vi pour écrire les mails (notamment pour quitter vi !) ou bien, il suffit de changer l'éditeur pour nano avec la ligne suivante, à rajouter dans le fichier ~/.muttrc
set editor = nano
votre commentaire -
Par majekla le 18 Novembre 2023 à 10:56
qutebrowser est un navigateur web graphique developpé par Florian Bruhin depuis près de 10 ans maintenant.
Open-source, léger, rapide, basé sur l'utilisation du clavier et de commandes pour fonctionner, il est rapide à prendre en main, hautement configurable. En un mot, je le trouve superbe !!
Divers scripts sont disponibles sur github pour en améliorer les qualités (importation de bookmarks etc..).
Voici pour vous aider, quelques raccourcis pour apprendre à le maîtriser plus vite :i : pour rentrer en mode "insertion" dans un champs de texte sur un site web.
O ou CTRL+T : créer un nouvel onglet
CTRL+N : créer une nouvelle page
gC : dupliquer l'onglet actuel
gD : faire de l'onglet actuel une nouvelle fenêtre
d : fermer l'onglet en cours
u : pour restaurer l'onglet fermé
/truc : faire une recherche de 'truc' dans la page web
:q : quitter qutebrowser
:wq : quitter en sauvegardant les onglets ouverts
:adblock-update : télécharge la liste des pub à bloquer et active adblock
H : revenir à la page précédente
J : revenir à la page suivante
(g)J et (g)K : passer d'un onglet à l'autre par le clavier
gd : télécharger
ESC : arrêter ce qui en cours
--------------------------------------------------------------------------
:set url.searchengines '{"DEFAULT": "https://www.startpage.com/do/dsearch?query={}"}'
:set url.default_page https://startpage.com
:set url.start_pages https://startpage.com
Pour configurer la recherche par défaut avec startpage ainsi que la page d'accueil de toute nouvelle fenêtre/onglet (et non avec duckduckgo, qui est la valeur par défaut)
--------------------------------------------------------------------------
Passer les pubs plus rapidement sur Youtube :
Un simple petit script pour accélérer les pubs à 3000% et les passer en 1 seconde.
Ouvrez un terminal, loguez-vous en root :su -
Créer un fichier de configuration pour la session de votre utilisateur (celui qui se sert de qutebrowser)
touch /home/majekla/.local/share/qutebrowser/greasemonkey/nopub.js
Copiez/collez le script suivant dedans :
setInterval(() => { const btn = document.querySelector('.videoAdUiSkipButton,.ytp-ad-skip-button') if (btn) { btn.click() } const ad = [...document.querySelectorAll('.ad-showing')][0]; if (ad) { document.querySelector('video').playbackRate = 1; } }, 50)
Lancer qutebrowser puis tapez :
:greasemonkey-reload
votre commentaire -
Par majekla le 11 Novembre 2023 à 11:17
J'ai un peu tardé à m'occuper de ce module, qui permet d'administrer VirtualBox via une console web (donc à distance). Il est intéressant, mais limité (pas de console vraiment fonctionnelle permettant d'accéder aux VMs... juste les lancer/arrêter/configurer).
J'ai donc décidé de m'y mettre.
Voici comment faire.
Pré-requis :
- un serveur avec FreeBSD 13.2/14 installé
- une connexion internet configurée.1) Installer Virtualbox
- Passer en root :su -
- Pour l'installation de VirtualBox, je mets tout en blocs pour aller plus vite.
Faîtes des copiers/collers !pkg ins -y virtualbox-ose ; pkg ins -y virtualbox-ose-additions
sysrc vboxguest_enable=YES vboxservice_enable=YES vboxnet_enable=YES
echo 'vboxdrv_load="YES"' >> /boot/loader.conf ; echo "[system=10]" >> /etc/devfs.rules ; echo "add path 'usb/*' mode 0660 group operator" >> /etc/devfs.rules ; sysrc devfs_system_ruleset="system"
- Veuillez remplacer $user par le nom de l'utilisateur de VirtualBox (un utilisateur système que vous avez créé lors de l'installation de FreeBSD.. sur le blog c'est toujours marcel) dans les 2 commandes suivantes :
pw groupmod vboxusers -m $user
pw groupmod operator -m $user
Derniers petits réglages relatifs aux accès aux CD, cartes réseaux en ponts etc..
(copier/coller) :sysrc hald_enable=YES ; echo "perm cd* 0660" >> /etc/devfs.conf ; echo "perm xpt0 0660" >> /etc/devfs.conf ; echo "perm pass* 0660" >> /etc/devfs.conf ; chown root:vboxusers /dev/vboxnetctl ; chmod 0660 /dev/vboxnetctl ; echo 'own vboxnetctl root:vboxusers' >> /etc/devfs.conf ; echo 'perm vboxnetctl 0660' >> /etc/devfs.conf
- Redémarrez votre système :
reboot
2) Installer PhpVirtualBox
Comme je le disais, un paquet phpvirtualbox existe sur FreeBSD... et il est "presque" parfait.
Presque, car phpvirtualbox ne peut pas fonctionner sans serveur web [...]
Nous allons donc également installer apache et le module php pour apache et configurer tout ça.
Passer en rootsu -
- Installer :
pkg ins -y apache24 mod_php81 phpvirtualbox
service apache24 enable
- Configurer php pour Apache :
(copiez/collez)echo '<FilesMatch "\.php$">' > /usr/local/etc/apache24/Includes/php.conf ; echo ' SetHandler application/x-httpd-php' >> /usr/local/etc/apache24/Includes/php.conf ; echo '</FilesMatch>' >> /usr/local/etc/apache24/Includes/php.conf ; echo '<FilesMatch "\.phps$">' >> /usr/local/etc/apache24/Includes/php.conf ; echo ' SetHandler application/x-httpd-php-source' >> /usr/local/etc/apache24/Includes/php.conf ; echo '</FilesMatch>' >> /usr/local/etc/apache24/Includes/php.conf
- Placer le dossier phpvirtualbox (qui est apparu lors de l'installation du paquet) dans le répertoire du site par défaut d'apache :
mv /usr/local/www/phpvirtualbox /usr/local/www/apache24/data/
- Modifiez le fichier de configuration config.php dans le dossier phpvirtualbox
nano /usr/local/www/apache42/data/phpvirtualbox/config.php
La première chose que nous allons modifier, c'est indiquer à phpvirtualbox le nom et le mot de passe de l'utilisateur système qui va se servir de virtualbox (rappelez-vous, ici c'est toujours marcel, mot de passe marcel)
###### Repérer les lignes suivantes ######
/* Username / Password for system user that runs VirtualBox */
var $username = 'vbox';
var $password = 'pass';
/* SOAP URL of vboxwebsrv (not phpVirtualBox's URL) */
var $location = 'http://127.0.0.1:18083/';
###### Les modifier en ######
var $username = 'marcel';
var $password = 'marcel';
/* SOAP URL of vboxwebsrv (not phpVirtualBox's URL) */
var $location = 'http://localhost:18083/';
(ne pas oublier de bien remplacer 127.0.0.1 par localhost en bas ! Sinon ça ne fonctionnera pas !)
- Lancer le service vboxwebsrv
service vboxwebsrv enable ; service vboxwebsrv start
malheureusement, ça ne suffit pas... Il faut VRAIMENT le lancer.
Donc on va le faire en arrière-plan pour ne pas se gâcher un shell :nohup vboxwebsrv &
(tappez sur la touche Entrée après pour revenir au shell, vboxwebsrv travaille en arrière-plan)
- On relance Apache et le tour est joué :service apache24 restart
- Rendez-vous à présent dans votre navigateur internet et tapez l'adresse IP du serveur FreeBSD :
http://IP-SRV-FREEBSD/phpvirtualbox
Un écran d'identification apparaît, par défaut c'est admin / admin
Vous pourrez le changer plus tard dans "File", "Change password".
votre commentaire -
Par majekla le 10 Novembre 2023 à 16:16
Placer dans le fichier /boot/loader.conf les instructions suivantes :
verbose_loading="NO"
autoboot_delay="-1"
boot_mute="YES"Pour de plus amples informations, consulter le fichier /etc/defaults/loader.conf
Je ne polémiquerai pas sur le fait que rendre le démarrage muet est globalement une mauvaise idée...
Les informations affichées lors du démarrage permettent de savoir si quelque chose a mal fonctionné...
C'est assez essentiel sur un serveur.
votre commentaire -
Par majekla le 10 Novembre 2023 à 16:13
Pour rendre les alias de commandes permanents sur FreeBSD, il faut les écrire dans le fichier /etc/profile.
Ils seront alors disponibles pour tous les utilisateurs (root compris).
Si vous souhaitez qu'ils ne soient disponibles QUE pour un utilisateur spécifique, il faudra placer ces alias dans le fichier .profile de son répertoire personnel.alias "nom-choisi"='commande ou enchaînement de commandes ; commande 2 ; commande 3'
Pour activer le profil immédiatement :
. /etc/profile # ou . ~/.profile
votre commentaire -
Par majekla le 9 Novembre 2023 à 21:06
Si votre matériel Wifi est détecté lors de l'installation du systèùe (si la carte est reconnue par FreeBSD), une ligne viendra automatiquement s'ajouter au fichier /etc/rc.conf
Toute la question est de savoir comment vous connecter en ligne de commande à un réseau wifi.
Ce n'est pas si complexe !
D'abord, regardons la liste de vos cartes réseauxifconfig
Généralement cette carte se nomme wlan0 (s'il s'agît d'une carte reliée à la carte mère).. le nom peut différer s'il s'agît d'une clef USB.
Partons du principe que c'est wlan0
Nous allons activer cette carte :sudo ifconfig wlan0 up
Puis nous allons scanner les réseaux alentours :
ifconfig wlan0 list scan
Une fois le SSID du réseau auquel vous souhaitez vous connecter repéré, nous devons rédiger un petit fichier de conf :
nano /etc/wpa_supplicant.conf
Voici le contenu minimaliste que vous devez indiquer dans ce fichier :
network={
ssid="NOM-DE-VOTRE-RESEAU"
psk="MOT-DE-PASSE-DU-RESEAU"
}(il y a bien d'autres options, mais c'est le strict minimum)
A la suite de cela, vous pouvez lancer la commande pour vous connecter au réseau :
wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf
Attendez un peu, et logiquement vous devriez pouvoir faire un ping.
votre commentaire -
Par majekla le 9 Novembre 2023 à 10:11
Juste pour vous informer que le Dell Precision 7560 fonctionne très bien sur FreeBSD.
J'ai pu en tester un :
Voici ses caractéristiques :
- CPU : Xeon X-11855
- GPU : Nvidia RTX A4000
Wifi : ok
Ethernet : ok
GUI : ok (avec le driver nvidia-driver. la GPU NVIDIA est sur PCI:1:0:0 - pour le fichier xorg)
La Webcam intégrée fonctionne
Le son et le microphone sont ok
Par contre : pas de bluetooth intégré, ni de mise en veille (comme quasiemment avec tous les portables sur FreeBSD).
Voici la sortie de la commande pciconf -lv :Code:hostb0@pci0:0:0:0: class=0x060000 rev=0x05 hdr=0x00 vendor=0x8086 device=0x9a26 subvendor=0x1028 subdevice=0x0a69 vendor = 'Intel Corporation' device = '11th Gen Core Processor Host Bridge/DRAM Registers' class = bridge subclass = HOST-PCI pcib1@pci0:0:1:0: class=0x060400 rev=0x05 hdr=0x01 vendor=0x8086 device=0x9a01 subvendor=0x1028 subdevice=0x0a69 vendor = 'Intel Corporation' device = '11th Gen Core Processor PCIe Controller' class = bridge subclass = PCI-PCI none0@pci0:0:4:0: class=0x118000 rev=0x05 hdr=0x00 vendor=0x8086 device=0x9a03 subvendor=0x1028 subdevice=0x0a69 vendor = 'Intel Corporation' device = 'TigerLake-LP Dynamic Tuning Processor Participant' class = dasp pcib2@pci0:0:6:0: class=0x060400 rev=0x05 hdr=0x01 vendor=0x8086 device=0x9a0f subvendor=0x1028 subdevice=0x0a69 vendor = 'Intel Corporation' device = '11th Gen Core Processor PCIe Controller' class = bridge subclass = PCI-PCI pcib3@pci0:0:7:0: class=0x060400 rev=0x05 hdr=0x01 vendor=0x8086 device=0x9a2b subvendor=0x1028 subdevice=0x0a69 vendor = 'Intel Corporation' device = 'Tiger Lake-H Thunderbolt 4 PCI Express Root Port' class = bridge subclass = PCI-PCI pcib4@pci0:0:7:1: class=0x060400 rev=0x05 hdr=0x01 vendor=0x8086 device=0x9a2d subvendor=0x1028 subdevice=0x0a69 vendor = 'Intel Corporation' device = 'Tiger Lake-H Thunderbolt 4 PCI Express Root Port' class = bridge subclass = PCI-PCI none1@pci0:0:10:0: class=0x118000 rev=0x01 hdr=0x00 vendor=0x8086 device=0x9a0d subvendor=0x1028 subdevice=0x0a69 vendor = 'Intel Corporation' device = 'Tigerlake Telemetry Aggregator Driver' class = dasp xhci0@pci0:0:13:0: class=0x0c0330 rev=0x05 hdr=0x00 vendor=0x8086 device=0x9a17 subvendor=0x1028 subdevice=0x0a69 vendor = 'Intel Corporation' device = 'Tiger Lake-H Thunderbolt 4 USB Controller' class = serial bus subclass = USB none2@pci0:0:13:2: class=0x0c0340 rev=0x05 hdr=0x00 vendor=0x8086 device=0x9a1f subvendor=0x1028 subdevice=0x0a69 vendor = 'Intel Corporation' device = 'Tiger Lake-H Thunderbolt 4 NHI' class = serial bus subclass = USB none3@pci0:0:18:0: class=0x070000 rev=0x11 hdr=0x00 vendor=0x8086 device=0x43fc subvendor=0x1028 subdevice=0x0a69 vendor = 'Intel Corporation' device = 'Tiger Lake-H Integrated Sensor Hub' class = simple comms subclass = UART xhci1@pci0:0:20:0: class=0x0c0330 rev=0x11 hdr=0x00 vendor=0x8086 device=0x43ed subvendor=0x1028 subdevice=0x0a69 vendor = 'Intel Corporation' device = 'Tiger Lake-H USB 3.2 Gen 2x1 xHCI Host Controller' class = serial bus subclass = USB none4@pci0:0:20:2: class=0x050000 rev=0x11 hdr=0x00 vendor=0x8086 device=0x43ef subvendor=0x1028 subdevice=0x0a69 vendor = 'Intel Corporation' device = 'Tiger Lake-H Shared SRAM' class = memory subclass = RAM ig4iic0@pci0:0:21:0: class=0x0c8000 rev=0x11 hdr=0x00 vendor=0x8086 device=0x43e8 subvendor=0x1028 subdevice=0x0a69 vendor = 'Intel Corporation' device = 'Tiger Lake-H Serial IO I2C Controller' class = serial bus ig4iic1@pci0:0:21:1: class=0x0c8000 rev=0x11 hdr=0x00 vendor=0x8086 device=0x43e9 subvendor=0x1028 subdevice=0x0a69 vendor = 'Intel Corporation' device = 'Tiger Lake-H Serial IO I2C Controller' class = serial bus none5@pci0:0:22:0: class=0x078000 rev=0x11 hdr=0x00 vendor=0x8086 device=0x43e0 subvendor=0x1028 subdevice=0x0a69 vendor = 'Intel Corporation' device = 'Tiger Lake-H Management Engine Interface' class = simple comms none6@pci0:0:22:3: class=0x070002 rev=0x11 hdr=0x00 vendor=0x8086 device=0x43e3 subvendor=0x1028 subdevice=0x0a69 vendor = 'Intel Corporation' class = simple comms subclass = UART ig4iic2@pci0:0:25:0: class=0x0c8000 rev=0x11 hdr=0x00 vendor=0x8086 device=0x43ad subvendor=0x1028 subdevice=0x0a69 vendor = 'Intel Corporation' class = serial bus pcib5@pci0:0:28:0: class=0x060400 rev=0x11 hdr=0x01 vendor=0x8086 device=0x43b9 subvendor=0x1028 subdevice=0x0a69 vendor = 'Intel Corporation' class = bridge subclass = PCI-PCI pcib6@pci0:0:28:2: class=0x060400 rev=0x11 hdr=0x01 vendor=0x8086 device=0x43ba subvendor=0x1028 subdevice=0x0a69 vendor = 'Intel Corporation' device = 'Tiger Lake-H PCIe Root Port' class = bridge subclass = PCI-PCI isab0@pci0:0:31:0: class=0x060100 rev=0x11 hdr=0x00 vendor=0x8086 device=0x4389 subvendor=0x1028 subdevice=0x0a69 vendor = 'Intel Corporation' device = 'WM590 LPC/eSPI Controller' class = bridge subclass = PCI-ISA hdac1@pci0:0:31:3: class=0x040380 rev=0x11 hdr=0x00 vendor=0x8086 device=0x43c8 subvendor=0x1028 subdevice=0x0a69 vendor = 'Intel Corporation' device = 'Tiger Lake-H HD Audio Controller' class = multimedia subclass = HDA ichsmb0@pci0:0:31:4: class=0x0c0500 rev=0x11 hdr=0x00 vendor=0x8086 device=0x43a3 subvendor=0x1028 subdevice=0x0a69 vendor = 'Intel Corporation' device = 'Tiger Lake-H SMBus Controller' class = serial bus subclass = SMBus none7@pci0:0:31:5: class=0x0c8000 rev=0x11 hdr=0x00 vendor=0x8086 device=0x43a4 subvendor=0x1028 subdevice=0x0a69 vendor = 'Intel Corporation' device = 'Tiger Lake-H SPI Controller' class = serial bus em0@pci0:0:31:6: class=0x020000 rev=0x11 hdr=0x00 vendor=0x8086 device=0x15f9 subvendor=0x1028 subdevice=0x0a69 vendor = 'Intel Corporation' device = 'Ethernet Connection (14) I219-LM' class = network subclass = ethernet vgapci0@pci0:1:0:0: class=0x030000 rev=0xa1 hdr=0x00 vendor=0x10de device=0x24b7 subvendor=0x1028 subdevice=0x0a69 vendor = 'NVIDIA Corporation' device = 'GA104GLM [RTX A4000 Mobile]' class = display subclass = VGA hdac0@pci0:1:0:1: class=0x040300 rev=0xa1 hdr=0x00 vendor=0x10de device=0x228b subvendor=0x10de subdevice=0x0000 vendor = 'NVIDIA Corporation' device = 'GA104 High Definition Audio Controller' class = multimedia subclass = HDA nvme0@pci0:2:0:0: class=0x010802 rev=0x01 hdr=0x00 vendor=0x10ec device=0x5765 subvendor=0x10ec subdevice=0x5765 vendor = 'Realtek Semiconductor Co., Ltd.' device = 'RTS5765DL NVMe SSD Controller (DRAM-less)' class = mass storage subclass = NVM iwlwifi0@pci0:147:0:0: class=0x028000 rev=0x1a hdr=0x00 vendor=0x8086 device=0x2725 subvendor=0x8086 subdevice=0x4020 vendor = 'Intel Corporation' device = 'Wi-Fi 6 AX210/AX211/AX411 160MHz' class = network rtsx0@pci0:148:0:0: class=0xff0000 rev=0x01 hdr=0x00 vendor=0x10ec device=0x5260 subvendor=0x1028 subdevice=0x0a69 vendor = 'Realtek Semiconductor Co., Ltd.' device = 'RTS5260 PCI Express Card Reader'
Et celle de la commande usbconfigCode:ugen1.1: <Intel XHCI root HUB> at usbus1, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA) ugen0.1: <Intel XHCI root HUB> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA) ugen1.2: <CN0V976R8LG00155A5VPA01 IntegratedWebcamHD> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA) ugen1.3: <Compx 2.4G Receiver> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA) ugen1.4: <vendor 0x8087 product 0x0032> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
Voici le lien vers hw-probe :
https://bsd-hardware.info/?probe=a0e5297849Je rajoute cependant un petit bémol pour le réglage de la luminosité de l'écran.
Cette fonction n'est pas disponible dans KDE sur cet ordi...
Voici comment contourner :
- passer en rootsu -
- Charger le module acpi_video
kldload acpi_video
- redevenir utilisateur
exit
- Récupérer le nom de l'écran :
xrandr --listactivemonitors
Monitors: 1
0: +*DP-4 1920/344x1080/194+0+0 DP-4
Notre écran est le "DP-4"
- baisser la luminosité à 90%xrandr --output DP-4 --brightness 0.9
- baisser la luminosité à 30%
xrandr --output DP-4 --brightness 0.3
- revenir à 100%
xrandr --output DP-4 --brightness 1
votre commentaire
Suivre le flux RSS des articles de cette rubrique
Suivre le flux RSS des commentaires de cette rubrique