8 avril 2008

Installer le gem memcached sous freebsd

memcached est un plugin memcache de Evan Weaver qui a des benchmarks impressionants, en effet memcached est jusqu'à 150x plus rapide que memcache-client, et jusqu'à 15x plus rapide que caffeine. Il s'appuie sur la librairie libmemcached.

Installation de libmemcached

le plugin nécessite la version 0.16.
avec portdowngrade selectionner la version 0.16.
cd /usr/ports/databases/libmemcached/ && make install clean
si durant l'installation le port libmemcached-0.16.tar.gz est introuvable le télécharger ici et le placer dans le répertoire /usr/ports/distfiles, puis relancer l'installation

Installation du gem

gem install --no-ri --no-rdoc memcached -- --with-opt-include=/usr/local/include

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

3 avril 2008

installation de mysql sous freebsd7

Installation du package

cd /usr/ports/databases/mysql51-server

make install BUILD_STATIC=yes BUILD_OPTIMIZED=yes WITH_CHARSET=utf8 WITH_COLLATION=utf8_general_ci clean

Possibilité d'ajouter l'option WITH_LINUXTHREADS=yes mais je ne sais pas si ça change quelque chose sur freebsd7 contenu des perfs de mysql

initialisation

  • initialisation de db: mysql_install_db

  • chown -R mysql /var/db/mysql/

  • chgrp -R mysql /var/db/mysql/

  • /usr/local/bin/mysqld_safe –user=mysql &

  • renseignement du password root : /usr/local/bin/mysqladmin -u root password 'newpassword'
editer /etc/rc.conf et ajouter:
mysql_enable="YES"
ajouter les règles suivantes au firewall pour mysql si vous souhaitez l'administer à distance
# Allow in/out MySQL

$cmd 00190 allow tcp from me to any 3306 out via $pif setup keep-state
$cmd 00191 allow tcp from any to me 3306 in via $pif setup keep-state


autorisé le root à distance (pas secure, seulement pour les configurations de test)
mysql -u root -p

GRANT ALL ON *.* TO root@'192.168.1.10' IDENTIFIED BY 'password';

installation ebb sous freebsd7

ebb est LE serveur web pour les applications ruby le plus rapide du moment.

installer glib2

cd /usr/ports/devel/glib20/ && make install clean

installer libev

cd /usr/ports/devel/libev/ && make install clean

installer le gem

installer ruby-gems si ce n'est pas déjà fait:
cd /usr/ports/devel/ruby-gems/ && make install clean

puis
gem install --no-ri --no-rdoc ebb

utiliser en suite ebb avec rails :
ebb_rails
ou avec merb :
merb -a ebb