Archivo

Entradas Etiquetadas ‘Linux’

Apache Reverse Proxy

Domingo, 18 de noviembre de 2012 Nicolas Ventre Sin comentarios

Esta semana me tope con la tarea de levantar un Reverse Proxy, buscando info, vi que no había muchas explicaciones claras al respecto, así que a modo de registro, voy a aprovechar a levantar un pequeño post dedicado a esto.

Como bien sabemos todos Apache es un Servidor WEB de código abierto, el cual nos permite varias tareas, las cuales a largo plazo iré detallando.

¿Qué es un Reverse Proxy?

Sin dar más vueltas es un Apache el cual se sitúa entre el cliente y el Server Original. De esta forma cuando el cliente manda una consulta, esta llega al Server que actúa como Proxy y este envía de forma interna la consulta al Server Original, devolviéndole la información solicitada al cliente. A esta funcionalidad también se la conoce como “gateway”. Esta funcionalidad permite redireccionar diferentes servidores a través de una sola URL.
Este Reverse Proxy, es activado utilizando la directiva ProxyPass.

Dejemos de dar vueltas y vayamos directo al grano, que es la configuración propiamente dicha.

Vale aclarar que el ejemplo que voy a trabajar es sobre Debian, por lo tanto los paquetes a instalar pueden llegar a variar con las diferentes distros.

Instalación:

#apt-get install apache2 libapache2-mod-proxy-html
#a2enmod proxy_http (esto activa los modulos proxy y proxy_http en un solo comando)
#a2enmod ssl (esto lo vamos a necesitar si hacemos la configuración de Apache en HTTPS)

Configuración:

Supongamos que tenemos un dominio llamado www.estoesunaprueba.com (si como pueden ver sigo tan creativo como siempre). Cuando colocamos este dominio en nuestro navegador, si nuestros tan amados servidores de DNS nos ayudan, deberemos llegar a nuestra IP WAN. Con una regla de NAT redireccionaremos entonces el tráfico que llegue al puerto 80 y 443 hacia nuestro Apache que trabajará como Proxy bajo la IP 192.168.1.200.

En nuestro Apache, tenemos que configurar entonces 2 VirtualHost, uno para HTTPS y otro para HTTP. Para hacer esto vamos a efectuar estos pasos (no se preocupen si no saben mucho de VirtualHost, ya lo veremos en otra oportunidad):

  • Crear un archivo en blanco con un nombre que identifique al dominio (en mi caso va a ser prueba y ssl-prueba)
  • Dentro de prueba, que va a ser quien represente nuestro Proxy HTTP, colocaremos la siguiente información:

<VirtualHost *:80>

ServerName estoesunaprueba.com

ProxyPreserveHost on (Esta linea en ON hace que cuando la consulta llega al Proxy, este mantenga el nombre de la consulta y no el definido en ProxyPass. En mi caso mantiene el nombre estoesunaprueba.com en lugar de mostrar la IP 192.168.1.110 junto a su puerto)
ProxyPass / http://192.168.1.110:8885/news (la primera / indica que como el home de acceso va a tomar lo que definamos después que en mi caso significa que al acceder con el navegador, entre directamente al directorio news que tengo configurado en el Servidor WEB original)
ProxyPassReverse / http://192.168.1.110:8885/news (esta opción permite ajustar la URL en los headers de la consulta HTTP. Es importante ponerla junto a ProxyPass)
</VirtualHost>

  • Dentro de ssl-prueba, que va a ser quien conecte via HTTPS, colocaremos la siguiente información:

<VirtualHost *:443>

ProxyPreserveHost On
ProxyPass / http://192.168.1.110:8885/news
ProxyPassReverse http://192.168.1.110:8885/news

ServerName estoesunaprueba.com

SSLProxyEngine On (Activa al proxy para que funcione con ssl, opr eso cargamos el modulo anteriormente)
SSLEngine on (Modulo de ssl propiamente dicho activo)
SSLCertificateFile    /etc/apache2/ssl/cert.crt (Certificado para ssl)
SSLCertificateKeyFile /etc/apache2/ssl/cert.key (Key para ssl)

