View more presentations from Jessica Diaz.
jueves, 21 de junio de 2012
UNIDAD III PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS
3.1 PROCESOS Y
PROECESADORES CONCEPTOS BASICOS
Un procesos.
Son todos o todas las actividades o programas compilados que se encuentran guardados en una memoria.
Son todos o todas las actividades o programas compilados que se encuentran guardados en una memoria.
Un procesador.
Es el dispositivo de hardware que se encarga de ejecutar los procesos.
3.2 HILOS Y
MULTIHILOS
Los hilos son mini procesos. Cada hilo se ejecuta en
forma estrictamente secuencial y tiene su propio contador de programa una pila
para llevar un registro de su posición.
Los hilos comparten CPU de la misma forma que lo hacen
los procesos secuencialmente y tiempo compartido.
Solo en un multiprocesador se pueden ejecutar
realmente en paralelo. Los hilos pueden crear hilos hijos, mientras un hilo
esta bloqueado se puede ejecutar otra fila del mismo proceso en los distintos
hilos de un proceso comparten un espacio de direcciones, y los hilos pueden
tener distintos estados (en ejecución, bloqueado, listo y terminación).
Muchos sistemas operativos distribuidos soportan múltiples
hilos de control dentro de un proceso que comparten un único espacio de
direcciones que ejecutan casi paralelamente como si fueran procesos
independientes.
3.3.-
MODELOS DE PROCESADORES
En un sistema distribuido con varios procesadores un aspecto fundamental
en el diseño es como se utiliza a los procesadores que se pueden organizar de
varias formas:
- · De estación de trabajo
- · De pila de procesadores
- · Híbrido
3.3.1 DE
ESTACIÓN DE TRABAJO
Este sistema consta de computadoras dispersas
conectadas entre si mediante una red de área local puede contar o no con disco
duro en cada una de ellas, los usuarios tienen una cantidad fija de poder de
computo y un alto grado de autonomía para asignar sus recursos locales.
La idea consiste en ordenar realmente la ejecución de
procesos en estaciones de trabajo inactivas.
Los usuarios tienen:
•
Una cantidad fija de poder de cómputo exclusiva.
•
Un alto grado de autonomía para asignar los recursos
de su estación de trabajo.
Uso de los discos
en las estaciones de trabajo:
•
Sin disco:
–
Bajo costo, fácil mantenimiento del hardware y del
software, simetría y flexibilidad.
–
Gran uso de la red, los servidores de archivos se
pueden convertir en cuellos de botella.
•
Disco para paginación y
archivos de tipo borrador:
–
Reduce la carga de la red respecto del caso anterior.
–
Alto costo debido al gran número de discos necesarios.
•
Disco para paginación,
archivos de tipo borrador y archivos binarios (ejecutables):
–
Reduce aún más la carga sobre la red.
–
Alto costo y complejidad adicional para actualizar los
binarios.
•
Disco para paginación,
borrador, binarios y ocultamiento de archivos.
–
Reduce aún más la carga de red y de los servidores de
archivos.
–
Alto costo.
–
Problemas de consistencia del caché.
•
Sistema local de archivos
completo:
–
Escasa carga en la red.
–
Elimina la necesidad de los servidores de archivos.
–
Pérdida de transparencia.
3.3.2.- MODELO
DE PILA DE PROCESADORES
Este método consiste en construir una pila de
procesadores, repleta de CPU, en un cuarto de maquinas, los cuales se pueden asignar
de manera dinámica a los usuarios según la demanda.
A cada usuario se le
da una terminal gráfica de alta rendimiento, como las terminales X, incluso se
pueden utilizar terminales ASCII.
Ventajas
·
Precio
·
Elimina la asociación entre el número de
usuarios y el de estaciones de trabajo.
·
Facilita el crecimiento por incrementos
De hecho se convierte
el poder de cómputo en “estaciones de trabajo inactivas”, a las que se puede
tener acceso de manera dinámica. Aquí no existe el concepto de propiedad.
La motivación para la idea de la pila de procesadores
proviene de dar un paso mas adelante en la idea de las estaciones de trabajo
sin disco.
El principal
argumento para la centralización del poder de cómputo como pila de procesadores
proviene de la teoría de colas.
Seleccionar pila de
procesadores o estaciones de trabajo inactivas va a depender del trabajo que se
desarrolle.
Se puede establecer
una mediación al proporcionar a cada usuario una “estación de trabajo” personal
y además tener una pila de procesadores. Aunque esta solución es más cara.
Para procesos interactivos
sería mejor utilizar estaciones de trabajo, con una respuesta garantizada. Sin embargo las estaciones inactivas no se
utilizan, lo cual hace más sencillo al diseño del sistema. Solo se dejan sin
utilizar. En vez de esto todos los interactivos se ejecutan en la pila de procesadores, así como todo el cómputo
pesado en general. Este modelo proporciona una respuesta interactiva más rápida,
un uso eficiente de los recursos y un diseño sencillo.
3.4 ASIGNACIÓN DE PROCESADORES
Por definición, un sistema
distribuido consta de varios procesadores. Estos se pueden organizar como
colección de estaciones de trabajo personales, una pila pública de procesadores
o alguna forma híbrida. En todos los casos, se necesita cierto algoritmo para
decidir cuál proceso hay que ejecutar y en qué máquina. Para el modelo de
estaciones de trabajo, hay que decidir cuándo ejecutar el proceso de manera
local y cuándo buscar una estación inactiva. Para el modelo de la pila reprocesadores, hay que tomar una decisión por cada
nuevo proceso.
Uso de
estaciones de trabajo inactivas
Plantea el problema de
encontrar estaciones de trabajo inactivas en la red que puedan ejecutar procesos. Por lo cual las estaciones de trabajo
deben de anunciar cuando no cuentan con una carga de trabajo asignada,
así todas las demás estaciones toman nota de esto y lo registran.
Modelos de
asignación
Generalmente se utilizan las
siguientes hipótesis:
Todas las máquinas son
idénticas o al menos compatibles en el código, difieren a lo sumo en la
velocidad.
Cada procesador se puede
comunicar con los demás. Las estrategias de asignación de procesadores se
pueden dividir en 2 categorías amplias:
No
migratorias:
Al crearse un proceso, se toma
una decisión de donde colocarlo. Una vez
colocado en la máquina, el proceso permanece ahí hasta que termina. No se puede
mover, no importa lo sobrecargada que esté la máquina.
Migratorias:
Un proceso se puede trasladar
aunque haya iniciado su ejecución. Permiten un mejor balance de la carga pero
son más complejas y tienen un efecto fundamental en el diseño del sistema.
Los algoritmos de asignación
intentan optimizar:
Uso de las
CPU:
Maximizar el número de ciclos
de CPU que se ejecutan para trabajos de los usuarios. Minimizar el tiempo de
inactividad de las CPU.
Tiempo promedio de respuesta
Minimizar no los tiempos individuales
de respuesta sino los tiempos promedio de respuesta.
Tasa de respuesta:
Minimizar la tasa de
respuesta, que es el tiempo necesario para ejecutar un proceso en cierta
máquina dividido por el tiempo que tardaría en cierto procesador de referencia.
3.4.1
ALGORITMOS CON SUS ASPECTOS DE
DISEÑO E IMPLEMENTACIÓN Y ASIGNACIÓN.
Los algoritmos de asignación
intentan optimizar:
Uso de las
CPU:
Maximizar el número de ciclos
de CPU que se ejecutan para trabajos de los usuarios. Minimizar el tiempo de inactividad
de las CPU.
Tiempo promedio de respuesta
Minimizar no los tiempos
individuales de respuesta sino los tiempos promedio de respuesta.
Tasa de
respuesta:
Minimizar la tasa de
respuesta, que es el tiempo necesario para ejecutar un proceso en cierta
máquina dividido por el tiempo que tardaría en cierto procesador de referencia.
Las principales decisiones que
deben tomar los diseñadores se pueden resumir en 5 aspectos:
- Algoritmos deterministas vs. Heurísticos
- Algoritmos centralizados vs. Distribuidos
- Algoritmos óptimos vs. Subóptimos
- Algoritmos locales vs. Globales
- Algoritmos iniciados por el emisor vs. Iniciados por el receptor
1) Algoritmos
deterministas
Son adecuados cuando se
sabe de antemano todo acerca del
comportamiento de los procesos. En pocos, si no es que en ninguno de los
sistemas, se tiene un conocimiento total de antemano, pero a veces se puede
obtener una aproximación razonable. Se pueden definir en términos de una
máquina de estado; un «estado» describe qué está haciendo la máquina en un
instante particular de tiempo. Justo cuando se produce la entrada, la máquina
comienza en su «estado inicial» y, posteriormente, si la máquina es determinista,
comenzará la ejecución de la secuencia de estados predeterminados. Una máquina
puede ser determinista y no tener límite temporal para la ejecución o quedarse en
un bucle de estados cíclicos eternamente. Ejemplos de máquinas abstractas
deterministas son las máquinas de Turing deterministas y los autómatas finitos
deterministas.
Algoritmos
heurísticos
Son
adecuados cuando la carga es impredecible. Un algoritmo heurístico (o simplemente
heurística) puede producir una buena solución (puede que la óptima) pero también puede que no produzca ninguna
solución o dar una solución no muy buena. Normalmente, se basa en un
conocimiento intuitivo del programador sobre un determinado problema.
2) Diseño centralizado vs. Distribuido
2) Diseño centralizado vs. Distribuido
La recolección de toda la información en un lugar permite tomar una mejor decisión, pero menos robusta y coloca una carga pesada en la máquina central. Son preferibles los algoritmos descentralizados, pero se han propuesto algunos algoritmos centralizados por la carencia de alternativas descentralizadas adecuadas. Una desventaja de los centralizados es que la máquina central se puede sobrecargar y se pierde robustez ante su posible falla.
Cuando el poseedor de una estación de trabajo
ejecuta procesos en las máquinas de otras personas, acumula puntos de
penalización, un número fijo por cada segundo, como se muestra en la siguiente
figura:
3) Algoritmos óptimos vs. Sub óptimos:
Se pueden obtener las soluciones óptimas tanto en los sistemas centralizados como en los descentralizados, pero por regla son más caros que los sub óptimos. Hay que recolectar más información y procesarla un poco más. En la práctica la mayoría de los sistemas distribuidos reales buscan soluciones subóptimas, heurísticas y distribuidas, debido a la dificultad para obtener las óptimas.
Se pueden obtener las soluciones óptimas tanto en los sistemas centralizados como en los descentralizados, pero por regla son más caros que los sub óptimos. Hay que recolectar más información y procesarla un poco más. En la práctica la mayoría de los sistemas distribuidos reales buscan soluciones subóptimas, heurísticas y distribuidas, debido a la dificultad para obtener las óptimas.
Aspectos de
la Implantación
Casi todos los algoritmos suponen que las máquinas conocen su propia carga y que pueden informar su estado:
·La medición de la carga no es tan sencilla
Un método consiste en contar el número de procesos (hay que considerarlos procesos latentes no activos).
Otro método consiste en contar solo los procesos en ejecución o listos.
También se puede medir la fracción de tiempo que la cpu está ocupada.
Casi todos los algoritmos suponen que las máquinas conocen su propia carga y que pueden informar su estado:
·La medición de la carga no es tan sencilla
Un método consiste en contar el número de procesos (hay que considerarlos procesos latentes no activos).
Otro método consiste en contar solo los procesos en ejecución o listos.
También se puede medir la fracción de tiempo que la cpu está ocupada.
Otro aspecto importante es el
costo excesivo en consumo de recursos para recolectar medidas y desplazar
procesos, ya que se debería considerar el tiempo de CPU, el uso de memoria y el
ancho de banda de la red utilizada por el algoritmo para asignación de procesadores.
Se debe considerar la
complejidad del software en cuestión y sus implicancias para el desempeño.
Si el uso de un algoritmo
sencillo proporciona casi la misma ganancia que uno más caro y más complejo,
generalmente será mejor utilizar el más sencillo.
Se debe otorgar gran importancia a la estabilidad
del sistema:
·
Las máquinas ejecutan sus algoritmos en forma
asíncrona por lo que el sistema nunca se equilibra.
·
La mayoría de los algoritmos que intercambian
información:
o Son
correctos luego de intercambiar la información y de que todo se ha registrado.
o Son
poco confiables mientras las tablas continúan su actualización, es decir que se
presentan situaciones de no equilibrio.
3.5
COPLANIFICACION
Cada procesador se multiprograma con “n” espacios para
los procesos (multiprogramación de nivel “n”). El algoritmo de Ouster hout
utiliza el concepto de coplanificación:
· Toma
en cuenta los patrones de comunicación entre los procesos durante la
planificación.
· Debe
garantizar que todos los miembros del grupo se ejecuten al mismo tiempo.
· Se emplea una matriz conceptual donde: = Las
filas son espacios de tiempo.= Y las
columnas son las tablas de procesos de los procesadores.
· Cada
procesador debe utilizar un algoritmo de planificación Round Robin. Donde:
1- Todos los procesadores
ejecutan el proceso en el espacio “0” durante un cierto período fijo.
2- Todos los procesadores
ejecutan el proceso en el espacio “1” durante un cierto período fijo, etc.
3- Se deben mantener
sincronizados los intervalos de tiempo.
4- Todos los miembros de un grupo
se deben colocar en el mismo número de espacio de tiempo pero en procesadores
distintos.
La tolerancia a fallos es un aspecto crítico para
aplicaciones a gran escala, ya que aquellas simulaciones que pueden tardar del
orden de varios días o semanas para ofrecer resultados deben tener la
posibilidad de manejar cierto tipo de fallos del sistema o de alguna tarea de
la aplicación.
Sin la capacidad de detectar fallos y recuperarse de
estos, dichas simulaciones pueden no llegar a completarse. Es más, algunos
tipos de aplicaciones requieren ser ejecutadas en un entorno tolerante a fallos
debido al nivel de seguridad requeridos.
De cualquier forma, en ciertos casos debería haber algún
modo de detectar y responder automáticamente a ciertos fallos del sistema o al
menos ofrecer cierta información al usuario en el caso de producirse un fallo.
En PVM hay un mecanismo de notificación de fallos, de
forma que una tarea puede manejar notificaciones sobre ciertas tareas de las
que espera recibir un mensaje. Por ejemplo, si una tarea muere, otra que
estuviese esperando un mensaje de la primera recibirá una notificación en lugar
del mensaje que esperaba. De esta forma, la notificación le da la oportunidad
de responder al fallo sin tener que fallar forzosamente.
3.7 SISTEMAS DE
TIEMPO REAL
Los sistemas de tiempo real son aquellos que interactuan con el mundo exterior donde el tiempo es un factor importante.
CARACTERÍSTICAS.
Se activan por evento o por tiempo.
Su comportamiento debe ser predecible.
Deben ser tolerantes a fallas.
La comunicación en los sistemas distribuidos de tiempo
real debe de alto desempeño.
CLASIFICACIÓN.
Los sistemas de tiempo real se clasifican en general en
dos tipos dependiendo de lo serio de sus tiempos límite y de las consecuencias de
omitir uno de ellos. Estos son:
·
Sistema
de tiempo real suave.
·
Sistema
de tiempo real duro.
El tiempo real
suave significa que no existe problema si se rebasa un tiempo límite. Un
sistema de tiempo real duro es aquel en el que un tiempo límite no cumplido
puede resultar catastrófico.
Ejemplo de sistema de tiempo real suave.
Conmutador telefónico.
Ejemplo de sistema de tiempo real duro.
Alarma sísmica.
ACTIVACIÓN DE
SISTEMAS DE TIEMPO REAL.
Los sistemas de tiempo real pueden ser activados
por evento o por tiempo. Se dice que un sistema es activado por evento cuando,
al ocurrir un evento externo, este es detectado por algún sensor, lo que
entonces provoca que el CPU conectado tenga una interrupción. Los sistemas
activados por eventos están controlados entonces por las interrupciones. Por
otro lado, en los sistemas de tiempo real activados por el tiempo, se verifican
los sensores cada cierto tiempo, para verificar si está ocurriendo algún evento
externo. La desventaja es que se pierde mucho tiempo de CPU si los eventos
ocurren con poca frecuencia.
viernes, 1 de junio de 2012
PRACTICA
INSTALACIÓN DEL SERVIDOR
Iniciamos con la configuración de nuestro servidor.
Primero tenemos que instalar el sistema operativo y podemos encontrar las imágenes iso AQUÍ la última versión en este momento es "Ubuntu 10.10 (Maverick Meerkat)" en ese link pueden encontrar para procesadores de 64 bits o 32 bits.
En este caso seleccionaré el siguiente (32 bits):
Una vez que ya descargamos el archivo de formato ".iso" podemos quemarlo con un software gratuito y excelente para los usuarios de güin2 llamado ImgBurn que lo encuentran aquí, en su página oficial o instalarlo por medio de unetbootin en una USB.
A continuación arrancamos con el CD dentro de nuestra unidad óptica y veremos la siguiente pantalla.
Seleccionamos el idioma español:
Entramos en la opción "Instalar Ubuntu Server":
Elegimos nuestro país "México"
Seleccionamos sí para configurar nuestro teclado
Buscamos en nuestro teclado los símbolos y letras que nos piden (+, y, u, r, etc.)
Ahora buscamos si el símbolo "Ç" se encuentra en nuestro teclado y si está seleccionamos sí.
Oprimimos la tecla
Con estos pasos nos configuró nuestro teclado y encontró que el idioma es "es". Si tenemos conectado nuestro modem a la computadora por cable Ethernet entonces la configuración se hará con el protocolo DHCP para obtener los parámetros de configuración de red automáticamente.
Seleccionamos el nombre de la máquina (por defecto es Ubuntu), este parámetro puede ser modificado por motivos de seguridad para no dar información acerca de nuestro sistema operativo, poniendo un nombre que no de información.
En este caso la zona horaria es de acuerdo a la ubicación ciudad de México
Ahora toca la parte del particionado y seleccionamos particionado "manual"
Aquí en el ejemplo el disco duro virtual tiene un tamaño de 10 GB pero no importa más o menos indicaremos cuales son los tamaños de las particiones necesarias.
Elegimos la opción "sí"
Seleccionamos el espacio libre para nuestra tabla de particiones
Creamos una partición nueva
Ponemos el tamaño de la partición en este ejemplo que para nada es el recomendable se seleccionaron dos particiones una / (raíz) y lo demás para swap (área de intercambio).
Pero las particiones recomendables con los respectivos tamaños son las siguientes:
Imagen tomada de "Implementación de Servidores con GNU/Linux"
Seleccionamos la partición primaria
Y ahora queremos que la partición este al principio
El sistema de ficheros para todas nuestras particiones excepto para la partición swap es "EXT4".
Como está indicado en la imagen anterior las particiones recomendadas son:
/boot con sistema de ficheros EXT4 y tipo de partición primaria (100MB)
/ con sistema de ficheros EXT4 y tipo de partición primaria (1024MB)
swap con sistema de ficheros "área de intercambio" (doble de la memoria ram o en algunos casos no es necesaria cuando la potencia del ordenador es muy grande)
/tmp con sistema de ficheros EXT4 y tipo de partición lógica (4.2GB)
/usr con sistema de ficheros EXT4 y tipo de partición lógica (8 GB)
/var con sistema de ficheros EXT4 y tipo de partición lógica (mitad del disco duro restante)
/home con sistema de ficheros EXT4 y tipo de partición lógica (la otra mitad del disco duro restante)
/ con sistema de ficheros EXT4 y tipo de partición primaria (1024MB)
swap con sistema de ficheros "área de intercambio" (doble de la memoria ram o en algunos casos no es necesaria cuando la potencia del ordenador es muy grande)
/tmp con sistema de ficheros EXT4 y tipo de partición lógica (4.2GB)
/usr con sistema de ficheros EXT4 y tipo de partición lógica (8 GB)
/var con sistema de ficheros EXT4 y tipo de partición lógica (mitad del disco duro restante)
/home con sistema de ficheros EXT4 y tipo de partición lógica (la otra mitad del disco duro restante)
Seleccionamos "se ha terminado de definir la partición"
Creamos las siguientes particiones
Terminamos de definir las particiones
Aceptamos con "sí" para que se escriban los cambios en el disco
Nombre de nuestro nuevo usuario (nombre y apellido o solo nombre)
Nombre corto del usuario de la cuenta
Elegimos una contraseña y la repetimos para comprobarla
Seleccionamos "no" en el cifrado de la carpeta personal
Lo dejamos en blanco y seleccionamos continuar
En este punto el único paquete que instalaremos es "OpenSSH server" y lo seleccionamos con la tecla space.
Después de darle en continuar y que se instalen lo paquetes veremos la siguiente pantalla
Ponemos "sí" para instalar GRUB
Y con esto terminamos con la instalación del servidor, ahora vamos a instalar las aplicaciones que son necesarias para tener el servidor de correo.
Para este tutorial tendremos que recurrir a un terminal. Así que vamos a abrir el terminal pulsando sobre el botón “Inicio”, buscamos “Terminal” y lo abrimos.
GADMIN-SAMBA.
Es una sencilla aplicación GTK+ para administrar Samba y el servidor de impresión. Cuenta con múltiples usuarios remotos y locales e importación de grupos, creación y manipulación de usuarios, incluyendo la aleatorización de nombres de usuario y contraseñas. Impresión de documentos PDF a directorios compartidos/privados o vía e-mail. También cuenta con tres niveles de estrategias de gestión de dominios.
INSTALACIÓN
Desde un repositorio se puede usar Synaptic directamente o editar a mano, con su editor favorito, el fichero /etc/apt/sources.list. Para instalarlo, puede accederse a la sección de descargas de Gadmin-Samba. Se encuentran disponibles paquetes para su instalación. Es posible descargarlo también desde repositorios locales con distribuciones como Debian 6.0 Squeeze. Después es posible instalar Gadmin-samba a través del apt con las siguientes órdenes:
· apt-get update (para actualizar)
· apt-get install gadmin-samba (instalar)
Posteriormente a su instalación se puede acceder al mismo desde Aplicaciones/Herramientas del sistema/Gadmin-samba. Al ejecutarse por primera vez Gadmin-samba, se presentará una ventana con una serie de fichas y comandos configurables.
Configuración de Samba mediante Gadmin-Samba
Para los nuevos en Samba, la configuración de este proveedor de archivo sin costura y servicios de impresión a clientes SMB / CIFS a veces puede ser una pesadilla. No sólo se trata de archivos de configuración complicada, también tiene está el hecho de conseguir usuarios que se agregen a los archivos de contraseña cifrada. Una de esas herramientas que hacen posible la configuración es la herramienta gadmin-samba de la suite Gadmintools de GUI de Linux. La suite Gadmintools permite configurar fácilmente Samba con la ayuda de una interfaz gráfica bien elaborada. Con esta herramienta es posible tener Samba en marcha y funcionando en poco tiempo.
Programas necesarios
Deben estar instalados previamente algunos programas para la correcta configuración de samba mediante Gadmin-samba, puede hacerse de dos maneras:
Instalar la suite completa de herramientas Gadmin.
Instalar sólo la herramienta Samba.
Hay que asegurarse de que Samba está instalado, así como winbind. Si se tiene dudas puede ejecutarse Synaptic y buscar lo siguiente:
samba
winbind
gadmin-samba
Posteriormente a esto se procederá con la configuración.
Correr Gadmin-samba
Para iniciar la herramienta se irá a Herramientas del sistema sub-menú del menú Aplicaciones - Gadmin Samba. Se tendrá que entrar en el sudo (o usuario root - dependiendo de la distribución) contraseña. La ventana principal se abrirá, sin opciones de configuración de llenado.
Configuración del servidor
Aunque hay numerosas opciones para configurar, sólo se necesita configurar algunos para obtener un servidor Samba básico en marcha y funcionando.
El nombre de host de los servidores: Este es realmente el nombre Netbios como se configura en smb.conf.
Grupo de trabajo: El grupo de trabajo del servidor Samba será una parte.
Nivel de seguridad: Si se establece de acuerdo a las necesidades.
Hosts permitidos y las redes: eth0 (puede que tenga que modificar eth0 para reflejar el nombre del dispositivo de red).
Usuarios
La ficha Usuarios es exactamente lo que se puede esperar - un medio para configurar los usuarios de la cuota de Samba. En esta sección se toma el lugar sin tener que utilizar el comando smbpasswd. En esta ficha se tendrá que llenar:
Nombre de usuario: El nombre del usuario.
Contraseña: La contraseña para el usuario.
Grupo: Debe agregar el usuario a un grupo. Se puede agregar con seguridad al usuario el mismo nombre que el nombre de usuario.
Comentario: Por alguna extraña razón, los comentarios son obligatorios.
Directorio de inicio. Se pone en el directorio home del usuario.
Shell: Lo más probable es que sea / bin / sh
Después de llenar esta información, se hará clic en el botón Aplicar.
Recursos compartidos
Al hacer clic en la pestaña Recursos compartidos es posible que se encuentren algunos valores por defecto en su lugar. En todo caso sólo se debe configurar lo siguiente:
Nombre del recurso compartido: El nombre del recurso compartido que se desea crear.
Directorio compartido: El directorio que se desea compartir a cabo. Por defecto, Samba Gadmin va a querer compartir con / opt / samba. Esto está bien, pero se debe recordar que los usuarios normales no tienen permiso de escritura en este directorio.Es posible agregar usuarios a este directorio por el desplazamiento hacia abajo y hacer clic en "Añadir permisos de acceso" y caminar a través del asistente.
Debe tenerse cuidado con esto. Si se agrega a los usuarios del recurso, sólo los usuarios tendrán acceso al recurso. Se trata de una buena seguridad, pero se debe recordar que para agregar nuevos usuarios a este recurso compartido se debe tener acceso a nuevos usuarios. Una vez que se haya configurado el usuario, se puede hacer clic en la ficha Configuración para ver lo que el archivo / etc / samba / smb.conf mostrar. Clic en el botón Guardar. Una vez que haya guardado el archivo de configuración, hacer clic en el botón Activar y Samba estará en marcha y funcionando, listo para su conexión a los usuarios.
Consideraciones finales
La interfaz gráfica de usuario Gadmintools Samba ha tomado la complejidad de la configuración de un servidor Samba. Dar a esta herramienta una oportunidad puede conseguir que el servidor Samba funcione más rápidamente y con menos dificultades existentes con los ajustes manuales.
CREACION DE UN VPN
Lo primero de todo, saber que nuestro equipo debe tener una dirección IP estática. Por otro lado el router debe tener el puerto PPTP (1723 TCP) abierto, sería recomendable abrirlo utilizando la regla predefinida en el router.
Es preferible seleccionar la regla específica para PPTP en el router ya que, además del puerto 1723, necesitamos tener abierto otro puerto que soporte el protocolo GRE. Manualmente no podemos realizar esta operación, pero las reglas predefinidas sí la realizan.
En esta parte difieren en cuál es la mejor opción para administrar las actualizaciones de seguridad y los parches por instalar. Es recomendable si es minucioso que elija la opción "sin actualizaciones automáticas" pero es posible que complemente la opción de "instalar actualizaciones de seguridad automáticamente" y revisando en páginas como debian-security-announce, y algunas más para mantener su sistema seguro.
Manual de Seguridad de Debían.
Para este tutorial tendremos que recurrir a un terminal. Así que vamos a abrir el terminal pulsando sobre el botón “Inicio”, buscamos “Terminal” y lo abrimos.
Instalar los paquetes
En el terminal tecleamos la siguiente orden:
sudo apt-get install pptpd
Una vez tecleada pulsamos ENTER para que se ejecute. Ahora vamos a ver qué significa cada una de las palabras:
· sudo: Dice al sistema que ejecute lo que le sigue como administrador.
· apt-get: Programa encargado de gestionar los paquetes del sistema.
· install: Parámetro que dice a apt-get que deseamos instalar paquetes.
· pptpd: Paquete a instalar, en este caso el servidor de PPTP.
Dado que el comando se ejecutará como administrador, el sistema pedirá nuestra contraseña de usuario. Para mayor seguridad no se mostrará ningún tipo de símbolo en la pantalla mientras escribimos dicha contraseña.
En este caso, apt-get ha detectado que para que se pueda instalar el paquete pptpd necesita, además, el paquete bcrelay. Antes de realizar acción alguna pide nuestra aprobación. Dado que estamos de acuerdo presionamos la tecla “S“y luego ENTER para que comience la descarga y posterior instalación de los paquetes.
Configuración
Una vez finalizado el proceso se iniciará el servidor PPTP automáticamente, pero aún no está configurado, para lo cual ejecutaremos:
Sudo nano /etc/pptpd.conf
Al igual que hicimos con la órden anterior, procedemos a su explicación:
· sudo: Dice al sistema que ejecute lo que le sigue como administrador.
· nano: editor de texto para terminal. Hay cientos de editores pero creo que este es de los más sencillos de utilizar.
· /etc/pptpd.conf: Ruta absoluta del archivo que queremos modificar.
Tras ejecutarlo aparecerá en la misma ventana del terminal el editor nano. Usando los cursores bajamos hasta el final del todo e insertamos, como si se tratara del bloc de notas, las líneas (en la captura la hemos seleccionado para distinguirlas del resto del texto):
localip 10.10.10.1
remoteip 10.10.10.100-200,10.10.10.245
· Explicación:
· Primera línea: Especificamos cuál será la dirección IP de nuestro servidor dentro de la VPN. Para que no haya conflicto con las direcciones IP “domésticas”, hemos seleccionado un rango de direcciones distinto.
· Segunda línea: Especifica el rango de direcciones que usaremos para asignar a los clientes. En la parte anterior a la “,” (coma) hemos especificado un rango y detrás una dirección simple. Con esto hemos querido mostraros las dos posibles formas de especificar las direcciones de los clientes, es decir, que podéis especificar simplemente un rango.
Para guardar los cambios presionamos “Control + O“ y para salir “Control + X“.
Añadiendo usuarios
Ahora vamos a añadir usuarios a nuestra VPN. Para hacerlo modificaremos el archivo chap-secrets:
sudo nano /etc/ppp/chap-secrets
Formato (cada espacio es en realidad una tabulación):
nombre_de_usuario pptpd contraseña *
En nuestro ejemplo hemos usado los siguientes pares usuario/contraseña:
· usuariovpn / password
· usuario2 / 12345
Ahora guardamos y salimos, ya sabéis “Control + O“ y “Control + X“
Configurando iptables
Hasta este punto ya tenemos todo lo referente a nuestra VPN configurado, tan sólo quedaconfigurar el cortafuegos de Ubuntu para que permita el acceso a las conexiones entrantes yredirija el tráfico. Para que la configuración se mantenga con cada reinicio modificaremos el scriptrc.local:
sudo nano rc.local
Vamos hasta el final del fichero e insertamos ANTES de la última línea lo siguiente:
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE
A tener en cuenta:
§ 10.10.10.0/24 : Rango de direcciones que elegimos cuando estábamos configurando PPTPD.
§ eth0 : Nombre de la interfaz de red. En nuestro caso se trata de cable, si fuera WiFi recibiría el nombre de wlan0 .
Una vez realizados los cambios, cerramos y guardamos como hasta ahora.
Ahora vamos a proceder a activar el IP forwarding, para ello vamos a modificar el archivo/etc/sysctl.conf:
sudo nano /etc/sysctl.conf
Buscamos la línea:
#net.ipv4.ip_forward=1
Y le quitamos la #:
net.ipv4.ip_forward=1
Guardamos los cambios y cerramos el archivo.
Aunque en un principio podríamos aplicar los cambios sin necesidad de reiniciar el ordenador, creo que es interesante verificar que después de reiniciar todo continúa funcionando perfectamente. Así que vamos a reiniciar el ordenador desde el propio terminal:
sudo telinit 6
Listo, ya sólo queda configurar los clientes y disfrutar de nuestra VPN.
Suscribirse a:
Entradas (Atom)