Download sistema operativo linux

Document related concepts
Transcript
SISTEMA OPERATIVO LINUX
JOVITA INES OCHOA
LUIS DAVID VALENCIA
JUAN DIEGO OSSA
JULIAN DAVID GOMEZ
Gestion de redes de datos
298665
SENA – CTMA
Medellin
2012
INTRODUCCIÓN
Linux es un sistema operativo, compatible unix. Dos características muy peculiares lo diferencian
del resto de sistemas que podemos encontrar en el mercado, la primera, es que es libre, esto
significa que no tenemos que pagar ningún tipo de licencia a ninguna casa desarrolladora de
software por el uso del mismo, la segunda, es que el sistema viene acompañado del código fuente.
el sistema lo forman el núcleo del sistema (kernel) más un gran número de programas / bibliotecas
que hacen posible su utilización. Muchos de estos programas y bibliotecas han sido posibles
gracias al proyecto gnu, por esto mismo, muchos llaman a linux, gnu/linux, para resaltar que el
sistema lo forman tanto el núcleo como gran parte del software producido por el proyecto gnu.
LINUX
Linux es, a simple vista un sistema operativo. Es una implementación de libre distribución UNIX
para computadoras personales (PC), servidores, y estaciones de trabajo. Fue desarrollado para el
i386 y ahora soporta los procesadores i486, Pentium, Pentium pro y Pentium II, así como los
clones AMD y cyrix. También soporta maquinas basadas en SPARC, DEC alpha, powerPC/
powerMac y Mac.
Como sistema operativo, Linux es muy eficiente y tiene un excelente diseño. Es multitarea,
multiusuario, multiplataforma y multiprocesador; en las plataformas de Intel corre en modo
protegido; protege la memoria para que un programa no pueda hacer caer el resto del sistema;
carga solo las partes de los programas que usan; comparte la memoria entre programas
aumentando la velocidad y disminuyendo el uso de la memoria, usa un sistema de memoria virtual
por paginas; utiliza toda la memoria libre para cache, permite usar bibliotecas enlazadas tanto
estáticas como dinámicamente; se distribuye con código fuente; usa hasta 64 consolas virtuales;
tiene un sistema de archivos avanzado pero puede usar los de otros sistemas; y soporta redes
tanto en TCP/IP y en otros protocolos.
HISTORIA DE LINUX
Linux hace su aparición a principios de la década de los noventa, era el año 1991 y por aquel
entonces un estudiante de informática de la universidad de Helsinki, llamado Linus Torvalds
empezó, como una afición y sin poderse imaginar a lo que llegaría este proyecto, a programar la
primera línea de códigos de este sistema operativo llamado LINUX.
Este comienzo estuvo inspirado en MINIX, un pequeño sistema de unix desarrollado por Andy
Tanenbaum. Las primeras discusiones sobre Linux fueron en el grupo de noticias comp.os.minix,
en estas discusiones se hablaba sobre todo del desarrollo de un pequeño sistema Unix para
usuarios de Minix que querían mas.
Linus nunca anuncio la versión 0.01 de Linux esta versión no era ni siquiera ejecutable, solamente
incluía los principios del núcleo del sistema, estaba escrita en lenguaje ensamblador y asumía que
uno tenía acceso a un sistema minix para su compilación.
El 5 de octubre de 1991, linus anuncia la primera versión oficial de Linux versión 0.02. Con esta
versión Linux pudo ejecutar bash y gcc pero no mucho mas funcionaba. En este estado de
desarrollo ni se pensaba en los términos soporte, documentación, distribución, después de la
versión 0.03, Linux salto en la numeración hasta el 0.10. Mas y mas programadores alo largo y
ancho de internet empezaron a trabajar en el proyecto y después de sucesivas revisiones, Linux
incremente el número de versión hasta 0.95. Un tiempo después la versión estaba en 0.99 y la
versión 1.0 no llega hasta el 14 de marzo de 1994. Desde entonces no se a parado de desarrollar,
la versión actual del núcleo es la 2.2 y sigue avanzando día a día con la meta de perfeccionar el
sistema.
LINUS TORVALDS
Linus Benedict Torvalds nació en Helsinki, Finlandia, el año 1969. Empezó a "trabajar" con
ordenadores a los 10 años, cuando su abuelo le compró un Comodore el año 1980. Éste buen
señor era un matemático y estadista. Trabajaba a la Universidad y fue quién "enganchó" al mundo
de los computadores a nuestro buen amigo Linus.
Con el paso del tiempo, Linus pasó a tener un Sinclair QL, un gran ordenador de Clive Sinclair
(creador del conocido Spectrum), que tenía algún pequeño error de diseño. Linus se sintió
especialmente atraído por esta máquina, después de crear aplicaciones para éstacomputadora y
de haber retocado su hardware con la finalidad de adaptarlo a sus necesidades. El problema que
tenía dicha máquina era que los recursos eran insuficientes para poder llevar a la práctica los
planes de Linus. Además, no era un equipo compatible. Así pues, el mes de enero de 1991 compró
su primer PC, un 386.
Retrocedamos otra vez en el tiempo, hasta 1988. Éste año fue cuando Linus entró a la Universidad.
Este mismo año fue cuando un sistema operativo didáctico, basado en Unix y creado por Andy
Tannenbaum, empezó a cobrar importancia. Dicho sistema operativo era el famoso Minix.
Linus entró a formar parte de la comunidad de usuarios de Minix. Tannenbaum cometió un error
en su sistema operativo. Era demasiado limitado, tanto técnicamente como políticamente, es
decir, en ningún momento tuvo en cuenta la posibilidad de incluir Minix al proyecto GNU (creado
el año 1983 por Richard Stallman). En realidad, la creación de Andy Tannenbaum estaba pensada
para ser distribuida comercialmente. Su principal error fue ceder todos los derechos a Prentice
Hall, que empezó a cobrar 150 dólares por licencia (unas 22.500 ptas. / 135.23 euros).
Así pues, Linus tomó la decisión de cambiar esta política debido a que el sistema Minix era ideal
para los estudiantes de sistemas operativos, y su precio era considerablemente alto. Llegamos de
nuevo al año 1991, cuando Linus se acabó de comprar su primer 386. En aquellos momentos, la
intención de nuestro amigo era clara: crear un nuevo Kernel de UNIX basado en el Kernel de Minix
y modificarlo periódicamente de manera que fuera capaz de ejecutar aplicaciones GNU.
A pesar de todo, no toda la vida del Sr. Linus ha estado dedicada exclusivamente al sistema
operativo Linux...
Actualmente Linus Torvalds vive desde el año 1997 en Santa Clara, California, junto con su esposa
Tove y sus dos hijas, Patricia Miranda y Daniela. Le encanta jugar con sus dos pequeñas. Está
trabajando para Transmeta, aunque nadie no sabe demasiado bien en qué trabaja. Parece ser que
existe una cláusula en su contrato que le impide revelar dicha información. De todas formas, se
sabe que Transmeta está desarrollando un nuevo procesador con un juego de instrucciones RISC
capaz de ejecutar código x86.
Tal vez una de las aficiones más conocidas de Linus es que le gusta la cerveza, más aún si es
Guinness. Así lo demostraron los miembros del SVLUG (Silicón Valley Linux User Group) cuando
Linus fue a visitarlos para llevar a cabo una conferencia y le regalaron una caja de cerveza...
Poca cosa más de saber de este personaje que ha cambiado la forma de ver los ordenadores
durante estos últimos años y que ha conseguido dar un buen empujón al proyecto GNU.
CARACTERISTICAS DE LINUX
Multitarea: la palabra multitarea describe la habilidad de ejecutar varios programas al
mismo tiempo.
Multiusuario: muchos usuarios usando la misma maquina al mismo tiempo.
Multiplataforma: las plataformas en las que en un principio se puede utilizar Linux son
386-, 486-. Pentium, Pentium Pro, Pentium II,Amiga y Atari, también existen versiones
para su utilización en otras plataformas, como Alpha, ARM, MIPS, PowerPC y SPARC.
Multiprocesador: Soporte para sistemas con más de un procesador está disponible para
Intel y SPARC. Funciona en modo protegido 386.
Protección de la memoria entre procesos, de manera que uno de ellos no pueda colgar el
sistema.
Carga de ejecutables por demanda: Linux sólo lee del disco aquellas partes de un
programa que están siendo usadas actualmente.
Política de copia en escritura para la compartición de páginas entre ejecutables: esto
significa que varios procesos pueden usar la misma zona de memoria para ejecutarse.
Cuando alguno intenta escribir en esa memoria, la página (4Kb de memoria) se copia a
otro lugar. Esta política de copia en escritura tiene dos beneficios: aumenta la velocidad y
reduce el uso de memoria.
Memoria virtual usando paginación (sin intercambio de procesos completos) a disco: A
una partición o un archivo en el sistema de archivos, o ambos, con la posibilidad de añadir
más áreas de intercambio sobre la marcha Un total de 16 zonas de intercambio de 128Mb
de tamaño máximo pueden ser usadas en un momento dado con un límite teórico de 2Gb
para intercambio. Este límite se puede aumentar fácilmente con el cambio de unas
cuantas líneas en el código fuente.
La memoria se gestiona como un recurso unificado para los programas de usuario y para el
caché de disco, de tal forma que toda la memoria libre puede ser usada para caché y ésta
puede a su vez ser reducida cuando se ejecuten grandes programas.
Librerías compartidas de carga dinámica (DLL's) y librerías estáticas.
Todo el código fuente está disponible, incluyendo el núcleo completo y todos los drivers,
las herramientas de desarrollo y todos los programas de usuario; además todo ello se
puede distribuir libremente. Hay algunos programas comerciales que están siendo
ofrecidos para Linux actualmente sin código fuente, pero todo lo que ha sido gratuito
sigue siendo gratuito.
Emulación de 387 en el núcleo, de tal forma que los programas no tengan que hacer su
propia emulación matemática. Cualquier máquina que ejecute Linux parecerá dotada de
coprocesador matemático. Por supuesto, si el ordenador ya tiene una FPU (unidad de
coma flotante), esta será usada en lugar de la emulación, pudiendo incluso compilar tu
propio kernel sin la emulación matemática y conseguir un pequeño ahorro de memoria.
Soporte para muchos teclados nacionales o adaptados y es bastante fácil añadir nuevos
dinámicamente.
Consolas virtuales múltiples: varias sesiones de login a través de la consola entre las que
se puede cambiar con las combinaciones adecuadas de teclas (totalmente independiente
del hardware de video). Se crean dinámicamente y puedes tener hasta 64.
Soporte para varios sistemas de archivo comunes, incluyendo minix-1, Xenix y todos los
sistemas de archivo típicos de System V, y tiene un avanzado sistema de archivos propio
con una capacidad de hasta 4 Tb y nombres de archivos de hasta 255 caracteres de
longitud.
Acceso transparente a particiones MS-DOS (o a particiones OS/2 FAT) mediante un
sistema de archivos especial: no es necesario ningún comando especial para usar la
partición MS-DOS, esta parece un sistema de archivos normal de Unix (excepto por
algunas restricciones en los nombres de archivo, permisos, y esas cosas). Las particiones
comprimidas de MS-DOS 6 no son accesibles en este momento, y no se espera que lo sean
en el futuro. El soporte para VFAT (WNT, Windows 95) ha sido añadido al núcleo de
desarrollo y estará en la próxima versión estable.
Un sistema de archivos especial llamado UMSDOS que permite que Linux sea instalado en
un sistema de archivos DOS.
Sistema de archivos de CD-ROM que lee todos los formatos estándar de CD-ROM.
TCP/IP, incluyendo ftp, telnet, NFS, etc.
AppleTalk.
Diversos protocolos de red incluidos en el kernel: TCP, IPv4, IPv6, AX.25, X.25, IPX, DDP,
Netrom, etc.
¿Qué son las distribuciones de Linux?
Una distribución es un modo de facilitar la instalación, la configuración y el mantenimiento de un
sistema GNU/Linux. Al principio, las distribuciones se limitaban a recopilar software libre,
empaquetarlo en disquetes o CD-ROM y redistribuirlo o venderlo.
Ahora las grandes distribuciones -RedHat, SuSE, Caldera, Mandrake, Corel Linux, Turbo Linux.- son
potentes empresas que compiten entre sí por incluir el último software, a veces también software
propietario, con instalaciones gráficas capaces de auto detectar el hardware y que instalan un
sistema entero en unos cuantos minutos sin apenas preguntas.
Entre las distribuciones de GNU/Linux, destaca el proyecto Debian/GNU. Debian nace como una
iniciativa no comercial de la FSF, aunque luego se independiza de ésta y va más allá del propio
sistema GNU/Linux. Es la única de las grandes distribuciones que no tiene intereses comerciales ni
empresariales. Son sus propios usuarios, muy activos, quienes mantienen la distribución de modo
comunitario, incluidas todas sus estructuras de decisión y funcionamiento. Su objetivo es
recopilar, difundir y promover el uso del software libre. Reúne el mayor catálogo de software libre,
todos ellos probados, mantenidos y documentados por algún desarrollador voluntario.
En una distribución hay todo el software necesario para instalar en un ordenador personal;
servidor, correo, ofimática, fax, navegación de red, seguridad, etc.
UBUNTU
Ubuntu es un sistema operativo3 4 mantenido por Canonical y la comunidad de desarrolladores.
Utiliza un núcleo Linux, y su origen está basado en Debian. Ubuntu está orientado al usuario novel
y promedio, con un fuerte enfoque en la facilidad de uso y mejorar la experiencia de usuario. Está
compuesto de múltiple software normalmente distribuido bajo una licencia libre o de código
abierto.
La actual interfaz de usuario de Ubuntu está compuesta por tres importantes elementos: una
barra superior para indicadores de sistema y menús, un lanzador de aplicaciones al costado
izquierdo, y un panel (o dash) que despliega lugares y aplicaciones.
RED HAT ENTERPRISE LINUX
Red Hat Enterprise Linux también conocido por sus siglas RHEL es una distribución comercial de
Linux desarrollada por Red Hat. Es la versión comercial basada en Fedora que a su vez está basada
en el anterior Red Hat Linux, de forma similar a como Novell SUSE Enterprise (SUSE Linux
Enterprise Desktop y SLE Server) lo es respecto de OpenSUSE o Mandriva Corporate respecto de
Mandriva Linux One.
Mientras que las nuevas versiones de Fedora salen cada aproximadamente 6 meses, las de RHEL
suelen hacerlo cada 18 o 24 meses.
FEDORA
Es una distribución Linux para propósitos generales basada en RPM, que se caracteriza por ser un
sistema estable, la cual es mantenida gracias a una comunidad internacional de ingenieros,
diseñadores gráficos y usuarios que informan de fallos y prueban nuevas tecnologías. Cuenta con
el respaldo y la promoción de Red Hat.
"Hablar de Fedora es hablar del rápido progreso del software libre y de código abierto." Durante
sus primeras 6 versiones se llamó Fedora Core, debido a que solo incluía los paquetes más
importantes del sistema operativo. La última versión es Fedora 17, puesta a disposición del público
el 29 de mayo del 2012.
El Proyecto Fedora fue creado a finales del 2003 cuando Red Hat Linux fue descontinuado.
La última versión de fedora es Fedora 17, con fecha 29 de mayo de 2012 bajo el nombre de Beefy
Miracle.
DEBIAN
Debian o Proyecto Debian es una comunidad conformada por desarrolladores y usuarios, que
mantiene un sistema operativo GNU basado en software libre. El sistema se encuentra
precompilado, empaquetado y en un formato deb para múltiples arquitecturas de computador y
para varios núcleos.
Nació como una apuesta por separar en sus versiones el software libre del software no libre. El
modelo de desarrollo del proyecto es ajeno a motivos empresariales o comerciales, siendo llevado
adelante por los propios usuarios, aunque cuenta con el apoyo de varias empresas en forma de
infraestructuras. Debian no vende directamente su software, lo pone a disposición de cualquiera
en Internet, aunque sí permite a personas o empresas distribuirlo comercialmente mientras se
respete su licencia.
El proyecto Debian fue fundado en el año 1993 por Ian Murdock, después de haber estudiado en
la Universidad de Purdue.
OpenSUSE
OpenSUSE es el nombre de la distribución y proyecto libre auspiciado por SUSE Linux GmbH (una
división independiente de TheAttachmateGroup) y AMD para el desarrollo y mantenimiento de un
sistema operativo basado en Linux. Después de adquirir SUSE Linux en enero de 2004, Novell
decidió lanzar SUSE Linux Professional como un proyecto completamente de código abierto,
involucrando a la comunidad en el proceso de desarrollo. La versión inicial fue una versión beta de
SUSE Linux 10.0, y la última versión estable es openSUSE 12.2.
MOON OS
MoonOS es un sistema operativo, una distribución Linux basada en Ubuntu y Debian GNU/Linux.
La versión MoonOS 4, está basada en Ubuntu 10.10.
MoonOS hereda de Ubuntu:
El núcleo Linux
El instalador LiveCD
Los paquetes de software
El repositorio de software
El upstart.
CentOS
Distribución gratuita basada en Red Hat.
100% compatible con RHEL.
Muy popular
Soporte hasta 7 años.
Actualizaciones con cierto retraso respecto a RHEL.
Sólo soporta de forma oficial x86 y x86_64.
Sin soporte técnico comercial.
Muy estable.
Repositorios de software oficial limitados.
¿Futuro de la organización incierto?
APLICACIÓN DE LINUX EN EL MERCADO
Aunque Linux es un software libre, es decir que se permite su copia y modificación, compañías
como Red Hat y Novell reciben ingresos del suministro de actualizaciones y del servicio de soporte
para Linux. Cada vez más, Linux está siendo también ofrecido como un paquete de software que
puede ser fácilmente instalado en los mismos ordenadores personales que emplean Windows.
En el 2008 el valor de Linux estaba estimado en 35.000 millones de dólares.
LA ESTRUCTURA DE DIRECTORIOS GNU/LINUX
La estructura de directorios en la que se organiza un sistema Linux es en forma de unúnico árbol
de directorios y de forma jerarquiza. Cada disco partición o CD tiene su propia organización lógica
y al mismo tiempo pertenece a la misma estructura lógica de todo el sistema. Para poder usar
cualquier dispositivo se tiene que montar en un directorio existente, y aparecerá como el
contenido de un directorio.
Cada distribución Linux hace la modificación de un estándar a la hora de estructurar el árbol de
directorios, para adaptarlo a sus propias necesidades. De todas formas el estándar es el siguiente:
Esto permite realizar una gestión muy coherente ya que los dispositivos se comportan como
directorios y así poder tener la seguridad mejor estructurada y poder asignar mejor el espacio de
almacenamiento. Para esto hay que gestionar los usuarios y asignar a /home el espacio para cada
uno. Además de que si es un servidor de correo o impresión debería tener /var con partición
asignada también ya que ahí se mantiene toda la información y luego es fácil hacer y recuperar las
copias de seguridad.
COMANDO BÁSICOS DE LINUX
Para el manejo de archivos:
cd - sirve para cambiar el directorio
compress - con este comando se comprimen archivos en formato .Z
cp - hace una copia de un archivo
chmod - cambia los permisos de un archivo o directorio
chown - cambia el propietario del archivo o directorio
df - muestra el espacio libre en disco
du - muestra el espacio utilizado en disco
fdformat - formatea un disquete
fdisk - se utiliza para particiona unidades
file - determina el tipo de archivo a través del análisis parcial de su contenido
find - hace una búsqueda a un archivo determinado
fsck - examina el sistema de archivos
gzip - descomprime un archivo en formato GZip
ln - crea un enlace simbólico o físico, dependiendo de la opción
ls - lista el contenido de un directorio
mkdir - crea un directorio
mkfs - crea un nuevo sistema de archivos
mkswap - crea un espacio de intercambio
more - muestra el contenido de un archivo
mount - monta una unidad o partición en el sistema de archivos
mv - mueve un archivo y también se utiliza para renombrar
pwd - devuelve la cadena correspondiente al directorio actual
rm - borra un archivo
rmdir - borra un directorio
swapon - activa el espacio de intercambio
swapoff - desactiva el espacio de intercambio
tar - empaqueta o desempaqueta un archivo en formato .tar
type - muestra la ubicación de un archivo señalando su "path"
umount - desmonta una unidad o partición en el sistema de archivos
PARA EL MANEJO DE PROCESOS:
free - muestra la memoria libre y utilizada
halt - apaga la maquina
kill - mata un proceso señalando el número de éste
ldd - muestra las librerías necesarias para ejecutar un proceso
ps - muestra todos los procesos que se están ejecutando en el sistema
pstree - muestra todos los procesos que se están ejecutando en el sistema, pero en forma de árbol
reboot - reinicia el sistema
shutdown - cierra el sistema
top - monitorea procesos y el estado del sistema
uname - muestra información del sistema
PARA EL MANEJO DE USUARIOS:
adduser - crea una cuenta de usuario
chsh - este comando cambia la shell de un usuario
groups - muestra el listado de grupos de usuarios del sistema
id - muestra la información de usuario y grupo de un determinado usuario
logout - se sale del sistema deslogueando al usuarui, peromitiendo iniciar sesión con otro usuario
passwd - cambia la contraseña de un determinado usuario
su - le da privilegios de root (administrador) a un usuario
talk - permite hablar con otros usuarios
users - lista los usuarios conectados al sistema
who - muestra información de los usuarios conectados al sistema
whoami - muestra nuestra información
DE RED:
ping - manda paquetes esperando una respuesta del lugar que le indiquemos
ifconfig - muestras las tarjetas de red (Ethernet)
iwconfig - muestra Las tarjetas de red (Wifi)
host "destino" - muestra la IP del "destino"
PARA EL MANEJO DE PAQUETES:
rpm - "opcion" "paquete" - instala o desinstala el "paquete" dependiendo de la opción
dpkg - "opcion" "paquete" - instala o desinstala el "paquete" dependiendo de la opción, este
comando solo sirve para paquetes debian.
tar - "opcion" "paquete" - comprime o descomprime el "paquete" de formato tar.gz, tar.tgz o
tar.bz2
MC
Midnight Commander es una aplicación que funciona en modo texto. La pantalla principal consiste
en dos paneles en los cuales se muestra el sistema de ficheros. Se usa de un modo similar a otras
aplicaciones que corren en el shell o interfaz de comandos de Unix. Las teclas de cursor permiten
desplazarse a través de los ficheros, la tecla insertar se usa para seleccionar ficheros y las Teclas de
función realizan tareas tales como borrar, renombrar, editar, copiar ficheros, etc. Las versiones
más recientes de Midnight Commander incluyen soporte para el ratón para facilitar el manejo de
la aplicación.
Midnight Commander posee características tales como la capacidad de explorar el contenido de
los ficheros RPM, trabajar con formatos de archivos comunes como si de un simple directorio se
tratasen. Incluye un gestor de transferencias FTP o cliente del protocolo FISH.
También incluye un editor llamado mcedit. Mcedit es un ejecutable independiente, el cual
también puede ser usado de forma independiente a Midnight Commander. Esta aplicación
permite visualizar el contenido de ficheros y disfrutar de características como la de resaltar la
sintaxis para ficheros de código fuente de ciertos lenguajes de programación, y la capacidad de
trabajar tanto en modo ASCII como en modo Hexadecimal.
Midnight Commander también puede renombrar grupos de ficheros, a diferencia de otros
gestores de ficheros que solamente pueden renombrar un fichero cada vez. Esto es interesante en
la manipulación de largas colecciones de ficheros, por ejemplo, para ajustar los nombres a un
nuevo sistema de nombrado. Midnight Commander también puede mover ficheros a otro
directorio al mismo tiempo que lo renombra.
Midnight Commander es incluido en la mayoría de las distribuciones Linux y se distribuye bajo la
licencia pública general de GNU.
WINE
Permite la ejecución de programas diseñados para MS-DOS, y las versiones de Microsoft Windows
3.11, 95, 98, Me, NT, 2000, XP, Vista y 7.
Características:
Soporte
para
programas
de
la
DOS y Windows (3.x/9x/NT/2000/XP/2003/Vista/2008/7).
Soporte para llamadas de funciones de Windows de 64, 32 y 16 bits.
familia MS-
Soporte de sonido y entradas alternativas.
Soporte de módems o dispositivos por puerto serie.
Trabajo en red con Winsock TCP/IP.
Diseñado para ser compatible con código para Windows de 32 bits.
Programas de muestra
Documentación generada automáticamente de las API
Compilador fuente de 32 bits
Capacidad parcial de codificación Unicode
Internacionalización: Wine está disponible en 16 lenguas
LINUX COMO ROUTER
Si tenemos una maquina con Debian/Ubuntu instalado que tiene dos interfaces de red. Una de las
interfaces está conectado a switch de nuestro LAN, la otra — al router de nuestro proveedor de
Internet.
CONFIGURACION DE LAS INTERFACES DE RED
1. Antes de todo nos deshacemos de network-manager:
apt-get remove network-manager
2. Ahora modificamos /etc/network/interfaces:
# The loopback network interface
auto lo
iface lo inet loopback
# External
auto eth1
iface eth1 inet dhcp
# Internal
auto eth0
iface eth0 inet static
address 192.168.0.1
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
Como podemos ver hemos configurado la interfaz de red interna (eth0) para que tenga una IP
estática privada (192.168.0.1/24), y la interfaz externa para que obtenga su configuración de red
mediante dhcp.
Para aplicar la configuración ejecutamos:
/etc/init.d/networking restart
ACTIVACION DE ENRUTAMIENTO
Para convertir nuestro Linux en un router tenemos que modificar el archivo /etc/sysctl.conf. Hay
que añadir la línea:
net.ipv4.ip_forward = 1
Para aplicar la configuración ejecutamos:
sudo sysctl –p
CONFIGURACION DE SERVICIO NAT
NAT es un mecanismo inventado para solucionar problema de falta de direcciones IPv4. La
maquina que hace NAT oculta todos los equipos de la red local, haciendo las peticiones a Internet
en sus nombres.
Para configurar el servicio NAT en nuestra maquina con Linux añadimos dos reglas al firewall
(iptables):
iptables -P FORWARD ACCEPT
iptables --table nat -A POSTROUTING -o eth1 -j MASQUERADE
Para que estas reglas sobrevivan reboot, las tenemos que añadir también a /etc/rc.local.
CONFIGURACION DEL SERVICIO DHCP
El servicio DHCP sirve para la suministrar la configuración de red (IP, mascara, gateway, DNS) a los
equipos de nuestra LAN. Para hacerlo hay que instalar un programa dnsmasq, que nos servirá para
poner funcionando tanto el servicio DHCP como el DNS de cache.
apt-get install dnsmasq
La configuración es bastante simple. Tenemos que abrir el archivo /etc/dnsmasq.conf, vaciar su
contenido y añadir estas lineas:
listen-address=192.168.0.1
cache-size=300
dhcp-range=192.168.0.4,192.168.0.20,24h
Especificamos la dirección IP en la que el programa va a escuchar las solicitudes DHCP y DNS, el
tamaño máximo de cache y el rango de direcciones IPs dinámicas disponibles a los equipos de red
local (dnsmasq es bastante inteligente para averiguar automáticamente el resto de los parámetros
de configuración de red que tendrá que ir suministrando a los equipos de nuestra LAN).
Reiniciamos el programa:
sudo /etc/init.d/dnsmasq restart
CONFIGURACION DEL SERVICIO DNS DE CACHE
El servicio de DNS de cache hace la resolución de nombres de dominios a direcciones IP para los
equipos de red local. Vamos a ponerlo funcionando con dnsmasq, el mismo programa que ya nos
hace el DHCP.
En principio no nos hara falta tocar la configuración de dnsmasq. El programa cogerá la
configuración necesaria acerca de los servidores DNS desde el archivo /etc/resolv.conf. Ahora
bien, en el principio de articulo hemos dicho que nuestra interfaz de red externa (eth1) obtendrá
su configuración de red mediante DHCP del router de proveedor de Internet. Esto se supone que
el contenido de /etc/resolv.conf se modificara automáticamente después de cada reboot. Así que
vamos a configurar el programa-cliente DHCP de nuestro router para que incluye la IP de nuestro
router en el archivo /etc/resolv.conf cada vez que obtenga la configuración de red.
Modificaremos el archivo /etc/dhcp3/dhclient.conf.
Allí habrá que buscar la linea:
#prepend domain-name-servers 127.0.0.1;
Y cambiarla por:
prepend domain-name-servers 192.168.0.1;
Hemos terminado la configuración. Para aplicarla ejecutamos el comando:
sudo /etc/init.d/networking restart.
VNC
NC es un programa de software libre basado en una estructura cliente-servidor el cual permite
tomar el control del ordenador servidor remotamente a través de un ordenador cliente. También
llamado software de escritorio remoto. VNC no impone restricciones en el sistema operativo del
ordenador servidor con respecto al del cliente: es posible compartir la pantalla de una máquina
con cualquier sistema operativo que soporte VNC conectándose desde otro ordenador o
dispositivo que disponga de un cliente VNC portado.
La versión original del VNC se desarrolló en Reino Unido, concretamente en los laboratorios AT&T
Olivetti Research Laboratory, en Cambridge, Reino Unido. El programa era de código abierto por lo
que cualquiera podía modificarlo y existen hoy en día varios programas para el mismo uso.
Muchos derivados modernos de él son software libre bajo licencia GNU General Public License.
En la enseñanza, VNC sirve para que el profesor comparta su pantalla con los alumnos, por
ejemplo en un laboratorio. También puede usarse para que un técnico ayude a un usuario
inexperto, el técnico ve remotamente el problema que informa el usuario.
El programa servidor suele tener la opción de funcionar como servidor HTTP para mostrar la
pantalla compartida en un navegador con soporte de Java. En este caso el usuario remoto (cliente)
no tiene que instalar un programa cliente de VNC, éste es descargado por el navegador
ftautomáticamente.
VNC es independiente de la plataforma - un cliente VNC en un sistema operativo pueden
conectarse a un servidor VNC en la misma o de cualquier otro sistema operativo. Hay clientes y
servidores tanto para muchos sistemas operativos basados en GUI como para Java. Varios clientes
pueden conectarse a un servidor VNC al mismo tiempo. Los usos populares de esta tecnología
incluyen soporte técnico remoto y acceso a los archivos presentes en el ordenador del trabajo
desde la computadora de un hogar, o viceversa.
SERVICIO FTP
Un servidor FTP (File Transfer Protocol) nos permite básicamente el compartir o alojar archivos de
cualquier tipo en un espacio virtual donde nosotros mismos u otros usuarios de cualquier parte del
mundo podrán descargarlos mientras estos sigan dentro del servidor.
Modos de un servidor FTP:
FTP Anónimo: Es un servidor FTP abierto a todo el público, donde a pesar que se sigue pidiendo un
usuario y contraseña, estos serían anonymous y su correo electrónico para poder ingresar, estos
usuarios tendrán tanto el privilegio de leer, subir o descargar archivos del servidor.
FTP Privado: Este servidor realiza las mismas funciones que el anónimo pero los usuarios que
pueden ingresar al mismo son únicamente los que se encuentran dentro de la base de datos del
sistema local sin expeción alguna.
Paquetería necesaria
Para montar nuestro servidor FTP vamos a uitlizar VSFTPD ( Very Secure File Transfer Protocol
Daemon ) que actualmente se sitúa como el servidor más seguro y más utilizado en el mundo,
además de contar con un método de configuración bastante fácil.
Instalación
Debian/Ubuntu: apt-get install vsftpd
RedHat/Fedora: yum -y install vsftpd
*Genérico: Descargamos el archivo desde http://vsftpd.beasts.org/ . Lo descomprimimos,
configuramos y compilamos con las opciones predeterminadas e instalamos.
tar xzvf vsftpd-2.0.5.tar.gz && cd vsftpd-2.0.5/ && make && make install
Archivos de Configuración
/etc/vsftpd.user_list : Es la lista que va a establecer que usuarios pueden o no utilizar el servicio.
/etc/vsftpd/vsftpd.conf : Archivo de configuración.Configuración Vamos a abrir el archivo
/etc/vsftpd/vsftpd.conf con permisos de admnistrador ( root ) utilizando nuestro editor de texto
preferedio; puede ser mediante gedit, vi, pico, nano, etc... ( Podemos utilizar el comando sudo
para abrir el editor con permiso de administrador)
-Opción anonymous_enable.
Esta opción nos permite establecer si el servidor aceptará o no acceso anónimos, se estable como
valor "YES" o "NO".
anonymous_enable=NO
-Opción local_enable.
Esta opción nos permite establecer si el servidor se combinará con la función de jaula o chroot, de
esta manera se define si se permitarán accesos a los usuarios locales del sistema, los valores son
"YES" o "NO".
local_enable=NO
-Opción write_enable.
Con esto establecemos si se va a permitir escribir en el servidor. Los valores son "YES" o "NO".
write_enable=YES
-Opción ftpd_banner.
Aquí podemos establecer un mensaje de bienvenida que se mostrará al usuario cada vez que se
conecte.
ftpd_banner=Bienvenido al servidor FTP.
Control de Ancho de Banda
-Opción anon_max_rate.
Se utiliza para establecer el máximo de bytes por segundo para usuarios anónimos, el ejemplo
muestra un máximo de 5kbps.
anon_max_rate=5120
-Opción local_max_rate
Igual que la opción anterior pero para usuarios locales.
local_max_rate=5120
-Opción max_clientes.
Establece el número de conexiones simultaneas al servidor.
max_clients=10
-Opción max_per_ip.
Establece el número de conexiones que se aceptarán al servidor desde la misma
ipmax_per_ip=3Inicialización del Servidor Para ejecutar el servicio por primera vez ejecutamos con
permisos de adminsitrador ( root ):
/etc/init.d/vsftpd start
Si hemos hecho algunos cambios a la configuración mientras el servidor está activo lo reiniciamos
con:
/etc/init.d/vsftpd restart
Para detenerlo usamos:
/etc/init.d/vsftpd stop
SERVICIO WEB
Servidor Web Apache
Introducción
El servidor HTTP Apache es un servidor HTTP de código abierto para plataformas Unix (BSD,
GNU/Linux, etcétera), Windows y otras, que implementa el protocolo HTTP/1.1 (RFC 2616) y la
noción de sitio virtual. Para ampliar la información sobre lo que es Apache aquí.
Instalación
Instalación por paquetes
Para hacer funcionar el servidor en tu sistema debes instalar el paquete apache2. Para hacerlo
desde una consola debes escribir :
$sudo aptitude install apache2
En algunas versionde de ubuntu como en la 10.10 (es mi caso) es posible que tengas que
hacerlo de la siguiente manera; escribiendo en tu consola:
$sudo apt-get install apache2
si te pide el passwd ingresa el passwd del usuario que usas con privilegios de super usuario.
Una vez terminada la instalación puedes comprobar que Apache funciona correctamente:

Si estás en la misma máquina donde instalaste Apache, coloca en la barra de direcciones de
tu navegador:
http://localhost o http://127.0.0.1

Si te encuentras en una máquina distinta a la que instalaste Apache, debes colocar en la
barra de direcciones de tu navegador:
http://192.168.0.1
donde debes reemplazar 192.168.0.1 por la IP de la máquina en la que instalaste Apache. Esto
te llevará a una página que nos redireccionará a http://localhost/apache2default/ o http://192.168.0.1/apache2-default/, dependiendo del caso, la cual nos
indicará que el Servidor Apache ha sido instalado correctamente.
Instalación usando Xampp for Linux
XAMPP es un paquete que se instala facilmente Apache, MySQL, PHP, Perl, phpMyAdmin y un
servidor FTP. Para instalarlo haz lo siguiente
Descarga la ultima versión desde aquí
http://mesh.dl.sourceforge.net/project/xampp/XAMPP%20Linux/1.7.3a/xampp-linux1.7.3a.tar.gz
A la fecha la ultima version seria xampp-linux-1.7.3a.tar.gz.
Abre un terminal y descomprime el paquete, éste se descomprimirá en la carpeta /opt
$ sudo tar xvfz xampp-linux-1.7.3a.tar.gz -C /opt
y listo
Ahora, para arrancar el servidor, teclea en la consola:
$ sudo /opt/lampp/lampp start
Para ver si funciona, entra a el navegador de internet y teclea:
http://localhost o http://127.0.0.1/
Luego entra al apartado de seguridad, en el menú, y ve cómo la puedes mejorar.
Configuración
Configuración Básica
Configurar el redireccionamiento
Lo primero que haremos será asegurarnos de bloquear el redireccionamiento que nos lleva
de http://localhost/ a http://localhost/apache2-default/, para ello, debemos asegurarnos que el
archivo /etc/apache2/sites-available/default tenga comentada la linea que dice algo como :
RedirectMatch ^/$ /apache2-default/
Para ello teclea en la consola :
sudo gedit /etc/apache2/sites-available/default
una vez que nos abra el archivo buscamos la línea mencionada y la reemplazamos por esta :
#RedirectMatch ^/$ /apache2-default/
y si quisiéramos redireccionar a otra parte, deberíamos reemplazarla por esta otra :
RedirectMatch ^/$ /my-path/
donde my-path es la dirección donde estamos redireccionando, la cual debe estar dentro de la
raíz de la WEB.
Cambiando la raíz de la WEB
La raíz de la WEB se encuentra por defecto en /var/www/, para cambiarla, debemos reemplazar
cada aparición de /var/www/ por /my-path/ en el archivo /etc/apache2/sites-available/default,
donde my-path es la ruta completa del directorio que deseamos que sea la raíz de nuestra WEB.
Permitir los acentos en las páginas de nuestra WEB
Para permitir los acentos en nuestras páginas, debemos asegurarnos que la siguiente línea :
AddDefaultCharset
UTF-8
aparezca descomentada en el archivo /etc/apache2/conf.d/charset.
Resetear el servidor Apache
Una vez efectuado algún cambio de las configuraciones es conveniente resetear el servidor
Apache, para ello, en una consola escribimos :
sudo /etc/init.d/apache2 restart
Instalar phpmyadmin
Aunque con la sola instalación de este paquete ya tendrías el servidor http Apache corriendo en
tu sistema normalmente necesitarás para sacarle todo el provecho instalar también php. Veamos
como hacerlo.
instalar phpmyadmin
abres una consola te logueas como root
sudo aptitude install php5
resetea apache2
sudo /etc/init.d/apache2 restart
instala algunos paquetes
sudo aptitude install mysql-server
sudo aptitude install libapache2-mod-auth-mysql
sudo aptitude install php5-mysql
le colocas contraseña a phpmyadmin antes de instalar
sudo mysqladmin -u root password contraseña
instalas phpmyadmin
sudo aptitude install phpmyadmin
creas un fichero
sudo gedit /var/www/index.php
en el fichero le colocas lo siguiente
<?php phpinfo(); ?>
reseteas apache
sudo /etc/init.d/apache2 restart
y abres tu navegador escribes http://localhost/phpmyadmin
y listo
Habilitar PHP para el servidor
Para dotar a Apache de la funcionalidad de manejar páginas php debes instalar el
paquete php5.
Una vez instalado puedes crear un fichero de prueba para comprobar que funciona
correctamente.
Abre el Terminal y teclea allí la siguiente orden.
$ sudo gedit /var/www/testphp.php
En el nuevo fichero creado inserta la siguiente línea.
<?php phpinfo(); ?>
Guarda el fichero editado y ve a la siguiente dirección en tu navegador [1]. Deberías visualizar la
información de php.
Módulos adicionales
Librería GD para manipulación de imágenes con PHP
$ sudo aptitude install php5-gd
SERVICIO DE BASE DE DATOS
Introducción.
MySQL™ es actualmente el servidor de base de datos más popular para los desarrollos web. Es
muy rápido y sólido, son muchos los administradores que lo instalan, y sin embargo no tantos
los que lo configuran correctamente, o que siquera saben que hay que configurarlo.
Este manual es solo una referencia rápida para el procedimiento de instalación y configuración
de un servidor MySQL™. La generación de tablas y el ingreso de datos dentro de los campos de
éstas puede hacerse a través de mandatos SQL en el Shell de MySQL™, utilizando un fichero .sql
(como en es caso de PHP NUKE y otras aplicaciones web) o bien utilizando clientes MySQL™,
como son MySQLGUI, GtkSQL o Gmysql.
Procedimientos.
MySQL™ es incluido actualmente en la mayoría de las distribuciones de GNU/Linux de hoy en
día, por lo que no habrá problema alguno en conseguir los binarios necesarios y propios de la
distribución que se utilice. Bastará con instalar los incluidos en el CD de instalación o bien los
disponibles entre los paquetes de actualización para la distribución que se utilice.
Pregunte al sistema si se encuentran instalados los paquetes que componen MySQL™:
rpm -q mysql mysql-server
De no estar instalados, o bien si hay paquetes más recientes entre las actualizaciones
disponibles, cambie a súper usuario o bien ingrese como root al sistema. Si utiliza Red Hat™
Enterprise Linux, procederemos a instalar lo necesario del siguiente modo:
up2date -i mysql mysql-server
Si utiliza White Box Enterprise Linux o bien otros clones de Red Hat™ Enterprise Linux, se
ejecutar lo siguiente:
yum -y install mysql mysql-server
Lo anterior descargará las más recientes actualizaciones de seguridad de MySQL™ para Fedora™
Core, junto con todo lo que haga falta para satisfacer todas las dependencias de biblotecas y
otro software.
Si utiliza Red Hat™, CentOS o White Box Enterprise Linux 4.0, ejecute system-configsecuritylevel (mod gráfico), vaya a la pestaña de SELinux y en la sección de SELinux Service
Protection habilite la casilla que dice Disable SELInux protection for mysqld daemon. De otro
modo MySQL no podrá siquiera iniciar.
Desactivar protección de SELinux para mysqld.
La manera más apropiada de iniciar el servicio mysqld será ejecutado el siguiente mandato:
/sbin/service mysqld start
Procederemos a agregar a MySQL™ al los niveles de corrida 3, 4 y 5, de modo que la siguiente
vez que se tenga que iniciar el equipo, MySQL™ se encuentre habilitado.
/sbin/chkconfig --level 345 mysqld on
Después de iniciado MySQL™ por primera vez, como root ejecute el mandato mysql:
# mysql
Esto nos ingresará directamente y sin mayor preámbulo al Shell de MySQL™, donde lo primero
será asignar una contraseña cifrada al usuario root, ya que no es conveniente, de manera
alguna y sin pretexto, dejar MySQL™ de este modo.
Primero indicaremos que base de datos utilizar, en este caso será la principal y única
existente, mysql:
> use mysql
Ahora haremos petición para que se muestren las tablas:
> show tables;
Procederemos hacer una petición para que se muestre el contenido de la tabla user:
> select * from user;
Esto hará que se vea, entre otras muchas cosas, lo siguiente:
+-------------------------+----------+------------------+-------------+
| Host
| User
|
Password
| Select_priv |
+-------------------------+----------+------------------+-------------+
| localhost
|
root
|
| Y
|
+-------------------------+----------+------------------+-------------+
Como se podrá ver, el usuario root no tiene asignada una contraseña, por lo que cualquiera que
se identifique como root tendrá acceso. Asignaremos una contraseña del siguiente modo (sea
cuidadoso con lo que teclea como contraseña):
> update user set Password=PASSWORD('nuevo_password') where
user='root';
Ejecute de nuevo el siguiente mandato:
> select * from user;
Notará que ahora hay un criptograma en el campo que corresponde a la contraseña de root.
+-------------------------+----------+------------------+-------------+
| Host
| User
|
Password
| Select_priv |
+-------------------------+----------+------------------+-------------+
| localhost
|
root
|4593274b8e0d68j852| Y
|
+-------------------------+----------+------------------+-------------+
Refresquemos los privilegios a fin de que tomen efecto los cambios.
> flush privileges
Salgamos ahora a fin de regresar y poder probar la nueva contraseña.
> quit
Ingrese de nuevo al Shell de MySQL™:
mysql
Notará que ya no se puede acceder como antes, y regresa un mensaje de error.
ERROR 1045: Access denied for user: 'root@localhost' (Using password:
NO)
Ejecute ahora el mismo mandato, pero especificando un usuario (-u root) y solicitando se
pregunte por una contraseña (-p):
mysql -u root -p
A continuación se le pedirá ingrese una contraseña, tras lo cual obtendrá de nuevo acceso al
Shell de MySQL™
Creando y destruyendo bases de datos.
Para crear una nueva base de datos, puede utilizarse el mandato mysqladmin con el
parámetro create:
mysqladmin -u root -p create dbejemplo
Si queremos eliminar dicha base de datos, utilizamos el parámetro drop en lugar de create.
mysqladmin -u root -p drop dbejemplo
Otorgando permisos a los usuarios.
En adelante el usuario root solo se utilizará para tareas administrativas y creación de nuevas
bases de datos. Resultará conveniente delegar a los usuarios ordinarios el manejo de sus propias
bases de datos.
Una vez generada una base de datos, debemos determinar con que usuario y desde que equipo
en la red local, se podrá tener acceso, así como los privilegios para modificar esta. Lo más
común, y seguro, es asignar el acceso solo desde el mismo servidor (localhost), a menos que el
desarrollo web o aplicación se localice en otro equipo.
Genere un base de datos denominada directorio:
mysqladmin -u root -p create directorio
En seguida acceda al Shell de MySQL™ y ejecute lo siguiente, suponiendo que se desea asignar
permisos sobre las tablas de la base de datos directorioal usuario jbarrios del equipo local:
GRANT select, insert, update, create, alter, delete, drop ON
directorio.* TO jbarrios@localhost IDENTIFIED BY
'password_del_usuario_jbarrios';
Al concluir, usted tendrá una base de datos "jbarrios" que podrá ser utilizada y modificada por el
usuario jbarrios desde el servidor donde se encuentra instalada la base de datos, es
decir, localhost. Esto establecerá un nivel de seguridad apropiado, y garantizará que de ser
descifrada una contraseña de un usuario, está no podrá ser utilizada desde un equipo remoto.
Si, por ejemplo, se requiere permitir el acceso a una base de datos jbarrios desde otro equipo en
la red local con fines administrativos, podemos otorgar el acceso al usuario jperez del equipo
que, según el DNS de la LAN, se denomina como maquina1.mi-red-local.org, es
decir [email protected].
GRANT
select, insert, update, create, alter, delete, drop
ON
directorio.*
TO
[email protected]
IDENTIFIED BY
'password_del_usuario_jperez';
El muro corta-fuegos.
MySQL™ escucha peticiones en el puerto 3306, tanto para TCP como para UDP. Puede
implementar un Firewall o muro muro corta-fuegos que cierre dicho puerto, de modo tal que
solo se puede acceder a MySQL™ desde la red local. Las siguientes líneas de ejemplo suponen
que el servidor donde se encuentra instalado MySQL™ posee dos interfaces de red, eth0 y eth1,
de las cuales la primera (eth0) corresponde a la interfaz de acceso hacia la red local y la
segunda (eth1) corresponde a la interfaz de acceso hacia la red mundial.
# MySQL™
/sbin/iptables -t filter -A INPUT -p tcp -s 0/0 -d 0/0 --dport 3306 i eht1 -j DROP
/sbin/iptables -t filter -A INPUT -p udp -s 0/0 -d 0/0 --dport 3306 i eth1 -j DROP
Si se requiere acceder remotamente hacia MySQL™ desde fuera de la red local, con
fines meramente de administración, como sería algunos casos particulares, se requerirá
añadir las siguientes líneas en el guión de Firewall o muro muro corta-fuegos a fin de abrir los
puertos correspondientes.
# MySQL™
/sbin/iptables -t filter -A INPUT -p tcp -s 0/0 -d 0/0 --dport 3306 j ACCEPT
/sbin/iptables -t filter -A INPUT -p udp -s 0/0 -d 0/0 --dport 3306 j ACCEPT