MLDonkey chrooted en OpenBSD
09.ene 2006
Envía un trackback

Nota: Hans van Leeuwen ha preparado un binario que podemos descargar desde aquí , preparado para desempaquetar en el entorno chroot, así ahorramos el proceso de compilación (más información en http://hanz.nl/p/showdoc&doc_key=2).
Primeramente instalamos chrootuid, el cual se encargará de hacer más sencilla la tarea de ejecutar un servicio de red en un entorno restringido y con permisos limitados:
# pkg_add chrootuid-1.3.tgzUna vez hecho esto, bajamos y desempaquetamos los binarios estáticos de mldonkey-2.7.0:
# wget http://hanz.nl/download/mldonkey-2.7.0.static.i386-OpenBSD.tar.gz # tar xfvvz mldonkey-2.7.0.static.i386-OpenBSD.tar.gzAhora preparamos el entorno chroot con los directorios/archivos necesarios, dispositivos especiales... todo en su sitio:
# mkdir /var/mldonkey # cd /var/mldonkey # mv mldonkey-distrib-2.7.0/ core # ls core mldonkey-2.7.0.static.i386-OpenBSD.tar.gz # mkdir /var/mldonkey/src # mv mldonkey-2.7.0.static.i386-OpenBSD.tar.gz src/ # mkdir /var/mldonkey/etc # mkdir /var/mldonkey/dev # mknod -m 666 /var/mldonkey/dev/null c 2 2 # mknod -m 644 /var/mldonkey/dev/urandom c 45 2 # cp /etc/resolv.conf /var/mldonkey/etc/También es necesario usuario/grupo para ejecutar el demonio, con sus permisos correspondientes
# groupadd _mldonkey # useradd -g _mldonkey -d /var/mldonkey/ -s /bin/sh sh sha1 # useradd -g _mldonkey -d /var/mldonkey/ -s /bin/sh _mldonkey # chown -R _mldonkey:_mldonkey /var/mldonkey/Y para finalizar, ejecutamos mlnet (el demonio) dentro del chroot con su usuario correspondiente:
# /usr/local/sbin/chrootuid /var/mldonkey/ _mldonkey core/mlnet -stdout 2006/01/09 09:41:55 Starting MLDonkey 2.7.0 ... 2006/01/09 09:41:55 Language EN, locale ASCII 2006/01/09 09:41:55 MLDonkey is working in /root/.mldonkey 2006/01/09 09:41:55 [DNS] Resolving [bromo.enlugo.com] ... 2006/01/09 09:41:56 [DNS] Resolving [www.mldonkey.net] ... 2006/01/09 09:41:56 [cCO] Options correctly saved 2006/01/09 09:41:56 Check http://www.mldonkey.net/ for updates 2006/01/09 09:41:56 enabling networks: Donkey BitTorrent FileTP 2006/01/09 09:41:56 disabled networks: Fasttrack G2 Gnutella 2006/01/09 09:41:56 [EDK] Updating options to version 1 2006/01/09 09:41:57 To command: telnet 127.0.0.1 4000 2006/01/09 09:41:57 Or with browser: http://127.0.0.1:4080 2006/01/09 09:41:57 For a GUI check out http://sancho-gui.sourceforge.net 2006/01/09 09:41:57 Connect to IP 127.0.0.1, port 4001 2006/01/09 09:41:57 If you connect from a remote machine adjust allowed_ips 2006/01/09 09:41:57 [cCO] Options correctly saved 2006/01/09 09:41:57 Core started ...Ya tenemos mldonkey funcionando, pero ojo con pf, porque mlnet necesita tráfico en algunos puertos dependiendo de los servidores a los que nos vayamos a conectar:
ml_tcp="{ 4000, 4010, 4080, 4661, 4662, 9512 }"
ml_udp="{ 53, 4665, 4672, 161, 199, 9512, 6667 }"
ml_range="{ 6881:6999 }"
...
pass in log quick on $ext_if inet proto tcp from any to any port $ml_tcp flags S/SA keep state
pass in log quick on $ext_if inet proto tcp from any to any port $ml_range flags S/SA keep state
pass in log quick on $ext_if inet proto udp from any to any port $ml_udp keep state
De todas formas podemos encontrar más información aquí y aquí. Como todos los servicios que instalamos, deben tener su entrada propia en rc.local:
# MlDonkey
if [ -x /var/mldonkey/core/mlnet ]; then
echo -n ' mldonkey'; /usr/local/sbin/chrootuid /var/mldonkey/ _mldonkey core/mlnet & > /dev/null
fi
Para resolver el problema que anteriormente he citado sobre el nºde archivos abiertos por el usuario podemos utilizar ulimit instantaneamente o configurarlo permanentemente en login.conf.
:openfiles-cur=1024:
Y el resto ya lo sabeis de la anterior nota:
# telnet localhost 4000 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Welcome to MLDonkey 2.7.0 Welcome on mldonkey command-line Use ? for help > add_user admin **** Password changed > auth admin **** Full access enabled > set allowed_ips "127.0.0.1 192.168.0.255" option allowed_ips value changed > save options and sources saved > q #Estoy contento de poder tener mldonkey en un entorno seguro y sin preocupaciones. Ahora toca disfrutar de todo esto ;).
Actualización: Hans van Leeuwen ha actualizado el binario a la versión 2.7.2, podeis encontrar más información en su howto.
Comentarios
El logo del mldonkey me parece bastante tunero , eso si llevo tiempo usandolo en debian y no ha ido mal del todo.
Si si, es tunero al 100%, lo avalo. De todos modos ¿quién ha inventado los trivales?. Yo también llevo bastante tiempo corriéndolo en Debian/Ubuntu y OpenBSD, va a las mil maravillas (y ahora chrootado más wey). xD.
Pues ya me direis como hacer para que al pasar varios dias rulando en una maquina (he probado con varios linux y freebsd) no se os queda la maquina super petada y con la ram exprimida...
A mi me sigue pareciendo una mierda de protocolo y una mierda de red... (el emule/edonkey/mldonkey)
wu, eso me recuerda al chiste del niño que hacia el desfile de la jura de bandera y todos desfilaban mal menos el :)
Escribe tu comentario
Intenta que tu comentario sea interesante y con información relevante al tema de la entrada. BBCodes disponibles:
[url=http://direccion]texto[/url], negrita: [b]texto[/b],
itálica: [i]texto[/i], subrayada: [u]texto[/u].
Para mencionar o citar a alguien (quote): [cita]texto[/cita]


