You are on page 1of 85

Sobre el contenido

En este documento encontrars informacin sobre tutoriales orientados especficamente para la


configuracin de servicios en un sistema operativo Linux, en su distribucin Debian 7. Tutoriales
redactados y recolectados de distintas fuentes en internet.
Cada tutorial ha sido redactado por iniciativa propia del autor o unificado de distintas fuentes, por lo
tanto, todo el documento est licenciado bajo Creative Commons (CC).
Puedes informarte sobre esta licencia en el siguiente enlace: http://creativecommons.org/licenses/bync/4.0/deed.es

P g i n a 1 | 85

Introduccin al Software Libre


Software libre (en ingls free software) es el software que, una vez obtenido, puede ser usado,
copiado, estudiado, modificado y redistribuido libremente. El software libre suele estar
disponible gratuitamente, pero no hay que asociar software libre a software gratuito, o a
precio del coste de la distribucin a travs de otros medios; sin embargo no es obligatorio que sea as
y, aunque conserve su carcter de libre, puede ser vendido comercialmente. Anlogamente, el
software gratis o gratuito (denominado usualmente freeware) incluye en algunas ocasiones el
cdigo fuente; sin embargo, este tipo de software no es libre en el mismo sentido que el software
libre, al menos que se garanticen los derechos de modificacin y redistribucin de dichas versiones
modificadas del programa.
No debe confundirse "software libre" con software de dominio pblico. ste ltimo es aqul por el
que no es necesario solicitar ninguna licencia y cuyos derechos de explotacin son para toda la
humanidad, porque pertenece a todos por igual. Cualquiera puede hacer uso de l, siempre con fines
legales y consignando su autora original. Este software sera aqul cuyo autor lo dona a la humanidad
o cuyos derechos de autor han expirado. Si un autor condiciona su uso bajo una licencia, por
muy dbil que sea, ya no es dominio pblico. En resumen, el software de dominio pblico es la pura
definicin de la libertad de usufructo de una propiedad intelectual que tiene la humanidad porque as
lo ha decidido su autor o la ley tras un plazo contado desde la muerte de ste, habitualmente 70 aos.
Historia
Entre los aos 60 y 70 del Siglo XX, el software no era considerado un producto sino un aadido que
los vendedores de los grandes computadores de la poca (los mainframes) aportaban a sus clientes
para que stos pudieran usarlos. En dicha cultura, era comn que los programadores y desarrolladores
de software compartieran libremente sus programas unos con otros. Este comportamiento era
particularmente habitual en algunos de los mayores grupos de usuarios de la poca, como DECUS
(grupo de usuarios de computadoras DEC). A finales de los 70, las compaas iniciaron el hbito de
imponer restricciones a los usuarios, con el uso de acuerdos de licencia.
All por el 1971, cuando la informtica todava no haba sufrido su gran boom, las personas que
hacan uso de ella, en mbitos universitarios y empresariales, creaban y compartan el software sin
ningn tipo de restricciones.
Con la llegada de los aos 80 la situacin empez a cambiar. Las computadoras ms modernas
comenzaban a utilizar sistemas operativos privativos, forzando a los usuarios a aceptar
condiciones restrictivas que impedan realizar modificaciones a dicho software.
En caso de que algn usuario o programador encontrase algn error en la aplicacin, lo nico que
poda hacer era darlo a conocer a la empresa desarrolladora para que esta lo solucionara. Aunque el
programador estuviese capacitado para solucionar el problema y lo desease hacer sin pedir nada a
cambio, el contrato le impeda que mejorase el software.
Con este antecedente, en 1984 Richard Stallman comenz a trabajar en el proyecto GNU, y un ao
ms tarde fund la Free Software Foundation (FSF). Stallman introdujo una definicin para free
software y el concepto de "copyleft", el cual desarroll para dar a los usuarios libertad y
para restringir las posibilidades de apropiacin del software.
P g i n a 2 | 85

El termino free, traducido al castellano, significa tanto libre como gratis, por eso muchas
veces suelen confundirse el freeware con el software libre aunque entre ambos existen notables
diferencias.
Libertades del software Libre
De acuerdo con tal definicin, el software es "libre" si garantiza las siguientes libertades:

"libertad 0", ejecutar el programa con cualquier propsito (privado, educativo, pblico,
comercial, militar, etc.)
"libertad 1", estudiar y modificar el programa (para lo cual es necesario poder acceder al
cdigo fuente)
"libertad 2", copiar el programa de manera que se pueda ayudar al vecino o a cualquiera
"libertad 3", Mejorar el programa y publicar las mejoras

Es importante sealar que las libertades 1 y 3 obligan a que se tenga acceso al cdigo fuente. La
"libertad 2" hace referencia a la libertad de modificar y redistribuir el software libremente
licenciado bajo algn tipo de licencia de software libre que beneficie a la comunidad.
La licencia GNU GPL posibilita la modificacin y redistribucin del software, pero nicamente
bajo esa misma licencia. Y aade que si se reutiliza en un mismo programa cdigo "A" licenciado
bajo licencia GNU GPL y cdigo "B" licenciado bajo otro tipo de licencia libre, el cdigo final "C",
independientemente de la cantidad y calidad de cada uno de los cdigos "A" y "B", debe estar bajo la
licencia GNU GPL.

P g i n a 3 | 85

Qu es Linux?
Linux es la denominacin de un sistema operativo tipo -Unix y el nombre de un ncleo. Es uno de
los paradigmas ms prominentes del software libre y del desarrollo del cdigo abierto, cuyo cdigo
fuente est disponible pblicamente y cualquier persona puede libremente usarlo, estudiarlo,
redistribuirlo y, con los conocimientos informticos adecuados, modificarlo el cdigo fuente
completo escrito en lenguaje C, puede descargarlo desde http://kernel.org.
Los primeros sistemas Linux se originaron en 1992, al combinar utilidades de sistema y libreras del
proyecto GNU con el ncleo Linux, completando un sistema tambin conocido como
GNU/Linux. Desde fines de 1990 Linux ha obtenido el apoyo de diversas empresas multinacionales
del mundo de la informtica, tales como Microsoft, IBM Sun Microsystems, Hewlett-Packard
y Novell; es usado como sistema operativo en una amplia variedad de plataformas de hardware y
computadores, incluyendo los computadores de escritorio (PCs x86 y x86-64, y Macintosh y
PowerPC), servidores, supercomputadores, mainframes, y dispositivos empotrados as como
telfonos celulares.
Linux es un sistema con un aprovechamiento de recursos de lo ms eficiente, posee
requerimientos de hardware mnimos, calificables de irrisorios en comparacin con otros sistemas.
Una configuracin mnima para emplearlo podra ser una computadora 386SX con 1 MB de RAM y
una disquetera. A mayores se pueden aadir componentes como el teclado, una placa de
vdeo cualquiera y un monitor. Con esto es suficiente para arrancar y entrar al sistema. Si quisiramos
lujos, necesitaramos un disco duro de unos 10 MB, que sera suficiente para disponer de todos los
comandos y un par de aplicaciones pequeas. Para un sistema ms completo se aconsejan 4 MB de
memoria RAM, o 8 MB si se tiene pensado utilizar una interfaz grfica. Si se van a tener muchos
usuarios y procesos conjuntamente, sera recomendable 16 MB; 32 MB ya sera para el caso
de procesos muy pesados. En cuanto al disco duro, varan las necesidades bastante segn la cantidad
de aplicaciones que se haya pensado en instalar, pero se puede decir que actualmente van desde los
10 MB hasta un mximo de 4'7 GB para el caso de una distribucin Debian GNU/Linux
instalada con todas sus aplicaciones (en torno a unos 9000 programas distintos). Resulta obvio
decir que cuanto ms rpido sea el procesador y cuanta ms memoria tengamos mejor
rendimiento obtendremos.

P g i n a 4 | 85

P g i n a 5 | 85

Jerarqua del sistema de archivos

El estndar de jerarqua de archivos (FHS o Filesystem Hierarchy Standar) define los


principales directorios y sus contenidos en GNU/Linux, y otros sistemas operativos similares tipo
Unix (Open-BSD, MacOSX).
Es una norma que define los directorios principales y sus contenidos en esta familia de sistemas
operativos. Se dise originalmente en 1994 para estandarizar el sistema de archivos de las
distribuciones Linux, basndose en la tradicional organizacin de directorios de los sistemas Unix.
El FHS es mantenido por Free Standar Group, una organizacin sin fines de lucro construida por
compaas que manufacturan Hardware y Software, como Hewlett Packard, Dell, IBM y Red Hat. La
mayora de las distribuciones Linux, inclusive las que forman parte de Free Software Standards,
utilizan este estndar sin aplicarlo de manera estricta.
De forma grfica, el FHS en los sistemas operativos GNU/Linux, puede representarse (de manera
bsica) con la siguiente figura:

Todos los ficheros y directorios estn debajo del root_directory / (raz), aunque estn almacenados
en otros dispositivos o particiones.
A continuacin se representa una descripcin de la jerarqua especfica de la FHS:

P g i n a 6 | 85

/bin/
Comandos ejecutables esenciales (binarios) para todos los usuarios (como cat, ls o cp) (especialmente
ficheros necesarios para arrancar o rescatar el sistema)

/boot/
Archivos utilizados durante el inicio del sistema (ncleo y discos RAM).

/dev/
Dispositivos esenciales

/etc/
Archivos de configuracin utilizados en todo el sistema y que son especficos del anfitrin.

/home/ (opcional)
Directorios de inicio de los usuarios locales.
/lib/ y /lib64/
Bibliotecas compartidas esenciales para los binarios de /bin/, /sbin/ y el ncleo del sistema. /lib64/
corresponde al directorio utilizado por sistemas de 64-bit.

/mnt/
Sistema de archivos montados temporalmente

/media/
Puntos de montaje para dispositivos de medios, como son las unidades lectoras de discos compactos.

/opt/

/proc/
Sistema de archivos virtual que documenta sucesos y estados del ncleo. Contiene, principalmente,
archivos de texto.

/root/
Directorio de inicio del usuario root (super-usuario).

P g i n a 7 | 85

/sbin/
Binarios de administracin del sistema

