FreeBSD : tester une connexion UDP
- Mercredi 19 octobre 2011
- Par Boris HUISGEN
- Ecrire
Sur le serveur :
$ nc -lu 192.168.1.1 1194
Depuis le client (ici externe) :
$ nc -vzu 80.81.80.81 1194
Sur le serveur :
$ nc -lu 192.168.1.1 1194
Depuis le client (ici externe) :
$ nc -vzu 80.81.80.81 1194
Avant de débrancher un disque SATA hotswap, il est utile de notifier le système pour permettre un flush du cache disque. Pour ce faire :
# echo 1 > /sys/block/sdc/device/delete
Le périphérique /dev/sdc peut à présent être débranché physiquement.
[5697078.266492] sd 2:0:0:0: [sdc] Synchronizing SCSI cache [5697078.267447] sd 2:0:0:0: [sdc] Stopping disk [5697079.068864] ata3.00: disabled
Pour réactiver un périphérique, il faut lancer un scan manuel sur le bus correspondant :
# echo "- - -" > /sys/class/scsi_host/host2/scan
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin *
</IfModule>
Source : http://enable-cors.org/
Squid stocke par défaut les accès client dans un unique fichier journal. Ceci est problématique dans le cas d’un reverse-proxy mutualisé car il est nécessaire de générer des statistiques d’accès par site.
Comme toujours avec ce logiciel, la solution réside au niveau des ACL. Ici, il s’agit d’effectuer un test sur le domaine (dstdomain), voire l’URL (url_regex) s’il convient de distinguer au niveau protocole. L’ACL est ensuite à spécifier en dernier argument de l’option access_log afin de limiter les données stockées dans le log. Evidemment, il faut veiller à ce que toutes les options access_log utilisent une ACL sous peine d’avoir un beau catch-all qui va griller le disque et les temps d’accès inutilement.
Je colle ici un exemple de configuration permettant la séparation des logs d’accès de deux sites web (fichier squid.conf) :
acl LOG_SITE1 dstdomain "/etc/squid/log_site1.txt"
acl LOG_SITE2 dstdomain "/etc/squid/log_site2.txt"
logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Shcache_store_log none
access_log /var/log/squid/site1-access.log combined LOG_SITE1
access_log /var/log/squid/site2-access.log combined LOG_SITE2
Reste ensuite à créer pour chaque site le fichier listant des alias utilisés :
# more /etc/squid/log_site1.txt
www.site1.fr site1.fr
# more /etc/squid/log_site2.txt
.site2.fr
Bref, c’est simple et performant.
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Quelques notes suite à l’installation d’une Gentoo avec un partitionnement GPT, mirroir RAID1 et un rootfs ext4 sur LVM. mdadm utilisant par défaut les métadonnées au format 1.2, l’autodétection kernel ne peut fonctionner (seul le format 0.9 est reconnu). Il est donc nécessaire de créer un initramfs sur mesure pour assembler les périphériques RAID et monter le LVM.
Correction du stage3 :
Le stage3 ne crée pas les périphériques /dev nécessaires au lancement d’udev avec le baselayout-2. Il faut donc effectuer ces commandes avant le montage bind de /dev :
livecd # cd /mnt/gentoo/dev livecd # mknod --mode=600 console c 5 1 livecd # mknod --mode=666 null c 1 3 livecd # mknod --mode=666 zero c 1 5
Il faut également ajouter le lancement d’udev par openrc :
cd /mnt/gentoo/etc/runlevels/sysinit ln -s /etc/init.d/udev udev
General setup ---> [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
Device Drivers ---> Generic Driver Options ---> [*] Maintain a devtmpfs filesystem to mount at /dev
Device Drivers ---> [*] Multiple devices driver support (RAID and LVM) ---> <*> RAID support < > Autodetect RAID arrays during kernel boot <*> RAID-1 (mirroring) mode <*> Device mapper support <*> Snapshot target
File systems ---> <*> The Extended 4 (ext4) filesystem [*] Use ext4 for ext2/ext3 file systems [*] Ext4 extended attributes [*] Ext4 POSIX Access Control Lists [*] Ext4 Security Labels
File systems ---> Partition Types ---> [*] Advanced partition selection [*] EFI GUID Partition support
# more /etc/portage/package.keywords =sys-boot/grub-9999 **
# more /etc/portage/package.use sys-apps/busybox static sys-boot/grub static device-mapper sys-fs/lvm2 static sys-fs/mdadm static
Le flag static est à utiliser pour l’ensemble des binaires présents dans l’initramfs.
# mkdir /usr/src/initramfs
# cd /usr/src/initramfs
# mkdir -p bin lib dev dev/mapper dev/vc etc mnt/root proc root sbin sys
# cp -a /dev/{null,zero,console,tty,urandom} dev/
# ln -s ../console /usr/src/initramfs/dev/vc/0
# cp /bin/busybox bin/
# cp /sbin/mdadm sbin/
# cp /sbin/lvm.static sbin/lvm
Le fichier de configuration de mdadm est à créer :
# echo "DEVICE /dev/sd??* > /usr/src/initramfs/etc/mdadm.conf # mdadm --examine --scan >> /usr/src/initramfs/etc/mdadm.conf
A présent le script d’init :
# more /usr/src/initramfs/init
#!/bin/busybox sh
rescue_shell() {
busybox --install -s
exec /bin/sh
}
CMDLINE=`cat /proc/cmdline`
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devtmpfs none /dev
mdadm --assemble --scan /dev/md0
mdadm --assemble --scan /dev/md1
lvm vgscan --mknodes
lvm lvchange -aly vg/root
mount -o ro -t ext4 /dev/mapper/vg-root /mnt/root || rescue_shell
umount /sys
umount /proc
umount /dev
exec /bin/busybox switch_root /mnt/root /sbin/init ${CMDLINE}
# chmod +x /usr/src/initramfs/init
Tous les périphériques RAID doivent être assemblés par ce script même s’ils ne sont pas montés. Au niveau LVM, il faut évidemment faire correspondre le nom de votre VG + LV root. Point important, je démonte le /dev sous peine d’avoir des erreurs de permissions d’udev.
L’image est ensuite construite et installée dans /boot :
# mount /boot # find . -print0 | cpio --null -ov --format=newc | gzip -9 > /boot/initrd-2.6.38-hardened-r6
Le fichier grub.cfg est à régénérer :
# grub-mkconfig -o /boot/grub/grub.cfg
Il faut bien vérifier que l’option initrd est détectée par GRUB :
# more /boot/grub/grub.cfg |grep initrd initrd /initrd-2.6.38-hardened-r6 initrd /initrd-2.6.38-hardened-r6
Si c’est le cas, il ne reste plus qu’à installer GRUB et à rebooter :
# grub-install /dev/sda # grub-install /dev/sdb
bwm-ng est un outil pour monitorer en console la bande passante de votre réseau. Il est multiplateforme (Linux, BSD, Mac OS X, etc …) d’où son intérêt dans le cas d’une infrastructure exotique.
bwm-ng v0.6 (probing every 0.500s), press 'h' for help input: getifaddrs type: rate iface Rx Tx Total ==================================================================== em0: 1256.49 KB/s 159.00 KB/s 1286.69 KB/s em1: 1717.76 KB/s 111.22 KB/s 1749.13 KB/s em2: 9946.26 KB/s 37662.34 KB/s 38150.35 KB/s em3: 37537.95 KB/s 10023.27 KB/s 38024.49 KB/s lo0: 2.54 KB/s 2.54 KB/s 5.08 KB/s vlan0: 0.00 KB/s 0.00 KB/s 0.00 KB/s vlan1: 37505.46 KB/s 6869.97 KB/s 37949.06 KB/s vlan2: 96.75 KB/s 9791.27 KB/s 9875.43 KB/s vlan3: 0.23 KB/s 0.08 KB/s 0.31 KB/s pflog0: 0.00 KB/s 2.43 KB/s 2.43 KB/s tun0: 36.66 KB/s 134.23 KB/s 142.38 KB/s -------------------------------------------------------------------- total: 75565.96 KB/s 38635.92 KB/s 114201.88 KB/s
A essayer au moins une fois, ne serait-ce que pour le crasher ! C’est par ici : http://bellard.org/jslinux/
Ce n’est pas nouveau, donc direction wikipédia si besoin est.
server {
listen 80;
server_name mon.webmail.fr
# Strict Transport Security
add_header Strict-Transport-Security max-age=2592000;
rewrite ^.*$ https://mon.webmail.fr permanent;
}
LoadImpact est un outil en ligne permettant de tester rapidement la montée en charge d’un site web.
Voici les résultats que j’obtiens sur ce serveur :
Niveau configuration :
Le graph est quasi linéaire donc niveau matos çà suffit largement.