Aller à la recherche

FreeBSD et le fichier rc.conf

Au démarrage de FreeBSD, après l'initialisation des périphériques grâce aux pilotes, FreeBSD lance le script /etc/rc qui fait tout ce qui est nécessaire pour rendre le système opérationnel (configuration, network, montage, lancement service).

Freebsd et le fichier /etc/rc.conf

La configuration de /etc/rc est séparée en deux fichiers :

  • /etc/defaults/rc.conf qui contient les valeurs par défaut
  • /etc/rc.conf qui est le fichier de configuration locale et qui vient écraser les valeurs définit dans la configuration par défaut

Nous allons voir ici quelques-unes de ces valeurs qui peut être utiles de connaître.

  • rc_debug="NO" : Passé à YES permet de débugger la sortie des scripts de démarrage en affichant des informations de niveau debug.
  • rc_info="NO" : Un peu moins verbeux que rc_debug
  • tmps_fs="AUTO" : Passer à Yes pour créer un répertoire /tmp en mémoire de taille égale à tmpsize
  • tmpsize="1g" : Taille du dossier /tmp
  • tmpfs_flags="-S" : Désactive les sosft updates sur le dossier tmp en mémoire
  • root_rw_mount="YES" : Si défini à "NO" la partition racine sera montée en lecture seule
  • fsck_y_enable="NO" : Ne cherche pas à réparer les erreurs de cohérence du FS qui serait détectée
  • background_fsck="YES" : Lance en tâche de fond fsck une fois le système lancé
  • background_fsck_delay="60" : Délai (en seconde) avant que la vérification fsck en tâche de fond commence
  • syslogd_enable="YES" : Lance le daemon de journalisation
  • syslogd_flags="-s" :
    • -s : Ne log pas les messages provenant de source externe (via réseaux)
    • -ss : N'ouvre pas de socket réseaux
  • sshd_enable="NO" : Active ou non le service sshd
  • local_unbound_enable="NO" : Active ou pas le service dns local
  • ntpd_enable="NO" : Active ou non le service "protocol d'heure réseau" (pour être toujours à l'heure à la machine à café)
  • bsnmpd_enable="NO" : Active ou non le service SNMP
  • hostname="" : Permet de définir le nom d’hôte de la machine (très important)
  • pf_enable="NO" : Active ou non le pare-feu pf
  • pf_rules="/etc/pf.conf" : Permet de définir le fichier de règles à appliquer
  • log_in_vain="0" : positionné à 1 permet de journaliser les tentatives de connexion ratées
  • icmp_drop_redirect="NO": Positionné à YES ignore les redirections ICMP (Utile pour informer les machines clientes des bonnes passerelle à utiliser pour certaine route spéciale)
  • icmp_log_redirect="NO" : Positionné à YES permet de loguer toutes les redirections ICMP
  • ifconfig_em0="inet 192.168.100.80 netmask 255.255.255.0" : Permet d'assigner une ip voir les alias d'adresse ip
  • ifconfig_emo="dhcp" : Si vous utilisez un dhcp pour assigner les ip dans votre réseau
  • defaultrouter="" : Adresse ip de la passerelle par défaut
  • gateway_enable="NO" : Définit à YES si vous utilisez cette machine en tant que pare-feu afin que le trafic puisse transiter entre différentes interfaces
  • router_enable="NO" : Si vous avez besoin du protocole RIP activé le, sinon oubliez !
  • keymap="NO" : Permet de définir la disposition clavier, à positionner sur fr pour un clavier AZERTY
  • mouse_enable="NO" : Bon on à compris, c'est pour activer la souris
  • lpd_enable="NO" : Permet de lancer le daemon d'impression
  • sendmail_enable="NO" : Active le daemon pour les mails entrants
  • sendmail_outbound_enable="YES" : Active le daemon et permet à la machine d’émettre des mails
  • linux_enable="NO" : Active ou non les modes de compatibilité linux
  • kern_secureleve_enable="NO" : Active ou non les niveaux de sécurité sous FreeBSD
  • kern_secureleve="-1" : Défini le niveau de sécurité à -1 (niveau par défaut)

il en existe plein d’autre, je vous laisse lire le fichier /etc/defaults/rc.conf.

Pour modifier les fichiers rc.conf, j’utilise plutôt le contrôle de version fournies avec FreeBSD afin de garder une trace de toutes mes modifications, mais il existe un outil pour manipuler assez aisément les différents fichiers il s’agit de sysrc.

sysrc: éditer facilement les fichiers rc.conf.

Syntax de la commande sysrc :

 sysrc [-cdDeEFhinNqvx] [-s name] [-f file] [-j jail | -R dir]
           name[[+|-]=value] ...
     sysrc [-cdDeEFhinNqvx] [-s name] [-f file] [-j jail | -R dir] -a | -A
     sysrc [-E] [-s name] [-f file] -l
     sysrc [-eEqv] -L [name …]

Nous allons voir ici quelques-unes des plus utiles, nous en verrons d’autres lorsque nous créerons des jail.

  • -a : Afficher toutes les valeurs qui ont une valeur différente de la valeur par défaut
  • -A : Afficher toutes les valeurs y compris celle modifiée.
  • -d : Afficher un petit descriptif d’une variable

sysrc -d tmpsize

tmpsize: Size of mfs /tmp if created
  • -D : Afficher la valeur par défaut

sysrc -D tmpsize

tmpsize: 20m
  • - F Afficher le dernier fichier où est définit la variable

sysrc -F nginx_enable

nginx_enable: /etc/rc.conf
  • - L : Afficher tous les fichiers de configuration
    • pour avoir une info réellement utile, il faut le combiner à -e ou -v qui affiche les noms des services avec leur fichier de configuration

sysrc -Lv

rc_conf_files: /etc/rc.conf /etc/rc.conf.local
abi: /etc/rc.conf.d/abi /usr/local/etc/rc.conf.d/abi
accounting: /etc/rc.conf.d/accounting /usr/local/etc/rc.conf.d/accounting
addswap: /etc/rc.conf.d/addswap /usr/local/etc/rc.conf.d/addswap
  • - s : Afficher les fichiers (existant ou non) de configuration d’un service en particulier

sysrc -s fail2ban -l

/etc/rc.conf /etc/rc.conf.local /etc/rc.conf.d/fail2ban /usr/local/etc/rc.conf.d/fail2ban

Pour n’affiche que les fichiers réellement existant ajoutons l’option -E sysrc -s fail2ban -lE

etc/rc.conf 

Ajouter facilement un service avec sysrc

Pour ajouter un service grâce à sysrc sysrc nginx_enable=YES

nginx_enable:  -> YES

Supprimer facilement un service avec sysrc

sysrc -x nginx_enable

Concaténer une valeur à une variable

Admettons que nous avons dans notre rc.conf la variable apache24_flags défini comme ceci sysrc apache24_flags

apache24_flags: -d /srv/www/etc

Si nous voulons maintenant définir un nouveau fichier de configuration, à prendre en compte au démarrage du service apache. Il faut ajouter à la variable apache24_flags ’option « -c config ».

Nous allons donc ajouter à la suite de -d /srv/www/etc (Attention à ne pas oublier l’espace avant le -c) sysrc apache24_flags+=’ -c /srv/www/etc/httpd.conf’ sysrc apache24_flags

apache24_flags: -d /srv/www/etc -c /srv/www/etc/httpd.conf

Soustraire une option

Cela se fait de la même manière que pour ajouter en modifiant le + par – tout simplement sysrc apache24_flags-= ‘-c /srv/www/etc/httpd.conf’ Attention à ne pas oublier un espace ou aux erreurs de frappe cela peut avoir des conséquences catastrophique, vérifiez toujours la valeur de la variable. sysrc apache24_flags

Voilà, nous en avons finie avec le fichier rc.conf.

La discussion continue ailleurs

URL de rétrolien : https://www.binsp.net/?trackback/36

Fil des commentaires de ce billet

Page top