/usr/
Jerarqua secundaria para datos compartidos de solo lectura (Unix system resources). Este directorio debe
poder ser compartido para mltiples anfitriones, y, debe evitarse que contenga datos especficos del
anfitrin que los comparte cuando se hace a travs de NFS.
Este directorio incluye:

/usr/bin/
/usr/include/
/usr/lib/ y /usr/lib64/
/usr/share/
/usr/local/

Mandatos binarios
Archivos de inclusin estndar
Bibliotecas compartidas
Datos compartidos, independientes de la arquitectura.
Datos compartidos de solo lectura.

/var/
Archivos variables, como son bitcoras, bases de datos, directorio raz de servidores HTTP y FTP, colas
de correo, archivos temporales, etc.

Particiones recomendadas para instalar Debian 7.0


Si las condiciones limitan el nmero de particiones a utilizar, como mnimo se requieren tres
particiones.
/ (Raz)
Si se utiliza el diseo de tres particiones, asignar el resto del
espacio disponible en esta particin. Si se van asignar particiones
para los directorios mencionados adelante, se requieren de 3072
MiB a 5120 MiB.

/home
En estaciones de trabajo, a esta particin se asigna al menos la
mitad del espacio disponible para almacenamiento.

swap
Si se tiene menos de 1 GiB de RAM, se debe asignar el doble del
tamao del RAM fsico; si se tiene ms de 1 GiB RAM, se debe
asignar una cantidad igual al tamao del RAM fsico, ms 2 GiB.
sta ser siempre la ltima particin del espacio disponible para
almacenamiento y jams se le asigna punto de montaje.

P g i n a 8 | 85

Bibliografa

https://es.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html

P g i n a 9 | 85

P g i n a 10 | 85

INSTALACIN DE DEBIAN 7.0

Introduccin:
Siempre ha existido el mito de que Debian GNU/Linux es una distribucin difcil de instalar, que est
orientada a usuarios expertos en el mbito de servidores, y que no es adecuada para el usuario final.
Aunque no es menos cierto que para tener nuestro Debian a punto hay que realizar algunos pasos ninguno complicado- en este documento mostraremos que tan sencillo es, para un usuario normal, la
instalacin de esta magnfica distribucin.
Antes de comenzar, determine primero los siguientes puntos:

Finalidad productiva Va a ser un servidor, estacin de trabajo o escritorio? Qu uso va


tener el equipo? Qu servicios va a requerir? Idealmente lo que se establezca en este punto
debe prevalecer sin modificaciones a lo largo de su ciclo productivo.
Ciclo de produccin Cunto tiempo considera que estar en operacin el equipo? Seis
meses, un ao, dos aos, cinco aos?
Capacidad del equipo A cuntos usuarios simultneos se brindar servicio? Tiene el
equipo la cantidad suficiente de RAM y poder de procesamiento suficiente?
Particiones del disco duro Determine cmo administrar el espacio disponible de
almacenamiento. Para ms detalles al respecto, consulte el documento titulado "Estndar de
Jerarqua de Sistema de Archivos."
Limitaciones Tenga claro que Debian es un sistema operativo diseado y enfocado
especficamente para ser utilizado como sistema operativo en servidores, desarrollo de
programas y estaciones de trabajo.

Equipamiento lgico necesario

ISO Debian GNU/Linux 7.0


Obtener Debian GNU/Linux es muy sencillo, podemos descargar las imgenes de CD en
formatos .isos desde el sitio web oficial o bien de algn mirror ftp en internet. Aunque Debian
se ofrece de forma gratuita, si usted lo desea puede colaborar econmicamente haciendo
donaciones o comprando los Cds de instalacin. Debian se puede descargar en sets de CDS
o DVDs. Nosotros utilizaremos la versin netins (32bits), ste es un nico CD que posibilita
que instale el sistema completo. Este nico CD contiene slo la mnima cantidad de software
para comenzar la instalacin y obtener el resto de paquetes a travs de Internet. (peso
aproximado: 277MB)
Enlace para la descarga:
http://cdimage.debian.org/debian-cd/7.1.0/i386/iso-cd/debian-7.1.0-i386-netinst.iso

P g i n a 11 | 85

Por qu instalar Debian GNU/Linux?


