Archive de janvier, 2012

Commentaires fermés

Mise à jour kernel et monde


2012
30.01
#!/bin/sh
 
# Clean
cd /usr/src
make clean
 
# Récuperer les sources à jour
cvsup stable-supfile
 
# Compile le nouveau monde
make buildworld -j4
# Compile le nouveau noyau
make buildkernel -j4 KERNCONF=zurpatator2
make installkernel KERNCONF=zurpatator2
 
# reboot
echo ""
echo ""
echo "reboot necessaire (shutdown -r now) !!"
echo ""
echo ""
 
#!/bin/sh
 
cd /usr/src
#mergemaster -p
make installworld
make delete-old
make delete-old-libs
#mergemaster -U -i
make delete-old-libs
 
portsnap fetch update
 
# retype root passwd
passwd
 
# reconfigure sshd
#cd /etc/ssh/
#mv sshd_config sshd_config.dist
#sed '/^$/d; /^#/d' sshd_config.dist > sshd_config
#cat >> sshd_config <<EOF9
#Port 22
#ListenAddress 0.0.0.0
#Protocol 2
#AllowGroups wheel
#PermitRootLogin yes
#EOF9
 
# reboot
echo "reboot necessaire (shutdown -r now) !!"
Commentaires fermés

post config


2012
30.01
 
#!/bin/sh
 
############################
### Configuration du système
############################
 
# set root password
passwd root
 
# Mail
cd /etc/mail
make aliases
 
# Time Zone
cd /etc/
ln -s /usr/share/zoneinfo/Europe/Paris localtime
 
# cvsup
cp /usr/share/examples/cvsup/stable-supfile /usr/src/
cp /usr/share/examples/cvsup/ports-supfile /usr/src/
echo 'Edit du fichier /usr/src/stable-supfile'
echo 'modifier la ligne :'
echo 'default host=cvsup1.fr.FreeBSD.org'
read -p "Appuyer sur une touche pour continuer ..."
ee /usr/src/stable-supfile
ee /usr/src/ports-supfile
 
################################
### Copie des fichiers de config
################################
cp /etc/rc.conf /etc/rc.conf.dist
cp /etc/sysctl.conf /etc/sysctl.conf.dist
cp /boot/loader.conf /boot/loader.conf.dist
# Kernel
cd /usr/src/sys/amd64/conf/
cp GENERIC zurpatator2
 
########################
### Config système
########################
 
###################
### Security Tweaks
###################
chmod 640 /var/log/messages
 
 
############
### Ports ###
############
# met à jour les ports
portsnap fetch extract update
 
# Ports management
cd /usr/ports/ports-mgmt/portupgrade && make config-recursive && make install clean
 
# fail lors de l'install de gcc, donc install à part
cd /usr/ports/archivers/unzip && make config-recursive && make install clean
 
# Compile tools
portinstall gcc
 
# tools
portinstall wget sudo nano gzip logrotate
 
portinstall ezjail
echo 'security.jail.allow_raw_sockets=1' >> /etc/sysctl.conf
echo 'ezjail_enable="YES"' >> /etc/rc.conf
 
 
# Shells
portinstall bash
cd /bin/
ln -s /usr/local/bin/bash
echo '/bin/bash' >> /etc/shells
Commentaires fermés

Installation de FreeBSD sur un pool ZFS


2012
30.01
#!/bin/sh
 
# création de la table GPT sur le disque ada0 (1er disque sata de la machine, à adapter chez vous)
#gpart -s gpt ada0
# création d'une partition de boot, début au secteur 34, taille 512 secteurs
#gpart add -s 34 -b 512 -t freebsd-boot ada0
# création de la partition système, début au secteur 2048 (4k ready), sur tout le disque restant, label "ssd-intel"
#gpart add -s 2048 -t freebsd-zfs -l ssd-intel ada0
 
# utile ...
mkdir /boot/zfs
# on crée un dataset ZFS nomée sys_tank sur la partition gpt/ssd-intel
zpool create sys_tank /dev/gpt/ssd-intel
# on change le checksum
zfs set checksum=fletcher4 sys_tank
# on active la deduplication
zfs set dedup=on sys_tank
# on desactive la compression par défaut
zfs set compression=off sys_tank
 
# on export et réimporte le pool dans /mnt, en préservant zroot.cache dans /tmp
zpool export sys_tank
zpool import -o cachefile=/tmp/zpool.cache -o altroot=/mnt sys_tank
 