</VirtualHost>

Creación de Certificados:

#genrsa -out cert.key 2048
#openssl req -new -key cert.key -out cert.csr
#openssl x509 -req -days 3650 -in cert.csr -signkey cert.key -out cert.crt

Estos archivos, hay que copiarlos en el directorio que estamos especificando en las lineas SSLCertificateFile y SSLCertificateKeyFile.

Finalizando:

Para terminar, reiniciamos el Apache:

#service apache2 restart

Al poner en nuestro navegador la dirección www.estoesunaprueba.com, ingresaremos a nuestro server 192.168.1.110 de forma totalmente transparente.

Observaciones:

En la linea ProxyPass le cargue un puerto, esto se lo puse a modo de ejemplo para aclarar que si por algún motivo de seguridad, poseen un servidor WEB corriendo sobre cualquier puerto, al definirlo en el ProxyPass, Apache va a buscar la información a la IP:Puerto/Directorio especificado y nosotros en nuestro navegador, no veremos nada mas que el dominio, sin saber que puerto es el que esta a la escuchad el otro lado, para nuestro navegador, siempre sera el 80 o 443 quien responda, independientemente de los puertos internos que posea cada Web Server.

Espero les sea de utilidad =)

Arquitectura en GNU/Linux

Viernes, 10 de agosto de 2012 Nicolas Ventre Sin comentarios

CONFIGURACIÓN DE HARDWARE

Para entender la arquitectura del sistema GNU/Linux, deberemos primero familiarizarnos con los dispositivos y sus configuraciones. Si bien las configuraciones iniciales de Hardware se hacen en el BIOS, podremos desde el propio OS hacer asignaciones y modificaciones a placas de sonido, usb, adaptadores SCSI, puertos seriales, Discos Rígidos, etc.

¿Qué es el BIOS?

BIOS es un apócope que proviene de Basic Input/Output System. Es un firmware que prepara al Hardware para ser administrado por el OS. La preparación y verificación del Hardware la efectúa mediante el POST, (Power On Self Test), programa encargado de verificar el correcto funcionamiento de las piezas implicadas en el proceso de arranque. Una de las configuraciones más básicas de este sistema es el poder seleccionar de qué forma queremos que haga el inicio de la máquina.

En resumen, podemos decir que el BIOS, posee un software de bajo nivel, que permite efectuar configuraciones del hardware, antes que el Sistema Operativo inicie, brindando opciones de bootstrapping, día y hora, seguridad, etc. La forma que cada fabricante lo configura para el ingreso a su configuración puede variar, por cada fabricante y tipo de hardware, junto a las opciones que permite configurar.

Dispositivos de bootstrapping:

Dentro de estos dispositivos el BIOS buscara un gestor de arranque, un “OS Loader”, desde el cual pueda iniciar el Sistema, como pueden ser Linux Loader, (LILO), o GRUB, (Grand Unified Bootloader). Este dato se encuentra alojado en la MBR, (Master Boot Record), quien almacena las Tablas de Particiones junto con el bootloader o gestor de arranque. Dentro de las configuraciones, respetara el orden asignado, el cual suele ser CDROM, Hard Disk, USB, Network.

  • Unidad de CD/DVD
  • Disco Rígido
  • Red
  • Dispositivo de almacenamiento externo

Canales de Comunicación

Para que los dispositivos puedan comunicarse directamente con los recursos del sistema, el sistema almacena diversos canales de comunicación los cuales describiremos a continuación:

  • IRQ: Interrupt Request Lines, (Líneas de Solicitud de Interrupción), los cuales envían solicitudes de interrupción al CPU, generando que el mismo deje las tareas que está efectuando de lado para procesar la acción solicitada por el dispositivo. El número de IRQ va del 0 al 15.
  • I/O address: Dirección de Entrada/Salida, representa una dirección específica en la memoria, cada dispositivo tiene una dirección única asignada sobre la cual lee y escribe.
  • DMA: Direct Memory Access, (Acceso Directo a Memoria), Algunos dispositivos pueden ganar acceso directo a la memoria sin intervención del CPU mediante los canales DMA, lo cual permite liberar carga al procesador, proporcionando una mayor performance.

Cada uno de estos canales, posee su espacio dentro del directorio /proc dentro del filesystem. Este directorio contiene una jerarquía de archivos que muestran como esta funcionando el kernel en tiempo real, permitiendo ver como esta interactuando el Hardware con el Sistema. Veamos en detalle como interactuar mediante este directorio con los canales de comunicación mencionados anteriormente:

 

/proc/interrupts:

Dentro de este archivo, podremos notar las piezas de Hardware y que IRQ tienen asignado. Por ejemplo el 10 tiene asignada la interface de red eth1, el 11 usb, 14 y 15 asignados a los Hard Disk, etc. En la columna CPU0 vamos a ver la cantidad de interrupciones de cada pieza y esta columna será individual para cada núcleo, por lo tanto, podremos ver CPU0, CPU1, etc.

Los IRQ más comunes son:

/proc/dma:


Podremos ir viendo la información que este archivo tenga, ya que dependiendo de que pieza necesite tener el acceso directo a memoria.

/proc/cpuinfo:

Muestra información detallada sobre nuestro microprocesador.

/proc/devices:

Muestra los diferentes tipos de dispositivos de carácter y de bloque que tengamos cargados en el sistema, la mayor diferencia entre los de carácter y de bloque es:

 

  • Los dispositivos de carácter no requieren buffering. Los dispositivos de bloque disponen de una memoria intermedia o buffer que les permite ordenar las peticiones antes de tratar con ellas. Esto es muy importante para los dispositivos diseñados para guardar información, porque la habilidad de ordenar la información antes de escribirla en el dispositivo permite que ésta se almacene de forma más eficiente.
  • Los dispositivos de carácteres envían datos sin un tamaño preconfigurado. Los dispositivos de bloque pueden enviar y recibir información en bloques de un tamaño particular, configurable por dispositivo.

/proc/ioports:

En resumen, el directorio /proc es un sistema de archivo virtual que provee una interface directa con el Kernel.

USB, (Universal Serial Bus):