Si usted desea un Sistema Operativo libre, funcional, estable, rpido y seguro, entonces Debian es la
distribucin que necesita. Adems, con un poco ms de experiencia (la cual ir ganando
paulatinamente sin duda alguna) se pueden lograr resultados sorprendentes en su rendimiento, debido
al alto nivel de personalizacin que podemos alcanzar a la hora de instalar los paquetes que
necesitamos.
El asistente de instalacin de Debian nos ofrece opciones que ningn otro instalador nos brinda de
forma sencilla, como por ejemplo instalar un entorno de escritorio o servidores con diferentes tipos
de servicios. Pero adems, Debian es mantenida y desarrollada por una Comunidad muy activa, por
lo que si se presenta algn problema o fallo, el mismo ser resuelto de forma rpida y sin costo alguno
para el usuario. Debian soporta diversos tipos de arquitectura y plataformas (i386, i686, PowerPC,
Mips, kFreeBSD. etc).
En resumen, si usted quiere tener control de su sistema, instalar solo lo que necesita haciendo uso de
una potente herramienta como dpkg y apt, Debian es su mejor opcin. De todos modos, en el sitio
oficial de Debian nos dejan los pros y los contras de esta distribucin.
(Referencia oficial: http://www.debian.org/intro/why_debian.es.html)

P g i n a 12 | 85

Instalando Debian GNU/Linux 7.0


Antes de iniciar con la instalacin es necesario contar con una mquina virtual diseada para soportar
este sistema operativo (puede apoyarse en los videos que estn disponibles en el sitio web). Una vez
que est seguro de contar con todo lo necesario, inicie con el proceso de instalacin.
1- Eligiendo el modo de instalacin:

Podemos escoger entre las siguientes opciones:

Install: modo de instalacin en modo texto o consola (el que se utiliza en este documento)
Graphical Install: modo de instalacin apoyados por interfaz grfica
Advanced options: modo de instalacin para expertos.
Help: ayuda sobre el sistema de instalacin y otras opciones.

Elija la primera opcin (Install) y presione la tecla Entrar (enter).

P g i n a 13 | 85

2- Seleccin de idioma:

El segundo paso es seleccionar nuestro idioma ya que por defecto se instalar en ingls. En este
proceso no hay mucho que aclarar. Vamos a realizar la instalacin en espaol para que el propio
asistente y la ayuda que nos proporciona se muestren en el idioma seleccionado.
Seleccione Spanish y presione la tecla Entrar (Enter).

P g i n a 14 | 85

3- Seleccin de idioma:

Tal y como explica la ayuda, seleccionar la ubicacin nos sirve para fijar la zona horaria, adems de
identificar la localizacin para dar soporte al sistema una vez que est instalado, eligiendo las fuentes
ms cercanas a nuestra regin para la instalacin de software. (El tema de instalacin de software se
explica en la siguiente gua de trabajo).
Busque la opcin El Salvador, lo selecciona y presione la tecla Entrar (Enter).

P g i n a 15 | 85

4- Elegir la distribucin de teclado:

En este paso necesitamos determinar qu distribucin de teclado posee nuestra computadora. Es


necesario aclarar que en espaol existen dos tipos de teclado QWERTY, la distribucin para Espaa
e Hispanoamrica (Latinoamericano), puede identificarlo rpidamente examinando las siguientes
figuras:
Espaa

Hispanoamrica

Cuando lo haya identificado su distribucin de teclado, bsquelo en la lista (en este ejemplo, el autor
posee un teclado Hispanoamericano Latinoamericano-) lo selecciona y presione la tecla Entrar
(Enter).
Para ms informacin sobre distribuciones de teclados consulte la siguiente direccin web:
http://es.wikipedia.org/wiki/Distribuci%C3%B3n_del_teclado

P g i n a 16 | 85

5- Configurar la red, servidores de nombre:

Por el momento no utilizaremos ningn servidor de nombres, por lo tanto dejaremos el campo
vaco. Presiona la tecla Tab para marcar la opcin continuar y presione la tecla Entrar (Enter).

P g i n a 17 | 85

6- Configurar la red, servidores de nombre:

Tal como sugiere la ayuda del asistente de instalacin, el nombre de la mquina es una sola palabra
que identifica el sistema en una red. El nombre que elegiremos es deban-server, lo digitamos,
presionamos la tecla Tab para marcar la opcin continuar y presionamos la tecla Entrar (Enter).

P g i n a 18 | 85

7- Configurar la red, servidores de nombre:

Por el momento no necesitaremos nombre de dominio. Existe un tema especfico que habla sobre
nombres de dominio, y lo trataremos con detalle realizando la configuracin manual.

P g i n a 19 | 85

8- Elegir contrasea de superusuario:

En sistemas operativos del tipo Unix existen dos tipos de cuentas de usuario: usuario root y usuario
comn. La cuenta root es el nombre convencional de la cuenta de usuario que posee todos los
derechos en todos los modos (mono o multi usuario). root es tambin llamado superusuario.
Normalmente esta es la cuenta de administrador. El usuario root puede hacer muchas cosas que un
usuario comn no puede, tales como cambiar el dueo o permisos de archivos y enlazar a puertos de
numeracin pequea. No es recomendable utilizar el usuario root para una simple sesin de uso
habitual, ya que pone en riesgo el sistema al garantizar acceso privilegiado a cada programa en
ejecucin.
A este punto de la instalacin, el asistente solicita ingresar una contrasea para el usuario root, la
contrasea debe ser segura. La contrasea debe ser igual o mayor a 6 caracteres, y al menos debe
poseer una letra mayscula, un nmero y un smbolo como arroba (@), numeral (#), entre otros. Un
ejemplo de contrasea segura: Iloves@nDwich3s
Cuando hayas ingresado la contrasea elegida, presiona la tecla Entrar (enter) e ingresas nuevamente
la contrasea para confirmar.
Nota:
Un video de cmo elegir una contrasea segura te puede ayudar a escoger una muy original y que te
sea fcil de recordad: http://youtu.be/0RCsHJfHL_4

P g i n a 20 | 85

9- Creacin de la cuenta de usuario comn:

El usuario comn es importante en un sistema operativo tipo Unix, con el puedes realizar cualquier
tarea que no necesite de privilegios administrativos. Con este tipo de usuario tenemos evitamos
cometer algn error que sea irreparable en el sistema operativo instalado.
Solo digita tu primer nombre y tu primer apellido, luego presionas la tecla Entrar (Enter).

P g i n a 21 | 85

10- Elegir el nombre de usuario para la cuenta del usuario comn:

Este se refiere al nombre de la cuenta del usuario comn, es decir con qu usuario deseas ingresar al
sistema. De manera automtica el asistente recomendar uno (tu primer nombre). Bien puedes dejar
el que propone por defecto, o elegir uno de tu preferencia. Ten en cuenta que si eliges uno diferente,
es necesario que tenga conste de una sola palabra, sin espacios ni guiones.

P g i n a 22 | 85

11- Elegir una contrasea para el usuario comn:

Al igual que el usuario root, el usuario comn necesita de una contrasea para poder ingresar al
sistema operativo. Escoge una contrasea que sea totalmente diferente a la contrasea que elegiste
para el usuario root pero que posea las mismas caractersticas de seguridad.
Una vez que hayas elegido la contrasea para el usuario comn, presiona la tecla Entrar (Enter). El
asistente solicitar confirmar la contrasea para el usuario comn, la ingresas nuevamente y presionas
la tecla Enter.

P g i n a 23 | 85

12- Particionado de los discos:

El particionado de discos duros, se necesita para poder seleccionar las partes donde se establecer el
sistema de archivos de Linux. El asistente muestra 4 maneras de poder realizar el particionado al o
los discos que tengamos instalados en nuestro equipo.
Guiado utilizar todo el disco
Este mtodo no solicita ninguna intervencin del usuario, el particionado se realiza de manera
automtica. Este mtodo es ideal para principiantes.
LVM y LVM cifrado opciones 2 y 3LVM significa Logical Volume Manager (administrador de volmenes lgicos), es una
utilidad que permite crear volmenes lgicos a partir de discos duros fsicos. Por ejemplo, si
tienes dos discos duros fsicos y quieres que el sistema operativo (y por lo tanto el usuario)
slo vea una particin en su pc puedes usar LVM, ste "unir" lgicamente ambos discos
duros fsicos y t slo vers uno de cara al trabajo cotidiano en Linux.
Manual
Este mtodo permite crear el particionado a nuestras necesidades. Es justamente el que
utilizaremos, selecciona esta opcin y presiona la tecla Entrar (Enter).

P g i n a 24 | 85

13- Particionado de los discos:

Luego de elegir el mtodo de particionado manual, el asistente mostrar el disco duro que tenemos
instalado en nuestra computadora en nuestro caso es una mquina virtual-.
Ahora nos preparamos para el particionado manual que constar de 3 partes:
Punto de
montaje
/
/home
swap

Tamao
5.0 GB
3.7 GB
2.0 GB

Descripcin
Se instala el sistema operativo
Directorios y archivos de los usuarios
Procesos que no se mantienen en memoria.

Selecciona el disco duro y presionas la tecla Entrar (Enter).

P g i n a 25 | 85

14- Particionado de los discos Sigue los pasos, tal y como se presentan en la imagen:
Despus de cada una, presiona la tecla entrar.

P g i n a 26 | 85

P g i n a 27 | 85

P g i n a 28 | 85

P g i n a 29 | 85

P g i n a 30 | 85

P g i n a 31 | 85

P g i n a 32 | 85

14- Seleccionando fuentes de repositorios:


A este punto el particionado de discos duros debi ser exitoso. Te recomiendo tambin que veas el
video Instalacin de Debian 7.0. El siguiente paso requiere de seleccionar las fuentes de
repositorios desde donde deseamos descargar los paquetes o software que posteriormente
utilizaremos para ofrecer servicios. Lo recomendable es hacerlo de forma manual, por lo tanto
vamos a tener que ignorar esta parte de la siguiente manera: (despus de cada imagen se presiona la
tecla Entrar enter-)

P g i n a 33 | 85

15- Seleccionado paquetes adicionales:


En este paso de la instalacin, el asistente nos pide seleccionar las herramientas adicionales que
vienen por defecto con el sistema base. Para seleccionar el software adicional, solo es necesario
desplazarte con las flechas cursoras (arriba y abajo) y presionar la tecla Espacio para elegir. Luego
presionas la tecla Entrar (Enter).
Como nosotros necesitamos hacer todo manualmente, para que no quede duda de lo que hacemos,
dejaremos los paquetes que vienen seleccionados por defecto, no ser necesario elegir ningn otro.

P g i n a 34 | 85

16- Instalacin del GRUB:


GNU GRUB (GNU GRand Unified Bootloader) es un gestor de arranque mltiple, desarrollado por
el proyecto GNU que se usa comnmente para iniciar uno, dos o ms sistemas operativos instalados
en un mismo equipo. Esta herramienta se muestra al iniciar el arranque del sistema.
Seleccione S y presione la tecla Entrar (enter)

P g i n a 35 | 85

16- Fin de la instalacin:

En una mquina virtual, solo es necesario presionar la tecla Entrar (enter), esto har que Debian se
reinicie y ya podamos trabajar con un sistema operativo Linux perfectamente instalado. La siguiente
imagen es la que debe aparecerte luego de reiniciar:

Ya se ha completado la parte ms importante del curso: tener a punto la herramienta que vamos a
utilizar. Ahora podemos continuar con la configuracin y actualizacin manual del sistema
operativo.

P g i n a 36 | 85

P g i n a 37 | 85

Actualizacin del sistema operativo con APT

Qu es APT?
Advanced Packaging Tool (Herramienta Avanzada de Empaquetado), abreviado APT, es un
sistema de gestin de paquetes creado por el proyecto Debian. APT simplifica en gran medida la
instalacin y eliminacin de programas en los sistemas GNU/Linux. No existe un programa apt en s
mismo, sino que APT es una biblioteca de funciones C++ que se emplea por varios programas de
lnea de comandos para distribuir paquetes. En especial, apt-get update y apt-upgrade.
Una de las primeras tareas que se debe realizar despus de instalar un sistema operativo Linux, es
actualizar el mismo a travs de su gestor de paquetes. Con esto descargamos las ltimas versiones de
las herramientas que vienen instaladas por defecto. Tambin nos sirve para poder instalar nuevo
software.
Este documento muestra el proceso que debes seguir para poder actualizar el sistema operativo,
tambin puedes apoyarte con el video que describe con mayor detalle este proceso. Para conseguirlo
sigue los siguientes pasos:
1- Borrar el contenido sources.list
Sources.list es el archivo hallado, siguiendo la localizacin completa /etc/apt/sources.list, en
distribuciones GNU/Linux derivadas de Debian GNU/Linux; donde se enlistan las "fuentes" o
"repositorios" disponibles de los paquetes de software candidatos a ser: actualizados, instalados,
removidos, buscados, sujetos a comparacin de versiones, entre otros.
Para poder editarlo tienes que identificarte como superusuario usando el comando su e ingresando
la contrasea de la cuentar root. Digita las siguientes instrucciones:
root@debian-server# cd /etc/apt/
root@debian-server# nano sources.list
Borra el contenido completo del archivo. Una vez que hayas borrado por completo todo el texto que
el archivo traer por defecto, pasaremos al siguiente punto.

P g i n a 38 | 85

2- Generar listas de repositorios


Las listas de repositorios, son las fuentes de donde se descargan las actualizaciones y el software
adicional que necesitamos agregar al sistema operativo. Para generar las listas de repositorios, ingresa
a la direccin: http://debgen.simplylinux.ch/ encontrars una aplicacin web que nos permite seleccionar
las opciones que nos permitirn generar las fuentes adecuadas: (marca las opciones que se describen
en la imagen siguiente)

Se ha elegido, la versin Stable (Wheezy), arquitectura de 32 bits y Estados Unidos como el origen
de los archivos. Los recursos seleccionados son: main (paquetes 100% libres), contrib (paquetes
que no son 100% libre), non-free (Aqu se encuentran paquetes que no pueden considerarse
software libre segn las directivas de Debian, por dar un ejemplo, hay software que puede ser
distribuido e instalado, pero no se tiene acceso a su cdigo fuente). Puedes encontrar mayor
informacin en el siguiente enlace:
http://www.debian.org/doc/manuals/debian-reference/ch-system.es.html#s-ftparchives

Luego de realizar la seleccin, presiona el botn Generate sources.list. La informacin que


mostrara es la siguiente:
deb http://ftp.us.debian.org/debian stable main contrib non-free
deb-src http://ftp.us.debian.org/debian stable main contrib non-free
deb http://ftp.debian.org/debian/ wheezy-updates main contrib non-free
deb-src http://ftp.debian.org/debian/ wheezy-updates main contrib non-free
deb http://security.debian.org/ wheezy/updates main contrib non-free
deb-src http://security.debian.org/ wheezy/updates main contrib non-free

Esa es exactamente la informacin que debes ingresar al archivo sources.list, toma tu tiempo en
editarlo, y cuando ests completamente seguro de que todo est bien, continuas con el siguiente
paso.

P g i n a 39 | 85

3- Guardando los cambios y actualizando el sistema


En informtica, nano es un editor de texto para sistemas Unix basado en curses. Es un clon de Pico,
el editor del cliente de correo electrnico Pine. nano trata de emular la funcionalidad y la interfaz de
fcil manejo de Pico, pero sin la integracin con Pine. Nano est orientado al manejo del teclado, las
opciones de guardar, cerrar, entre otras opciones, necesitan de una combinacin de teclas para
funcionar:

El smbolo ^ hace referencia a la tecla control -Ctrl- acompaado de una letra es una combinacin
de teclas para realizar el proceso descrito. Por ejemplo, si necesitas guardar los cambios, la
combinacin es: Ctrl+O. Y para salir se utiliza la combinacin Ctrl+X. Realiza esas combinaciones
de teclado para guardar y salir de nano.
Una vez realizados esos cambios, procedemos a actualizar el sistema. Para ello sigue las siguientes
instrucciones:
root@debian-server# aptitude update && aptitude upgrade
Son dos instrucciones a la vez:
aptitude update:
Lo que en realidad estamos haciendo es actualizar los repositorios --ver si hay algo nuevo--,
es decir actualizar la lista de todos los paquetes, con la direccin de dnde obtenerlos para
que a la hora de hacer la bsqueda y su posterior descarga, sea ms rpida.
aptitude upgrade:
Lo que hacemos es una actualizacin de nuestro sistema con todas las posibles
actualizaciones que pudiera haber, es decir no slo actualiza nuestro sistema operativo sino
que tambin las aplicaciones que estn contenidas en los repositorios.
En resumen: el update lista los paquetes de los repositorios y el upgrade instala las actualizaciones.
Al final del proceso de actualizacin e instalacin, la pantalla debe arrojar datos parecidos a los de la
siguiente imagen:

La informacin mostrada difiere, ya que es muy probable que en tu caso si existan actualizaciones
que instalar.

P g i n a 40 | 85

http://es.wikipedia.org/wiki/Sources.list
https://help.ubuntu.com/community/AptGet/Howto

P g i n a 41 | 85

P g i n a 42 | 85

Instalar y desinstalar programas desde la terminal


Una Shell de Unix o tambin shell, es el trmino usado en informtica para referirse a un intrprete
de comandos, el cual consiste en la interfaz de usuario tradicional de los sistemas operativos basados
en Unix y similares como GNU/Linux.
En esta ocasin estudiaremos cmo instalar y desinstalar programas usando APT y conexin a
internet. Aunque lo podemos usar sin conexin a Internet, apt est orientado para ser usado de manera
ptima conectado a la red de redes.
Para usar apt, bsicamente debemos:
1. Decirle que actualice la lista de paquetes disponibles
2. Decirle los paquetes que queremos Instalar/desinstalar
Entonces apt se encarga de:
a) Buscar los paquetes en Internet o localmente
b) Solucionar las dependencias (a veces para que un paquete funcione necesita que haya otros
paquetes instalados previamente: se dice que depende de)
c) Descargar de Internet (cuando sea necesario) los paquetes y sus dependencias
d) Instalar y configurar en el orden correcto los paquetes y sus dependencias
Para efectos de prueba, vamos a instalar el editor de texto VIM (del ingls Vi IMproved) es una
versin mejorada del editor de texto vi, presente en todos los sistemas UNIX y GNU/Linux. Para
lograrlo sigue los siguientes pasos:
1- Actualiza las listas de repositorios y el sistema operativo
root@debian-server:# aptitude update aptitude upgrade
Ahora utilizaremos el programa aptitude como interfaz para APT (puedes encontrar ms informacin
sobre aptitude en el siguiente enlace: http://es.wikipedia.org/wiki/Aptitude).
aptitude es una interfaz que lista los paquetes de software y permite al usuario elegir de modo
interactivo cules desea instalar o eliminar. Dispone de un poderoso sistema de bsqueda que utiliza
patrones de bsqueda flexibles, que facilitan al usuario entender las complejas relaciones de
dependencia que puedan existir entre los paquetes.

P g i n a 43 | 85

Digita el comando aptitude, y se ejecutara la interfaz para APT:

Presiona la letra <q> para salir de la interfaz, luego elige la opcin s.


2- Buscar el paquete que queremos instalar y mostrar su informacin
Podemos buscar informacin de los paquetes que vamos a instalar usando los comandos:
root@debian-server:# aptitude search vim
Recuerda que vim es el paquete que servir como ejemplo.

A continuacin se desplegar un listado extenso con los paquetes y dependencias que estn
relacionadas con vim. Lo mismo sucede si ingresas el paquete apache2, por ejemplo.

Tambin podemos obtener la informacin del paquete que queremos instalar utilizando los comandos:
root@debian-server:# aptitude show vim
Muestra informacin sobre el paquete. Nos informa tambin sobre las dependencias del paquete, es
decir, de qu paquetes depende.

P g i n a 44 | 85

A continuacin se muestra la siguiente informacin:

root@debian-server:# aptitude install vim

root@debian-server:# aptitude -d install vim

root@debian-server:# aptitude reinstall vim

install
remove
purge
hold
unhold
markauto
unmarkauto
orbid-version
paquete.
update
upgrade

instala/actualiza paquetes
elimina paquetes
elimina paquetes junto con sus ficheros de configuracin
bloquea paquetes
desbloquea un paquete
marca paquetes como instalados manualmente
desmarca paquetes como instalados manualmente f
prohbe a aptitude actualizar a una versin especfica de un

- descarga las listas de paquetes nuevos/actualizables


- realiza una actualizacin segura

P g i n a 45 | 85

dist-upgrade
paquetes
forget-new
search
show
clean
autoclean
changelog
download
reinstall

- realiza una actualizacin, posiblemente instalando y eliminando


-

olvida qu paquetes son "nuevos"


busca un paquete por nombre y/o expresin
muestra informacin detallada de un paquete
elimina los ficheros de paquetes descargados
elimina los ficheros de paquetes descargados obsoletos
muestra el registro de cambios del paquete
descarga los ficheros .deb para un paquete
descarga y (posiblemente) reinstala un paquete ya instalado

P g i n a 46 | 85

P g i n a 47 | 85

Prctica

Algunas de las tareas que se mencionan en este documento no son evaluadas, la siguiente actividad
es el caso.
Atajos del teclado para la edicin de la lnea de rdenes (Terminal)
Para proveer de una mayor interaccin con la terminal de comandos de Linux, los programadores de
sta dejan a disposicin de los administradores una serie de atajos de teclas que en alguna medida
agilizan el trabajo. Las ms utilizadas son las siguientes:
Ir al principio de la lnea

Ctrl + A

Ir al final de la lnea

Ctrl + E

Borrar hasta el principio de la lnea

Ctrl + U

Borrar hasta el final de la lnea

Ctrl + K

Borrar la palabra a la izquierda

Alt

+ espaciador

Moverse una palabra adelante

Alt

+ F

Moverse una palabra atrs

Alt

+ B

Limpiar la pantalla

Ctrl + L

Pegar la lnea anterior

Ctrl + Y

Repetir el ltimo parmetro

Alt

+ .

tree

P g i n a 48 | 85

Ahora en la carpeta del usuario sin privilegios que tenemos en el sistema, vamos a crear un conjunto
de carpetas para que compruebes la utilidad del paquete que instalaste. Digita las siguientes
instrucciones (Investiga para qu sirve cada instruccin y lo agregas en el documento junto con las
capturas):
usuario@debian: ~$ mkdir Pertenencias
usuario@debian: ~$ cd Pertenencias
usuario@debian: ~/Pertenencias$ mkdir Imagenes Videos Musica www Share
usuario@debian: ~/Pertenencias$ mkdir p Videos/2013/Juicios
usuario@debian: ~/Pertenencias$ mkdir v Imagenes/Wallpapers
usuario@debian: ~/Pertenencias$ mkdir pv Musica/Clasica/Richard\ W
usuario@debian: ~/Pertenencias$ touch Share/public.txt
usuario@debian: ~/Pertenencias$ mkdir -pv www/{lib/db/sql,c/{PIL,Python}}

Una vez terminada la tarea, digita el comando tree, y te mostrar la siguiente pantalla (haz una
captura y la agregas al documento):

P g i n a 49 | 85

P g i n a 50 | 85

Gestin de usuarios y grupos


Cuando se realiza el proceso de instalacin de Debian 7.0, el asistente solicita la contrasea para
poder ingresar como superusuario, y adems pide la informacin para crear un usuario sin privilegios
(es de suponer que ingresa sus datos). Pero existe la posibilidad de que en algn momento sea
necesario incluir ms usuarios al sistema.
La creacin de usuarios es un tema delicado y que no puede ser tomado a la ligera, cada uno de ellos
representa un peligro potencial para el sistema, ya que pueden ingresar por medio de stos, por lo
tanto siempre est la recomendacin de asignar una contrasea segura para que sea difcil de
averiguar.
En este documento se explica el uso del comando useradd que es utilizado por root para crear usuarios.
useradd Gebi

Sus valores por defecto no son muy tiles, por lo tanto hay que aplicar una serie de argumentos que
lo acompaan para poder crear usuarios de manera adecuada.
# useradd -d /home/gebi -s /bin/bash -g users gebi

Las variables que se usan son las siguientes:


-d
-s
-u
-c
-g
-G
-m

dir
shell
uid
string
group

el directorio home del usuario


Shell de inicio de sesin para el usuario.
Establece el UID del usuario. No establecer si no se sabe para qu sirve.
Para establecer un comentario al usuario.
Establece el grupo por defecto al que pertenecer el usuario
Hace que el usuario pertenezca a varios grupos. (Separados por coma: g1, g2)
Copia todos los archivos de la estructura bsica del sistema.

Para eliminar usuarios se utiliza el comando userdel y el nombre del usuario. En ocasiones querr
eliminar todos los archivos del usuario en cuestin (carpeta /home/usuario), se acompaa de la
variable r ms el nombre del usuario.
Una vez que se registra el nuevo usuario, es imprescindible agregar una contrasea segura, para
lograrlo, se debe utilizar el comando passwd ms el nombre del usuario.
Si se desea agregar informacin como: nombre completo y nmeros telefnicos, se debe utilizar el
comando chfn ms el nombre de usuario, luego solo debe completarse la informacin solicitada.

P g i n a 51 | 85

Gestin de grupos
Un grupo es un conjunto de cuentas tratadas como una sola entidad. Usted, como
superusuario, puede determinar qu grupo puede tener tales privilegios sobre un archivo o directorio.
El comando groupadd se utiliza para crear grupos. En la mayora de los casos usted tendr que utilizar
la variable f para evitar problemas de duplicidad de grupos.
# groupadd f developers

Para agregar usuarios a grupos se utiliza el comando:


# gpasswd -a gebi developers

Para eliminar grupos utilice el comando groupdel ms el nombre del grupo que desea eliminar.

P g i n a 52 | 85

P g i n a 53 | 85

Permisos en Linux
La gestin de permisos en Linux (proceso de autorizacin para uso de recursos) es bastante distinta a
la que usa Windows. Linux usa un esquema de permisos bastante ms simple, ya que las ACL de los
recursos slo admiten 3 tipos de usuarios, y bsicamente 3 tipos de permisos. Sin embargo, aunque
es un sistema muy simple, con una buena planificacin permite desarrollar polticas de seguridad lo
suficientemente buenas para el uso cotidiano de un sistema. En Linux cada recurso pertenece a un
usuario, y a un grupo de usuarios.

La columna permisos, consta de 10 caracteres y se divide de la siguiente manera:


-rwxrw-r-- 1 ronald developers

102 jul

8 07:50 file_ronald.py

1er. carcter: Nos indica que tipo de fichero es, los valores posibles para este carcter son: (-)

d : directorio
l : enlace simblico (ver seccin )
b : dispositivo de bloque
c : dispositivo de caracteres
s : socket
p : tubera (pipe)
- : fichero regular

2do 3ro 4to carcter: Es el primer tro de permisos, y nos indican los permisos que el usuario (U)
tiene sobre ese fichero. Este usuario es el que aparece en la lnea del ls: (rwx)
5to 6to 7mo carcter: Es el segundo tro de permisos, y nos indica los permisos que el grupo (G)
tiene sobre ese fichero. Este grupo es el que aparece en la lnea del ls: (rw-)
8vo 9no 10mo carcter: Es el tercer tro de permisos, y nos indica los permisos que los otros (O)
tienen sobre ese fichero. Otros se refieren a cualquier usuario que no sea el usuario del fichero (U)
ni pertenezca al grupo del fichero (G):
(r--)

P g i n a 54 | 85

Para cada uno de estos tres tros vemos que existen tres tipos de permisos fundamentales:

r: read (lectura). El usuario que tenga este permiso podr si es un directorio listar los recursos
almacenados en l, y si es cualquier otro tipo de fichero podr leer su contenido.
w: write (escritura). Todo usuario que posea este permiso para un fichero podr modificarlo.
Si se posee para un directorio se podrn crear y borrar ficheros en su interior.
x: execute (ejecucin). Este permiso para el caso de los ficheros permitir ejecutarlos desde
la lnea de comandos y para los directorios, el usuario que lo posea tendr acceso para realizar
el resto de las funciones permitidas mediante los otros permisos (lectura y/o escritura). Si un
usuario no tiene permiso de ejecucin en un directorio, directamente no podr entrar en el
mismo, ni pasar por l.

Los tres tipos de permisos mencionados poseen una representacin numrica basada en el sistema
octal que parte de representar como 1'' los bits de los permisos otorgados y 0'' para los negados. Luego
se transforma la representacin binaria as obtenida en octal. De esta forma se obtienen para cada tipo
de permiso los siguientes valores:

r = 4
w = 2
x = 1

La combinacin de los tres tipos de permisos para un tipo de usuario oscila desde cero (ningn
permiso) hasta siete (todos los permisos).
En el ejemplo que tratamos, los permisos son:
- rwx rw- r
7

P g i n a 55 | 85

Ejemplos

rwrwx
r-x
r--

=
=
=
=

110
111
101
100

(4
(4
(4
(4

+
+
+
+

2
2
0
0

+
+
+
+

0)
1)
1)
0)

(6
(7
(5
(4

en
en
en
en

octal)
octal)
octal)
octal)

Los permisos "totales'' de un recurso constan de nueve indicadores, donde los tres primeros indican
los permisos asociados al dueo, los otros tres, al grupo y los ltimos, al resto de los usuarios.
Ejemplos:

rwx r-x --- = 111 101 000 (750 en octal)

rw- r-- r-- = 110 100 100 (644 en octal)

Slo el dueo de un recurso siempre tendr derecho a cambiar sus permisos, adems del root, por
supuesto.

Comando chmod
Para cambiar los permisos de un recurso se utiliza el comando chmod.
Sintaxis:
chmod [opciones] <permisos> <ficheros>

Las formas de expresar los nuevos permisos son diversas, se puede emplear la representacin
numrica o utilizando caracteres.
Ejemplo:
# chmod 764 file_ronald.py

P g i n a 56 | 85

P g i n a 57 | 85

SSH: introduccin
Secure Shell (SSH) es un protocolo de conectividad cifrada, utilizada por usuarios, administradores
y aplicaciones para la interaccin en el mantenimiento de sistemas. SSH tiene sus ventajas comparado
con otros servicios tradicionales de comunicacin, como: telnetf, ftpd, rshd y rlogind, normalmente
incluidos en sistemas UNIX o Linux. SSH proporciona un profundo nivel de autenticacin, a
diferencia de los servicios antes mencionados. SSH utiliza nombre de usuario y contrasea
estableciendo comunicacin cifrada entre cliente servidor.
SSH es la herramienta de conexin ms utilizada en el ambiente Linux, y este documento veremos
cmo instalarlo y ponerlo en uso, para conseguir el objetivo, digita las siguientes instrucciones:
root@debian: ~# aptitude install openssh-server ssh

Ahora ya podemos realizar nuestra primera conexin remota al servidor, es decir que en un ambiente
de trabajo real, con un servidor fsico, no tendremos necesidad de estar frente a este y manipularlo,
sino que de manera remota podremos realizar tareas de administracin. (Para poder lograr el siguiente
paso, necesitas configurar la mquina virtual, de tal manera que cuentes con dos tarjetas de red, te
recomiendo que veas el video de instalacin de SSH para poder contar con ello).
Existen muchos programas para lograr la conexin de manera remota, a estos se le conocen como
Software Clientes, el ms utilizado hasta el momento es PuTTY.
PuTTY es un cliente SSH, Telnet, rlogin, y TCP raw con licencia libre. Disponible originalmente
slo para Windows, ahora tambin est disponible en varias plataformas Unix, y se est desarrollando
la versin para Mac OS clsico y Mac OS X. Otra gente ha contribuido con versiones no oficiales
para otras plataformas, tales como Symbian para telfonos mviles. Es software beta escrito y
mantenido principalmente por Simon Tatham, open source y licenciado bajo la Licencia MIT.
Para descargarlo haz clic en el siguiente enlace:
http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe

Una vez descargado, ejectalo y se abrir el siguiente cuadro de dilogo:

P g i n a 58 | 85

1: La direccin IP del servidor: en el video de instalacin de SSH.


2: El puerto por el que escucha el servicio SSH, por defecto utiliza el 22.
Cuando ingreses la informacin solicitada, das clic al botn Open y de inmediato entrars de
manera remota al servidor, ingresa los datos de tu usuario y te dars cuenta que es la misma terminal
de comandos. Puedes identificarte como superusuario y apagar el sistema utilizando el comando halt.

P g i n a 59 | 85

P g i n a 60 | 85

Servidor WEB
Lo primero que vamos a instalar es el conjunto de paquetes por tareas llamado LAMP: este es el
acrnimo usado para describir un sistema de infraestructura de internet que usa las siguientes
herramientas:
a)
b)
c)
d)

