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.
June 14th, 2013 - 01:03
¡Gracias infinitas!
No sabes cuan estoy agradecido de que hayas compartido esto, me pone muy feliz el hecho de saber que hay mucha gente dispuesta a compartir sus conocimientos para que los demás aprendamos. SALUDOS!
January 29th, 2014 - 23:17
Quería agradecerte por compartir todo este conocimiento, instale desde cero todo lo que explicas. Muy claro, no se puede cuestionar nada. Lo único distinto fue instalar Transmission ya que estoy familiarizado con el y por su simpleza. Los torrent que descargo los pego a un carpeta para que se inicien desde ahí. Estaba a punto de tirar una maquina, gracias a esto le volví a dar vida.
Soy un principiante que recién sale de ubuntu para golpearse un poco con debian, con varios moretones me anime a esto, igual moretón sobre moretón no se nota!