Bidouillage‎ > ‎

Installation de FreeBSD sur une Dedibox


Résumé

Cette méthode (et oui encore une autre) permet d'installer assez rapidement la version de FreeBSD de votre choix (7 ou 8), tout en vous laissant choisir le partitionnement du disque.

Ce guide est une version allégée et mise à jour du guide d'installation indiqué sur cette page:

http://freebsd.dedibox.e-tahan.com/twiki/bin/view/Main/Dedibox-FreeBSD

Cette méthode permet donc de :

  1. Créer une installation standard de FreeBSD
  2. Garde votre maitrise des fichiers installés
  3. Est rapide et assez simple par la mise à disposition de scripts d'assistance

Principe de fonctionnement

Cette méthode s'appuie sur 3 grandes étapes:

  1. Génération de l'image disque d'installation: génère, à partir d'un fichier FreeBSD ISO officiel, une petite image disque d'un FreeBSD qui va servir à lancer l'installateur standard FreeBSD depuis votre Dedibox.
  2. Installation de l'image disque sur votre Dedibox (par l'utilisation du mode rescue Linux proposé par Dedibox).
  3. Installation de 2 FreeBSD: Une version minimum (pour installer un mode rescue FreeBSD) sur une partition de 1Go et une version normale sur le reste du disque.

Pré-requis

La génération de l'image disque d'installation ce fait à partir d'un FreeBSD.

Génération de l'image disque

téléchargement des outils


Téléchargez:
  1. l'image ISO (disc1) de la version FreeBSD de votre choix. La version 8.0-RELEASE est conseillée et testée fonctionnelle.
  2. le générateur: newdedibsd.tgz

Personnalisation du générateur


Pour fonctionner, le générateur doit créer une image disque incluant la configuration réseau de votre Dedibox.
En root:
# tar -zxvf newdedibsd.tgz
# cd newdedibsd
# vi initconf.conf

Et insérez vos paramètres.

Note: Pour connaitre l'adresse MAC de votre carte réseau, entrez la commande ifconfig à partir du mode rescue.

Lancez le script de génération de l'image disque:
# ./dedibsd.sh /chemin-vers/8.0-RELEASE-i386-disc1.iso

Si tous ce passe bien, vous obtiendrez le fichier dedibsd.img.

Transfère et installation de l'image sur la Dedibox


Par l'interface web console DediBox, demarrer en mode rescue : Cliquez sur Configurer puis Système de secours
Connectez-vous sur la dedibox en SSH avec le login et le mot de passe affiché sur l'interface web.
Copier le fichier dedibsd.img sur /tmp ( Utiliser FTP ou SCP pour copier de votre ordinateur vers la dedibox)

Lancer la copie sur le disque local :

# sudo dd if=/tmp/dedibsd.img of=/dev/sda

Par l'interface web, retourner en mode normal de la dedibox

Connectez-vous en SSH sur la dedibox avec le login "root" et le mot de passe que vous avez choisi dans le fichier initconf.conf.
Vous etes maintenant connecte sur un FreeBSD qui tournent a 100% en memoire de votre DediBox.

Installation de FreeBSD

Résumé

Pour réaliser cette installation, on va:
  1. Lancer le script de pre-installation
  2. Lancer l'installateur FreeBSD (sysinstall)
  3. Lancer le script de post-installation


pre-install.sh

Le lancement de ce script va:

  • Créer 2 partitions MBR (une de 1Go et une qui prend le reste)
  • Créer des «sous-partitions» FreeBSD sur ces partitions
    • Partition 1, secours: Une seule partition "a" pour le le /
    • Partition 2, normale: Une partition "b" pour le swap de 1Go, et une partition "a" pour le /
  • Formatter et monter ces deux partitions dans /rescue et /normal

Vous pouvez changer la taille de la partition rescue et swap en éditant la variable dans le script.

On le lance par la commande:

# /root/pre-install.sh

sysinstall

Cette étape va permettre de:

  • Installer une distribution minimum dans /rescue
  • Installer une distribution normale dans /normal
  • Configurer le mot de passe root, créer un compte utilisateur (à mettre dans le groupe wheel), configurer le time zone.

Entrez la commande:

# sysinstall