# on crée l'arboréscence ZFS
# on installe le système dans sys_tank/root, ça permet de changer le /root si besoin (upgrade ...)
zfs create                                                      sys_tank/root
zfs create                                                      sys_tank/usr
zfs create -o compression=lzjb                  -o setuid=off   sys_tank/usr/ports
zfs create -o compression=off   -o exec=off     -o setuid=off   sys_tank/usr/ports/distfiles
zfs create -o compression=off   -o exec=off     -o setuid=off   sys_tank/usr/ports/packages
zfs create -o compression=lzjb  -o exec=off     -o setuid=off   sys_tank/usr/src
zfs create                                                      sys_tank/var
zfs create -o compression=lzjb  -o exec=off     -o setuid=off   sys_tank/var/crash
zfs create                      -o exec=off     -o setuid=off   sys_tank/var/db
zfs create -o compression=lzjb  -o exec=on      -o setuid=off   sys_tank/var/db/pkg
zfs create                      -o exec=off     -o setuid=off   sys_tank/var/empty
zfs create -o compression=lzjb  -o exec=off     -o setuid=off   sys_tank/var/log
zfs create -o compression=gzip  -o exec=off     -o setuid=off   sys_tank/var/mail
zfs create                      -o exec=off     -o setuid=off   sys_tank/var/run
zfs create -o compression=lzjb  -o exec=on      -o setuid=off   sys_tank/var/tmp
zfs create -o compression=on    -o exec=on      -o setuid=off   sys_tank/tmp
 
# on définit l'emplacement de la racine pour le boot
zpool set bootfs=sys_tank/root sys_tank
 
# /var/empty en lecture seule
zfs set readonly=on sys_tank/var/empty
 
# swap de 10Go, sans dedup ni checksum
zfs create -V 10G sys_tank/swap
zfs set org.freebsd:swap=on sys_tank/swap
zfs set checksum=off sys_tank/swap
zfs set dedup=off sys_tank/swap
 
# on umount le tout et on refait les points de montage propres
zfs umount -a
zfs set mountpoint=none sys_tank
zfs set mountpoint=/ sys_tank/root
zfs set mountpoint=/tmp sys_tank/tmp
zfs set mountpoint=/usr sys_tank/usr
zfs set mountpoint=/var sys_tank/var
 
# on export et importe le pool
zpool export sys_tank
zpool import -o cachefile=/tmp/zpool.cache -o altroot=/mnt sys_tank
 
chmod 1777 /mnt/tmp
chmod 1777 /mnt/var/tmp
 
# Install de FreeBSD dans sys_tank/root, monté sur /mnt
cd /usr/freebsd-dist
export DESTDIR=/mnt
for file in base.txz lib32.txz kernel.txz doc.txz ports.txz src.txz;
do (cat $file | tar --unlink -xpvJf - -C ${DESTDIR:-/}); done
 
# on remet le cache zfs
cp /tmp/zpool.cache /mnt/boot/zfs/zpool.cache
 
# Installe fstab, rc.conf sysctl.conf, make.conf et loader.conf
cd /mnt/etc/ ; fetch http://192.168.1.96/zurp_fs/sys_conf/rc.conf
cd /mnt/etc/ ; fetch http://192.168.1.96/zurp_fs/sys_conf/sysctl.conf
cd /mnt/etc/ ; fetch http://192.168.1.96/zurp_fs/sys_conf/make.conf
cd /mnt/boot/ ; fetch http://192.168.1.96/zurp_fs/sys_conf/loader.conf
touch /mnt/etc/fstab
 
# Install du script post_install
mkdir /mnt/usr/scripts
mkdir /mnt/usr/scripts/userland
cd /mnt/usr/scripts
fetch http://192.168.1.96/zurp_fs/scripts/update_scripts.sh
chmod +x update_script.sh
 
shutdown -r now
Commentaires fermés

Un Home Server sous FreeBSD


2012
30.01

Salut @ll :)

Début d’une série sur la mise en production d’un serveur domestique sous FreeBSD

Pourquoi FreeBSD ?
_ OS ultra robuste, fiable, très bien maintenu
_ ZFS : gestion des disques optimales : pool disques, redondance, checksum …
_ orienté barbu intégriste : presque tout se fait en ligne de commande, mais qu’est-ce que c’est bon !

ZFS : bien réfléchir avant de créer ses pools disque, c’est difficile de revenir en arrière

Quels services ?
tout que tu veux, quasiment tout le libre est porté sous FreeBSD, c’est l’embarras du choix
perso j’utilise :
_ subsonic
_ retroshare & transmission
_ netatalf (AFP) & Samba (SMB)
_ VirtualBox, avec quelques VM : WHSv1, XP, Linux Mint …

et en détail ?
ce ne sont pas des tutos super detaillés, c’est pas chez moi que vous apprendrez les bases de BSD, le net regorge de sites très bien documentés, et vous devriez commencer par lire l’intégralité du manuel, en français :)
je regroupe ici les scripts que j’ai écrit pour avoir une install stable sur ma machine. Rien ne dit que ça marchera chez vous, et c’est même sur que ça plantera si vous faites un bête copier/coller :)
prenez le temps de comprendre le cheminement, lisez les pages man pour le detail des options et arguments, expérimentez … et recommencez de zéro, juste pour voir si ça marche 2 fois de suite !