Linux, el sistema operativo (ya lo tenemos instalado)


Apache, el servidor web;
MySQL, el gestor de bases de datos;
Perl, PHP, o Python, los lenguajes de programacin. (En nuestro caso ser PHP)

Apache 2.0
root@debian: ~# aptitude install apache2

Una vez instalado, comprueba si est funcionando. Ingresa a un navegador web en la mquina real y
digita la IP el resultado debe ser parecido al de la siguiente imagen:

Ahora habilitamos el mdulo mod_rewrite para crear urls amigables, favoreciendo sobre todo el
posicionamiento en. ste se puede configurar haciendo uso de los archivos htaccess.
root@debian: ~# a2enmod rewrite

Reiniciamos apache
root@debian: ~# invoke-rc.d apache2 reload

MySQL
Ningn servicio web debe prescindir de un gestor de bases de datos relacional, nosotros utilizaremos
MySQL, aunque de momento no lo utilizaremos, pero en las semanas posteriores nos ser de mucha
utilidad para estudiar mtodos de seguridad.
root@debian: ~# aptitude install mysql-server mysql-client

El asistente pedir la contrasea del usuario root de MySQL, ingresa una de tu preferencia, la
contrasea que elijas tendrs que repetirla para efectos de confirmacin.
P g i n a 61 | 85