pour se retrouver devant l'écran suivant:

              ┌─────────── FreeBSD/i386 8.0-RELEASE - sysinstall Main Menu ───────────┐
              │ Welcome to the FreeBSD installation and configuration tool.  Please   │

              │ select one of the options below by using the arrow keys or typing the │
              │ first character of the option name you're interested in.  Invoke an   │
              │ option with [SPACE] or [ENTER].  To exit, use [TAB] to move to Exit.  │
              │ ┌───────────────────────────────────────────────────────────────────┐ │
              │ │   Usage         Quick start - How to use this menu system         │ │
              │ │  Standard       Begin a standard installation (recommended)       │ │
              │ │  Express        Begin a quick installation (for experts)          │ │
              │ │   Custom        Begin a custom installation (for experts)         │ │
              │ │  Configure      Do post-install configuration of FreeBSD          │ │
              │ │  Doc            Installation instructions, README, etc.           │ │
              │ │  Keymap         Select keyboard type                              │ │
              │ │  Options        View/Set various installation options             │ │
              │ │  Fixit          Repair mode with CDROM/DVD/floppy or start shell  │ │
              │ │  Upgrade        Upgrade an existing system                        │ │
              │ │  Load Config..  Load default install configuration                │ │
              │ │  Index          Glossary of functions                             │ │
              │ └───────────────────────────────────────────────────────────────────┘ │
              ├───────────────────────────────────────────────────────────────────────┤
              │                        [ Select ]    X Exit Install                   │
              └───────────────────────────────────────────────────────────────────────┘

Installation du FreeBSD rescue

  Sélectionnez l'option «Custom»:

            ┌─────────────────── Choose Custom Installation Options ───────────────────┐
            │ This is the custom installation menu. You may use this menu to specify   │
            │ details on the type of distribution you wish to have, where you wish     │
            │ to install it from and how you wish to allocate disk storage to FreeBSD. │
            │ ┌──────────────────────────────────────────────────────────────────────┐ │
            │ │ X Exit           Exit this menu (returning to previous)              │ │
            │ │ 2 Options        View/Set various installation options               │ │
            │ │ 3 Partition      Allocate disk space for FreeBSD                     │ │
            │ │ 4 Label          Label allocated disk partitions                     │ │
            │ │ 5 Distributions  Select distribution(s) to extract                   │ │
            │ │ 6 Media          Choose the installation media type                  │ │
            │ │ 7 Commit         Perform any pending Partition/Label/Extract actions │ │
            │ └──────────────────────────────────────────────────────────────────────┘ │
            ├──────────────────────────────────────────────────────────────────────────┤
            │                          [  OK  ]       Cancel                           │
            └──────────────────────────────────────────────────────────────────────────┘

Puis sélectionnez le menu «2 Options» pour éditer les options d'installation:

Options Editor                                                                                                                                                   
Name            Value                   Name            Value                   
----            -----                   ----            -----                   
NFS Secure      NO                      Browser Exec    /usr/local/bin/links    
NFS Slow        NO                      Media Type      <not yet set>           
NFS TCP         NO                      Media Timeout   300                     
NFS version 3   YES                     Package Temp    /var/tmp                
Debugging       NO                      Newfs Args      -b 16384 -f 2048        
No Warnings     NO                      Fixit Console   serial                  
Yes to All      NO                      Re-scan Devices <*>                     
DHCP            NO                      Use Defaults    [RESET!]                
IPv6            NO                                                              
FTP username    ftp                                                             
Editor          vi                                                              
Extract Detail  high                                                            
Release Name    8.0-RELEASE                                                     
Install Root    /rescue                                                         
Browser package links                                                           
                                                                                
Use SPACE to select/toggle an option, arrow keys to move,                       
? or F1 for more help.  When you're done, type Q to Quit.                                                                                                        
NFS server talks only on a secure port                                          

Modifiez l'option «Install Root» en «/rescue» puis appuyer sur Q (Quit) pour revenir au menu d'installation personnalisé:

            ┌─────────────────── Choose Custom Installation Options ───────────────────┐
            │ This is the custom installation menu. You may use this menu to specify   │
            │ details on the type of distribution you wish to have, where you wish     │
            │ to install it from and how you wish to allocate disk storage to FreeBSD. │
            │ ┌──────────────────────────────────────────────────────────────────────┐ │
            │ │ X Exit           Exit this menu (returning to previous)              │ │
            │ │ 2 Options        View/Set various installation options               │ │
            │ │ 3 Partition      Allocate disk space for FreeBSD                     │ │
            │ │ 4 Label          Label allocated disk partitions                     │ │
            │ │ 5 Distributions  Select distribution(s) to extract                   │ │
            │ │ 6 Media          Choose the installation media type                  │ │
            │ │ 7 Commit         Perform any pending Partition/Label/Extract actions │ │
            │ └──────────────────────────────────────────────────────────────────────┘ │
            ├──────────────────────────────────────────────────────────────────────────┤
            │                          [  OK  ]       Cancel                           │
            └──────────────────────────────────────────────────────────────────────────┘

Sélectionnez «5 Distributions», pour choisir la distribution à installer:    
                                                                                                                                

