Tags

bin_sh blosxom bsdfrance dg834 fail-over fail2ban freebsd ftp install ipv6 jail kernel kimsufi libre linutop nginx ntp ntp.org openntpd openwrt python rmll rrdcgi sl2009 ssd symon update usb var_empty world

Powered by

blOg
maRkdown
awK
shEll

27/06/2009

[ jail ipv6 ]

200906271840 jail ipv6

Jail et ipv6

Depuis FreeBSD 7.2, les jails peuvent avoir aucune, une ou des adresses ipv4 et/ou ipv6. Si l'utilisation d'une jail sans ip peut s'apparenter à un chroot, que faire de plusieurs ipv4/ipv6 ? Allons faire un tour au pays des jails.

/etc/rc.conf mono ip

jail_essai_rootdir=/zfs/jail/essai
jail_essai_hostname=essai.bsdsx.fr
jail_essai_ip=172.16.0.42
jail_essai_interface=lo1
jail_essai_devfs_enable="YES"
jail_essai_devfs_ruleset="devfsrules_jail"

Pour une jail à l'ancienne, il nous faut:

La configuration des services tournant dans cette jail est assez simple: tous les démons doivent écouter 172.16.0.42 (sshd -> ListenAddress, lighttpd -> server.bind, nginx -> listen ...)

/etc/rc.conf v4 + v6

jail_essai_rootdir=/zfs/jail/essai
jail_essai_hostname=essai.bsdsx.fr
jail_essai_devfs_enable="YES"
jail_essai_devfs_ruleset="devfsrules_jail"
jail_essai_ip="lo1|172.16.0.42,vr0|2001:41d0:1:34b6::42"

La syntaxe de l'option 'ip' a évolué. On peut désormais préciser l'interface d'une adresse ip. Ici, lo1 est notre interface privée et vr0 l'interface ipv6 publique.

# ifconfig
vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=2808<VLAN_MTU,WOL_UCAST,WOL_MAGIC>
        ether 00:15:f2:5d:cc:a0
        inet6 2001:41d0:1:34b6::17 prefixlen 128 
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
lo1: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        inet 172.16.0.17 netmask 0xffffffff 
pflog0: flags=141<UP,RUNNING,PROMISC> metric 0 mtu 33160

On remarquera l'apparition d'un lo0 (son absence dans les anciennes jails pouvait géner certains services). Les démons peuvent écouter sur toutes les interfaces, sans configuration particulière:

# grep ListenAddress /etc/ssh/sshd_config 
#ListenAddress 0.0.0.0
#ListenAddress ::
# netstat -an -f inet
netstat: kvm not available: /dev/mem: No such file or directory
Active Internet connections (including servers)
Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)
tcp4       0      0 172.16.0.42.22         *.*                    LISTEN
# netstat -an -f inet6
netstat: kvm not available: /dev/mem: No such file or directory
Active Internet connections (including servers)
Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)
tcp6       0     48 2001:41d0:1:34b6.22    2a01:e35:2ee9:f6.35888 ESTABLISHED
tcp6       0      0 2001:41d0:1:34b6.22    *.*                    LISTEN

/etc/rc.conf v4 + multi v6

jail_essai_ip_multi0="vr0|2001:41d0:1:34b6::43"
jail_essai_ip_multi1="vr0|2001:41d0:1:34b6::44"

Simple non ? Attention à ne pas faire de trou dans la numérotation des multi car sinon le script /etc/rc.d/jail ne les prendra pas en compte.

# ifconfig
vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=2808<VLAN_MTU,WOL_UCAST,WOL_MAGIC>
        ether 00:15:f2:5d:cc:a0
        inet6 2001:41d0:1:34b6::42 prefixlen 128
        inet6 2001:41d0:1:34b6::43 prefixlen 128
        inet6 2001:41d0:1:34b6::44 prefixlen 128
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
lo1: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        inet 172.16.0.17 netmask 0xffffffff
pflog0: flags=141<UP,RUNNING,PROMISC> metric 0 mtu 33160

Utilisation

L'accès aux services des anciennes jails se faisait en ipv4 uniquement. A nous les joies des redirections/translations (mais pf est notre ami :)

nat on $ext_if from !($ext_if) -> ($ext_if:0)
rdr pass on $ext_if proto tcp from <ssh_ok> to port 65080 -> 172.16.0.1 port ssh
rdr pass on $ext_if proto tcp from <ssh_ok> to port 65081 -> 172.16.0.41 port ssh

Mais maintenant que nos jails sont ipv6 ready:

pass quick on $ext_if inet6 proto tcp from <ssh6_ok> to any port ssh

hostname et jail

