MeltIT
29Jan/102

Guía: Debian Linux Servidor de Descargas (torrent, jdownloader, ssh, samba, webserver) – Parte 2 Info Básica, Configuración y Programas


Iniciando el sistema:


Configuración de red

Comenzaremos con la configuración de la red, así podemos deshacernos del monitor y teclado, y administrar remotamente. La necesidad de una IP estática es por el hecho de que el servidor necesitamos que este siempre en la misma dirección, así lo encontraremos rápidamente. Esta guía de MeltIT explica como hacerlo. Lo único que hace falta luego de esto, es la instalación del servidor SSH y ya podremos desconectar teclado y monitor.

apt y utilización basica:

Como ya explique, apt, es el gestor de paquetes de Debian. Su uso es desde el usuario administrador (root). Lo más basico que hay que saber:

apt-get install nombre_del_paquete: Con este comando, descarga e instala un paquete.

apt-get remove nombre_del_paquete: Para eliminar un paquete del sistema.

apt-cache search descripción_o_nombre_del_paquete: Realiza una busqueda en la base de datos. Devuelve nombre del paquete - descripción. Muy útil para encontrar algún software.

Mantenimiento del servidor

apt nos facilita la tarea de mantenimiento, reduciendola a dos comandos (todos los comandos a continuación deben ser corridos como root):

apt-get update, que actualiza las listas de los repositorios (sitios de donde se descargan los paquetes), busca en internet actualizaciones de la lista de paquetes y las descarga.

apt-get upgrade, luego de apt-get update, con este se actualizan los paquetes a la ultima versión.

updatedb, para utilizar el comando locate nombre_de_archivo, genera una base de datos en base a los ficheros en el disco.

Instalación y configuración de openSSH, utilizando apt-get.

El servidor SSH es el encargado de inicio de sesión remoto por consola, lo cual es el eje central del control del servidor. A travez del SSH uno se conecta al servidor, e interactua como si estuviese en esa misma PC. A su vez, SSH, a contrario de telnet (otra forma de conectarse remotamente a un servidor por consola), brinda cifrado a la conexión, esto es, todos los datos están encriptados.

Procederemos a utilizar por primera vez el apt. apt-get install ssh, buscara el paquete SSH. A su vez, lo bueno de esto es que resuelve dependencias, esto es, todo lo que el programa necesite para funcionar, también será descargado, despreocupando al usuario y haciendo fácil la tarea de instalar y actualizar software. Pedirá una confirmación para descargar e instalar el programa y sus dependencias, le damos S de Sí, y aguardamos a que descargue e instale.

Conectándose al sistema de forma remota.

Aquí explicare como conectarse desde Windows. Utilizaremos PuTTY, que es un programa específicamente para esto. Desde otro linux, es tan simple como ir a una consola e indicar: ssh IP_DEL_SERVIDOR -l NOMBRE_DE_USUARIO_REMOTO. Es necesario indicar el nombre del usuario en el servidor, porque sino por defecto utilizara el nuestro de la computadora donde estemos.

Nos preguntara si queremos aceptar la clave, le ponemos que si.

Ponemos usuario y contraseña. Ya estamos logueados, el servidor esta funcionando con el servidor SSH. Ya podemos desconectar todo.

Nota importante: Antes de remover teclado y monitor, hay que ir al SETUP del BIOS, ya que en ciertos motherboard's esta habilitada la opción para que tire un error sino hay teclado conectado, y esto hay que deshabilitarlo, ya que no necesitamos de teclado.

Transfiriendo archivos entre el servidor utilizando SCP/SFTP:

Una vez instalado y funcionando el sistema, la forma básica de transferencia de archivos es el protocolo SCP ó SFTP. Utilizaremos estos, ya que, ademas de proveer una conexión segura, están incluidos en el SSH previamente utilizado.

Hay un cliente muy bueno para Windows, WinSCP.

El uso es simple, abrimos el WinSCP, indicamos la IP, el usuario y contraseña, y se nos abrira una interfaz bastante simple de utilizar, con drag&drop, y ya podremos copiar ficheros de y hacia el servidor.

Términos y comandos utiles en Linux:

El sistema es case-sensitive. Esto significa, que por ej, puede haber en un directorio 4 archivos: hola, holA, HOLA, HoLA, y son todos distintos, esto es porque las mayusculas y minisculas si importan en los nombres, y en muchos programas tambien, asi como en los argumentos de los programas (argumentos son palabras separadas por espacio que se ponen luego del nombre del comando, ej, apt-get update, update es el argumento numero uno que se le paso a apt-get).

Cuando se utiliza ~/ para indicar un archivo, significa que es relativo al home dir, esto es, /home/nombre_usuario, por defecto. Entonces, si mi usuario es c4b3z0n sería:

~/ = /home/c4b3z0n/

~/.vnc/ = /home/c4b3z0n/.vnc/

Asimismo, utilizando cd (change dir, cambiar directorio), sin parámetros extra, es como hacer cd ~, el cual cambia el directorio actual.

pwd, print working directory, imprime el directorio de trabajo (directorio en el que te encontras). Al iniciar sesión, el directorio de trabajo es ~, con lo cual un pwd, informará /home/c4b3z0n, en mi caso.

ls es como dir en Windows, lista los archivos del directorio actual. Para listar archivos ocultos  ls -a. Los archivos ocultos comienzan con un . en el nombre, a contrario de Windows, donde Oculto es un atributo.

localhost, es la misma PC, equivale a la IP, 127.0.0.1, también conocida como loopback, o adaptador lo.

La mayoría de los comandos/programas, traen una ayuda de como usar, y un manual.

Generalmente, utilizando un comando y agregandole -h ó --help (tip: con un guión, -, se utilizan por lo general (convención), comandos de una letra, ej -h. Cuando se utilizan dos guiones, se utiliza la palabra completa, ej --help), obtendremos ayuda de su uso. Hay muchos casos en que -h significa human-readable (como en ls -h), lo que significa es que en vez de mostrar la información en bytes la muestra en KB, MB, ó GB.

Ejemplo, ping --help ó ping -h. Esto mostrara los argumentos de uso. En los argumentos, los que aparezcan entre [ ], significa que son opcionales. Sino son obligatorios. Otro caso es, por ej, programa [--opcional] [-A con_parametro] [-b|-c|-d] obligatorio. En este ultimo caso, programa recibe, --opcional, como totalment opcional. Luego, -A recibe un parametro adicional. Y -b, -c y -d, son opcionales, pero solo puede ser uno de ellos, no se combinan estos tres, pero si con --opcional y/o -A. obligatorio es obligatorio.

Por otro lado, para ver el manual de alguna aplicación o comando, se utiliza man. Ejemplo, man ifconfig, ó man ping. (De los manuales se sale con la letra q)

Control básico de procesos en una consola.

A primeras apariencias, una consola es single-task, no corre más de una aplicación en paralelo. Pero en realidad tenemos una sesión, y si podemos correr aplicaciones en paralelo. Cuando estemos en una tarea, ejemplo un "updatedb" ó haciendo un ping, con presionar:

Ctrl+C (control y la letra C al mismo tiempo), matar el proceso.
Ctrl+Z, la frenamos y mandamos a 'background', segundo plano.

Para reanudarla,

fg, "trayéndola" a primer plano nuevamente.

bg, para que siga corriendo en segundo plano.

Mediante el comando jobs, podemos ver el estado y tareas que halla en segundo plano. Asimismo, aquí veremos el número de tarea, que podemos utilizar para, traer a primer plano, reanudar, o matar el proceso. Ej, fg %1 ó bg %1. El % hace referencia a que es el numero de job. Para matar un proceso, hay tres formas. La primera ya la vimos, con Ctrl+C a un proceso en el primer plano. La seguna es mediante kill %numero_de_job, lo mismo que en fg y bg. Y por ultimo, kill pid. PID es Process ID. Es un identificador del sistema para cada proceso. Este lo obtenemos utilizando ps, para ver nuestros procesos activos. O ps aux, para ver todos los procesos activos del sistema.

Para iniciar un proceso directamente en segundo plano, basta con agregrar un & al final, y listo. Ejemplo, updatedb &. Asimismo, se pueden iniciar varios procesos juntos, updatedb & apt-get update.