┌─────────────────────────── Choose Distributions ───────────────────────────┐
│ As a convenience, we provide several "canned" distribution sets.           │
│ These select what we consider to be the most reasonable defaults for the   │
│ type of system in question. If you would prefer to pick and choose the     │
│ list of distributions yourself, simply select "Custom". You can also       │
│ pick a canned distribution set and then fine-tune it with the Custom item. │
│                                                                            │
│ Choose an item by pressing [SPACE] or [ENTER]. When finished, choose the   │
│ Exit item or move to the OK button with [TAB].                             │
│ ┌────────────────────────────────────────────────────────────────────────┐ │
│ │ <<< X Exit Exit this menu (returning to previous)                      │ │
│ │ All All system sources and binaries                                    │ │
│ │ Reset Reset selected distribution list to nothing                      │ │
│ │ [ ] 4 Developer Full sources, binaries and doc but no games            │ │
│ │ [ ] 5 Kern-Developer Full binaries and doc, kernel sources only        │ │
│ │ [ ] 6 User Average user - binaries and doc only                        │ │
│ │ [X] A Minimal The smallest configuration possible                      │ │
│ │ > > B Custom Specify your own distribution set                         │ │
│ └────────────────────────────────────────────────────────────────────────┘ │
├────────────────────────────────────────────────────────────────────────────┤
│                                [ OK ] Cancel                               │
└────────────[ Press F1 for more information on these options. ]─────────────┘
  

Cochez la case «Minimal» et OK pour revenir au menu d'installation :

                    

            ┌─────────────────── Choose Custom Installation Options ───────────────────┐
            │ This is the custom installation menu. You may use this menu to specify   │
            │ details on the type of distribution you wish to have, where you wish     │
            │ to install it from and how you wish to allocate disk storage to FreeBSD. │
            │ ┌──────────────────────────────────────────────────────────────────────┐ │
            │ │ X Exit           Exit this menu (returning to previous)              │ │
            │ │ 2 Options        View/Set various installation options               │ │
            │ │ 3 Partition      Allocate disk space for FreeBSD                     │ │
            │ │ 4 Label          Label allocated disk partitions                     │ │
            │ │ 5 Distributions  Select distribution(s) to extract                   │ │
            │ │ 6 Media          Choose the installation media type                  │ │
            │ │ 7 Commit         Perform any pending Partition/Label/Extract actions │ │
            │ └──────────────────────────────────────────────────────────────────────┘ │
            ├──────────────────────────────────────────────────────────────────────────┤
            │                          [  OK  ]       Cancel                           │
            └──────────────────────────────────────────────────────────────────────────┘


ou vous sélectionnerez «6 Media» pour arriver sur l'écran de selection du Media d'installation                                                                                 
                                                                                                                                            
       ┌─────────────────────── Choose Installation Media ───────────────────────┐  
       │ FreeBSD can be installed from a variety of different installation       │  
       │ media, ranging from floppies to an Internet FTP server.  If you're      │  
       │ installing FreeBSD from a supported CD/DVD drive then this is generally │  
       │ the best media to use if you have no overriding reason for using other  │  
       │ media.                                                                  │  
       │ ┌─────────────────────────────────────────────────────────────────────┐ │  
       │ │   1 CD/DVD       Install from a FreeBSD CD/DVD                      │ │  
       │ │   2 FTP          Install from an FTP server                         │ │  
       │ │   3 FTP Passive  Install from an FTP server through a firewall      │ │  
       │ │   4 HTTP         Install from an FTP server through a http proxy    │ │  
       │ │   5 DOS          Install from a DOS partition                       │ │  
       │ │   6 NFS          Install over NFS                                   │ │  
       │ │   7 File System  Install from an existing filesystem                │ │  
       │ │   8 Floppy       Install from a floppy disk set                     │ │  
       │ │   9 USB          Install from a USB drive                           │ │  
       │ │   X Options      Go to the Options screen                           │ │  
       │ └─────────────────────────────────────────────────────────────────────┘ │  
       ├─────────────────────────────────────────────────────────────────────────┤  
       │                         [  OK  ]       Cancel                           │  
       └──────[ Press F1 for more information on the various media types ]───────┘                             
                                                                                                                                            
                                 
