6 avril 2008

Configuration de base d'un serveur freebsd

Services à proscrire

Ne surtout pas activer telnetd et ftpd.

Configuration du réseau

1. /etc/rc.conf
hostname="nom_de_la_machine"
ifconfig_ed0="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx"
defaultrouter="xxx.xxx.xxx.xxx"

2. /etc/resolv.conf
domain mon_domaine
nameserver adresse.du.dns

Ports

1. /etc/make.conf
Fichier utilisé par make et important car les ports sont compilés avec cet outil pour la plupart d'entre eux. Ajouter la ligne suivante:
CFLAGS= -O -pipe

2. /usr/local/etc/pkgtools.conf
Fichier utilisé par portupgrade et autres portinstall. Compléter MAKE_ARGS de la façon suivante:
MAKE_ARGS = {
'java/jdk*' => 'WITHOUT_WEB=yes',
'editors/vim' => 'NO_GUI=yes',
}

3. recupération des ports
portsnap fetch && portsnap extract

Programmes de base

vim

cd /usr/ports/editors/vim && make install NO_GUI=yes clean

sudo

cd /usr/ports/security/sudo && make install clean
éditer le fichier /usr/local/etc/sudoers et ajouter la ligne:
%wheel ALL=(ALL) ALL
ici le groupe "wheel" aura le droit de faire des sudo

portupgrade

Installation:
cd /usr/ports/ports-mgmt/portupgrade; make install clean
Met à jour les applications installés via le système des ports (interactif et toutes les applications) :
portupgrade -Rria

pkg_cutleaves

Installation :
cd /usr/ports/ports-mgmt/pkg_cutleaves; make install clean

date et heure du serveur

On ne précise pas le drift, qui est par défaut dans /var/db/ntpd.drift et qu'il faut créer pour éviter les problèmes non évalués pour le moment avec un :
sudo touch /var/db/ntpd.drift
Le contenu de /etc/ntp.conf est le suivant :

# les trois pools français fournissant l'heure
server 0.fr.pool.ntp.org
server 1.fr.pool.ntp.org
server 2.fr.pool.ntp.org
# pour éviter que ce serveur soit également un serveur de temps
restrict default ignore

Dans le fichier /etc/rc.conf pour le rendre disponible au démarrage:
# Date
ntpdate_enable="YES"
ntpdate_program="/usr/sbin/ntpdate"
ntpdate_flags="-b"
ntpd_enable="YES"
ntpd_program="/usr/sbin/ntpd"

sécurisation

ttys

Mettre insecure à la place de tous les secure pour empêcher de se logguer en root (via telnet et cie)
En single-user, le password sera demandé parce que si console reste secure, le password n'est pas demandé.
vi /etc/ttys
:%s/secure/insecure/g

configuration de ssh

1. Activer dans le fichier de config /etc/rc.conf
sshd_enable="YES" 

2. Dans /etc/ssh/sshd_config, décommenter :
# interdiction du login root en ssh
PermitRootLogin no
# utile en cas de mis en place de jails
ListenAddress adresse.du.serveur 

3. Générer une clé publique et privée avec openssh du côté des machines clients se connectant au serveur FreeBSD :
ssh-keygen -t dsa (avec tous les choix par défaut).
Placer ensuite la clé publique (~/.ssh/id_dsa.pub) dans le fichier authorized_keys du répertoire .ssh de votre compte côté serveur.

firewall

1. à activer dans /etc/rc.conf via:
firewall_enable="YES"
firewall_logging="YES"
firewall_script="/etc/ipfw.rules"

2. Définir le verbose du logging dans /etc/sysctl.conf via:
net.inet.ip.fw.verbose_limit=5

3. Créer le fichier /etc/ipfw.rules avec les règles voulues

Aucun commentaire: