NETBSD, DA ONE OS FOR GEEKS AND HUMAN BEINGS
INSTALLATION DE NetBSD
- 1 - récupérer l'iso
- 2 - installation : oui, oui, oui ...
- 3 - récupérer les sources des packages dans un repertoire quelconque:
- a - ftp ftp://cdn.netbsd.org/pub/pkgsrc/current/pkgsrc.tar.gz
- b - prendre le package pkgsrc.tar.gz
- c - installer les sources : tar -xzvpf pkgsrc.tar.gz -C /usr
- 4 - Mise à jour du système
- Télécharger le dernier fichier sources "pkgsrc"
- Dans le répertoire d'un package, taper l'une des deux méthodes
- a) "Make update" : méthode violente, packages et dépendances, désintallent tout et recompile ...
- b) "Make replace" : méthode douce, ne fait que remplacer le soft et non les dépendances.
ORGANISATION DU SYSTEME
- 1 - L'OS fonctionne sur le "BaseSystem" qui est construit à la racine.
- 2 - Les packages s'installent à partir de /usr/pkg/ dans une seconde arborescence classique (etc, user, bin, sbin, lib etc).
Création d'un autre utilisateur - avec sudo
- useradd -m benoit (/usr/sbin/useradd en tant que root)
- passwd benoit
- cd /usr/pkgsrc/security/sudo
- make
- make install
- sudoedit /usr/pkg/etc/sudoers
Installation d'un logiciel
- Compilation du source
- 1 - cd /usr/pkgsrc
- 2 - cd repertoire-de-categorie/nom-du-logiciel
- 3 - make
- 4 - make install
- Installation du binaire
- sudo pkg_add ftp.netbsd.org/pub/NetBSD/packages/3.1/i386/net/wget-1.10.2nb1.tgz
Mises à jour des packages
- Auditer le système
- Installer le package security/audit-packages
- Deux méthodes existent : binaire ou sources.
- Binaire : pkg_add -uu nom-du-package
- Source : cd /usr/pkgsrc/nom-du-package
- Source : mettre à jour les sources + make replace nom-du-package
RESEAU AVEC NETBSD
Serveur SSHd
- Installer /usr/pkgsrc/security/ssh2 (attention si un pb de licence se pose, c'est dans le fichier /usr/pkgsrc/mk/defaults/mk.conf qu'il faut ajouter la ligne.
- 1 - Générer les clefs SSH pour pouvoir se connecter à la machine.
- "ssh-keygen -t rsa1 -b 1024 -f /etc/ssh/ssh_host_key -N '' "
- "ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' "
- "ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N '' "
- Installer le script de démarrage du service dans /etc/rc.d (voir /usr/pkg/share/examples/rc.d)
- 2 - Ou indiquer dans /etc/rc.conf "sshd=YES" et rebooter ;-)
Serveur DHCP
- HOWTO DHCP
- Il n'y a pas de logiciel à installer pour lancer un serveur DHCP.
- Il faut faire un fichier de configuration (/etc/dhcpd.conf) ajouter à /etc/rc.conf quelques instructions (où ex0 est l'interface réseau).
- Remplacer les deux premières lignes par : "allow unknown-clients; ddns-update-style ad-hoc;" pour une configuration un peu plus ouverte
/etc/dhcpd.conf
deny unknown-clients;
ddns-update-style none;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.200 192.168.0.254;
default-lease-time 28800;
max-lease-time 86400;
option broadcast-address 192.168.0.255;
option domain-name "mycompanydomainname.com";
option domain-name-servers 194.152.64.35, 194.25.2.132;
option routers 192.168.0.1;
host ftp-server {
hardware ethernet 00:00:0a:d8:39:ee;
fixed-address 192.168.0.199;
}
host sparc {
hardware ethernet 00:50:04:01:ee:20;
fixed-address 192.168.0.198;
}
}
/etc/rc.conf
dhcpd=yes
dhcpd_flags="-q ex0"
---
touch /var/db/dhcpd.leases
---
/etc/rc.d/dhcpd start
Firewall : Ipfilter
- PF et IPF sont tous deux disponibles sous NetBSD. IPF est le firewall naturel de NetBSD. PF, son déscendant est celui de OpenBSD.
- Site officiel de Ipfilter : http://coombs.anu.edu.au/~avalon
- ipfilter=YES dans /etc/rc.conf
- Ecrire les règles de filtrage dans /etc/ipf.conf
- Exemple : Bannir une adresse IP : block in from 90.31.56.643 to any
Routeur NetBSD
- Documentation réseau de NetBSD (version française)
- Doc routage dynamique
- 1) Configurer les interfaces réseau de votre routeur
sudo /sbin/ifconfig sip0 192.168.15.108 up
sudo /sbin/ifconfig sip1 192.168.0.168 up
- 2) Configurer votre passerelle
sudo /sbin/route delete default
sudo /sbin/route add default 192.168.0.254
- 3) Configurer la résolution DNS
-bash-3.2$ cat /etc/resolv.conf (ex: les DNS de free)
;
; BIND data file
; Created by NetBSD sysinst on Sun Dec 16 10:12:07 2007
;
nameserver 212.27.54.252
nameserver 212.27.39.135
- 4) Configuration de IPF (/etc/ipf.conf)
IPF est l'outil de filtrage de paquets par défaut de netbsd.
- 5) Configuration de IPNAT (/etc/ipnat.conf)
La carte ethernet externe est SP1 et le réseau interne est 192.168.15.0.
map sip1 192.168.15.0/8 -> 192.168.0.168/32 portmap tcp/udp 40000:60000
map sip1 192.168.15.0/8 -> 192.168.0.168/32
- 6) Démarrage des services IPF et IPNAT
Il faut démarrer IPF avant IPNAT.
sudo /etc/rc.d/ipfilter start
sudo /etc/rc.d/ipnat start
- 7) Activer les régles du fichier de configuration /etc/ipnat.conf
sudo /usr/sbin/ipnat -FC -f /etc/ipnat.conf
- 8) Redirection de port (/etc/ipnat.conf)
rdr sip1 192.168.0.168/32 port 80 -> 192.168.15.98/ port 80 tcp
rdr sip1 192.168.0.168/32 port 25 -> 192.168.15.99/ port 25 tcp
rdr sip1 192.168.0.168/32 port 22 -> 192.168.15.99/ port 22 tcp
Serveur DNS sur NetBSD
- Installer l'un des trois packages disponibles : "named", "named9" ou "named95" suivant la version que vous souhaitez utiliser.
- La configuration se fait dans le fichier "/etc/named.conf" (contrairement à debian par exemple il n'y a pas d'instructions "include" pour les fichiers "named.conf.options" et "named.conf.local" que l'on peut mettre en amont et en aval des zones par défaut).
- Copier le fichier de démarrage : sudo cp /usr/pkg/share/examples/rc.d/named9 /etc/rc.d/named9
- Ajouter le flag de démarrage dans /etc/rc.conf : named9=YES
- Le démarrage du service se fait via un classique /etc/rc.d/named9 start
SERVICE WEB SOUS NetBSD
Serveur Apache 2
- Installer /usr/pkgsrc/www/apache2/
- Lancer Apache : sudo /usr/pkg/sbin/apachectl start
- Site web : /usr/pkg/share/httpd/htdocs/
- Configuration : /usr/pkg/etc/httpd/
- Installer le script de démarrage du service dans /etc/rc.d (voir /usr/pkg/share/examples/rc.d)
- Installer les bonnes variables dans le script /etc/rc.conf
PHP avec Apache
- Installer /usr/pkgsrc/lang/php5/
- Installer /usr/pkgsrc/www/ap-php (le module Apache-PHP)
- Configuration : /usr/pkg/etc/php.ini
- Ajouter les lignes suivantes au HTTP.CONF :
- LoadModule php5_module lib/httpd/mod_php5.so
- AddHandler application/x-httpd-php .php
Serveur HTTPS
- 1 - GENERATION DES CLEFS
- /etc/openssl
- openssl req -config /etc/ssl/openssl.cnf -new -out mamachine.csr
- openssl rsa -in privkey.pem -out mamachine.key
- openssl x509 -in mamachine.csr -out mamachine.crt -req -signkey mamachine.key -days 3650
- openssl x509 -in mamachine.crt -out mamachine.der.crt -outform DER
- 2 - CONFIGURATION DE APACHE
- Copier les clefs dans le repertoire d'apache
- cp mamachine.crt /usr/pkg/etc/httpd/
- cp mamachine.key /usr/pkg/etc/httpd/
Monitoring MRTG
- Installer le package MRTG /usr/pkgsrc/net/mrtg/
- Copier /usr/pkg/share/examples/mrtg/mrtg.conf vers /usr/pkg/etc/mrtg.conf
- Configurer MRTG via /usr/pkg/etc/mrtg.conf pour indiquer 2 types d'information:
- a) Le repertoire de destination des graphes généres
- b) Les différents scripts de mesures
- Invoquer mrtg via la commande : sudo mrtg /usr/pkg/etc/mrtg.conf
- Créer l'index : sudo /usr/pkg/bin/mrtgindexmaker --output=/home/www/mrtg/index.html /usr/pkg/etc/mrtg.conf
- Installer si nécessaire l'execution de MRTG dans le crontab de root (sudo crontab -e)
DIVERS
Serveur XFree86
- Le serveur X est installé par défaut.
- Vérifier avec startx, si besoin (!), configurer le serveur X avec "xf86config" en créant le fichier /etc/X11/XF86Config.
- Créer un fichier de configuration pour chaque utilisateur avec ".xinitrc"
- Installer un Window Manager comme icewm - ecrire la commande de démarrage du WM dans .xinitrc : "exec icewm" (sans le & final s'il n'y a rien après)
- Utiliser "dmesg" pour connaître le matos.
- Attention à la souris : /dev/wsmouse sur les versions > 2.0.
Monitoring Hardware : SMARTtools + envstat
Disque dur
- Installation de SMARTtools avec le packages pkgsrc/sysutils/smarttools/
- /usr/pkg/sbin/smartctl -a /dev/wd0d
Carte mère
- How to use hardware monitors with NetBSD
NTP
- Installation de NTP via le package /usr/pkgsrc/net/ntp4/
- Exécuter la commande : ntpdate ntp.internet-fr.net
- Ajouter cette commande à la crontab : /usr/pkg/bin/ntpdate ntp.internet-fr.net
INFORMATIONS SUR LE SYSTEME
- /sbin/sysctl -a : tout
- /sbin/sysctl hw
Name Constant Next level names Description
kern CTL_KERN sys/sysctl.h High kernel limits
vm CTL_VM uvm/uvm_param.h Virtual memory
vfs CTL_VFS sys/mount.h Filesystem
net CTL_NET sys/socket.h Networking
debug CTL_DEBUG sys/sysctl.h Debugging
hw CTL_HW sys/sysctl.h Generic CPU, I/O
machdep CTL_MACHDEP sys/sysctl.h Machine dependent
user CTL_USER sys/sysctl.h User-level
ddb CTL_DDB sys/sysctl.h In-kernel debugger
proc CTL_PROC sys/sysctl.h Per-process
vendor CTL_VENDOR ? Vendor specific
emul CTL_EMUL sys/sysctl.h Emulation settings
security CTL_SECURITY sys/sysctl.h Security settings
|