Sélectionnez «2 FTP», pour arriver sur l'écran de selection du serveur FTP le plus proche:

                                                                                                                  
       ┌──────────── Please select a FreeBSD FTP distribution site ─────────────┐ 
       │ Please select the site closest to you or "other" if you'd like to      │ 
       │ specify a different choice.  Also note that not every site listed here │ 
       │ carries more than the base distribution kits. Only Primary sites are   │ 
       │ guaranteed to carry the full range of possible distributions.          │ 
       │ ┌────-(-)────────────────────────────────────────────────────────────┐ │ 
       │ │     Australia #2            ftp2.au.freebsd.org                    │ │ 
       │ │     Australia #3            ftp3.au.freebsd.org                    │ │ 
       │ │    Austria                  ftp.at.freebsd.org                     │ │ 
       │ │     Austria #2              ftp2.at.freebsd.org                    │ │ 
       │ │    Brazil                   ftp.br.freebsd.org                     │ │ 
       │ │     Brazil #2               ftp2.br.freebsd.org                    │ │ 
       │ │     Brazil #3               ftp3.br.freebsd.org                    │ │ 
       │ │     Brazil #4               ftp4.br.freebsd.org                    │ │ 
       │ │     Brazil #5               ftp5.br.freebsd.org                    │ │ 
       │ │     Brazil #6               ftp6.br.freebsd.org                    │ │ 
       │ │     Brazil #7               ftp7.br.freebsd.org                    │ │ 
       │ │    Canada                   ftp.ca.freebsd.org                     │ │ 
       │ │    China                    ftp.cn.freebsd.org                     │ │ 
       │ │     China #2                ftp2.cn.freebsd.org                    │ │ 
       │ │    Croatia                  ftp.hr.freebsd.org                     │ │ 
       │ │    Czech Republic           ftp.cz.freebsd.org                     │ │ 
       │ │    Denmark                  ftp.dk.freebsd.org                     │ │ 
       │ │     Denmark #2              ftp2.dk.freebsd.org                    │ │ 
       │ │    Estonia                  ftp.ee.freebsd.org                     │ │ 
       │ │    Finland                  ftp.fi.freebsd.org                     │ │ 
       │ │    France                   ftp.fr.freebsd.org                     │ │ 
       │ │     France #2               ftp2.fr.freebsd.org                    │ │ 
       │ │     France #3               ftp3.fr.freebsd.org                    │ │ 
       │ │     France #5               ftp5.fr.freebsd.org                    │ │ 
       │ │     France #6               ftp6.fr.freebsd.org                    │ │ 
       │ │     France #8               ftp8.fr.freebsd.org                    │ │ 
       │ └────.(+)────────────────────────────────────────────────────────────┘ │ 
       ├────────────────────────────────────────────────────────────────────────┤ 
       │                         [  OK  ]       Cancel                          │ 
       └────────────────────[ Select a site that's close! ]─────────────────────┘                                 
                                                      
Sélectionnez le serveur France (ftp.fr.freebsd.org), il va vous demandez confirmation:

     │ ┌─────────────────── User Confirmation Requested  ────────────────────┐
     │ ││ Running multi-user, assume that the network is already configured? │
     │ │├────────────────────────────────────────────────────────────────────┤
     │ ││                        [ Yes ]         No                          │
     │ │└────────────────────────────────────────────────────────────────────┘

Répondez Yes (vos paramètres réseaux sont déja configurés) pour revenir à l'écran d'installation:

            ┌─────────────────── Choose Custom Installation Options ───────────────────┐
            │ This is the custom installation menu. You may use this menu to specify   │
            │ details on the type of distribution you wish to have, where you wish     │
            │ to install it from and how you wish to allocate disk storage to FreeBSD. │
            │ ┌──────────────────────────────────────────────────────────────────────┐ │
            │ │ X Exit           Exit this menu (returning to previous)              │ │
            │ │ 2 Options        View/Set various installation options               │ │
            │ │ 3 Partition      Allocate disk space for FreeBSD                     │ │
            │ │ 4 Label          Label allocated disk partitions                     │ │
            │ │ 5 Distributions  Select distribution(s) to extract                   │ │
            │ │ 6 Media          Choose the installation media type                  │ │
            │ │ 7 Commit         Perform any pending Partition/Label/Extract actions │ │
            │ └──────────────────────────────────────────────────────────────────────┘ │
            ├──────────────────────────────────────────────────────────────────────────┤
            │                          [  OK  ]       Cancel                           │
            └──────────────────────────────────────────────────────────────────────────┘

Ou vous selectionnerez «7 Commit».

Puis attendez la fin de l'installation.

Installation du FreeBSD normal


Maintenant refaite la même chose mais pour le FreeBSD normal:
Il suffit, dans les options d'installation d'utiliser comme destination: la partition /normal.
Puis, lors du choix de la distribution, d'être un peux plus généreux en sélectionnant une  Distributions de type «user - Average user» par exemple.

Post-configuration depuis sysinstall


A partir du menu principal de sysinstall:


              ┌─────────── FreeBSD/i386 8.0-RELEASE - sysinstall Main Menu ───────────┐
              │ Welcome to the FreeBSD installation and configuration tool.  Please   │

              │ select one of the options below by using the arrow keys or typing the │
              │ first character of the option name you're interested in.  Invoke an   │
              │ option with [SPACE] or [ENTER].  To exit, use [TAB] to move to Exit.  │
              │ ┌───────────────────────────────────────────────────────────────────┐ │
              │ │   Usage         Quick start - How to use this menu system         │ │
              │ │  Standard       Begin a standard installation (recommended)       │ │
              │ │  Express        Begin a quick installation (for experts)          │ │
              │ │   Custom        Begin a custom installation (for experts)         │ │
              │ │  Configure      Do post-install configuration of FreeBSD          │ │
              │ │  Doc            Installation instructions, README, etc.           │ │
              │ │  Keymap         Select keyboard type                              │ │
              │ │  Options        View/Set various installation options             │ │
              │ │  Fixit          Repair mode with CDROM/DVD/floppy or start shell  │ │
              │ │  Upgrade        Upgrade an existing system                        │ │
              │ │  Load Config..  Load default install configuration                │ │
              │ │  Index          Glossary of functions                             │ │
              │ └───────────────────────────────────────────────────────────────────┘ │
              ├───────────────────────────────────────────────────────────────────────┤
              │                        [ Select ]    X Exit Install                   │
              └───────────────────────────────────────────────────────────────────────┘

Sélectionnez l'option «Configure»:


        ┌─────────────────────────── FreeBSD Configuration Menu ────────────────────────────┐
        │ If you've already installed FreeBSD, you may use this menu to customize           │
        │ it somewhat to suit your particular configuration.  Most importantly,             │
        │ you can use the Packages utility to load extra "3rd party"                        │
        │ software not provided in the base distributions.                                  │
        │ ┌───────────────────────────────────────────────────────────────────────────────┐ │
        │ │ X Exit                       Exit this menu (returning to previous)           │ │
        │ │  Distributions               Install additional distribution sets             │ │
        │ │  Documentation installation  Install FreeBSD Documentation set                │ │
        │ │  Packages                    Install pre-packaged software for FreeBSD        │ │
        │ │  Root Password               Set the system manager's password                │ │
        │ │  Fdisk                       The disk Slice (PC-style partition) Editor       │ │
        │ │  Label                       The disk Label editor                            │ │
        │ │  User Management             Add user and group information                   │ │
        │ │  Console                     Customize system console behavior                │ │
        │ │  Time Zone                   Set which time zone you're in                    │ │
        │ │  Media                       Change the installation media type               │ │
        │ │  Mouse                       Configure your mouse                             │ │
        │ └─.(+)──────────────────────────────────────────────────────────────────────────┘ │
        ├───────────────────────────────────────────────────────────────────────────────────┤
        │                              [  OK  ]       Cancel                                │
        └────────────────[ Press F1 for more information on these options ]─────────────────┘

Puis selectionnez «User Management» pour créer un utilisateur dans le groupe wheel (administateur):

           ┌────────────── User and group management ──────────────┐
           │ The submenus here allow to manipulate user groups and │
           │ login accounts.                                       │
           │                                                       │
           │ ┌───────────────────────────────────────────────────┐ │
           │ │  X Exit  Exit this menu (returning to previous)   │ │
           │ │  User    Add a new user to the system.            │ │
           │ │  Group   Add a new user group to the system.      │ │
           │ └───────────────────────────────────────────────────┘ │
           ├───────────────────────────────────────────────────────┤
           │                [  OK  ]       Cancel                  │
           └───────[ Configure your user groups and users ]────────┘


Remplissez les informations demandées:


        ┌──────────────────────────────────────────────── User and Group Management ─────────────────────────────────┐
        │  ┌──────────────────── Add a new user ──────────────────────────────────────────────────────────────────┐  │
        │  │   Login ID:        UID:      Group:                                                                  │  │
        │  │  ┌──────────────┐ ┌──────┐  ┌──────┐                                                                 │  │
        │  │  │votrelogin    │ │1002  │  │wheel │                                                                 │  │
        │  │  └──────────────┘ └──────┘  └──────┘                                                                 │  │
        │  │   Password:             Confirm Password:                                                            │  │
        │  │  ┌──────────────────┐  ┌──────────────────┐                                                          │  │
        │  │  │******            │  │********          │                                                          │  │
        │  │  └──────────────────┘  └──────────────────┘                                                          │  │
        │  │   Full name:                           Member groups:                                                │  │
        │  │  ┌───────────────────────────────┐    ┌─────────────┐                                                │  │
        │  │  │Mohandas Karamchand Gandhi     │    │             │                                                │  │
        │  │  └───────────────────────────────┘    └─────────────┘                                                │  │
        │  │   Home directory:        Login shell:                                                                │  │
        │  │  ┌──────────────────┐   ┌───────────────────────────┐                                                │  │
        │  └──│/home/votrelogin  │───│/bin/tcsh                  │────────────────────────────────────────────────┘  │
        │     └──────────────────┘   └───────────────────────────┘                                                   │
        │              ┌──────┐            ┌──────────┐                                                              │
        │              │ [OK] │            │  CANCEL  │                                                              │
        │              └──────┘            └──────────┘                                                              │
        └────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Vérifiez bien que soit votre utilisateur est sois dans le group wheel, soit membre de se groupe (sinon vous ne pourrez pas passer root par la commande su).

Puis quitter le menu de configuration et sysinstall pour revenir sur le shell.

post-install.sh

L'utilisation de ce script va:

  • Copier les kernels et fichiers de configuration aux bons endroits
  • Accélérer le temps de démarrage (réduction du time out du bootloader: vous ne pouvez pas être devant lors du démarrage)
  • Ajouter le chargement automatiquement des drivers:
    • padlock (chiffrage matériel)
    • Serial ATA AHCI
  • Activer la réponse Y automatique au fsck lors du démarrage (car vous ne pouvez pas être devans la console pour appuyer sur y)
  • Activer l'IP v6
  • Configurer la time zone sur Paris
  • Installer un fichier d'exemple de configuration pour le firewall PF
  • Générer les fichiers fstab en utilisant les labels UFS (évite les surprises en cas de changement de drivers SATA suite à une mise à jour majeure)

Il se lance par la commande:
# /root/post-install.sh

Si tout c'est bien passé, vous pouvez maintenant re-démarrer votre serveur pour lancer votre FreeBSD tout neuf.

Configuration de base du serveur

Désactivation du checksum matériel de la carte réseau


Le driver vge de FreeBSD 8.0-RELEASE est buggué et rencontre un problème avec la génération des checksum matériel.

Ce problème empèchait les transfères de fichier par SCP et mes clients indiquaient les messages suivants:
  • "Corrupted MAC on input" (client SCP d'un autre FreeBSD)
  • "Incorrect MAC received on packet" (Putty)


Pour résoudre, désactivez la génération de checksum matériel par la commande:
# ifconfig vge0 -txcsum -rxcsum

Puis éditez le fichier /etc/rc.conf pour ajouter ces paramètres à la ligne de configuration de votre carte réseau:

ifconfig_vge0="inet 88.191.XXX.YYY netmask 255.255.255.0 -txcsum -rxcsum"

Cette action n'est hélas pas suffisante pour résourdre les problèmes de transfères SCP (stalled) de gros fichiers (plusieurs Go): Si vous êtes confronté à ce problème, une mise à jour vers 8.0-Stable est conseillé.

Heure (NTP)


Déclarez un serveur NTP pour être toujours à l'heure:

# vi etc/rc.conf

ntpdate_enable="YES"
ntpdate_program="ntpdate"
ntpdate_flags="-b fr.pool.ntp.org"

Serveur SSH

Je vous conseil de changer le port 22 par un autre port (pour limiter un peux les scans).
Si vous souhaitez forcer l'utilisation du chiffrage matériel, restreignez la liste des ciphers/MACs proposés par SSHD:

Ciphers aes128-cbc,aes192-cbc,aes256-cbc
MACs hmac-sha1,hmac-sha1-96

À chaque fois que vous modifiez votre /etc/ssh/sshd_config, prenez quelques précautions avant d'appliquer les changements par la commande /etc/rc.d/sshd reload.
Ne fermez pas votre session SSH par laquelle v
2. Lancer la  suite à votre , et testez vos modifications en ouvrant une autre utilisant la nouvelle configuration ce qui permettra de corriger vos erreurs s'il y en à.

Mise à jour

On va lancer le téléchargement et l'installation des mises à jour système disponible la commande suivante:

# freebsd-update fetch install

Si le kernel est mis à jour, un redémarrage s'impose pour prendre en compte cette mise à jour.

On configure ensuite le téléchargement (mais pas l'installation!) automatique des mises à jour, tous les matins à 1 heure par exemple

# vi /etc/crontab

#Mise à jour système
0       1       *       *       *       root    /usr/sbin/freebsd-update cron

Puis un petit coup de:
# /etc/rc.d/cron restart

Si des mises à jour sont téléchargées, votre utilisateur root recevra un émail d'avertissement pour lui dire de les installer (freebsd-update install).
Attention: Les mises à jour kernel ne fonctionne qu'avec un kernel GENERIC.

Pour ceux qui installent les ports par compilation

Si vous souhaitez utilisez la méthode d'installation par compilation des ports (non conseillez si vous êtes pressés), Initialisez son utilisation par l'installation et la décompression de la liste des ports:

# portsnap fetch extract

Puis configurez la mise à jour automatique de l'index des ports et de la vérification de présence de nouvelle version tous les matins à 2 heure par exemple:

# vi /etc/crontab

# Portupdate
0       2       *       *       *       root    /usr/sbin/portsnap -I cron update && pkg_version -vIL=

Idem que pour freebs-update, la mise à jour automatique va uniquement télécharger (portsnap fetch) et non installer (portsnap update) les mise à jour.

Ceci pour éviter que les ports ne se mettent à jour pendant une compilation.

Ensuite, on en profite pour personnalisé le /etc/make.conf et lui demander une optimisation lors de la compilation des ports:

# vi /etc/make.conf

# Gestion des fonctionnalitées detectées du CPU

CPUTYPE?=native

# X11 n'est pas installé, donc évite de l'utiliser:

WITHOUT_X11=yes


Firewall

Si vous avez utilisé le script d'installation, un fichier d'exemple pour Packet Filter est livré dans /etc/pf.conf.
Éditez ce fichier pour l'adapter à vos besoins (si vous avez modifié le port SSH par exemple).

Puis vérifier ca syntaxe:

# pfctl -vnf /etc/pf.conf

Relisez votre script 10 fois, testez-le sur une machine, et quand vous êtes à 100% sur qu'il ne bloquera pas vos sessions SSH vers votre serveur, activez-le:

# /etc/rc.d/pf onestart

Pas de pannique, la déconnexion SSH est normale, maintenant essayez de vous re-connecter.
Si vous n'arrivez pas à vous reconnecter, c'est que vos règles bloquent votre accès SSH: À partir de l'interface Dedibox lancer un re-démarrage de votre serveur et re-connectez vous pour corriger votre configuration.
Une fois reconnecté, activer le démarrage automatique du pf et des logs:

# echo 'pf_enable="YES"' >> /etc/rc.conf
# echo 'pflog_enable="YES"' >> /etc/rc.conf

Affichage de l'état général du firewall par la commande:
# pfctl -s all
Rechargement du fichier de configuration et on efface les sessions en cours par:
# pfctl -F all -f /etc/pf.conf
Affichage temps réel des paquets bloqués par:
# tcpdump -i pflog0 -ttt -e -n
Affichage du contenus des logs par:
# tcpdump -r /var/log/pflog -ttt -e -n

Génération de dump

Un truc utile à faire en cas de crash du FreeBSD: Faire en sorte qu'il écrive son DUMP dans le swap avant de redémarrer.
Pour cela on vérifie que la taille du swap est au minimum égale à la taille de la RAM, puis on ajoute cette ligne dans le /etc/rc.conf:

crashinfo_enable="YES"  # Automatically generate crash dump summary.
dumpdev="AUTO"
dumpdir="/var/crash"    # Directory where crash dumps are to be stored

Désormais, suite à un crash, les informations contenues dans /var/crash (surtout le panic backtrace) seront très utile aux développeurs.

Remplacement du serveur de mail

Par défaut, FreeBSD inclus sendmail, qui est un très gros serveur mail qui permet d'envoyer ET de recevoir des emails.
Si votre serveur n'a pas à jouer ce rôle, je vous conseil de remplacer sendmail par ssmtp qui est beaucoup plus simple.
La doc FreeBSD est bien faites à ce sujet (chapitre outgoing-only).

On commence par désactiver sendmail:

# vi /etc/rc.conf

sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"

Puis on stoppe le process sendmail en cours:

# /etc/rc.d/sendmail onestop

On installe ssmtp, au choix:
En utilisant les ports

# cd /usr/ports/mail/ssmtp
# make install replace clean

Ou l'installation du pkg
# pkg_add -r ssmtp

Puis on le configure (voici un exemple pour utiliser le serveur SMTP de gmail si vous avez un compte chez eux):

# vi /usr/local/etc/ssmtp/ssmtp.conf

root=votre-login@gmail.com
mailhub=smtp.gmail.com:587
AuthUser=votre-login@gmail.com
AuthPass=votre-mot-de-passe
rewriteDomain=bsdrp.net
hostname=_HOSTNAME_
FromLineOverride=YES
UseSTARTTLS=YES

Et testez votre configuration:

# echo test | mail -s "test ssmtp" votre@email.com

Configuration d'un serveur sftp chrooté

La version d'OpenSSH permet de paramétrer facilement un serveur sftp chrooté.
Ce qui permet de mettre un serveur de fichier à disposition de vos utilisateurs facilement.
Voici le concept:
  1. On créer un groupe «sftp» : tous les utilisateurs de ce groupe seront authorisé à accéder au serveur SFTP
  2. On créer un utilisateur «sftp» du groupe «sftp» qui possède un home directory (/home/sftp): C'est ce dossier qui va être accessible aux utilisateurs
  3. On change le propriétaire du dossier /home/sftp pour que le propriétaire de l'ensemble du dossier soit «root» : Les utilisateurs ne doivent pas pouvoir modifier les fichiers dans ce dossier. SSH vérifiera le propriétaire et refusera la connexion si ce n'est pas le cas.
  4. On configure le SSHD pour chrooter les utilisateurs du groupe «sftp» dans /home/sftp
  5. Il ne vous reste plus qu'a créer des utilisateurs (home: /home/sftp et shell: /sbin/nologin)

Création du groupe sftp et de l'utilisateur sftp

Pour cette étape, on se laisse guider par l'outil «adduser»:

[root@dev]/home#adduser
Username: sftp
Full name: Fake SFTP user
Uid (Leave empty for default):
Login group [sftp]:
Login group is sftp. Invite sftp into other groups? []:
Login class [default]:
Shell (sh csh tcsh nologin) [sh]: nologin
Home directory [/home/sftp]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password: ******
Enter password again: *****
Lock out the account after creation? [no]: yes
Username   : sftp
Password   : *****
Full Name  : Fake SFTP user
Uid        : 1014
Class      :
Groups     : sftp
Home       : /home/sftp
Home Mode  :
Shell      : /usr/sbin/nologin
Locked     : yes
OK? (yes/no): yes
adduser: INFO: Successfully added (sftp) to the user database.
adduser: INFO: Account (sftp) is locked.
Add another user? (yes/no): no
Goodbye!

Modification du propriétaire du groupe /home/sftp

Étape importante pour le bon fonctionnement du SSH chrooté:

chown -R root:wheel /home/sftp

Si vous oubliez cette étape, vos logs vous insulterons avec ces mots à la tentative de connexion de l'utilisateur:
sshd[8898]: _secure_path: /home/sftp/.login_conf is not owned by uid 1005
sshd[8898]: fatal: bad ownership or modes for chroot directory "/home/sftp"


Paramétrage de SSHd

Éditez le fichier /etc/ssh/sshd_config et ajoutez à la fin:

# override default of no subsystems
Subsystem       sftp    internal-sftp
# Chrooted dir for sftp group
Match Group sftp
    ForceCommand internal-sftp
    ChrootDirectory /home/sftp

Création des utilisateurs


Maintenant il ne reste plus qu'a créer les utilisateurs authorisé à faire du SFTP. Ils doivent être créé avec les valeurs suivantes:
  • Ne pas créer leur homedir: Il vont utiliser le /home/sftp
  • Leur donner «nologin» comme shell, cela est suffisant pour le SFTP
Cet utilisateur utilise le home dir: /home/sftp (il ne faut pas lui créer un home dir) et son shell est nologin car il ne fait que des transfère SFTP.

[root@dev-old]~#adduser -D -g sftp -s nologin -w random
Username: luke
Full name: Luke Skywalker
Uid (Leave empty for default):
Login group [sftp]:
Login group is rigolo. Invite luke into other groups? []:
Login class [default]:
Shell (sh csh tcsh nologin) [nologin]:
Home directory [/home/luke]: /home/sftp
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [yes]:
Lock out the account after creation? [no]:
Username   : luke
Password   : <random>
Full Name  : Luke Skywalker
Uid        : 1015
Class      :
Groups     : rigolo
Home       : /home/rigolo
Home Mode  :
Shell      : /usr/sbin/nologin
Locked     : no
OK? (yes/no): yes
adduser: INFO: Successfully added (luke) to the user database.
adduser: INFO: Password for (luke) is: xQ5anvnL/vqAt7C
Add another user? (yes/no): no
Goodbye!

Mise à jour à distance (par SSH)


Il existe 2 méthodes de mettre à jour un FreeBSD:
  • La méthode «automatique» par l'outil freebsd-update (si on utilise un noyaux générique)
  • La méthode «manuelle» par la recompilation/réinstallation complète.
Le problème est que la méthode manuelle nécessite normalement un passage par le mode single-user, ce qui n'est pas possible lors d'une mise à jour par SSH.
On va donc jouer avec le feux…

Méthode manuelle

Voici la procédure que j'utilise: HOWTO: keeping FreeBSD's base system and packages up-to-date









ċ
newdedibsd.tgz
(11k)
Olivier Cochard-Labbé,
11 févr. 2010 à 13:57
Comments