Es una arquitectura de comunicación diseñada para conectar dispositivos a la PC. Pueden ser divididos en 5 grandes grupos:

  • HID, (Human Interface Device
  • Communication Device
  • Mass Storage Device
  • Audio Devices
  • Display devices

Los drivers de los controladores USB se separan en 3 categorías:

  • Host Controller Drivers: Los drivers controladores del USB Host incluyen usb-ohci y usb-uhci.
  • Class Drivers: Estos drivers incluyen hid.o, usb-storage, acm.o, printer.o y audio.o.
  • Other Device Drivers: Hay muchos dispositivos que no entran en ninguna categoría, ni funcionan con dichos drivers, por ejemplo pwc.o, que es un driver de Philips para webcam.

Los más importantes de recordar son:

Driver Modulo
OHCI (Compaq) usb-ohci.o
UHCI (Intel) usb-uhci.o
EHCI ( USB 2.0) ehci-hdc.o

Dentro de estos tres grupos, cabe destacar que OHCI y UHCI son USB 1.1, los cuales manejan velocidades de 12 Mbps. EHCI es USB 2.0 y puede manejar un máximo de 480 Mbps.

Para poder ver los módulos que tenemos en uso actualmente, podemos recurrir a /proc/modules o lsmod.

Manipulando Módulos

Un modulo es dinámicamente linkeado al Kernel en funcionamiento cuando es cargado. Mucho de esto se realiza automáticamente. Sin embargo puede que alguna vez se tenga que manipular los módulos manualmente. Por ejemplo si hay alguna incompatibilidad con algún driver en particular y se tiene que bajar el código fuente de uno nuevo, compilar e insertar el nuevo modulo al Kernel en funcionamiento.

Las funciones que vamos a utilizar para manipular los módulos son:

insmod Agrega un módulo
rmmod Remueve módulos
modinfo Muestra información del módulo
modprobe Carga y remueve módulos

Ejemplos:

#Intentar cargar los módulos de red hasta que uno lo consiga

modprobe –t  net

#Intentar cargar los módulos disponibles de red

modprobe –at net

#Con el siguiente comando más el módulo, podremos remover o resolver dependencias

modprobe –r

#Listar los módulos disponibles para su uso

modprobe –l

Controladora SCSI

Existen 2 tipos de interfaces SCSI:

  • Interface de 8 bit, la cual soporta 8 dispositivos incluyendo el controlador, por lo cual solo hay 7 espacios para dispositivos.
  • Interface de 16 bit o WIDE, que soporta 16 dispositivos incluyendo el controlador, por lo cual posee disponibles 15 lugares para dispositivos.

Estos dispositivos son identificados por  un ID que posee SCSI de 3 números:

  1. Canal SCSI: soporta un dispositivo por cada canal y comienza desde el 0 en adelante.
  2. Número de ID del dispositivo: El ID va del rango 0-7 0-15, dependiendo del tipo de interface.
  3. LUN, (Logical Unit Number): Indica las particiones dentro de un mismo dispositivo.

Para ver el ID podemos ejecutar un cat al archivo /proc/scsi/scsi, el cual arrojará los siguientes resultados:

Tarjetas de sonido

Actualmente existen 2 proyectos que gestionan los módulos y controladores para las placas de sonido:

  • OSS (Open Sound System): Fue introducido a partir del Kernel 2.0 y posee soporte para varias plataformas UNIX.
  • ALSA (Advanced Linux Sound Architecture): Introducida desde el Kernel 2.6.

Generalmente la placa de sonido es configurada durante la instalación del sistema, pero en caso de tener algún problema, podremos descargar de las respectivas páginas los módulos y compilarlos.

Puertos Seriales

El modem usa una interface serial para las comunicaciones, toda la información es enviada de forma secuencial sobre 2 cables que manejan la entrada y salida de información. La información que ingresa es trasladada en paralelo con la que sale de la PC. Esta translación es efectuada por el UART, (Universal Asynchronous Receiver/Transmitter).

En GNU/Linux, los dispositivos Serial son nombrados como ttyS, para saber si tenemos un dispositivo Serial en nuestro equipo, podemos ejecutar el siguiente comando:

$dmesg | grep ttyS

La correlación entre Microsoft Windows y GNU/Linux se detalla en la siguiente tabla:

DOS Linux
COM1 /dev/ttyS0
COM2 /dev/ttyS1
COM3 /dev/ttyS2

Para tener la configuración de UART por default, podemos ejecutar el comando setserial. La cadena debe ser de la siguiente manera:

$setserial <device> port <I/O> irq <nº de irq> autoconfig

Ejemplo:

$setserial /dev/ttyS0 port 0x3f8 irq 4 autoconfig

Para configurar la velocidad del Puerto serial, vamos a utilizar nuevamente el commando setserial:

$setserial /dev/ttyS0 spd_shi

Opción de Velocidad Descripción
spd_hi Usa 56kb
Spd_vhi Usa 115kb
Spd_shi Usa 230kb
Spd_warp Usa 460kb

Con esto, ya tenemos, mucho mas que una simple base, para saber como manejarnos con la arquitectura propuesta por el Sistema Operativo.

Espero les sea de utilidad, voy a estar actualizando el Blog nuevamente con informacion, tanto para certificaciones, como datos complementarios de GNU/Linux, Virtualizacion y Seguridad.

Saludos!

Administrando el sistema con Webmin

Domingo, 2 de octubre de 2011 Nicolas Ventre Sin comentarios

¿Qué es Webmin?
Webmin es una interface web que permite la administración de los sistemas basados en Unix. Estos permiten modificar los diferentes agregados que se le pueden hacer al sistema como por ejemplo un servidor DNS, Apache, postfix, etc. Existen varias versiones las cuales pueden ser descargadas desde su WEB.

En esta oportunidad para hacer la instalación y guía utilizaremos la última versión en formato tar.gz.

Instalación:
La instalación es muy fácil y amigable ya que es necesario ejecutar solo 3 comandos para dejarla funcional. El primer paso es descomprimir el archivo tar.gz, ejecutando los siguientes comandos:

# tar xzvf webmin-1.560.tar.gz
# cd webmin-1.560.tar.gz

Una vez dentro de la carpeta, deberemos ejecutar el script que permite la configuración de los archivos dentro del sistema:

# ./setup.sh /usr/local/webmin

Si el sistema no puede determinar algunos parámetros, efectuará las siguientes preguntas:
-    Web server port: Puerto TCP que escuchará
-    Web server login and password: Claves de acceso, si lo dejamos por defecto usa root.
-    Web server hostname: Nombre del equipo local.
-    Use SSL: Solo preguntará si el sistema posee librerías de Perl instaladas.
-    Start Webmin at boot time: Si el SO os lo permite webmin iniciará junto con el sistema.

Una vez terminada la instalación, podremos acceder a la consola desde el Navegador desde cualquier equipo situado en la misma red, tipiando en la barra de direcciones la dirección http://IP_del_equipo:puerto seleccionado/. Si no se configuró ningún puerto diferente, el que utilizará por defecto es 10000.
Al ingresar en la consola web, podremos ver en la pantalla principal, la versión de Webmin, nombre del host, hora del sistema, tiempo que el equipo lleva en producción, memoria real, virtual y uso de discos. A la izquierda de la pantalla os mostrará las opciones que tenéis para configurar el sistema.

Cada menú permite configuraciones especiales:

-    Webmin: Permite configurar archivos de backup, cambiar el idioma, usuarios del programa, logs de las diferentes acciones realizadas.
-    System: Permite configurar cuentas del sistema, inicio y apagado del mismo, logs del sistema,etc. Todo lo referido al sistema operativo corriendo en la pc.
-    Servers: Permite configurar todos los servidores que tengamos instalados en dicho host, como servidor web, correo, etc.
-    Others: Configuración de PHP, modulos Perl, estado del sistema y servers, línea de comandos, etc.
-    Networking: Permite las configuraciones de red como firewall, monitor de ancho de banda, etc.
-    Hardware: Particiones y discos lógicos, administración de impresoras, tiempo del sistema.
-    Cluster: Diferentes tipos de clusters que tengamos configurados.
-    Un-used Modules: Como el nombre indica son módulos que todavía no están instalados.

Espero que el programa sea de utilidad.

Primeros pasos en pfSense

Jueves, 15 de septiembre de 2011 Nicolas Ventre Sin comentarios

Antes de empezar con cualquier tipo de explicación, vamos a ver un poco de que se trata pfSense.

pfSense es un sistema basado en FreeBSD de código abierto, el cual cumple las funciones de Firewall y Router. Este sistema, permite una gran variedad de paquetes los cuales complementan sus funcionalidades y permiten que sea sumamente versátil. Para ver un poco más de dicho sistema, pueden ingresar a la web oficial http://www.pfsense.org/. En la misma figuran diferentes en laces con documentación, el foro de soporte, etc.

¿Qué requisitos mínimos de Hardware se necesitan para pfSense?

  • CPU – 100 Mhz Pentium
  • RAM – 128 MB
  • Lectora de CD o puerto USB
  • 1 GB de espacio en Disco

Para efectuar la descarga del LiveCD podemos recurrir al siguiente link el cual además nos permite descargar una imagen ya armada de VMware con el pfSense instalado.

Nosotros vamos a centrarnos en la instalación y configuración inicial del LiveCD. Mejor que muchas palabras confusas es mejor un video, por lo que paso a dejarles el mismo a continuación.

Una de las utilidades que siempre buscamos a la hora de instalar este tipo de sistemas, es la de control, poder brindar un nivel más amplio de seguridad, ya sea en nuestras casas para impedir que los integrantes de la familia naveguen por lugares prohibidos o bien en las empresas efectuar la misma acción para con los empleados.
Para ello pfSense posee dentro de sus paquetes el squid y squidGuard, quienes actúan como proxy y filtrado de contenidos.

¿Como funciona esta herramienta? Vamos con otro video-tutorial.

Por el momento eso es todo, les recomiendo navegar un poco más por la web oficial y el foro de soporte para buscar más funcionalidades que se adapten a sus necesidades. Posee además un manual el cual se puede adquirir en Amazon como complemento.

Un saludo y espero sea de su agrado!

Command line – Linea de comandos

Martes, 9 de agosto de 2011 Nicolas Ventre Sin comentarios

Moviéndose a través del Sistema

 

 

En el Sistema Operativo podemos encontrar rutas absolutas, (si inician desde el directorio Raíz “/”), o relativas, (si inician desde el directorio actual).

Ejemplos:

Suponiendo que estamos situados en el directorio /home/user:

Absoluta: /home/user/Escritorio/archivo

Relativa: /Escritorio/archivo

En cualquier Sistema Operativo estructurado hay ciertas utilidades que nos permiten navegar a través del sistema. Veamos cuales son y cómo utilizarlas.

Comandos del Sistema Operativo:

ls (List): Es uno de los comandos más utilizados del sistema ya que se utiliza para listar el contenidos de los directorios.

Sintaxis: la [opción] [directorio o archivos]

Algunos de las opciones más utilizadas son:

Nombre Acción
-a Lista los archivos ocultos. Comienzan siempre con . (punto)
-l Lista los permisos de los archivos, nombre del propietario, del grupo, el tamaño en bytes, fecha de modificación y si es un link.
-F Coloca al lado de cara archivo un * si es un archivo ejecutable o una / si es un directorio.

Crear un archivo (touch): touch [options] <archivo>

Consultar los manuales de los comandos del sistema (man): En el caso de no saber las opciones que tiene un comando, podemos consultar los manuales del mismo en el propio Sistema Operativo.

Sintaxis: man <comando>

Copiar Archivos (cp copy”): Este comando tiene dos utilidades. Puede copiar un archivo a un directorio o bien copiar el contenido de un archivo a otro archivo, destruyendo el contenido de este último y colocando la información del archivo copiado. Para que se entienda mejor, si tenemos un “archivo1” y lo copiamos a un “archivo2”, el contenido de “archivo2” es destruido y reemplazado por el contenido de “archivo1”

Sintaxis: cp [opciones] [directorio o archivo origen] [directorio o archivo destino]

Algunos de las opciones más utilizadas:

Nombre Acción
-d No respetar la ubicación del Link simbólico
-f Ejecuta la acción sin pedir confirmación
-p Mantiene los atributos del archivo
-R Copia recursivamente
-l Interactivo, pregunta antes de sobrescribir

Renombrar y mover ficheros (mvmove”): Este comando sirve para mover los archivos o directorios de lugar o cambiarles el nombre.

Sintaxis: mv [opciones] [archivo origen] [archivo destino]

Algunas de las opciones más utilizadas:

Nombre Acción
-f No le pregunta al usuario antes de efectuar la acción
-i Le pregunta al usuario antes de efectuar algún cambio.

Eliminación de Ficheros (rmremove”): Este comando sirve para eliminar archivos.

Sintaxis: rm [opciones] [archivos]

Algunas de las opciones más comunes:

Nombre Acción
-f Borra el archivo sin pedir confirmación
-i Borra el archivo pero pide confirmación
-r Borra los archivos recursivamente

Eliminar directorios (remove directory “rmdir”): Este comando sirve para eliminar los directorios, pero solo si los mismos se encuentran vacíos. En el caso que alguno se encuentre con contenido, se deberá usar “rm -rf”.

Sintaxis: rmdir [directorio]

Crear directorios (make directory “mkdir”): Con este comando podremos crear el directorio que queramos.

Sintaxis: mkdir [directorio]

El sistema nos da una serie de herramientas para poder buscar los archivos que necesitamos, veamos a continuación los ejemplos.

find: Cuando necesitamos buscar un archivo o directorio, utilizamos este comando, permite utilizar varios criterios, seleccionando el directorio de búsqueda.

Sintaxis: find <directorio> <archivo o directorio a buscar> [opciones]

Ejemplo: find / -type f –user 502-exec rm –rf {} \;

Opciones más communes:

Nombre Acción
-type Especifica el tipo de archivo
-name Especifica el nombre del archivo a buscar
-print Imprime los archivos que encuentra
-perm modo Los permisos de los archivos son los indicados por modo
-atime n Archivo accedido en las últimas n*24 horas
-ctime Archivos cambiados en las últimas n*24 horas
-amin n Archivos accedidos en los últimos n minutos
-cmin n Archivos cambiados los últimos n minutos
-empty Archivos vacíos
-mmin n Archivos modificados en los últimos n minutos
-mtime n Archivos modificados en las últimas n*24 horas
-size n [bloque] Archivos que tiene al menos n bloques/caracteres/kilobytes
-exec comando \; Por cada archivo que encuentra ejecuta comando

Cómo saber quien está en el sistema: who [opciones]

Tenemos además una serie de herramientas que nos permiten leer la información contenida en un archivo y son las siguientes:

cat <archivo>: Muestra en pantalla el contenido del archivo indicado, si se indica más de un archivo, en pantalla se muestra la concatenación de los archivos indicados. Si el archivo supera la cantidad de líneas de pantalla, recorrerá automáticamente todo el contenido hasta el final. Para ver el contenido por página se utiliza el comando more.

more <archivo>: Vuelca el contenido de uno o más archivos, adecuando su presentación al número de líneas de la terminal. Permite ver desde el comienzo e ir bajando a mano hasta el final, pero si queremos volver al comienzo del archivo no nos deja. Para poder hacer esto debemos recurrir al comando less.

less <archivo>: Aquí podemos recorrer el contenido del archivo de principio a fin.

Donde estamos parados? Para esto existe el comando pwd (Print Work Directory).

Sintaxis: pwd

Buscar el PATH de un comando (which): Devuelve el path completo del comando mencionado, escaneando los directorios definidos en la variable PATH.

Sintaxis: which <comando>

whereis: localiza los binarios y manuales del comando marcado

Sintaxis: whereis <comando>

Opciones más comunes:

Nombre Acción
-l Muestra el i-nodo
-h Muestra tamaño legible
-n Lista los UIDs y GUDs
-R Muestra recursivamente el contenido del directorio
-S Ordena por Sistema de Archivos
-t Ordena por tiempo de modificación
-u Muestra el tiempo del último acceso.

Comando dd (duplícate disk): Este comando copia un archivo con un tamaño de bloque variable.

Sintaxis: dd if(input file)=origen  of(output file)=destino

Ejemplo:

Haciendo una imagen iso de un cd:

# dd if=/dev/cdrom of=/home/usuario/miiso.iso

O también sirve para clonar particiones del disco duro o nuestro disco rígido completo.

# dd if=/dev/hdxa of=/dev/hdyb (cloner partición)
# dd if=/dev/hdx of=/dev/hdy (cloner disco completo)

Por último tenemos links los cuales se dividen en duro y simbólico, los cuales vamos a ver a continuación.

Link Simbólico (Soft-link): Apuntan a un archivo por su nombre, esto permite que los enlaces apunten a archivos localizados en otras particiones o unidades de red. Esto lo hace creando un nuevo i-nodo que apunta a la misma área de datos.

Sintaxis: ln –s <archivo> <nombre del link>

Ejemplo: ln –s lilo.conf  lilo

Link Duro (Hard-link): Un enlace duro es un nombre adicional para el mismo i-nodo y como tal el número de referencia aumenta en uno por cada enlace duro.

Sintaxis: ln <archivo> <archivo.link>

Ejemplo: ln lilo.conf lilo.link

Con eso terminamos los comandos más utilizados para movernos por el Sistema Operativo, lo próximo será indagar un poco en el manejo de procesos.

Por si quieren descargar la versión en pdf, la dejo en el siguiente link:

Un saludo!