Petite précision: le nom d'une jail peut contenir un underscore mais pas de tiret. Un nom d'hôte ne peut pas contenir d'underscore.

Et maintenant

Il ne me reste plus qu'à:

En effet, avec toutes ces adresses disponibles, on peut vraiment affecter une ipv6 à un service et/ou un domaine virtuel (virtual host, ssl, wildcard, toussa... :)


Lien vers ce billet

20/06/2009

[ linutop usb ssd ]

200906201602 linutop usb ssd

Linutop 3, clefs USB et SSD

Afin de remplacer un antique Compaq (PII@400, 64 Mo, 3 Go de disque) qui devenait bruyant, j'ai choisi un Linutop v3.

Mon seul critère: 0 décibel. Mon bureau s'est transformé en chambre et depuis, fini le switch 24 ports, les disques SCSI et autres ventilateurs qui font penser à un B17 au décollage.

Objectif atteint mais restait un détail: les 2 Go de flash, bien suffisant pour un OpenBSD 4.5, risquent d'être un peu juste pour mon home et les logs de mes différents OpenWRT. Mon home étant raisonnable (100 Mo ~) et l'écriture des logs pouvant mettre à mal la flash, je me dis qu'une clef usb fera largement l'affaire. C'est le début des ennuis.

Machine démarrée, je branche ma clef, fdisk, disklabel, newfs et voila mon home tout beau tout propre. Reboot de la machine, logo "LINUTOP", perte du signal vidéo, logo "LINUTOP", perte du signal vidéo... Aïe. Changement de clef, rebelote. Troisième clef, même motif, même punition. Quatrième clef, il y a vraiment quelque chose de pourri au royaume du Danemark. Malgré 6 connecteurs usb, j'en fais le tour. Ma tension monte. Je ne me décourage pas et teste un lecteur de compact flash. Nada. Je suis pas un peu maudit là ?

Avec l'usb, on soupçonne rapidement l'alimentation. Je me procure un hub usb alimenté. Pas mieux. Pire, un lecteur/graveur de DVD usb fonctionne comme un charme. Va comprendre Charles.

Seule lueur d'espoir: une vieille clef noname de 128 Mo. Pas suffisant pour mon home, encore moins pour mes logs. Mais c'est un bon début. La lueur se tranforme en rayon de soleil: la clef d'1 Go, fournie avec mon Linutop v1. Bonheur. Une clef de 4 Go, empruntée du boulot, finit par me rassurer. Félicité.

Pour vous épargner des montées d'adrénaline, un petit récapitulatif:

Les clefs suivantes provoquent un reboot en boucle:

SanDisk CRUZER 2 Go
idVendor           0x0781 SanDisk Corp.
idProduct          0x550a 
iManufacturer           1 SanDisk
iProduct                2 Cruzer Pattern
iSerial                 3 1100430EF18167FA

PNY Attache 1 Go
idVendor           0x0930 Toshiba Corp.
idProduct          0x6544 
iManufacturer           1         
iProduct                2 USB Flash Memory
iSerial                 3 0702051036590

Emtec 1 Go
idVendor           0x13fe Kingston Technology Company Inc.
idProduct          0x1e00 
iManufacturer           1         
iProduct                2 USB DISK 2.0    
iSerial                 3 0777053B01C5

Integral 1 Go
idVendor           0x13fe Kingston Technology Company Inc.
idProduct          0x1a00 512MB/1GB Flash Drive
iManufacturer           1         
iProduct                2 USB DISK 2.0    
iSerial                 3 07691738011C

Les clefs suivantes fonctionnent correctement:

Lexar 4 Go
idVendor           0x05dc Lexar Media, Inc.
idProduct          0xa732
iManufacturer           1 Lexar
iProduct                2 JD Secure II +
iSerial                 3 AA04011300003478

Noname 128 Mo
idVendor           0x0ef5 PointChips
idProduct          0x2202 Flash Disk
iManufacturer           1 YOUR_COMPANY
iProduct                2 YOUR_PRODUCT
iSerial                 3 SN12345678901

Kingston Data Traveler 1 Go
idVendor           0x0951 Kingston Technology
idProduct          0x1603 Data Traveler 1GB/2GB Pen Drive
iManufacturer           1 Kingston
iProduct                2 DataTraveler 2.00000000184
iSerial                 3 0000000184

Si mon bureau s'est transformé en chambre, cela a au moins un avantage: la fêtes des père. J'ai reçu un sympatique ssd de 16 Go de chez OCZ au format mini pcie. Le linutop v3 refuse tout simplement de démarrer avec. J'attends des nouvelles du constructeur.

Dernières nouvelles:


Lien vers ce billet