Otra opción, es iniciar un programa cuando termina otro. Esto es, en el proceso de actualización, primero actualizamos la lista de paquetes, luego los paquetes, y por ultimo podemos actualizar la base de datos para busqueda de ficheros:

apt-get update && apt-get upgrade && updatedb

El operador &&, hace que cuando termine el proceso, inicie el siguiente.

Instalación y configuracion de sudo:

sudo es una utilidad que permite ejecutar comandos como administrador, desde un usuario común. Es muy utilizado en Ubuntu, pero en Debian no viene por defecto. Hasta el final de la guía, será utilizado frecuentemente, y recomiendo su instalación por comodidad. En MeltIT esta publicado como instalarlo y configurarlo.

Descargas FTP/HTTP con wget:

wget, es una utilidad para descargar archivos de la web, mediante su URL. El uso básico es wget url, esto descarga al directorio actual, la url especificada. Tiene más modificadores, pero para descargar un archivo de la web basicamente, se utiliza la sintaxis mencionada.

Configuración y carpetas en red con SAMBA:

Con samba, se pueden poner carpetas en red, para que sean accesibles como carpetas compartidas por sistemas Windows. Guía en MeltIT.

Montando carpetas compartidas de la red Windows, con smbfs/cifs:

Hice una guía en MeltIT de como montar carpetas compartidas en PC's Windows, con smbfs/cifs.

VNCServer + fluxbox + uTorrent + JDownloader + GUI + X11 server + apps:

A partir de acá, la guía se basara en la instalación de un servidor vnc, donde correrá el servidor X que se accederá remotamente. Esto es, por la necesidad, en algunos casos, y posibilidades que da al sistema.

Instalación del servidor VNC y fluxbox - como acceder al servidor vnc:

Hay una guía publicada en MeltIT, que cubre este punto, y no debería haber problemas continuando desde esta.

Instalación de Java y JDownloader para RapidShare, MegaUpload, etc.

Ya publique en MeltIT una guía, esta bastante explicita como para entenderla perfectamente desde esta guía.

uTorrent con Web UI:

Es vital una Web UI (User Interface, intefaz de usuario) para los torrent, ya que de tener el .torrent en una PC, es una forma fácil de abrirlo en el servidor (mediante un click a Upload). Sino sería una tediosa tarea, la de transferir vía WinSCP, u otro, los archivos y luego abrirlos en el servidor, mediante PuTTY por ej.

Opte por uTorrent por ser la solución mas liviana y con Web UI integrada. Si bien es de windows, corre en Linux perfectamente con wine (un programa que se encarga de esto, correr aplicacions de windows en Linux). La guía en MeltIT.

29Jan/100

Guía: Debian Linux Servidor de Descargas (torrent, jdownloader, ssh, samba, webserver) – Parte 1 Instalación

¿Porque Debian?.

En base a las distribuciones que he probado, aunque han sido pocas, reduje mis opciones inicialmente a dos, Arch (ArchLinux) y Debian. Ambas vienen en formato de 'netinst', imagenes de CD muy pequeñas (menores a 200MB) y descargan todo por internet, para ser sistemas base.

Finalmente, opte por Debian. La filosofia de Arch, es configurar todo manualmente y entender como funciona. Debian tiene una filosofia de ser universal, disponibilidad de arquitecturas, gran cantidad de paquetes, es más simple de dejar andando. Un ArchLinux es interesante porque depende del usuario la configuración de paquetes, auto-arranque, pero exige una demanda de tiempo más importante a la hora de configurar, aunque deja mayores conocimientos.

La idea de esta guía es apuntar a usuarios novatos y que no se queden en el intento, asimismo hacerse con un servidor de descargas de manera rapida y efectiva, y tambien va a haber usuarios que no les interese aprender mucho de Linux y solo quieran el servidor, a quienes tambien va esta guia. De todas formas, Debian me sigue pareciendo una excelente distribución, y en mi tiempo en Linux, Arch me llevo a aprender otras cosas que en Debian no aprendí, por las auto configuraciones entre otras cosas. Si alguien realmente esta interesado, pegarle una hojeada a la wiki de Arch le podría interesar. De lo contrario, esta guia tratara de ser completa en términos de explicar, así como simple para quien solo desee dejar un servidor andando.

Preparación del sistema:

Hardware:

No se requiere un gran sistema para correr esto. En caso de que se este comprando una PC nueva, algo barato y básico a día de hoy, un Sempron 140, 1GB de ram, disco a gusto, yo soy fanático de 1TB+, pero es más por el bolsillo, motherboard, con video integrado bastara, un biostar barato. Monitor y teclado serán necesarios únicamente durante la instalación.

En caso de tener Hardware en casa, cualquier PC vieja bastara. Algo como un Celeron 1000MHz, 256MB+ de RAM, esta bien. No tengo más detalles ni como testear, pero es cuestión de probar. Creo que lo más importante acá es el disco, porque define cuanto vamos a poder descargar. El hardware en si no tiene que ser tan potente.

Según free (comando que muestra la utilización de memoria), en un sistema con 128MB de RAM, el sistema, con vncserver, xterm, JDownloader y uTorrent corriendo, reporta 40MB de memoria disponible. Lo único, el JDownloader y el uTorrent sin descargas, pero para dar una idea.

Software:

Descarga de la imagen de cd: Vamos a descargar la imagen de CD netinst, que es la instalación de un sistema base y luego la obtención de paquetes via web. Las descargas se encuentran en la pagina de debian. Seleccionar la arquitectura correcta y de 180MB. La arquitectura sera generalmente i386 (para procesadores de 32bits), o amd64 para procesadores de 64bits. Si no estas seguro, seguramente sea i386.

Luego de descargada la imagen de CD (archivo .iso), solo queda grabarla. Se puede utilizar un software gratuito como ImgBurn. Recordar que hay que grabar la imagen de cd, y no grabar el archivo en el disco. En el ImgBurn, la opción es Burn Image to Disc.

Instalación del sistema operativo.

Preparación.

Ahora queda reiniciar la PC con el CD puesto. Si el CD no carga al iniciar la computadora, entonces hay que ir al SETUP del BIOS y buscar una opción donde se eligen prioridades (boot device priority) para la carga de las unidades y poner el CD en primer lugar.

Iniciando la instalación:

En el menú de instalación nos aparecerán una serie de opciones. En esta guía, vamos a optar por el Install común, que es una suerte de grafico, pero sin mouse, todo con el teclado.

En el primer paso, seleccionamos el idioma. Luego el país.

Ahora nos da la opción de elegir el tipo de teclado. En mi caso, acostumbro a utilizar el Español, otra opción puede ser el Latinoamericano.

El primer paso acerca de la red, es asignarle un nombre a la PC. En mi caso utilice "meltitdescargas".

Luego en dominio, no utilizamos nada ya que es innecesario para la red local.

Luego la red se intentará configurar automáticamente por DHCP. En la mayoria de los casos, la configuración será automática (router).

Particionado:

Lo básico a tener en cuenta, es que vamos a crear 3 particiones clave, estas son / (root, raíz en ingles), /home (directorio de los archivos de usuario), y un swap (partición de intercambio, algo como el pagefile.sys, la memoria virtual, de windows).

En Linux no se utilizan letras de unidad, sino que las distintas particiones tienen puntos de montaje. Sería algo como que en windows, las carpetas como Mis Documentos, en vez de ser, por ejemplo, C:\Mis Documentos, serían otra unidad, como D:, y al ingresar a C:\Mis Documentos, vemos el contenido de D:. En Linux por ej, si separamos /home del root, realmente podemos acceder desde /, a /home, pero el contenido de home, esta en otra partición/disco. Esto es útil por ejemplo si queremos cambiar de distribución, o reinstalar el sistema sin perder los datos de usuario. Tiene otros usos, como asignar distintos tipos de sistema de archivos. El caso de swap, puede ser un archivo o una partición independiente, en este caso utilizaremos una partición.

Ahora pasare a explicar en si que son estas particiones, y que espacio recomendado para estas:

/ - root, raiz: Acá se encontraran todos los archivos, programas, configuraciones, etc. En la guía utilice 2.5GB, lo cual es suficiente sino se va a instalar un entorno grafico. De ser posible, y para estar seguro, 10GB será más que suficiente, ya que lo que ocupara mucho espacio, serán los archivos de usuario, los cuales estarán en otra partición.