Una vez que est instalado, comprueba si funciona correctamente, sigue los siguientes pasos para
hacerlo:
root@debian: ~# mysql -u root p
Enter password: (ingresa la clave que escogiste)
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.5.31-0+wheezy1 (Debian)
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> exit (Este es el nico comando que necesitas ingresar)
Bye

Por el momento, con MySQL, es lo nico que necesitamos hacer.

PHP
Ahora ha llegado el momento de instalar un lenguaje de programacin que funcione del lado del
servidor y que, adems, pueda trabajar con bases de datos en MySQL y correr con Apache. Para
efectos de prctica escogeremos PHP, un lenguaje en el que estn trabajados cientos de CMS tiles
para diferentes contextos, como por ejemplo: enciclopedias Wiki, plataforma de aula virtual, redes
sociales, blogs, entre otros. Es necesario mencionar que PHP no puede instalarse solo, sino que es
obligacin incluir los agregados que permiten trabajar con las herramientas antes instaladas:
root@debian: ~# aptitude install php5 php-pear libapache2-mod-php5 php5-mysql

Para todas las interrogantes ingresar la tecla Y.


Comprobaremos si PHP est correctamente instalado, lo primero que haremos es crear un archivo
PHP para enterarnos de los mdulos que tenemos instalados en el servidor (siempre se debe iniciar
por aqu). Todos los archivos que necesitamos que sean vistos por los usuarios que se conectaran a
nuestro servicios se encuentran en el directorio /var/www/. De manera que haremos lo siguiente:
Creamos el archivo info.php
root@debian: ~# nano w /var/www/info.php

Se abrir el editor nano, ahora ingresamos las siguientes lneas


<?php
phpinfo();
?>
P g i n a 62 | 85

Guardamos los cambios. Salimos de nano e ingresamos en el navegador web la siguiente direccin:
http://direcion_ip/info.php
Deber aparecer la informacin que aparece en la siguiente imagen:

Hasta este punto tienes el servicio web ejecutndose adecuadamente en tu servidor (faltan muchas
configuraciones que hay que realizar para que tengamos un servicio ptimo, pero ese tema lo
abordaremos en las semanas que restan).

P g i n a 63 | 85

P g i n a 64 | 85

Servidor FTP (VSFTPD)


FTP (File Transfer Protocol) o Protocolo de Transferencia de Archivos (o ficheros informticos) es
uno de los protocolos estndar ms utilizados en Internet siendo el ms idneo para la transferencia
de grandes bloques de datos a travs de redes que soporten TCP/IP. El servicio utiliza los puertos 20
y 21, exclusivamente sobre TCP. El puerto 20 es utilizado para el flujo de datos entre cliente y
servidor. El puerto 21 es utilizando para el envo de rdenes del cliente hacia el servidor.
Prcticamente todos los sistemas operativos y plataformas incluyen soporte para FTP, lo que permite
que cualquier computadora conectada a una red basada sobre TCP/IP pueda hacer uso de este servicio
a travs de un cliente FTP.
VSFTPD (Very Secure FTP Daemon) es un sustento lgico utilizado para implementar servidores de
archivos a travs del protocolo FTP. Se distingue principalmente porque sus valores por defecto son
muy seguros y por su sencillez en la configuracin, comparado con otras alternativas como Wu-ftpd.
Actualmente se presume que VSFTPD es quiz el servidor FTP ms seguro del mundo.

Instalando equipamiento lgico necesario


root@debian:~# aptitude install vsftpd

Configuracin bsica
root@debian:~# invoke-rc.d vsftpd stop
root@debian:~# nano /etc/vsftpd.conf

Con el editor nano podemos buscar las variables utilizando la combinacin de teclas: Ctrl+w.
Modifique cada una de ellas, tal y como se muestra a continuacin.
anonymous_enable
local_enable
write_enable
connect_from_port_20
chroot_local_user
local_umask
chroot_list_file
chroot_list_enable

=
=
=
=
=
=
=
=

NO
YES
YES
NO
YES
022
/etc/vsftpd.list
YES

La variable local_umask asigna los permisos 755 al directorio del usuario que ingresa al servicio, solo
basta restar el valor 022 777, para obtener los privilegios que sern asignados. Guarde los cambios
y realice el siguiente paso.
Creamos el usuario que ingresar al servicio FTP y asignamos permisos a la carpeta
root@private#
root@private#
root@private#
root@private#

useradd -d /home/ronald -s /bin/bash ftpuser


passwd ftpuser
chown -R ftpuser /home/ronald
chmod 775 /home/ronald

P g i n a 65 | 85

Creamos la lista de usuarios permitidos y agregamos el usuario creado


root@private# nano /etc/vsftpd.list

Agregamos al usuario ftpuser guardamos los cambios y salimos de nano.


Para evitar el error 500, el cual no permitir el ingreso al sistema, es necesario modificar el archivo
shells.
root@private# nano /etc/shells

Agregue al final del archivo la lnea:


/bin/bash # hay que buscar la lnea en el archivo, si est, no agregar.

Guarde los cambios y cierre el editor nano.


Creamos un grupo para usuarios que ingresarn al servicio (agregaremos al usuario recin creado)
root@private# addgroup ftpusers
root@private# usermod -Gftpusers ftpuser

Reiniciamos el servicio
root@debian:~# invoke-rc.d vsftpd start

Ahora ya podemos utilizar el servicio FTP utilizando un software cliente. Recomendamos


FILEZILLA licenciado bajo la Licencia Pblica General de GNU. Soporta los protocolos FTP, SFTP
y FTP sobre SSL/TLS (FTPS). Puedes descargarlo desde su sitio web oficial:
https://filezilla-project.org/

P g i n a 66 | 85

P g i n a 67 | 85

Sistema de nombre de dominios (DNS-BIND9)


BIND (Berkeley Internet Name Domain, anteriormente: Berkeley Internet Name Daemon) es el
servidor de DNS ms comnmente usado en Internet, especialmente en sistemas Unix, en los cuales
es un Estndar de facto. Es patrocinado por la Internet Systems Consortium. BIND fue creado
originalmente por cuatro estudiantes de grado en la University of California, Berkeley y liberado por
primera vez en el 4.3BSD. Paul Vixie comenz a mantenerlo en 1988 mientras trabajaba para la DEC.
Una nueva versin de BIND (BIND 9) fue escrita desde cero en parte para superar las dificultades
arquitectnicas presentes anteriormente para auditar el cdigo en las primeras versiones de BIND, y
tambin para incorporar DNSSEC (DNS Security Extensions). BIND 9 incluye entre otras
caractersticas importantes: TSIG, notificacin DNS, nsupdate, IPv6, rndc flush, vistas,
procesamiento en paralelo, y una arquitectura mejorada en cuanto a portabilidad. Es comnmente
usado en sistemas GNU/Linux.

Instalar bind9 en Debian

Una vez instalado habr que configurar el archivo

Al final del archivo aade las siguientes lneas

zone: indica la creacin de una nueva zona


type: es el tipo de zona (master o slave)
file: indica la ruta donde se encuentra ubicado el fichero que contendr los registros de la
zona.

Es obligatorio acabar todas las lineas con punto y coma;

Aadiendo registros de resolucin directa


A continuacin vamos a crear el fichero donde guardaremos los registros y lo editaremos:

Aadimos las siguientes lneas:

P g i n a 68 | 85

Explicacin:

Primero definimos el nombre de la zona (olocuilta.net,)


IN hace referencia al tipo de protocolo usado (IN = Internet)
SOA es el tipo de registro (State of Authority), indica el servidor que tiene autoridad en la
zona
ns.olocuilta.com es el nombre dado al servidor DNS de esta red (NS viene de Name Server)
Parmetros que estn dentro de los parntesis:
o Nmero de Serie: es el nmero de revisin del archivo de zona. En mi caso yo he
puesto la fecha de la ltima modificacin, es importante actualizar ese campo
siempre que vayamos a editar el archivo de la zona.
o Tiempo de refresco: es el tiempo que tarda el servidor secundario en pedirle al
servidor Maestro la copia de la zona. El servidor DNS secundario compara el nmero
de serie del registro SOA del archivo de zona del servidor DNS principal y el nmero
de serie de su propio registro SOA. Si son diferentes, el servidor DNS secundario
solicitar una transferencia de zona desde el servidor DNS principal. El valor
predeterminado es 3.600 (que es 1 hora).
o Tiempo entre reintentos de consulta: Esto es el tiempo que un servidor secundario
espera para recuperar una transferencia de zona fallida. Este tiempo suele ser menor
al intervalo de actualizacin
o Tiempo de expiracin de zona: es el tiempo antes que un servidor secundario deje de
responder a las bsquedas una vez se haya producido un intervalo de actualizacin
de la zona.
o Tiempo Total de Vida: Tiempo en el que el servidor de nombres mantiene la cach
cualquier registro del recurso de este archivo en base de datos.

Editando el archivo /etc/resolv.conf

En este fichero tenemos que agregar el nameserver 192.168.56.2 que es la IP del servidor DNS.

P g i n a 69 | 85

Ahora resta nicamente reiniciar el servicio:

P g i n a 70 | 85

P g i n a 71 | 85

WEB segura
OpenSSL es un proyecto de software libre basado en SSLeay, desarrollado por Eric Young y Tim
Hudson. Consiste en un robusto paquete de herramientas de administracin y bibliotecas relacionadas
con la criptografa, que suministran funciones criptogrficas a otros paquetes como OpenSSH y
navegadores web (para acceso seguro a sitios HTTPS). Estas herramientas ayudan al sistema a
implementar el Secure Sockets Layer (SSL), as como otros protocolos relacionados con la seguridad,
como el Transport Layer Security (TLS). Este paquete de software es importante para cualquiera que
est planeando usar cierto nivel de seguridad en su mquina con un sistema operativo libre basado en
GNU/Linux. OpenSSL tambin permite crear certificados digitales que pueden aplicarse a un servidor
web, por ejemplo Apache.
Por lo general, los puertos ms comunes que se utilizan para servir sitios web son el 80 y el 443, pero
ambos tienen una enorme diferencia. El primero (80 o http) transfiere informacin por medio de un
navegador web o software con capacidades de conexin a internet por medio de ese protocolo, sin
embargo todos los datos viajan desnudos, es decir que cualquier usuario con conocimientos de
seguridad informtica puede escuchar las conversaciones que ocurren entre el cliente y el servidor
(muy parecido al viejo telnet) utilizando un software apropiado para esto.
Por ningn motivo se debe desestimar el puerto 80, aunque sea vulnerable al ataque Man-In-TheMiddle (hombre en el medio), ya que es muy til para servir sitios web estticos, servidor de archivos
o mirror de repositorios para un sistema operativo, sin embargo no es apropiado para interactuar con
el usuario y transferir informacin confidencial (correo electrnico, salas de chat, banca en lnea,
comercio electrnico), porque toda la informacin puede ser interceptada. Para este propsito es
muy til utilizar el puerto 443 (https) que no es otra cosa que el puerto http seguro, es decir que las
conversaciones entre el cliente y el usuario son cifradas aplicando firmas digitales, por lo tanto
entender estos datos resulta casi imposible.
Para identificar qu protocolo utiliza algn sitio web, simplemente debemos fijarnos en la barra de
navegacin. La direccin de un sitio que transfiere la informacin por el puerto 80 luce de la siguiente
manera:

La direccin de un sitio web que utiliza el puerto 443, luce as:

El cono del candado y la franja verde indican que la transferencia por medio del sitio web en cuestin
es cifrada y solo el usuario y el servidor pueden ver la conversacin por medio de este protocolo. Esto
sin lugar a dudas da confianza a los usuarios. Incluso puede comprobar como: Facebook, Google,
Twitter lo utilizan.

P g i n a 72 | 85

OpenSSL y Apache
A continuacin aplicaremos seguridad al servidor apache, para que pueda servir y escuchar por el
puerto 443. Primero instalamos el equipamiento lgico necesario:
# Apache
taller ~ # aptitude install apache2
# Habilitando el mdulo SSL
taller ~ # a2enmod ssl
# Reiniciamos el servicio
taller ~ # invoke-rc.d apache2 restart