/home - archivos de usuario: Acá estarán todos los ficheros de los usuarios, descargas, configuraciones. Queremos utilizar todo el espacio posible así tenemos más lugar para descargas.

swap - area de intercambio: Este espacio en disco es utilizado con dos fines: Hibernación y una especie de memoria extra, por si el sistema se queda sin RAM. En sistemas con poca memoria, menos de 256MB, sería conveniente optar por 2x la memoria, 512MB de intercambio. Sistemas hasta 512MB, estimo que estarían bien con 1,5x la memoria. Y de 512MB para arriba, 1x. Esto es porque el mínimo para hibernar, es 1x. Y son "apenas" unos pocos MB que estamos destinando del disco. No significa que es completamente necesario, pero en caso de que suceda algo que requiera esta memoria extra, no habrá problemas.

Armando las particiones: Seleccionaremos particionado manual. Ahora seleccionaremos el disco a particionar.

El primer paso es eliminar todas las particiones, entrando a cada una en el menú y seleccionando eliminar. A menos que se quiera mantener alguna.

Primero crearemos la partición raíz. Seleccionamos el espacio libre. Tipo de partición, Primaria. Tamaño, 2.5GB, 5GB o 10GB, yo opte por 2.5GB. Ubicación, principio. Luego el punto de montaje debe ser /. Y la "marca de arranque", activada. Utilizar como: ext3. Este es el sistema de archivos, ext3 se usa bastante (actualmente se esta comenzando a utilizar ext4), otra opción que utilizo (en lo personal) es ReiserFS, pero en esta guía utilizare ext3.

Segunda partición, de intercambio. Nuevamente seleccionamos el espacio libre. Esta vez, utilizaremos partición lógica. Tamaño, como discutido anteriormente, yo utilizare 512MB. Ubicación, principio. Utilizar como: Área de intercambio.

Tercera partición, /home. Seleccionamos el espacio libre. Partición lógica. Tamaño, "max", como palabra clave para utilizar todo el espacio disponible. Ubicación, principio.

Utilizar como: ext3. Punto de montaje /home.

Finalmente, "Finalizar el particionado y escribir los cambios al disco". Pedirá confirmación, y las particiones ya quedaran creadas y formateadas.

Usuarios y contraseñas

En primera instancia, vamos a configurar la clave del superusuario (root), que es el administrador. Cabe destacar la importancia de esta contraseña, y que el uso de este usuario es solo para tareas administrativas.

Luego crearemos un usuario, el primer paso es indicar su nombre completo.

Luego nos mostrara el primer nombre, todo en minúscula, como nombre de usuario para iniciar sesión, podemos dejarlo o cambiarlo a gusto.

En tercera instancia, le crearemos la contraseña y su verificación.

Configuración del gestor de paquetes

Aca nos encontramos con una de las partes clave del sistema Debian, APT. Es un gestor de paquetes, que explicare más adelante, el cual es muy útil y fácil de utilizar.

Primero debemos seleccionar un país, si la ubicación es más cercana, deberíamos tener menos ping, y mejores velocidades.

Yo voy a seleccionar una réplica de Estados Unidos, porque me paso en cierta situación que seleccione una Argentina y no funciono, pero deberían andar todas.

Luego seleccionamos en efecto el servidor.

Si estamos utilizando un proxy, completamos los datos, sino continuamos.

Nos pregunta si queremos participar del popularity contest. Es indiferente, son unicamente estadisticas, aunque es colaborar la participación.

Luego seleccionamos los paquetes, solo utilizaremos "Sistema estandar".

Gestor de arranque

El siguiente paso, es la instalación del gestor de arranque GRUB, el cual se encargara de iniciar el sistema. El instalador solo pide confirmación y la instalación es automática.

Y la instalación ha finalizado. Retiramos el CD, reiniciamos y esta listo para iniciar el nuevo sistema.

La continuación de esta guía, aquí.

29Jan/105

uTorrent y Web UI en Linux con wine

Voy a estar mostrando como instalar uTorrent y habilitar su Web UI en Linux, con wine (para correr aplicaciones de Windows en Linux). La razón de que utilizo wine y uTorrent, es porque este ya trae una Web UI (User Interface, intefaz de usuario), y es ideal para administrar de forma remota desde un navegador web. Aunque la aplicación no sea nativa, con wine corre bien. Voy a mostrar el proceso para Debian y ArchLinux, ambos sistemas con sudo configurado.

Descargando lo necesario:

En Debian, sudo apt-get install wine.

En Arch, sudo pacman -S wine.

Para descargar el uTorrent, voy a utilizar wget ya que la url de descarga es facíl de recordar:

wget http://download.utorrent.com/1.8.5/utorrent.exe


Iniciando uTorrent:

Para iniciar, utilizamos wine utorrent.exe /NOINSTALL.

Estamos iniciando wine y le pasamos de argumento la ubicación del ejecutable, en este caso utorrent.exe. Asimismo, del utorrent le estamos pasando el argumento /NOINSTALL, lo que hace es que en vez de que se abra el instalador, inicia directamente el programa, ya que no es necesario instalarlo (y a mi en lo personal se me traba).

Configurando el Web UI:

Options -> Preferences (Ctrl+P)

Sección Web UI.

Tildamos Enable Web UI.

Elegimos un usuario y contraseña a gusto. Si queremos, podemos poner enable guest account, una cuenta de invitado.

En Alternate Listening Port, podemos configurar un puerto manualmente para que se entre por ese. En mi caso, voy a utilizar 8080, pero no debería haber problema con ningun otro. (De no activar esta opción, por defecto es el puerto del uTorrent)

Finalmente, podemos limitar el panel a ciertas IP's. En el casillero Restrict access to the following IP's, enumerar con , las IP's a las cuales se les quiere permitir el acceso.

Para acceder al servidor, utilizamos en un navegador, por ej, http://10.0.0.201:8080/gui/, en el caso mio, que la IP es 10.0.0.201 y el puerto 8080.

Filed under: Linux, Server 5 Comments
29Jan/101

Linux: Compartir carpetas con SAMBA.

samba, sirve para compartir carpetas con Windows y otras PC's en red. Se pueden dar permisos por directorio, etc. Esta es una introducción básica.

Voy a estar mostrando como hacer esto en Debian y Arch. Voy a indicar utilizando sudo, acá hay una guía, por si quieren instalarlo.

Instalando lo necesario:

Necesitaremos samba unicamente.

sudo apt-get install samba, en Debian.

sudo pacman -S samba, en ArchLinux.

Configurando usuarios:

Por cada usuario de samba, debe existir el usuario en el sistema. El comando para agregar usuarios en el sistema es sudo useradd nombre_usuario. Acá hare de muestra que tenemos el usuario ya andando, en mi caso es c4b3z0n.

La info, la encontre inicialmente aquí.

sudo nano /etc/samba/smb.conf, que es el archivo de configuración de samba.

En la parte de Authentication, donde dice security = user, va a estar comentada la línea. Hay que descomentarla. Esto hace que samba pida usuario y contraseña para acceder a las carpetas/archivos.

Debajo de esa línea, agregar: username map = /etc/samba/smbusers, que indica un archivo de configuración donde estaran los usuarios del sistema relacionados a los usuarios de samba, esto es, se pueden utilizar distintos nombres en samba para acceder a las carpetas.

sudo smbpasswd -a <nombre_usuario>, para crearle una contraseña al usuario.

sudo nano /etc/samba/smbusers, y aquí el formato es: <nombre_usuario_sistema> = "<nombre_usuario_samba>". Ejemplo, en mi caso, voy a darle a c4b3z0n el nombre "archivos".

c4b3z0n = "archivos".

Ya esta listo el usuario(s).

Compartiendo los directorios home:

En la parte Share Definitions, donde dice [homes], debe quedar algo así:

[homes]
comment = Home Directories
read only = yes
browseable = no
valid users = %S

#para poder escribir,  descomentar la siguiente linea y comentar el read only
#writeable = yes

Compartiendo directorios:

Al final del archivo, agregamos:

[nombre_para_compartir]
comment = Un comentario para el directorio
read only = no
writeable = yes
path = /usr/some/dir
valid users = usuario otrousuario

nombre_para_compartir: El nombre con el cual aparecera el directorio, reemplazar.

comment: Es un comentario, realmente no es necesario.

read only: Define si es solo lectura el acceso. Debe ser lo contrario a writeable. yes ó no.

writeable: Define si se puede escribir en el directorio. Debe ser lo contrario a read only. yes ó no.

path: Define el directorio a compartir. Recordar que el usuario debe tener permisos para poder acceder/modificar ese directorio (el usuario del sistema).

valid users: Usuarios validos para el recurso compartido, enumerados por espacio.

Estas son opciones básicas para compartir directorios con samba.

Filed under: Basics, Linux, Server 1 Comment
29Jan/103

Montar carpetas compartidas de Windows en Linux con smbfs/cifs.

Si tenemos computadoras en la red con Windows y queremos leer los archivos de estas, debemos montar las carpetas con smbfs/cifs.

Archivos necesarios: en Debian: sudo apt-get install samba. De preguntar por un grupo de trabajo (WORKGROUP), usar el que tiene las PC's de Windows. En ArchLinux: sudo pacman -S samba.

Información necesaria:

En ambos casos, necesitaremos cierta información:

Tipo de sistema de archivos: cifs. Es el que utilizamos para carpetas compartidas en red.

Opciones: Puede ser opcional, es un nombre de usuario y contraseña en la computadora destino, en caso de necesitarse. username=usuario,password=contraseña. En mi caso, usuario c4b3z0n, contraseña 12345678.

Recurso: El formato es //host/carpeta. Es donde se encuentra la carpeta que deseamos montar. El host es la IP destino. Dando de ejemplo la carpeta compartida "documentos" en el host "10.0.0.18": //10.0.0.18/documentos.

Destino: Carpeta en la cual accederemos al recurso remoto. De ejemplo, una carpeta, /mnt/documentos_windows. Debe existir, sino debemos crearla antes. Generalmente, se utiliza el directorio /mnt/ para montar, no es necesario, pero acá vamos a mostrar utilizando este.

sudo mkdir mnt/documentos_windows, la carpeta destino debe existir, asique la creamos.

Montando carpetas temporalmente - mount:

Utilizare mount, para demostrar como montar temporalmente. Debe ser ejecutado como root. La sintaxis que utilizaremos es mount [-t tipo_sistema_de_archivos] [-o opciones] recurso destino.

sudo mount -t cifs -o username=c4b3z0n,password=12345678 //10.0.0.18/documentos /mnt/documentos_windows

luego, cd /mnt/documentos_windows y con ls, nos deberían aparecer las carpetas y archivos correctamente.

Montando carpetas de forma automatica - /etc/fstab:

sudo nano /etc/fstab

El archivo /etc/fstab, es el que se lee y utiliza en el comando mount -a, que se realiza al inicio del sistema. El formato lo vemos en el archivo, comentado:

<file system (recurso) > < mount point (destino) > < type (tipo sistema de archivos) > < options (opciones) > < dump > < pass >

Son separados por un TAB ó ESPACIO. dump y pass los utilizaremos en 0 ambos.

Lo cual nos queda en:

//10.0.0.18/documentos    /mnt/documentos_windows      cifs      username=c4b3z0n,password=12345678     0      0

Para aplicar estos cambios, sudo mount -a. Al iniciar el sistema, automáticamente se montaran las carpetas aquí configuradas.

Nuevamente, cd  /mnt/documentos_windows y con ls deberíamos ver todos los archivos y carpetas.

Filed under: Basics, Linux, Software 3 Comments
29Jan/100

Instalación de sudo en Debian y Arch Linux

sudo es una utilidad que permite ejecutar comandos como administrador, desde un usuario común. Es muy utilizado en Ubuntu, ya que por defecto no se puede iniciar sesión con root.

apt-get install sudo, en Debian. pacman -S sudo, en ArchLinux.

Luego de esto, debemos agregar nuestro usuario para que pueda utilizarlo. Para editar la configuración, hay que utilizar visudo. Esto nos abrirá el editor de texto nano con el archivo cargado (o con vi talvez). Tenemos que agregar, debajo de la linea que empieza con "root", lo siguiente:

nombre_de_usuario ALL=(ALL) ALL

En mi caso queda como c4b3z0n ALL=(ALL) ALL. Guardamos y salimos (F2, con nano). Y ya prescindimos de iniciar sesión como root.

La utilización es simple, nada más hay que anteponer sudo al comando, y ya esta. Ejemplo, sudo /etc/init.d/networking restart y la primera vez nos va a pedir la contraseña, luego por unos minutos no la va a requerir más, o hasta el siguiente login.

Para que no requiera contraseña sudo (en ningun momento), se puede utilizar el modificador NOPASSWD, y la línea quedará así:

nombre_de_usuario ALL=NOPASSWD: ALL

Nota: Para cambiar en Arch el editor de vi a nano, hay que cambiar la variable de entorno EDITOR. Para hacer esto, export EDITOR=nano, y ya esta.


Filed under: Basics, Linux, Software No Comments
28Jan/108

Linux: Configuración Internet/IP manual (permanente y temporal) – route, nameserver, interfaces, ifconfig, gateway

Iniciamos sesión con root, ya que estaremos realizando actividades administrativas.

Si tenemos DHCP, podemos extraer los datos de configuración del mismo. Para verificar si tenemos internet, bastara con hacer ping 8.8.8.8, que son unos DNS de Google, y seguramente hará el ping correctamente, si es que estamos correctamente conectados a internet y configurado por DHCP. De no tener DHCP, se deberían tener los datos para configurar, más abajo explica como. Escribimos ifconfig y nos aparecerán varios datos. Buscamos dentro de eth0 probablemente, o eth1 si se tienen dos placas de red puede llegar a ser (recordar esto). eth0 y eth1, son las interfaces, las placas de red. Lo que nos interesa es: inet addr, Mask. Y para terminar de obtener datos, utilizaremos route, que nos dirá el router (gateway, linea donde el destination es default, en mi caso 10.0.0.2), y ya tendremos todo lo necesario para configurar la IP. Para una configuración estática se necesitan estos datos, para un cambio de IP, se necesitan menos, si es que se desea que sea temporal.

Procederemos a establecer la configuración. Generalmente, la IP será, por ejemplo:

Si tenemos un Mask (netmask, mascara de subred) de 255.255.255.0, y una inet addr como 192.168.0.XXX (es indiferente el valor del ultimo campo), entonces podemos solo cambiar el ultimo octeto (se le dice así a cada valor entre los puntos). Y el valor debe ser entre 1 y 254 inclusive. Visto de otra forma, los octetos que en la mascara sean de 255, deben permanecer iguales.

En mi caso, mi IP era 10.0.0.9, y mi mask 255.255.255.0, entonces utilizo 10.0.0.201 [Es un numero alto 201, ya que mi router tiene DHCP, y es posible que si prendo una PC cuando el servidor este apagado, la .9 sea utilizada por otra PC, otra buena practica sería limitar el rango DHCP del router, pero eso es otro tema]. Recordar que esta IP no puede ser igual a ninguna en la red, ni como la del router.

Nota: En los archivos, desde un # hacia el final de esa línea, es un comentario, significa que la maquina no lo interpreta, es únicamente para ayudar al usuario.


Editando resolv.conf - nameserver - servidores dns:

nano /etc/resolv.conf

En este archivo, agregaremos los nameservers, o servidores DNS.

La sintaxis es simple, en cada linea agregamos nameserver ip_servidor.

En esta guía utilizare los Servidores DNS de Google. El motivo, son fáciles de recordar y tienen buen ping. Realmente se pueden utilizar cualquiera, los del ISP, o otra alternativa gratuita.

El fichero (/etc/resolv.conf) nos quedara así:

nameserver 8.8.8.8
nameserver 8.8.4.4

Luego de editarlo, nada más con guardar, ya se aplican los cambios. Presionamos F2 para Guardar y Salir (ó Ctrl+O), S de Sí para confirmar, y luego Enter, para guardar el fichero en la misma ubicación. El programa saldrá automáticamente con F2, sino Ctrl+X para salir.