Es necesario crear los certificados de seguridad, se recomienda crear un directorio para almacenarlos,
y de esta manera tener orden en la estructura de directorios de nuestro sistema de archivos. Crearemos
un certificado de seguridad vlido durante 365 das (un ao).
# Creamos el directorio
taller ~ # mkdir /etc/apache2/ssl
# Creamos el certificado (una sola lnea)
taller ~ # openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout
/etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt

A continuacin debemos ingresar la informacin necesaria para nuestra firma digital (el texto en color
es la informacin que ingresamos).
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
----Country Name (2 letter code) [AU]:SV
State or Province Name (full name) [Some-State]:San Miguel
Locality Name (eg, city) []:SM
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Security Inc
Organizational Unit Name (eg, section) []:Dept de seguridad
Common Name (e.g. server FQDN or YOUR name) []:example.com
Email Address []:webmaster@securityinc.com

Editamos el archivo default-ssl para agregar el certificado a Apache aplicar el cifrado de


informacin. Agregamos las lneas que aparecen en color rojo.
# editor nano mostrando nmero de lneas
taller ~ # nano c /etc/apache2/sites-available/default-ssl

P g i n a 73 | 85

Buscamos las lneas 35, 42 y 43; editamos tal como aparece en el siguiente recuadro:
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key

Guardamos los cambios y activamos SSL para apache:


taller ~ # a2ensite default-ssl
taller ~ # invoke-rc.d apache2 restart

Ahora puede comprobar la navegacin por el puerto 80 y 443, las diferencias son notables, y se
muestran en las imgenes siguientes:
HTTP

HTTPS

Solo hacemos clic en el botn Continuar de todos modos (ya explicaremos el porqu de este error).
Notaremos que el usuario puede navegar por cualquiera de las dos modalidades (versin segura o no
segura) pero es un error dejar habilitada esa posibilidad, lo ideal es re direccionar del puerto 80 al 443
(como lo hace Facebook) una vez que el usuario acceda al sitio web en cuestin. Esto se logra
realizando una pequea modificacin en el servidor web que estemos utilizando. Veamos cmo
lograrlo con Apache:
# editamos el archivo default
taller ~ # nano /etc/apache2/sites-available/default

P g i n a 74 | 85

Agregamos la lnea de texto en color rojo:


<VirtualHost *:80>
ServerAdmin webmaster@localhost
Redirect permanent / https://192.168.56.102/
DocumentRoot /var/www

Comprobamos que funciona correctamente.

Por qu Error SSL?


No hay nada que temer, ya que la seguridad ha sido agregada al servidor Apache, lo que sucede en
realidad es que el navegador no reconoce como vlida la firma que est emitiendo el certificado de
seguridad. Caso contrario es con las compaas como Google, Facebook y Scotiabank (por mencionar
algunos) ellos utilizan firmas digitales reconocidas por los navegadores, por eso la razn de la famosa
franja verde y el cono del candado.

P g i n a 75 | 85

P g i n a 76 | 85

El Firewall de Linux
Existen varias aplicaciones de cortafuegos (firewall) para Linux, pero independientemente de cul se
use, el corazn de todos estos programas es una sola aplicacin bastante poderosa que est integrada
en el mismo Kernel de sistema operativo, su nombre: iptables.
Pero por qu es importante un firewall? Porque su propsito es controlar el flujo de datos que salen
o entran por una interfaz de red. Este se construye mediante un filtro de paquetes, que es un cdigo
que lee el encabezado de un paquete de red que recibe e inmediatamente decide si aceptarlo,
rechazarlo o redirigirlo antes de alcanzar un proceso local (demonio: ssh, vsftpd). En Linux, el
filtro de paquetes es parte del ncleo.
Independiente del sistema operativo, un firewall es un programa que se ejecuta en un Gateway,
Bridge, PC, Laptop o telfono inteligente capaz de filtrar los paquetes de red entrantes, salientes y
reenviarlos a un proceso previamente definido. iptables puede dar una sensacin falsa de seguridad.
No existe red completamente segura, aunque esta herramienta es considerada de primera lnea para
la defensa de la informacin, es necesario disponer de otros mecanismos de vigilancia ante
actividades extraas para mantener el sistema seguro.

Filtro de datos
El ncleo parte con una tabla que contiene tres listas bsicas de reglas llamadas cadenas (chain):
INPUT, OUTPUT y FORWARD, respectivamente (entrada, salida y redireccin). Cuando un
paquete entra a una interfaz de red, el ncleo examina primero el destino del paquete y decide que
ruta tomar (INPUT o FORWARD). Luego el paquete es examinado en la cadena, en donde la decisin
de desechar (DROP) o aceptar (ACCEPT) el paquete es tomada. Si la decisin es aceptada, el paquete
contina hacia el destino, siendo recibido por algn proceso local (demonio). En cambio, si la decisin
es desechar, el paquete es descartado completamente, muriendo en el lugar, antes de alcanzar un
proceso local.
Una cadena es entonces una lista de reglas de control. Cada regla dice, Si el encabezado del paquete
es de esta manera, aplico tal accin sobre l. La regla puede estar compuesta de una o mltiples
condiciones. Si cualquiera de las condiciones de la regla no se cumple, la prxima regla es consultada.
Importante: iptables lee las reglas implcitas en una cadena desde arriba hacia
abajo. Detendr su bsqueda en la primera coincidencia que encuentre.

P g i n a 77 | 85

Reglas especficas
Las opciones ms comunes son

Opcin

Descripcin

-A

Aade una cadena

-i

Define una interfaz de trfico entrante

-o

Define una interfaz de trfico saliente

-j

Establece una regla de destino del trfico (ACCEPT, DROP,


REJECT)

-m

Define que se aplique la regla si hay coincidencia especfica.

--state
--to-source

Define una lista separada por comas de distinto tipo de estados de


las conexiones. (INVALID, ESTABLISHED, NEW, RELATED)
Define qu IP reporta al trfico externo

-s

Define trfico de origen.

-d

Define trfico de destino

--source-port
--destination-port

Define el puerto desde el que se origina la conexin


Define el puerto hacia el que se dirige la conexin

-t

Tabla a utilizar, puede ser nat, filter, mangle, o raw.

-D

Elimina una cadena o la primera coincidencia que encuentre


P g i n a 78 | 85

Una instalacin Linux por defecto, trae consigo una configuracin iptables vaca, que podemos
observar ingresando el comando iptables L, su aspecto es el siguiente:

taller ~ # iptables -L
Chain INPUT (policy ACCEPT)
target
prot opt source

destination

Chain FORWARD (policy ACCEPT)


target
prot opt source

destination

Chain OUTPUT (policy ACCEPT)


target
prot opt source

destination

Agregando reglas
Supongamos que queremos aadir una regla que permita que cualquier usuario pueda conectarse al
puerto 22. Recuerde que el puerto 22 es designado por defecto al protocolo SSH. Por supuesto, un
buen administrador de sistemas tomar otras medidas de seguridad, inclusive cambiar el puerto 22
por uno totalmente inesperado, esto puede lograrlo modificando el archivo sshd_config, pero como
este es solamente un ejemplo, continuaremos con el nmero de puerto por defecto.
taller ~ # iptables -I INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
taller ~ # iptables -L
Chain INPUT (policy ACCEPT)
target

prot opt source

destination

ACCEPT

tcp

anywhere

--

anywhere

tcp dpt:ssh

Examinemos el comando:

-I
INPUT
-i
-p
--dport
-j

Ingresamos una nueva regla


Especificamos a qu cadena pertenece esta regla (paquetes entrantes)
Establecemos la interfaz de red que recibir el paquete (eth0)
Protocolo (tcp, udp)
Puerto de destino (22 en el ejemplo SSH)
Salto para la toma de una decisin (para el ejemplo es aceptado)

Como el lector puede comprobar, las reglas no son tan complejas (aunque existen algunas que
requieren de un vasto conocimiento sobre el tema). Lgicamente, estas reglas se pueden reforzar para
mayor seguridad. A continuacin veremos una variacin de la regla anterior, en esta ocasin solo
permitiremos que una determinada direccin IP, pueda acceder al puerto 22.

P g i n a 79 | 85

taller ~ # iptables -A INPUT -p tcp -s 192.168.56.1 --dport 22 -j ACCEPT


taller ~ # iptables -A INPUT -p tcp --dport 22 -j REJECT

En la primer regla ingresada, se agreg la opcin -s que significa cul es la direccin IP origen del
paquete, es decir la direccin IP del host que se permitir el acceso al puerto 22. A continuacin se
agrega otra regla que indica que todas las dems peticiones de conexin hacia SSH sern rechazadas.
Incluso se puede determinar que la conexin al puerto 22 solo podr ser realizada desde una direccin
MAC especfica (la complejidad de las reglas depende de la paranoia del administrador de sistemas)
taller ~ # iptables -A INPUT -m mac --mac-source 00:e0:6c:f1:41:6d -p tcp \
--dport ssh -j ACCEPT
taller ~ # iptables -A INPUT -p tcp --dport ssh -j REJECT

(La barra invertida se utiliza para salto de lnea sin ejecutar la instruccin)

Nuevamente el lector puede comprobar que estas reglas bsicas no son para nada complejas. A
continuacin escribiremos una regla para descartar peticiones ICMP desde el servidor. A pesar de ser
una regla bsica, puede salvar al equipo de un ataque puesto que el atacante pensar que la direccin
IP a la que est realizando ping no ha sido asignada, o que el equipo que la posee est desconectado.
taller ~ # iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

Los nicos cambios notables son la opcin icmp-type y echo-request, que son las peticiones de
tipo ICMP y la accin que se ha determinado como respuesta (en el ejemplo: no se hace nada).

Importante: Es posible utilizar REJECT en lugar de DROP, la diferencia entre


estas dos acciones radica en que DROP descarta silenciosamente los paquetes
entrantes y REJECT emite un error ICMP como respuesta.
Una regla en la cadena OUTPUT tiene la misma secuencia de comandos que convergen en una
decisin (-j ACCEPT, DROP o REJECT), un ejemplo sencillo:
taller ~ # iptables -A OUTPUT -p tcp --dport telnet -j REJECT

Simplemente le estamos informando a iptables que todas las conexiones salientes para el servicio
telnet sean rechazadas.
Una regla tambin puede ser eliminada. Imagine que el administrador se haya equivocado en una
regla y esta evite el funcionamiento adecuado de alguno de los servicios. Veamos como deshacernos
de una regla:
taller ~ # iptables -D INPUT -p icmp --icmp-type echo-request -j DROP

P g i n a 80 | 85

Creacin de un firewall bsico


En un cortafuegos no hay que perder el objetivo (filtrar datos). Es necesario aclarar que la nica tabla
que se ha tratado en este documento, es, en efecto, la tabla de filtro de contenidos, cuyo nico
propsito es permitir o denegar el envo de informacin para acceder a un servicio.
Para estudiar un poco la tabla nat le invitamos a estudiar el video (paso a paso) Linux como Router.
Tambin es necesario aclarar que las reglas que ingresamos a iptables solo estn presentes mientras
la computadora est funcionando, es decir que una vez que la computadora se reinicie o apague, estas
reglas se borrarn. Obviamente Linux posee muchas alternativas para que estas reglas no se borren.
Mencionamos algunas de ellas:

Escribir estas reglas de manera ntegra al archivo rc.local del SO Linux Debian. Esto har
que las reglas de iptables se ejecuten cada vez que arranque del sistema.
Crear un Bash Script con las reglas de iptables, otorgar permisos de ejecucin copiar la ruta
de este archivo en rc.local.
Instalar algn mdulo persistente que mantenga las reglas aunque la computadora se apague.

Cualquiera de las anteriores es vlida. En este documento estudiaremos la tercera alternativa (la
instalacin de una herramienta persistente), la cual conseguimos con la siguiente instruccin:
taller ~ # aptitude install iptables-persistent

Iniciamos la herramienta:
taller ~ # invoque-rc.d iptables-persistent start

Lo primero es definir las reglas necesarias para los servicios que vamos a ofrecer, partiendo de una
decisin muy importante:

Permitimos todo y bloqueamos los servicios que no utilizaremos o


Bloqueamos todo y permitimos solo los servicios que utilizaremos.

Evidentemente la segunda opcin es la ms acertada: bloquear todo y solamente liberar lo que


necesitamos. Para conseguir este propsito ingresamos las reglas a continuacin: (estas reglas no
permitirn entrada de informacin, por eso debemos permitir que nuestra propia computadora tenga
permisos para entrar datos, as como tambin aceptar paquetes de peticiones que se originen en la
misma)
taller ~ # iptables P INPUT DROP
taller ~ # iptables -A INPUT -i lo -j ACCEPT
taller ~ # iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

P g i n a 81 | 85

Iniciamos ahora con las reglas para los servicios que ofrecemos
# Permitimos el acceso a los puertos 80 y 443
taller ~ # iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
taller ~ # iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
# permitimos el acceso
taller ~ # iptables -A
taller ~ # iptables -A
taller ~ # iptables -A

al servicio FTP (puertos 20 y 21)


INPUT -p tcp --dport 20 -j ACCEPT
INPUT -p tcp --dport 21 -j ACCEPT
INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

En la ltima regla aplicamos el flag m conntrack, esta regla es especial porque crea un registro que
mantiene informacin de cada conexin y toda la informacin necesaria para esa conexin, esto es
realmente til para las conexiones FTP.
# Permitimos el trfico DNS
taller ~ # iptables -A INPUT -p tcp --dport 53 -j ACCEPT
taller ~ # iptables -A INPUT -p udp --dport 53 -j ACCEPT

El administrador puede definir, adems, algunas restricciones (bloquear ip, dar acceso solo a ciertas
ip a servicios especficos, entre otros).
Ahora solo resta guardar las reglas que se han especificado:
taller ~ # invoque-rc.d iptables-persistent save
# o
taller ~ # /etc/init.d/iptables-persistent save

Hasta este punto el lector notar que iptables no es tan complejo (no obstante existen reglas que s lo
son). Siempre es importante conocer las bases de herramientas tiles como esta, una vez que hemos
ganado un poco de conocimiento es recomendable (mientras el estudio continua) apoyarse de otras
herramientas que facilitan la insercin de reglas en iptables, una de ellas (muy gentil y cmoda de
usar) es firehol (http://firehol.org/) cuyo eslogan es iptables para humanos. Le invitamos a que
estudie la documentacin, notar la gran diferencia que existe.
No olvide la importancia de conocer las bases de iptables en crudo, esto puede informar al
administrador sobre alguna regla mal escrita que est causando alguna incomodidad en el servidor.

P g i n a 82 | 85

SSH seguro
Lo primero que un administrador de sistemas debe tener en cuenta es que la seguridad no es un
producto, es un proceso. Los administradores de servidores, muchas veces cometen el error de creer
y evangelizar con la teora de que x software es ms seguro que y software, cuando lo correcto
es decir que tal sistema permite tal mecanismo que permite la seguridad en tal sentido. Para que un
sistema sea considerado seguro en determinado grado, deben denirse, respetarse y revisarse
continuamente polticas y procedimientos tendientes a lograr ese objetivo.
SSH no es solo un reemplazo de telnet, rlogin, rexec, ftp, XDMCP y otros. Adems de brindar todas
estas posibilidades con, bsicamente, un nico programa, brinda comunicaciones seguras (cifradas)
entre el cliente y el servidor.
Las tcnicas de cifrado consisten en manipular la informacin de asegurar las siguientes propiedades:
1. Confidencialidad: no puede acceder a la informacin nadie que no sea su legtimo
destinatario.
2. Integridad: la informacin no puede ser alterada (sin ser esto detectado) en el trnsito desde
el emisor hacia el destinatario.
3. No repudio: el creador o emisor de la informacin no puede dejar de conocer su autora.
4. Autenticacin: tanto el emisor como el receptor pueden confirmar la identidad de la otra
parte involucrada en la comunicacin.
En definitiva, para lo que nos interesa, prestaremos atencin a tipos de algoritmos: los de cifrado
simtrico (con clave compartida) y los de cifrado asimtrico (con clave pbica y clave privada).
Cifrado simtrico
Esta tcnica consiste en el uso de una clave que es conocida tanto por el emisor como por el receptor
(y, se supone, por nadie ms). Al respecto del algoritmo utilizado, es deseable que cumpla varias
propiedades, entre ellas:

Que sea muy difcil descifrar el mensaje sin conocer la clave.


Que la publicidad del algoritmo de cifrado/descifradono tenga inuencia en la seguridad del
mismo. (Nunca un algoritmo de cifrado puede basarse en la suposicin de que nadie conoce
exactamente cmo funciona!)
Que una mnima alteracin de la clave, produzca grandes cambios en el mensaje cifrado.

La principal desventaja del cifrado simtrico consiste en que ambas partes deben conocer la clave:
Un secreto compartido no es un secreto por mucho tiempo.
Entre los algoritmos de cifrado simtrico ms utilizados podemos nombrar 3DES, Blowsh, IDEA,
CAST128 y Arcfour.
Cifrado asimtrico
La Wikipedia lo describe de la siguiente manera: es el mtodo criptogrfico que usa un par de claves
para el envo de mensajes. Las dos claves pertenecen a la misma persona que ha enviado el mensaje.
Una clave es pblica y se puede entregar a cualquier persona, la otra clave es privada y el propietario
debe guardarla de modo que nadie tenga acceso a ella. Adems, los mtodos criptogrficos garantizan
P g i n a 83 | 85

que esa pareja de claves slo se puede generar una vez, de modo que se puede asumir que no es
posible que dos personas hayan obtenido casualmente la misma pareja de claves.
Si el remitente usa la clave pblica del destinatario para cifrar el mensaje, una vez cifrado, slo la
clave privada del destinatario podr descifrar este mensaje, ya que es el nico que la conoce. Por tanto
se logra la confidencialidad del envo del mensaje, nadie salvo el destinatario puede descifrarlo.

1. Ana redacta un mensaje


2. Ana cifra el mensaje con la clave pblica de David
3. Ana enva el mensaje cifrado a David a travs de internet, ya sea por correo electrnico,
mensajera instantnea o cualquier otro medio
4. David recibe el mensaje cifrado y lo descifra con su clave privada
5. David ya puede leer el mensaje original que le mand Ana

1. David redacta un mensaje


2. David firma digitalmente el mensaje con su clave privada
3. David enva el mensaje firmado digitalmente a Ana a travs de internet, ya sea por correo
electrnico, mensajera instantnea o cualquier otro medio
4. Ana recibe el mensaje firmado digitalmente y comprueba su autenticidad usando la clave
pblica de David
5. Ana ya puede leer el mensaje con total seguridad de que ha sido David el remitente
El algoritmo criptogrfico que se utiliza para generar la firma digital con SSH, se le conoce como
llave pblica RSA.
El algoritmo de clave pblica RSA fue creado en 1978 por Rivest, Shamir y Adlman, y es el sistema
criptogrfico asimtrico ms conocido y usado. Estos seores se basaron en el artculo de DiffieHellman sobre sistemas de llave pblica, crearon su algoritmo y fundaron la empresa RSA Data
Security Inc., que es actualmente una de las ms prestigiosas en el entorno de la proteccin de datos.
El sistema RSA se basa en el hecho matemtico de la dificultad de factorizar nmeros muy grandes.
Para factorizar un nmero el sistema ms lgico consiste en empezar a dividir sucesivamente ste
P g i n a 84 | 85

entre 2, entre 3, entre 4,..., y as sucesivamente, buscando que el resultado de la divisin sea exacto,
es decir, de resto 0, con lo que ya tendremos un divisor del nmero.
Para mayor informacin puedes visitar los siguientes enlaces:
http://es.tldp.org/Tutoriales/doc-ssh-intro/introduccion_ssh-0.2.pdf
http://neo.lcc.uma.es/evirtual/cdd/tutorial/presentacion/rsa.html

P g i n a 85 | 85

You might also like