Abajo explicare como realizar cambios permanentes o temporales (hasta reinicio). Realmente no hay necesidad de cambiar los nameserver's y este paso es necesario para ambos metodos explicados abajo.

Editando interfaces - configuración permanente:

nano /etc/network/interfaces

En primera instancia, agregaremos un # al inicio de la línea iface eth0 inet dhcp, de esta forma deshabilitamos la configuración automática por DHCP.

Ya tenemos todos los datos para configurar la IP, procedemos a agregarlos al archivo:

iface eth0 inet static
address 10.0.0.201 # La IP que elaboramos y la cual sera la del servidor de ahora en más
netmask 255.255.255.0 # La Mask que habiamos rescatado anteriormente de ifconfig
gateway 10.0.0.2 # Lo obtuvimos del comando route

Hemos terminado de configurar la red de forma permanente. Procedemos a reinicializarla para refrescar los cambios: /etc/init.d/networking restart

Para probar, bastara con ifconfig, route, y un ping google.com (para finalizar este ultimo, Ctrl+C). Si todo es satisfactorio, veremos ifconfig con la IP que configuramos, route con el router, y el ping sera correcto. Es importante que el ping sea a un dominio, para verificar si el DNS funciona, porque si hacemos ping a una IP, como sea 8.8.8.8, puede estar mal configurado el DNS y sin embargo el ping lo hace, porque no tiene que resolver ningún nombre de dominio.

Configuración temporal y/o parcial (hasta reinicio) - ifconfig + route:

La configuración puede ser parcial, en el caso de que el sistema ya este correctamente configurado por DHCP. En ese caso, un cambio de IP nada más alcanzara.

Este proceso consta de dos partes, configurar la ip, y agregar el gateway. Sintaxis de ifconfig: ifconfig interface [ip] [netmask xxx.xxx.xxx.xxx]. Entre [] significa opcional. Entonces, podemos configurar en una línea o dos. Siendo la ip 10.0.0.201, el netmask 255.255.255.0 y la interfaz eth0:

ifconfig eth0 10.0.0.201 y ifconfig eth0 netmask 255.255.255.0

ó en una línea: ifconfig eth0 10.0.0.201 netmask 255.255.255.0

Cabe destacar, que se puede hacer solo la configuración de la IP o del netmask, no es obligatorio que sean ambos. Si ya esta configurado por DHCP, entonces únicamente con el cambio de IP alcanza.

Para tener en cuenta, ifconfig eth0 down, por ejemplo, deshabilita la interfaz eth0. Para habilitarla nuevamente, ifconfig eth0 up.

La sintaxis de route que vamos a ver es básica, para agregar y eliminar el default gw (default gateway, puerta de enlace predeterminada). Estoy mostrando con 10.0.0.2 como gateway.

Para agregar default gw: route add default gw ip

Para eliminar default gw: route del default gw ip

Aplicado en mi caso: route add default gw 10.0.0.2


Posibles errores:

Network is unreachable: El problema es el gateway, un ping al area local debería funcionar y uno a un host externo, como 8.8.8.8, no.

Unknown host (example.com): El problema son los DNS, no se puede resolver el dominio. Tambien puede ser porque el dominio no existe, ó el gateway esta mal configurado y no se puede resolver el dominio.

Recordar que acá muestro nada más que el concepto minimo para configurar una red, ifconfig de por si tiene más opciones, y lo mismo con interfaces.

27Jan/105

Linux VNC Server: fluxbox + X11 Server + X / GUI Apps (uTorrent, JDownloader)

El propósito de esta guía es como levantar un VNC Server, con Fluxbox, donde correrán aplicaciones que necesiten GUI. El destino principal es para una maquina que corra como servidor, además del SSH, esta es una linda interfaz, y muy útil, en especial porque muchos programas útiles, por desgracia, no pueden prescindir de la GUI, como el JDownloader.

Estaré mostrando todo en un sistema Debian, con sudo. Por defecto, Debian no trae sudo, pero una instalación de Ubuntu si, en este sistema debería salir andando perfectamente. Todos los comandos que estén precedidos por sudo, deben ser ejecutados por un administrador en el caso de no tener sudo.

¿Que es un Servidor VNC en sí?:

Un servidor VNC, es un servidor X (servidor grafico, ventanas, en Linux), el cual mantiene una sesión, y es visible mediante un visor VNC. Así es entonces, que en el servidor VNC corremos aplicaciones en un entorno grafico, y podemos acceder a estas y mantenerlas abiertas, desde un visor.

Instalando lo necesario:

sudo apt-get install vnc4server xterm fluxbox wine

wine es opcional, ya que es para el uTorrent.

Primer inicio del VNC Server:

Primer Inicio Servidor VNC

En el primer inicio, el vncserver nos pedirá que le ingresemos una nueva contraseña, esta es para conectarnos luego con el visor,  desde otra computadora por red. Entonces ejecutamos vncserver, y nos pedirá contraseña y confirmación, y luego nos mostrara algo como "New `meltitdescargas:1 (c4b3z0n)` desktop is meltitdescargas:1". El :1, indica la ubicación del display, este puede ser, :1, :2, :3, etc. Lo anterior al :, es el nombre de nuestro sistema (uname -n). De abrir sucesivos vncserver, estos serán, :2, :3, etc.

Nota: Se puede iniciar el servidor eligiendo antes cual será el display, ej, vncserver :5, iniciara el servidor VNC en el display 5, de  estar disponible. Útil para siempre saber donde esta el servidor.

Para matar el servidor, se puede matar el proceso, o invocando vncserver -kill :numero, en mi caso, vncserver -kill :1.

Para reasignar la contraseña del servidor vnc, se utiliza vncpasswd.

Probando el servidor VNC:

Estaré utilizando Windows, y demostrare como conectarse con el VNC Viewer de Real VNC, versión ejecutable sin instalador,  freeware.

En linux, se puede utilizar vncviewer, iniciándolo sin parámetros, hace que el mismo pregunte servidor, contraseña, de forma interactiva.

En ambos casos, primero debemos averiguar la IP del servidor. Esto lo podemos hacer mediante, sudo ifconfig (NOTA, de estar ejecutando en un servidor, seguramente ya le has configurado una IP estática. De no ser así, y si se trata de un servidor, te recomiendo que le asignes una IP estática, lo cual te facilitará la tarea de entrar al servidor siempre), y probablemente sea la de eth0 - inet addr:xxxx.xxx.xxx.xxx.

IP ifconfig

El formato para conectarse al servidor VNC es: ip:numero_display. Entonces en mi caso, 10.0.0.201:1. Luego la contraseña es la que creamos al principio, en el primer inicio del servidor.

Iniciando aplicaciones en el servidor VNC, desde cualquier consola (export DISPLAY):

Para utilizar el servidor VNC como display, nada más hace falta asignar la variable DISPLAY, esta apunta a un servidor X, donde correrán las aplicaciones. En la practica, esto puede ser utilizado para apuntar a cualquier servidor X, no únicamente al VNC.

Tip: Para ver hacia donde apunta actualmente el DISPLAY, basta con hacer un echo $DISPLAY, desde bash.

Para asignar DISPLAY, es tan simple como utilizar export. export, lo que hace es asignar variables de entorno, como DISPLAY.
Para ver los valores, se utiliza echo $VARIABLE, o utilizarlas, se antepone el $. Su sintaxis es: export VARIABLE=VALOR.

La sintaxis de DISPLAY, es, servidor:numero. Combinado con export, sería, export DISPLAY=servidor:numero.

Entonces, para efectivamente utilizar el servidor VNC, suponiendo que este se encuentra en :1, si estamos trabajando en la misma pc (en una terminal en PuTTY por ejemplo), bastará con hacer export DISPLAY=localhost:1. Utilizo localhost, porque estoy en la misma PC. Podría haber utilizado su IP de internet ó LAN también, así como la de otro equipo en la red, ej, export DISPLAY=10.0.0.201:1.

Configurando el servidor VNC - ejecución automática de aplicaciones al inicio del servidor:

El archivo ~/.vnc/xstartup, es un script de bash, que se ejecuta cuando inicia el servidor VNC. Aquí podemos automatizar tareas como ser, abrir el fluxbox, abrir un xterm (por defecto viene así), ó talvez iniciar alguna aplicación. También por defecto se abre el x-window-manager, pero nosotros queremos utilizar fluxbox, entonces:

nano ~/.vnc/xstartup, para editar el archivo.

En la línea x-window-manager &, agregamos un #, al principio de esta, para comentar esa línea, y así evitar la apertura automática del x-window-manager. Debajo de esa línea, agregamos fluxbox &. Si deseamos evitar el inicio de la consola automática, debemos comentar la línea que comienza con x-terminal-emulator, agregando un # al inicio de esta.

Auto-iniciar servidor VNC al prender la PC:

nano /etc/rc.local
El archivo rc.local, en pocas palabras, se ejecuta luego de terminar el proceso de inicio, en ultima instancia. Lo que vamos a hacer, es agregar una línea donde correremos el vncserver así este se inicia automáticamente. Utilizaremos su, que nos permite, mediante el modificador -c, correr un comando como otro usuario, ya que no vamos a correr el servidor como root.

Sintaxis: su -c "comando" nombre_usuario.

Mi usuario es c4b3z0n, y el comando es vncserver :1. La línea nos quedara en: su -c "vncserver :1" c4b3z0n, esta hará que se inicie un servidor vnc, en el display :1, y que se ejecute como el usuario c4b3z0n.

Entonces, en la línea arriba de exit 0, escribimos, su -c "vncserver :1" c4b3z0n &, notar el &, para que se inicie y continúe.

El servidor VNC esta listo en este punto.


Configurando fluxbox:

Esto es totalmente opcional, pero voy a agregarlo ya que me parece útil.
nano ~/.fluxbox/menu
En fluxbox, al presionar el botón derecho, aparece un menú. Este es personalizable, y su ubicación es ~/.fluxbox/menu.

Por defecto en Debian, el archivo es así:

[begin] (fluxbox)
[include] /etc/X11/fluxbox-menu
[end]

La primera línea, [begin], define el comienzo del menú, con título "fluxbox". La segunda línea, [include], define que se incluya el archivo, en este caso, /etc/X11/fluxbox-menu. Esto significa, que utiliza lo que dice el archivo ese al que apunta, que en este caso, es el menú de debian, con todas las aplicaciones. La ultima línea, [end], indica que finaliza el
menú.

Personalmente, voy a sacar la línea [include], ya que tiene muchos programas que no voy a utilizar. Podemos comentarla, agregandole un # al inicio, ó borrarla.

Agregando entradas:
Yo voy a mantener mi menú de fluxbox a lo más chico posible.
La sintaxis para agregar un comando es: [exec] (texto_mostrar) { comando }. Ejemplo de un menú de
fluxbox:

[begin] (fluxbox)
[exec] (Bash) { x-terminal-emulator -T "Bash" -e /bin/bash --login}
[exec] (Leafpad) { leafpad }
[exec] (uTorrent) { wine ~/utorrent.exe /NOINSTALL }
[exec] (JDownloader) { sh ~/startjd.sh }
[end]

Bash, ejecuta la terminal.

Leafpad es un editor de texto liviano para X, esta interesante. (sudo apt-get install leafpad).

En el caso de uTorrent, wine ~/utorrent.exe /NOINSTALL, es un caso de una línea bastante completa y fácil de explicar. En primer lugar, llamamos a wine, quien recibe de parámetro la ubicación del ejecutable y asimismo, le pasamos el parámetro /NOINSTALL, al utorrent.exe. Es un simple proceso, como ejecutar en una terminal.

JDownloader, sh ~/startjd.sh, Utilizamos sh para ejecutar un script, startjd.sh.

En esta configuración se explica básicamente como usar el menú de fluxbox. Es bastante simple, y se pueden usar scripts, como en el caso del JDownloader, para simplificar una línea compleja.

Hasta aquí llega la idea básica de la guía. En otras guías explico como instalar el JDownloader y el uTorrent, como soluciones a un
servidor de descargas básico. Esta guía es una parte importante de la de instalación desde cero de un servidor Linux.

24Jan/1013

HOW TO: JDownloader Linux Terminal + Web Interface + Console + VNC Server + x11HOW TO: JDownloader Linux Terminal + Webinterface + Console + VNC Server + x11

Me encontré con la necesidad de tener un JDownloader en un Server Linux donde la interfaz es todo por línea de comando (SSH).

Me entere que el JDownloader trae una interfaz web, así que pensé que estaba todo solucionado.

Pero la interfaz web tiene tres defectos:

  • Necesita un servidor X para funcionar correctamente. (No X11 DISPLAY variable was set, but this program performed an operation which requires it.)
  • No se pueden resolver captchas desde la misma.
  • Las operaciones posibles son muy limitadas.

Por suerte, me encontré con que la solución al primer problema, el más vital, soluciona los tres.

La respuesta es un servidor vnc (vncserver). Este servidor nos permite crear un servidor x, donde correrá la GUI (Graphical User Interface), y así mismo, nos permitiría la posibilidad de ver esta GUI (conectándose desde un visor), y así resolver captchas y tener acceso total al JDownloader. A su vez, seguimos prescindiendo de tener un servidor X corriendo en el servidor, el cual preferentemente esta sin monitor, ni teclado.

El proceso de instalación que voy a mostrar, es con Debian Linux (en Ubuntu debería ser lo mismo), debería similar en otras distros (Nota: De NO poseer sudo, esos comandos deben ser ejecutados como root, sin anteponer sudo - Por defecto Debian no trae sudo):

Instalar vncserver:

sudo apt-get install vnc4server, para descargar el servidor vnc.

vncserver, para iniciar el servidor vnc. En el primer inicio solicitara una contraseña y su verificación. Esta es para conectarse con el visor. Luego de esto, a mi me mostró una línea como “New ‘meltitdescargas:1 (c4b3z0n)’ desktop is meltitdescargas:1”, indicando que el servidor esta corriendo en :1, siendo ‘meltitdescargas’ el nombre de mi sistema.

Primer Inicio Servidor VNC

Si se pone vncserver nuevamente, se iniciara otra instancia, en el siguiente lugar, :2, :3, etc.

Para matar el servidor, se puede matar el proceso, o invocando vncserver -kill :numero, en mi caso sería vncserver -kill :1.

Una vez que tenemos el servidor vnc corriendo, lo único que falta es usarlo como DISPLAY. Esta variable lo que hace, es indicar cual es el servidor X.

Para cambiar su valor, debemos utilizar export. La sintaxis es simple, export DISPLAY=servidor:numero. Cuando iniciamos el servidor, obtenemos el número, y el nombre. Al ser el mismo equipo, podemos utilizar localhost:1, ó también se puede utilizar la ip, ej: 10.0.0.201:1. En mi caso voy a utilizar localhost, export DISPLAY=localhost:1.

Nota: Para resetear la contraseña del vncserver, tan simple como rm ~/.vnc/passwd.

Con esto ya terminamos la preparación necesaria para el JDownloader por parte del servidor x.

Instalar Java:

El siguiente paso es instalar el JRE, Java Runtime Environment, necesario para correr JDownloader. Yo voy a optar por utilizar openjdk, ya que viene en los repositorios por defecto en Debian. El Java de Sun, esta en los repositorios non-free, y hay que agregarlos manualmente. apt-get install openjdk-6-jre.

Con esto están finalizados los preparativos.

Descargando JDownloader:

En la web del JDownloader hay un script, jd.sh, para automatizar el proceso de instalación y actualización del JDownloader. Personalmente, no me funciono. Así que voy a demostrar la instalación desde el .zip.

Una vez descargado, se necesita unzip para descomprimir, apt-get install unzip. Para descomprimir, simple como unzip fichero. En este caso, unzip JDownloader.zip. Se creara una carpeta, JDownloader.

Personalmente, opte por cambiar el directorio de JDownloader, a .jd. (Nota: Los archivos que comienzan en . son archivos ocultos). Es indiferente, lo que logro es esconder la carpeta de la instalación, ya que realmente no tengo que tener acceso a ella. Para hacer esto, mv JDownloader .jd . (mv es move, la sintaxis es mv fichero destino, en la practica tiene el mismo efecto que renombrar el mover).

Iniciando VNC Viewer:

Para el primer inicio, voy a demostrar como iniciar y ver el GUI.

Desde Windows, utilizare el VNC Viewer de Real VNC, versión ejecutable sin instalador.

Al abrirlo, pide por el servidor. Tenemos que ingresar la IP del servidor, con el display IP:X, donde X, es el número que devolvió el servidor vnc al iniciarse.

Para averiguar la IP del servidor, utilizamos sudo ifconfig. Probablemente, en eth0 - inet addr:xxx.xxx.xxx.xxx este la información.

IP ifconfig

Nuevamente en la ventana del VNC Viewer, indicamos IP:X, en mi caso, 10.0.0.201:1. Luego de "OK", pedirá la contraseña que se especifico al iniciar por primera vez el servidor.

Iniciando JDownloader:

(para unicamente iniciar el JDownloader, en caso de no estar desde consola, o en el visor del servidor VNC, la línea es java -Xmx512m -jar JDownloader.jar &, estando en el directorio donde se encuentra el JDownloader.jar, y el & para ejecutar en segundo plano)

Cree un pequeño script para iniciar el JDownloader, desde la consola o mismo desde el servidor vnc. Tener en cuenta que crea un vncserver . Lo único que hay que configurar es el directorio de instalación del JDownloader (opcional, modificar el numero DISPLAY destino). Funciona así:

1) No existe nombre_equipo:1.pid en ~.vnc/ ?

-> Entonces iniciar vncserver.

(Version vieja)

1) Iniciar un vncserver :X.

2) Asignar variable DISPLAY.

3) Iniciar jdownloader.jar (java -Xmx512m -jar $JDDIR/JDownloader.jar ) [como especificado en la web de JDownloader]

Para instalar el script, hay que descargarlo, y se puede poner en cualquier directorio (tanto como ~/). Nada más hace falta configurar el JDDIR (directorio de instalación de JDownloader). Luego, hay que darle permisos de ejecución al script, chmod +x startjd.sh. Y para iniciarlo es simplemente ./startjd.sh (Hay que anteponer el . para ejecutar en bash).

Script (descarga):

#!/bin/bash

#Version 0.2 - MeltIT.com.ar
#Changelog
# 0.2: Cambiado el sistema de inicio del servidor VNC. Es posible cambiar una variable para elegir donde manejar el servidor. A su vez, esta forma garantiza que el servidor vnc se inicie en tal posición.
# 0.1: Primera version.

#Directorio de instalion de JDownloader
JDDIR=~/.jd
#DISPLAY numero que se creara y ejecutara en.
VNCSERVER_NUMBER=1

#Chequeamos si hay un proceso para vnc en display :1
#if [ ! -e ~/.vnc/`uname -n`:1.pid ]; then vncserver; fi #version vieja

#version nueva:
vncserver :$VNCSERVER_NUMBER

#Asignamos DISPLAY en :X
export DISPLAY=localhost:$VNCSERVER_NUMBER

#Iniciamos JDownloader en segundo plano
java -Xmx512m -jar $JDDIR/JDownloader.jar &

Resumiendo el proceso:

1) Abrir el VNC Viewer y conectarlo.

2) ./startjd.sh

3) Comenzara el asistente de primer inicio.

Primer inicio y configuración de JDownloader:

En primera instancia, se selecciona el Idioma y el directorio de Descarga, es indiferente lo que se elija. (/home/c4b3z0n/descargasjd en mi caso).

Luego pregunta de la instalación de FlashGot, yo cancele ya que no utilizo el servidor para navegar por internet.

Luego de iniciado el programa, comenzara a buscar actualizaciones.

Vamos a proceder a la configuración:

Solapa "Ajustes" -> "Complementos". Buscamos en la lista "JD Interfaz Web" (JD Web Interface).

Sobre la izquierda, bajo complementos, ahora aparecerá un nuevo item, "JD Interfaz Web".  Las opciones configurables son:

Auto-actualizar: Esta opción sirve para cuando estemos en el navegador en la interfaz web, automáticamente se actualice cada X segundos la página.

Intervalo de actualización: En segundos, acá se ajusta el valor del auto-actualizar de la opción anterior. Por defecto es 5, esta bien.

Puerto: Puerto para acceder a la interfaz web, por defecto es 8765. No debería haber problema con este.

Autentificación de usuario necesaria: Acá se selecciona si se desea que se pregunte usuario y contraseña para acceder a la interfaz web. Por defecto activado. Si se va a utilizar en una red local, no debería haber problema con desactivarlo.

Usar HTTPS: Para usar HTTPS, por defecto desactivado. Desconozco detalles de utilización, así que lo dejo como viene.

Nombre de acceso: Usuario para el acceso en caso de pedir identificación para el usuario.

Contraseña de acceso: Contraseña para el acceso a la interfaz web.

Nota: Note que hay que reiniciar el programa para que hagan efecto los cambios de usuario y contraseña, Archivo -> Reiniciar. Es posible que para otros cambios también haga falta reiniciar el JDownloader.

JDownloader funcionando!

Ya no queda más que hacer. Para acceder a la interfaz web, basta con utilizar http://ip:puerto/. En mi caso es http://10.0.0.201:8765/. Si esta puesto para solicitar contraseña, aparecerá un cartel de Usuario y Contraseña.

En caso de requerir de ajustar alguna configuración, no hay más que entrar por el VNC Viewer. Mismo en el caso de que aparezca que necesita completar un captcha.

En si el script resume el inicio del vncserver y el jdownloader, así que basta con iniciar este y luego conectar el visor.While setting up a Linux server (SSH controlled), I've found out that I needed JDownloader to run in it.

I found on internet, that JDownloader has a web interface, so I've thought that it would solve my problems.

But the web interface has three problems:

  • Although it run's without and x server, it needs one for correct working. (No X11 DISPLAY variable was set, but this program performed an operation which requires it.)
  • Captchas cannot be solved from the web interface.
  • It has limited options.

The solution to the first problem, it was the solution to all of them.

The answer is a vnc server (vncserver). This server allow's us to create an x server, where the GUI (Graphical User Interface) would run, and also allowing us to see this GUI (connecting from a viewer), and then be able to solve captchas and have full access to JDownloader.

The process that i'm going to show, is with Debian Linux (Ubuntu should be the same), it should be similar in other distributions (Note: If you DON'T have sudo, that commands must be run as root, without sudo - by default, Debian doesn't have sudo):

Installing vncserver:

sudo apt-get install vnc4server, to install the vncserver.

vncserver, to start the vncserver. In the first start, it would request for a password. This would be used later for connecting through the viewer. After this, it showed to me something like: “New ‘meltitdescargas:1 (c4b3z0n)’ desktop is meltitdescargas:1”, showing up that the server is running at :1, being ‘meltitdescargas’ the network node hostname of my system (uname -n).

Primer Inicio Servidor VNC

If you run vncserver again, it would run a new instance, in the next available location, :2, :3, etc.

To kill the server, you can kill the process, or try vncserver -kill :number, in my case, it would be vncserver -kill :1.

Once we have the vncserver running, the next thing is to set it up as the DISPLAY. This is a system variable, it points to a X server.

To change it's value, we must use export. the syntax is easy, export VARIABLE=value, in this case, we have to modify DISPLAY, so it would be, export DISPLAY=server:number. When we start the server (by running vncserver), we obtain the number, and the name.
As it is the same machine we're working on, we could use localhost:1, or you can use the IP, i.e.: 10.0.0.201:1. In my case, I will use localhost, export DISPLAY=localhost:1.

Note: To reset the vncserver password, you just have to do rm ~/.vnc/passwd.

With this, the x server preparation for the JDownloader is ready.

Installing Java:

The next step, is to install the JRE, Java Runtime Environment, which JDownloader needs to run. I'm going to use openjdk, as it comes in Debian's default repositories. Sun's Java, is on the non-free repositories, and they must be added manually. apt-get install openjdk-6-jre.

This is the last thing you have to do to prepare the system.

Downloading JDownloader:

On the web of JDownloader there's a script, jd.sh, that automatizes the installation and actualization process of JDownloader. For me, it didn't work. So I'm showing the installation from the .zip.

Once downloaded, you need unzip to decompress the file, apt-get install unzip. To decompress, it's easy as unzip file. In this case, unzip JDownloader.zip. A folder would be created, JDownloader.

Personally, I've chosen to change JDownloader directory, to .jd. (Note: Files/folders starting with a . are hidden files). It changes nothing, what I'm accomplishing with this is to hide the installation folder, because i'm not going to access it. To do this, mv JDownloader .jd . (mv is move, the syntax is mv file target, in practice, moving a single file/folder, renames it).

Initiating VNC Viewer:

For the first start, i'm showing how to initiate and see the GUI.

From Windows, I'll be using VNC Viewer from Real VNC, runnable version, without installation.

The first thing it requests, it's the IP:DISPLAY of the server. The server display must be entered like IP:X, where X, is the number vncserver showed up when it started.

To find out the server IP, we use sudo ifconfig. Probably in eth0 - inet addr:xxx.xxx.xxx.xxx it would be your IP..

IP ifconfig

Back in the VNC Viewer, you have to enter IP:X, in my case, 10.0.0.201:1. After "OK", it would request the password we entered when we first set up the vncserver.

Initiating JDownloader:

I've created a simple script for initiating JDownloader. Only thing it has to configure, is the JDownloader installation path. Here's how it works:

1) does not exists machine_name :1.pid in ~.vnc/ ?

-> Then, start vncserver.

2) export DISPLAY variable.

3) Start jdownloader.jar (java -Xmx512m -jar $JDDIR/JDownloader.jar ) [As it appears in JDownloader web]

To install the script, you have to download it, or create the file, and you can put it where you want. It only needs to configure the JDDIR (Installation directory of JDownloader) variable. Then, you must give execution permission to the file, chmod +x startjd.sh. And to run it, just ./startjd.sh (you have to put a . before the name of the file, to execute it in bash).

Script (download):

#!/bin/bash

#Version 0.1 - MeltIT.com.ar

#Installation dir of JDownloader
JDDIR=~/.jd

#We check if there's a process for VNC in :1
if [ ! -e ~/.vnc/`uname -n`:1.pid ]; then vncserver; fi

# we give DISPLAY a value
export DISPLAY=localhost:1

#Initiate JDownloader in background
java -Xmx512m -jar $JDDIR/JDownloader.jar &

Steps for first start:

1) Open VNC viewer and connect. (openning can be done at any moment on other starts, because the first start wizard won't show up)

2) ./startjd.sh

3) First start wizard will start.

First start and configuration of JDownloader:

On the first step, we chose language and download directory. (/home/c4b3z0n/descargasjd in my case).

Then it asks about installing FlashGot, I've canceled it, cause I'm not using the machine to navigate through the web.

After the software is running, it will look for updates.

Configuration:

Tab "Settings" -> "Extensions". We search in the list "JD Webinterface".

On the left, in extensions, now it should be, "JD Webinterface".  the available options are:

Autorefresh: This option is to enable autorefreshing the page while you're in the web interface page, each X seconds.

Refresh Interval: In seconds, here you adjust the previous option value. By default 5, it's ok.

Port: Port for accessing the web interface, by default 8765. It shouldn't be any problem with this.

Need user authentication: Here you enable if you would like to ask for username and password for the web interface. By default, it's on. If it's going to be for private LAN usage, it shouldn't be any problem for disabling it.

Use secure socket (HTTPS): For using HTTPS, by default it's not enabled. I don't know if it has to have any additional configuration, so I'm not using it.

Login Name: Username for authentication.

Login Password: Password for authentication

Note: I've found out that for username and password settings to apply, you have to restart the program, File -> Restart. It's possible that for other changes it needs to restart also.

JDownloader working!

No more to do. To view the web interface, http://ip:puerto/. In my case, it's http://10.0.0.201:8765/. If ask for password is on, a dialog will show up.

To adjust any configuration, you only have to enter by the VNC Viewer. Also if you need to enter a captcha.

The script initiates the vnc server and JDownloader, if you need to change something, just login with the viewer, else you can controll downloads with the web interface.

Filed under: Guias, Linux, Software 13 Comments
22Jan/102

Dell Latitude 2100: AHCI en Windows XP 32bit/64bit (ICH7M/ICH8/ICH9/ICH10 y otros chipsets)

Mi Dell Latitude 2100, vino Windows XP Home Edition SP3 con el AHCI funcionando.

Luego de una reinstalación del sistema, queria instalarle los drivers AHCI nuevamente. El tema es que, oficialmente, se necesita Windows Vista/7 para el AHCI. Esto es una limitación del instalador unicamente. En la pagina de drivers de Dell de la Latitude 2100, entre otros drivers, esta el de Intel Matrix Storage desde Dell, este es para 32bits, el .exe es un auto-extraible y se extrae a un directorio. Para XP64, antiguamente descargando desde Intel, el instalador desde linea de comandos con el modificador "-a", permitia extraer los archivos. Como testee actualmente, esto ya no es posible. Tengo guardado de hace mucho tiempo el viejo instalador donde si se podia, y extraje los drivers de 64bit y los subi.

1) Luego de haber instalado el sistema sin AHCI, descargar los drivers correspondientes de arriba y extraerlos en un directorio a gusto.
2) COPIAR el archivo iaStor.sys desde el directorio de donde se extrajo a "C:\Windows\System32\drivers\"
3) Esto no se si es necesario, pero yo le di boton derecho -> instalar, a los dos .inf. Creo que no es necesario.
4) Abrir el bloc de notas y crear un documento nuevo con el siguiente contenido (para la Latitude 2100, más abajo explico para otros chipsets):

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_27c5&cc_0106]
"Service"="iaStor"
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor]
"Type"=dword:00000001
"Start"=dword:00000000
"Group"="SCSI miniport"
"ErrorControl"=dword:00000001
"ImagePath"="system32\\drivers\\iaStor.sys"
"tag"=dword:00000019
"DisplayName"="Intel AHCI Controller"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters]
"queuePriorityEnable"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Enum]
"0"="PCI\\VEN_8086&DEV_27c5&SUBSYS_B0051458&REV_02\\3&13c0b0c5&0&FA"
"Count"=dword:00000001
"NextInstance"=dword:00000001

5) Guardarlo con el nombre que desees, pero de extensión utilizar .reg, ej, ahci.reg (TIP: Hay que poner guardar como "Todos los archivos", sino se guardara como .reg.txt).
6) Doble click al archivo guardado y pedira confirmación para insertar claves en el registro, poner que si.
7) Reiniciar y configurar en SETUP del BIOS el modo AHCI (Consultar manual del mother o investigar). Salvar cambios e iniciar Windows.
8 ) Si el sistema inicia correctamente (sin BSOD, pantalla azul), va a pedir instalar nuevo driver, poner "Seleccionar ubicación manualmente" e indicar el directorio donde se extrayeron previamente los archivos.

Esto funciona efectivamente para la Latitude 2100 como probe. Para otros chipsets tambien funciona, solamente hay que reemplazar "DEV_27c5" del archivo .reg (aparece 2 veces), por lo siguiente:

ICH6R - DEV_2652
ICH6M - DEV_2653
ICH7R - DEV_27C1
ICH7DH - DEV_27C1
ICH7M - DEV_27C5
ICH10D/DO - DEV_3A02
ICH10R - DEV_3A22
ICH9M-E/M - DEV_2929
ICH9R/DO/DH - DEV_2922
ICH8M-E/M - DEV_2829
ICH8R/DH/DO - DEV_2821
ESB2 - DEV_2681

Personalmente, en un Gigabyte EP35-DS3L (ICH9), funciono con "DEV_2923". Aunque hay que agregarle una pequeña modificación al .inf, que es reemplazar la cadena "2821" por "2923" en todas sus apariciones en el IAACHI.inf. Esto unicamente para el gigabyte (u otros ICH9?) porque el .inf no trae información "del 2923", y asumo que no se va a poder hacer el paso de instalar los drivers una vez que funciona.

En caso de que no funcione alguno de los codigos, investigar en internet o probar otro de chipsets similares. Creo que el ICHxR, es para RAID unicamente.

Si obtiene BSOD (pantalla azul), es porque el .reg no es el correcto para el driver.

Más info útil en un thread. Tanto el primer post, como el #15 tienen información util para complementar.