SlideShare una empresa de Scribd logo
1 de 68
Descargar para leer sin conexión
Francisco José Caneda Iglesias.
PROYECTO PILOTO DE
ACADEMIA DE ENSEÑANZA.
1
Contenidos.
1.- Introducción......................................................................................................................................................................................... 2
2.- Diseño de red...................................................................................................................................................................................... 3
2.1.- Subneteo de la red. .................................................................................................................................................................... 5
2.2.- Conexiones de red..................................................................................................................................................................... 5
2.3- Gateways y IP´s virtuales. .......................................................................................................................................................... 7
2.4.- Enrutamiento OSPF.................................................................................................................................................................... 7
3.- La máquina virtual............................................................................................................................................................................... 8
3.1- Servidor Apache con PHP y MYSQL...................................................................................................................................... 9
3.2- Descarga de Moodle en el directorio /opt............................................................................................................................ 9
3.3- Configuración de MySQL.........................................................................................................................................................11
3.4.- Preparación e instalación de Moodle...................................................................................................................................12
3.5- Instalación de gestores para la base de datos.....................................................................................................................13
4.- Gestión de la plataforma Moodle.................................................................................................................................................13
4.1.- Creación de cursos y categorías..........................................................................................................................................13
4.2.- Creación de repositorios locales..........................................................................................................................................16
4.3- Añadir contenido a nuestros cursos.....................................................................................................................................19
5.- El servidor DNS................................................................................................................................................................................22
6.- Página web..........................................................................................................................................................................................24
7.- Servidor LDAP. .................................................................................................................................................................................53
7.1.- Creación de objetos LDAP.........................................................................................................................................................55
8.- Instalación de ApacheDirectoryStudio........................................................................................................................................58
8.1.- Añadir dominio LDAP a ApacheDirectoryStudio.............................................................................................................60
9.- Instalación de Webmin....................................................................................................................................................................63
10.- Presupuesto.....................................................................................................................................................................................64
11.- Posibles mejoras. ............................................................................................................................................................................64
12.- Bibliografía........................................................................................................................................................................................65
2
1.- Introducción.
Con el auge de las nuevas tecnologías, la enseñanza online está cada vez más presente por las ventajas que
ofrece, tanto en comodidades y reducción de costes tanto para el alumnado como para el personal docente; en
el presente proyecto se presenta un proyecto piloto que consiste en una academia de enseñanza online, como
se ha indicado es un proyecto piloto, lo cual quiere decir que el proyecto está sujeto a modificaciones para
adaptarse a las exigencias de nuestro cliente.
En el presente documento se presenta un proyecto para un hipotético cliente que nos pide la realización de
una obra en su local, esta obra consistirá en la informatización y puesta en marcha de un sitio para impartir
clases online. El presente proyecto piloto presenta una posible realización de dicha obra que se presentará al
cliente para que este se haga una idea de lo que se le va a instalar y de funcionamiento de la instalación; en
posteriores reuniones con el cliente, se ofertará y se discutirán los pormenores del proyecto para adaptarlo sus
exigencias y necesidades, pudiendo añadirse o quitarse características y elementos.
En una primera fase del proyecto, se acometerá el montaje y puesta en marcha de la red, esto requerirá un
equipo de profesionales expertos en el tema; en este montaje, se trabajará respetando las normas de seguridad
y salud vigentes, uso de guantes, mono, casco, calzado de seguridad…
Una vez hecho el montaje de red, se acometerá su configuración que se efectuará por un administrador de
redes, que dejará la red completamente funcional.
En una segunda fase, que será realizada por un profesional de la informática se implantará el software que no
permitirá el acceso a un aula virtual donde se ofertarán varios cursos, esto será una plataforma Moodle, esta
plataforma nos ofrece una fácil gestión de cursos, actividades, talleres… con los cuales el alumno podrá sacar
el provecho esperado de los cursos realizados. Se le podrá ofrecer al cliente una personalización de la
plataforma, en cuanto a diseño visual, funcionalidades etc. Que será realizada por nuestro equipo de
desarrolladores. El equipo sobre el que va a ir montada esta plataforma será un sistema Debian con un servidor
web apache ya que en este caso es lo más apropiado visto el tipo de software que va a correr sobre ellos, por
otra parte, tanto el sistema operativo Debian como la plataforma Moodle son software libre pero al mismo
tiempo sin sistemas ampliamente probados y utilizados para estos cometidos, no obstante, y a petición de
nuestro cliente, se podría utilizar otro tipo de software incluso comercial, siempre claro está, este sería un
coste era que se vería reflejado en el presupuesto final.
Como se ha al principio, la enseñanza virtual en nuestros días es un negocio en auge con lo que las
oportunidades de negocio son muchas. Los profesionales de hoy en día demandan formación especializada,
3
pero siempre se encuentran con la barrera de compatibilizar su trabajo con dicha formación, este tipo de
enseñanzas viene en su auxilio eliminando las barreras espacio-temporales que hacen difícil que los
profesionales puedan adaptarse a los sistemas de enseñanza tradicionales.
Pero se podrían enumerar más ventajas de este tipo de enseñanzas como son el contacto con profesionales de
todos los lugares, la flexibilidad que esta aporta, la posibilidad de colaboración con usuarios de cualquier parte
del mundo, los contenidos y la información son más fácilmente actualizables, se reducen los costes en tiempo
y dinero considerablemente…
2.- Diseño de red.
La red estará diseñada en tres capas (acceso, distribución y núcleo).
La electrónica de red estará compuesta por equipos cisco, en capa acceso se utilizarán switches de la serie
catalyst de CISCO por ser una de las más comunes y ampliamente utilizadas en la actualidad, aunque
dependiendo de los requerimientos de nuestro cliente se podrían buscar otro tipo de soluciones (distintos
modelos e incluso distintos fabricantes). Habría que tener en cuenta, que en capa distribución serán necesarios
dos switches con capacidad de trabajo en capa 3 (capacidades de enrutamiento de paquetes).
En la capa distribución estarán los switches de capa dos que son los que tendrán la misión de dar acceso a los
equipos de nuestra red. En estos estarán configuradas las distintas VLAN’s que soporta nuestra red (alumnado,
oficinas, desarrollo y servidores), así como el correspondiente protocolo VTP que nos permitirá la
configuración y gestión de las distintas VLAN´s.
La capa de distribución, estará compuesta por dos switches con capacidad para funcionar en capa tres, hay
que tener en cuenta que, en este montaje, la capa dos es la que llevará prácticamente todo el peso del
enrutamiento de paquetes en nuestra red en este caso, los switches de capa tres nos proporcionan una mayor
capacidad de proceso y por lo tanto un enrutamiento algo más rápido que lo que nos proporcionaría un router
convencional. Así mismo, además de en estos switches de capa distribución se implementarán los siguientes
protocolos.
 VTP (VLAN Trunking Protocol): Es el protocolo trabajará en la capa dos del modelo OSI y nos
permitirá configurar y gestionar las distintas VLAN´s.
 STP (Spanning Tree Protocol): Este protocolo de capa dos nos permitirá gestionar la presencia de
bucles en nuestra red debido a los enlaces redundantes que nos garantizan la disponibilidad de la red.
Este protocolo funcionará activando o desactivando automáticamente los enlaces de nuestra red lo que
garantiza la eliminación de dichos bucles y evita que se formen bucles infinitos que consuman todo el
ancho de banda de nuestra red.
 Etherchannel: Esta tecnología que utilizaremos entre los dos switches de capa distribución nos
permite agrupar varios enlaces físicos (Ethernet) para hacerlos funcionar como uno solo, hay que tener
en cuenta que solo podremos agrupar un máximo de ocho puertos; la agrupación de estos puertos nos
posibilita que dichos puertos sean tratados como un único enlace permitiéndonos sumar la velocidad
nominal de cada puerto, consiguiendo así una mayor velocidad de transmisión entre los dos switches
de distribución.
 HSRP (Hot Standby Router Protocol): Este es el único protocolo que utilizaremos que es propiedad
de CISCO per lo que deberemos tener en cuenta de que en el caso de que la instalación finalmente no
utilice electrónica de red CISCO, deberemos elegir otra solución como VRRP por ejemplo. Ese
protocolo trabaja en capa tres y nos permite agrupar routers redundantes y tolerantes a fallos dentro de
4
una misma red, en el caso de nuestra red se ha decidido implementarlo en los switches de la capa de
distribución. El funcionamiento de este protocolo es creando un grupo o clúster de routers en el que
uno de ellos actuará como maestro enrutando el tráfico de nuestra red mientras que los demás actuarán
como respaldo a la espera de que se produzca un fallo en el maestro. Este grupo de routers se estarán
enviando mensajes, en el momento en el que el router de respaldo no reciba mensajes de tipo hello
desde el router maestro, este asumirá que el maestro se encuentra fuera de servicio y pasará a asumir
el rol de router maestro, dicho protocolo necesita de una dirección virtual que identifique al grupo de
routers, en nuestro caso, y al estar implementado este protocolo en capa distribución tomaremos IP’s
virtuales correspondientes a las VLAN´s. Cabe aclarar que en esta ocasión este protocolo se ha
decidido que esté configurado en capa distribución trabajando con las VLAN´s.
 OSPF (Open Shortest Path First): Esto es un protocolo jerárquico para encaminamiento de paquetes,
funciona en capa tres utilizando el algoritmo Djistra enlace-estado (LSA) para calcular la ruta idónea
entre dos nodos, este lo implementaremos tanto en capa distribución como en los routers
correspondientes de capa tres.
En la capa núcleo se encuentran tres routers que podrían ser de la serie 1800 o 1900 de CISCO pudiendo optar
por otras soluciones tanto en modelos como en fabricantes como se indicó anteriormente con los switches. En
está capa tendremos dos switches que nos permitirán enrutar paquetes desde otras redes distintas en nuestro
campus o incluso desde distintas ciudades o regiones hacia nuestra red pudiendo de esta manera ampliar
nuestra red, como es la intención a una red de campus o incluso una red intercity, en estos routers
implementaríamos el protocolo de enrutamiento OSPF de la misma manera que en la capa distribución
(teniendo en cuenta las distintas redes adyacentes). En este caso se ha decidido dejarlos para este fin, aunque
se podrían implementar diferentes protocolos en los mismos y utilizarlos para más fines. Finalmente
tendremos el router de acceso a internet en el que implementamos el mismo protocolo OSPF.
El esquema final de nuestra red sería el que se muestra en la siguiente imagen.
5
Este esquema de red en tres capas, nos permite una fácil escalabilidad de nuestra red como es la intención y
aunque posiblemente no sería practico para una empresa pequeña, la inversión si sería aceptable en el caso de
necesitar futuras ampliaciones a una red de campus o incluso una red intercity incluso utilizando otra red tipo
B (ya que la que estamos utilizando es tipo C) replanteando el subneteo de la red.
En cuanto a la red que vamos a utilizar, como se ha dicho anteriormente es una red tipo C para este ejemplo.
Será la 192.168.1.0/24, utilizaremos VLSM (Variable Lenth Subnet Mask) en primer lugar un mayor
aprovechamiento de nuestro espacio de red ya que utilizaremos diferentes mascaras en función del número de
host de nuestras subredes; asimismo nos permite utilizar direccionamiento sin máscara CDIR (Classless Inter-
domain Routing) lo que significa que el protocolo de enrutamiento (OSPF) tiene en cuenta este
direccionamiento VLSM en sus actuaciones de enrutamiento incluyendo estas máscaras de subred, nos
permite también sumarizar rutas, lo que en las actualizaciones de se podrán enviar actualizaciones en las que
una dirección de red representa la conectividad con varias redes con un prefijo común.
2.1.- Subneteo de la red.
En la siguiente tabla podemos ver como se ha subneteado nuestra red 192.168.1.0/24.
Nombre de
subred
Host Hosts útiles
encontrados
Dirección de
Red
Masca
ra
Mascara
decimal
Rango de IP’s
asignable
Broadcast
VLAN
Alumnado
30 30 192.168.1.0 /27 255.255.255.2
24
192.168.1.1
192.168.1.30
192.168.1.31
VLAN
oficinas
20 30 192.168.1.32 /27 255.255.255.2
24
192.168.1.33
192.168.1.62
192.168.1.63
Van
desarrollo
10 14 192.168.1.64 /28 255.255.255.2
40
192.168.1.65
192.168.1.78
192.168.1.79
VLAN
servidores
5 6 192.168.1.80 /29 255.255.255.2
48
192.168.1.81
192.168.1.86
192.168.1.87
Distribución 2
a
router 1
2 2 192.168.1.88 /30 255.255.255.2
52
192.168.1.89
192.168.1.90
192.168.1.91
Distribución 1
a
router 2
2 2 192.168.1.92 /30 255.255.255.2
52
192.168.1.93
192.168.1.94
192.168.1.95
Distribución 1
a
router 1
2 2 192.168.1.96 /30 255.255.255.2
52
192.168.1.97
192.168.1.98
192.168.1.99
Distribución 2
a
router 2
2 2 192.168.1.100 /30 255.255.255.2
52
192.168.1.101
192.168.1.102
192.168.1.103
Con este esquema de red tenemos un número de IP´s utilizadas en las diferentes subredes de 88 (sin contar las
dedicadas a puerta de enlace y broadcast) de las 254 disponibles con lo que ocupamos sobre el 41% del espacio
disponible en nuestra red principal.
En la conexión de nuestros dos routers router 1 y router 2 hacia el router 0, se ha decidido utilizar IP’s de case
B, se muestra en la siguiente tabla.
Router 1 a router 0 128.0.0.0/16
Router 2 a router 0 128.1.0.0/16
2.2.- Conexiones de red.
En cuanto a las conexiones entre los diferentes puertos de los aparatos que componen la electrónica de red, en
la siguiente tabla podemos ver estas conexiones (solo se muestran los puertos con conexión activa), cabe
6
destacar, que, por limitaciones del software, se han utilizado switches de 24 puertos en el esquema de red, con
lo que se han representado menos equipos de los que realmente ocuparía la red real.
Switch alumnos
Puertos origen Puertos destino Modo de puerto
fa0/1 – fa0/10 ethernet de cada uno de los equipos alumno access
fa0/17 fa0/1 del switch distribución 1 trunk
fa0/18 fa0/1 del switch distribución 2 trunk
Switch oficinas
Puertos origen Puertos destino Modo de puerto
fa0/1 – fa0/7 ethernet equipos profesorado y administración access
fa0/17 fa0/2 del switch distribución 1 trunk
fa018 fa0/2 del switch distribución 2 trunk
Switch desarrollo
Puertos origen Puertos destino Modo de puerto
fa0/1 – fa0/3 ethernet de los cada uno de los de desarrollo Access
fa0/9 fa0/3 del switch distribución 1 trunk
fa0/10 fa0/3 del switch distribución 2 trunk
Switch servidores
Puertos origen Puertos destino Modo de puerto
fa0/1 – fa0/3 ethernet de cada uno de los servidores access
fa0/9 fa0/4 del switch distribución 1 trunk
fa0/10 fa0/4 del switch distribución 2 trunk
Switch distribución 1
Puertos origen Puertos destino Modo de puerto
fa0/1 fa0/17 switch alumnos trunk
fa0/2 fa0/17 switch oficinas trunk
fa0/3 fa0/9 switch administración trunk
fa0/4 fa0/9 servidores
g0/1 g0/0 router 1
g0/2 g0/1 router 1
fa0/21 – fa0/24 fa0/21 – fa0/24 de switch distribución 2
Switch distribución 2
Puertos origen Puertos destino Modo de puerto
fa0/1 fa0/18 switch alumnos trunk
fa0/2 fa0/18 switch oficinas trunk
fa0/3 fa0/10 switch administración trunk
fa0/4 fa0/10 servidores
g0/1 g0/0 router 2
g0/2 g0/1 router 1
fa0/21 – fa0/24 fa0/21 – fa0/24 de switch distribución 1
7
2.3- Gateways y IP´s virtuales.
Los puertos fa0/1 a fa0/24 de los switches distribución 1 y distribución 2 serán los puertos que compondrán
el EtherChannel.
Los puertos que vemos en modo trunk nos permitirán la comunicación entre las diferentes VLAN’s.
Se muestra ahora las diferentes puertas de enlace de cada una de las VLAN´s, así como las diferentes IP’s
virtuales que se han elegido para la configuración del protocolo HSRP.
VLAN Puerta de enlace IP virtual
alumnado 192.168.1.1 en switch distribución 1
192.168.1.2 en switch distribución 2
192.168.1.30
oficinas 192.168.1.33 en switch distribución 1
192.168.1.34 en switch distribución 2
192.168.1.62
desarrollo 192.168.1.65 en switch distribución 1
192.168.1.66 en switch distribución 2
192.168.1.78
servidores 192.168.1.81 en switch distribución 1
192.168.1.82 en switch distribución 2
192.168.1.86
En esta configuración tenemos dos puertas de enlace, una en cada switch de capa distribución ya que, siendo
alta disponibilidad, en el caso de que se caiga uno de los switches, en el que queda activo deberá haber
configurada una puerta de enlace de cada VLAN asociada con la IP virtual. Cabe destacar también que se han
configurado las VLAN’ s alumnos y oficinas como primarias en el switch distribución 1 quedando como
secundarias las VLAN desarrollo y servidores, en el switch distribución 2 han quedado configuradas a la
inversa. Hay que destacar, que el protocolo HSRP se ha decidido implementarlo a nivel de distribución en las
VLAN´s, de ahí esta configuración tan “especial”.
2.4.- Enrutamiento OSPF.
En cuanto al protocolo de enrutamiento OSPF, en la siguiente tabla se muestra la configuración de redes
vecinas y wildcards configuradas en cada dispositivo que lleva implementado dicho protocolo.
Switch distribución 1
Red Vecina Wildcard
192.168.1.0 0.0.0.31
192.168.1.32 0.0.0.31
192.168.1.64 0.0.0.15
192.168.1.80 0.0.0.7
192.168.1.96 0.0.0.3
192.168.1.92 0.0.0.3
Switch distribución 2
Red Vecina Wildcard
192.168.1.0 0.0.0.31
192.168.1.32 0.0.0.31
192.168.1.64 0.0.0.15
192.168.1.80 0.0.0.7
192.168.1.100 0.0.0.3
192.168.1.88 0.0.0.3
Router 1
Red Vecina Wildcard
192.168.1.96 0.0.0.3
192.168.1.88 0.0.0.3
128.0.0.0 0.0.255.255
Router 2
Red Vecina Wildcard
192.168.1.100 0.0.0.3
192.168.1.92 0.0.0.3
128.1.0.0 0.0.255.255
Router 0 ISP
Red Vecina Wildcard
128.0.0.0 0.0.255.255
128.1.0.0 0.0.255.255
8
Hasta aquí la configuración de esta red en tres capas, aunque puede que no sea la solución óptima para una
empresa modesta, se ha querido hacer así también con el objeto también de poner un ejemplo modesto sobre
el trabajo con diferente equipamiento de red CISCO y diferentes protocolos de red. En el video adjunto se
podrán ver algunos detalles de la configuración de esta red.
3.- La máquina virtual.
 Se ha montado una máquina virtual con un sistema operativo Linux Ubuntu 17.10 en la que se han
configurado:
 Servidor HTTP Apache2: Servidor web sobre el que correrá nuestra plataforma Moodle.
 Servidor de bases de datos MySQL: Donde configuraremos nuestra base de datos de Moodle.
 PHP 7.1: Lenguaje de programación de lado de servidor.
 Moodle: Plataforma de Enseñanza virtual.
 Phpmyadmin: herramienta para gestionar nuestra base de datos vía web.
 MySQLWorkbench: herramienta de gestión de la base de datos vía escritorio.
 Sublime text como herramienta de edición de código.
 Se ha hecho un añadido en el archivo. bashrc para habilitar el abrir aplicaciones gráficas como
superusuario y evitar el molesto error de “display”. A continuación, se muestra el fragmento del
archivo con esta modificación.
 Para facilitar el arranque de Moodle desde cualquier lugar del sistema, se ha realizado un enlace con
el comando ln -s desde el ejecutable de dicho programa al directorio /bin con la intención de añadirlo
en el PATH del sistema.
 Se ha instalado Git, con el objeto de almacenar en un directorio el código de la plataforma Moodle que
luego instalaremos en nuestro servidor.
9
3.1- Servidor Apache con PHP y MYSQL.
Se han instalado un servidor HTTP Apache un servidor de BBDD MySQL y un lenguaje del lado de servidor
como es PHP. No se ha utilizado para ello ninguna aplicación tipo XAMPP, sino que se han instalado por
separado.
Para que nuestra plataforma Moodle que se instalará a posteriori quede operativa, se han instado los módulos
y el software adicional necesarios para tal fin, luego y para que estos queden activos, se ha reiniciado el
servidor Apache.
En este punto, utilizaremos Git para clonar las ramas de Moodle en nuestra carpeta /opt y posteriormente
instalar la rama que nos interese en nuestro servidor Para ello instalaremos Git.
3.2- Descarga de Moodle en el directorio /opt.
Primero, o cambiamos en nuestra máquina al directorio /opt.
Y nos hacemos con el código y los índices de las diferentes ramas de Moodle.
10
En este punto, una vez descargado Moodle debemos cambiar a la carpeta con dicho nombre donde habremos
descargado el código.
Extraemos la lista de las ramas disponibles.
En nuestro caso, optaremos por la última (MOODLE_34_STABLE), nos movemos a la rama elegida y la
“fijamos”.
Ahora copiaremos nuestro repositorio local al servidor que estará en /var/www/html, creamos una carpeta para
almacenar los datos de Moodle fuera de la carpeta de nuestro servidor y asignamos los permisos
correspondientes.
11
3.3- Configuración de MySQL.
Primeramente, en el archivo de configuración de MySQL, debemos cambiar lo siguiente, se muestra el archivo
modificado.
Nota: En Ubuntu 17.10, el archivo de configuración “my.cnf” apunta a “mysql.cnf” dentro de otro directorio,
por lo que se añadirán las líneas correspondientes a este último que se menciona, en la siguiente imagen se
muestran los archivos implicados.
Y reiniciamos nuestro servidor de BBDD.
3.4- Creación de usuario y BBDD.
Llegó el momento de crear nuestro usuario en nuestra base de datos donde se almacenarán los datos de nuestra
plataforma Moodle, primero nos loguearemos y en segundo lugar crearemos nuestro usuario, base de datos y
asignaremos los permisos correspondientes.
12
3.4.- Preparación e instalación de Moodle.
Para instalar Moodle, podremos crear nosotros mismos el archivo config.php que usa Moodle a través de la
instalación, o bien podemos cambiar los permisos momentáneamente a la carpeta de nuestro servidor, en este
caso y por comodidad lo haremos de esta manera teniendo en cuenta que cuando terminemos la instalación,
deberemos volver los permisos del directorio a su estado “755”. Con el siguiente comando hacemos escribible
el directorio “Moodle”.
Una vez que esto esté correcto accedemos a la ruta http://localhost/moodle (en nuestro caso) y ajustamos los
parámetros iniciales de la instalación y en la pantalla inicial ajustamos los parámetros iniciales, en este caso
son:
 Ruta para moodledata: /var/moodledata.
 Tipo de base de datos: mysqli.
 Host server: localhost.
 User: francisco (el usuario creado en la base de datos).
 Password: 1234 (contraseña de la base de datos).
 Prefijo de las tablas: mdl_.
Si estos datos son correctos, se harán una serie de comprobaciones en el servidor:
13
Por último, si todo está bien, daremos comienzo a la instalación en sí, seguiremos todos los pasos que nos
indique el instalador y finalmente crearemos la cuenta de administración del sitio. Una vez completados estos
pasos, la instalación quedará completada.
3.5- Instalación de gestores para la base de datos.
En caso de requerir entornos gráficos para la gestión de bases de datos, podremos optar por phpmyadmin (vía
web) o mysqlwokbench (entorno escritorio), a continuación, se muestran sendos procesos de instalación:
4.- Gestión de la plataforma Moodle.
Una vez instalada la plataforma Moodle en nuestro servidor y una vez configurada según nuestras preferencias,
veremos la manera de gestionar nuestros cursos y categorías añadiendo materiales tanto desde servidores en
internet como desde repositorios locales, En el presente proyecto no se tocarán otros aspectos de la
administración por ser un tema muy amplio.
4.1.- Creación de cursos y categorías.
Para gestionar nuestros cursos y categorías nos moveremos a la administración del sitio y dentro de esta a la
pestaña cursos. Una vez en ella vemos que nos aparecen todas las opciones para gestionar nuestros cursos, en
este caso vamos al enlace añadir categoría desde donde podemos añadir las categorías que deseemos para
clasificar nuestros cursos (por temática).
14
Veremos la ventana que nos permitirá crear una categoría, como podemos ver más abajo no tiene mayor
complicación, nombramos la categoría, le asignamos un ID si lo necesitamos, este ID se utiliza para trabajar
contra sistemas externos, en este caso lo podremos dejar en blanco ya que no lo necesitaremos, luego se nos
permitirá introducir una descripción para la categoría, una vez completada pincharemos en el botón crear
categoría y la categoría quedará añadida al sitio.
Para crear un curso dentro de una categoría, iremos a “gestionar cursos y categorías”.
15
Como podemos ver en esta ventana, que ya tiene añadida dos categorías y dos cursos, podemos también crear
nuevas categorías, así como nuevos cursos clasificándolos en sus categorías correspondientes. Como ejemplo,
crearemos un nuevo curso “electrónica analógica” y lo clasificaremos dentro de la categoría “electrónica”.
Haremos clic en el enlace de la parte derecha “crear nuevo curso”, y en la nueva ventana que se nos abre
podremos cubrir la información del curso.
Esta ventana nos permitirá nombrar nuestro curso, asignarlo a una categoría de las creadas con anterioridad,
asignar un plazo de finalización o no, poner una descripción a nuestro curso, añadir y otras muchas opciones
relacionadas con el curso como podremos ver en la parte de debajo de esa ventana.
16
Una vez finalizado tenemos la opción de guardar nuestros cambios y volver a la ventana anterior de creación
de cursos o bien guardarlo y mostrar el curso creado.
4.2.- Creación de repositorios locales.
Una vez creados nuestros cursos y categorías, vamos a crear un repositorio local y configurarlo en nuestra
plataforma, en este repositorio podremos almacenar archivos de todo tipo para luego subir como material a
nuestros cursos.
Nuestro repositorio local estará dentro de la carpeta /var/moodledata que hemos creado a la hora de instalar
nuestra plataforma. Dentro de esta carpeta hay otra que llamada “repository” y es dentro de esta donde
crearemos nuestra estructura de directorios para almacenar nuestros archivos. Esta carpeta contiene otros
directorios y archivos con los que trabaja Moodle, veámoslo.
17
Entre toda esta estructura de carpetas, podemos observar que se encuentra la referida, llamada “repository” y
allí crearemos las carpetas que van a almacenar nuestros archivos; en nuestro caso crearemos dos de momento,
una llamada “videos” y otra “archivos” que almacenará los demás archivos que utilizaremos en nuestro sitio.
Tendremos ahora que configurar Moodle para utilizar estos repositorios, en el panel de administración vamos
a “Extensiones”.
Y dentro de las muchas opciones, si bajamos el scroll veremos “repositorios” y en ella un enlace llamado
“gestionar repositorios”.
18
Una vez dentro, buscamos la opción “Sistema de archivos” y en el desplegable que tiene a su lado lo fijamos
en activado y visible.
Y sin marcar ninguna opción en la siguiente ventana guardamos.
Vamos ahora a decirle las carpetas que tiene que buscar dentro del repositorio activo, después de guardar esto
último, volveremos a la ventana de gestión de repositorios y en “Sistema de archivos” vamos a
“Configuración”.
19
En la ventana siguiente pinchamos en “Crear una instancia de repositorio”.
Y en la siguiente le damos nombre al repositorio y en el desplegable elegimos una de las carpetas creadas en
/var/moodledata, que si lo hemos hecho bien aparecerán y pulsamos en guardar, haremos esto por cada
repositorio que queramos añadir en nuestra plataforma.
Una vez hecho esto, quedará accesible nuestro repositorio para añadir recursos a nuestros cursos.
4.3- Añadir contenido a nuestros cursos.
Ahora estamos listos para añadir contenido a nuestros cursos, destacaremos que solo podrán añadir contenido
los usuarios con privilegios adecuados para tal fin; para añadir recursos, entraremos en uno de los cursos
creados, en este caso añadiré un curso de mi creación “principios de programación”, este curso muestra los
rudimentos básicos de programación, en este caso utilizando lenguaje C. Entramos en el curso y nos
aseguramos de habilitar al pulsar “Activar edición”.
20
Primero de todo cambiaremos el nombre de las unidades didácticas por nombres más significativos, para ello,
y después de habilitar edición, veremos un pequeño icono con forma de lápiz, pulsamos sobre él.
Esto nos permitirá cambiar el nombre de la unidad didáctica, en general en todos los sitios donde debamos
cambiar esto lo haremos así.
21
Añadiremos video a nuestro curso para darle un poco de interactividad y hacerlo un poco más atractivo, en
este caso añadiremos un vídeo corto desde nuestro repositorio local. Para ello pinchamos en “añade una
actividad o recurso y en la ventana que se nos abrirá, navegamos hacia abajo, a la sección “recursos” y vamos
a marcar la etiqueta para añadirla y pulsamos “Agregar”, en el resto de temas será el mismo proceso.
Como vemos, en la ventana actividades hay infinidad de recursos que se pueden añadir, si pulsamos sobre
cada uno, en la sección de la derecha podremos ver una descripción.
22
Una vez pulsemos en agregar, se nos abrirá una ventana de edición dónde tendremos que marcar el botón
“multimedia” lo que nos abre el panel donde nos pide la localización del recurso, punchamos en la ventana
vídeo y el botón “Examinar repositorios”, en la ventana que nos abre vamos a nuestra carpeta de videos y lo
elegimos. En caso de querer insertar un vídeo de internet, por ejemplo de YouTube, simplemente, en lugar de
pulsar el botón “Examinar repositorios” podemos poner su URL directamente, aunque también podemos
habilitar el la API de YouTube en repositorios.
En este apartado, se han creado varios foros y subido algún archivo para el curso, pero el proceso es muy
similar en todos los casos. También se podrán realizar encuestas, proponer tareas, realizar cuestionarios,
talleres... Pero como se ha indicado, el proceso en todos los casos es similar l comentado con los videos.
5.- El servidor DNS.
Utilizaremos Bind 9 para instalar nuestro servidor DNS, primeramente procedemos a su instalación.
El siguiente paso que realizaremos es definir los ficheros de zona en el archivo “/etc/named.conf.local”; en
este, definiremos un archivo llamado “db.edunet.com” conde definiremos los registros de la zona directa y
otro llamado “db.192.168.1” para la zona inversa.
23
Creamos ahora copias de los archivos “db.local” y db.127” a los que llamaremos “db.edunet.local” y
“db.192.168.1” en los que almacenaremos los registros de zona directa e inversa respectivamente.
Se muestran seguidamente dos capturas de pantalla de los archivos con la intención de mostrar el aspecto de
cada uno una vez añadidos todos los registros, cabe aclarar aquí que se añadirán los equipos que aparecen en
el esquema con su correspondiente redireccionamiento y suponiendo que el nombre de los equipos es el que
aparece en el esquema.
db.edunet.com.
24
db.192.168.1.
y ahora nos queda reiniciar el servidor.
6.- Página web.
En este caso, se ha realizado una pequeña página web de presentación, consta de una página principal con un
menú que enlaza a las distintas secciones de la página, a continuación se muestran cada una de las páginas
Inicio.
25
Dónde encontrarnos.
Contacto.
Legal.
26
A continuación, se lista el código de la página.
Index.html.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Edunet</title>
<link href="css/principal.css" rel="stylesheet" type="text/css">
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<header>
<div class="cabecera_principal">
<h1 class="titulo">EDUNET</h1>
</div>
<nav class="cabecera_secundaria">
<ul>
<li><a href="index.html">INICIO</a></li>
<li><a href="#">CURSOS</a></li>
<li><a href="http://localhost/moodle" target="_blank">CAMPUS</a></li>
<li><a href=localiza.html>DÓNDE ENCONTRARNOS</a></li>
<li><a href="contacto.html">CONTACTO</a></li>
<li><a href="privacidad.html">LEGAL</a></li>
<li></li>
</ul>
</nav>
</header>
<section>
<h2 class="noDisplay">Main Content</h2>
<article class="articulo_izquierdo">
<h3>NUESTRA HISTORIA</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
</article>
<aside class="articulo_derecho">
<img src="images/img01.jpg" alt="" width="400" height="200"
class="placeholder"/>
27
</aside>
</section>
<footer class="cabecera_secundaria footer">
<div class="copyright">&copy;2018 - <strong>edunet.com</strong></div>
</footer>
</div>
</body>
</html>
Principal.css.
@charset "UTF-8";
.container {
background-color: #FFFFFF;
width: 90%;
margin-left: auto;
margin-right: auto;
border-bottom-width: 0px;
padding-left: 0px;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
}
.cabecera_principal {
width: 100%;
background-color: #52bad5;
padding-top: 10px;
padding-bottom: 10px;
clear: left;
border-bottom: 2px solid #2C9AB7;
}
.cabecera_secundaria {
width: 100%;
padding-top: 50px;
padding-bottom: 50px;
background-color: #B3B3B3;
clear: left;
}
.container .cabecera_secundaria ul {
margin-top: 0%;
margin-right: auto;
margin-bottom: 0px;
margin-left: auto;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 15px;
padding-left: 0px;
width: 100%;
28
}
.cabecera_secundaria ul li {
list-style: none;
float: left;
margin-right: auto;
margin-top: 0px;
font-family: "Source Sans Pro";
font-weight: normal;
color: #FFFFFF;
letter-spacing: 1px;
margin-left: auto;
text-align: center;
width: 16%;
transition: all 0.3s linear;
}
.cabecera_secundaria ul li:hover {
color: #717070;
cursor: pointer;
}
.articulo_izquierdo{
background-color: #FFFFFF;
width: 60%;
float: left;
font-family: "Source Sans Pro";
color: #343434;
padding-bottom: 15px;
}
.noDisplay {
display: none;
}
.container .articulo_izquierdo h3 {
padding-left: 5%;
padding-right: 5%;
margin-top: 5%;
color: #717070;
font-weight: bold;
text-transform: uppercase;
}
.container .articulo_izquierdo p {
padding-left: 5%;
padding-right: 5%;
text-align: justify;
line-height: 24px;
margin-top: 30px;
margin-bottom: 15px;
color: #B3B3B3;
}
29
.articulo_derecho {
width: 40%;
float: left;
background-color: #F6F6F6;
}
.container .articulo_derecho ul {
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 0px;
}
.articulo_derecho ul li {
font-family: "Source Sans Pro";
list-style: none;
text-align: center;
background-color: #B3B3B3;
width: 90%;
margin-left: auto;
margin-right: auto;
margin-top: 10px;
margin-bottom: 10px;
padding-top: 15px;
padding-bottom: 15px;
color: #FFFFFF;
font-weight: bold;
border-radius: 0px;
transition: all 0.3s linear;
border-left: 5px solid #717070;
}
.articulo_derecho ul li:hover {
background-color: #717070;
cursor: pointer;
}
.footer {
background-color: #717070;
}
.titulo {
font-weight: bold;
font-style: normal;
font-family: "Source Sans Pro";
text-align: center;
color: #FFFFFF;
letter-spacing: 2px;
30
}
.placeholder {
/* [disabled]max-width: 400px;
*/
/* [disabled]max-height: 200px;
*/
width: 100%;
padding-top: 30px;
/* [disabled]padding-left: 19px;
*/
padding-bottom: 30px;
height: 100%;
}
.copyright {
text-align: center;
background-color: #717070;
color: #FFFFFF;
text-transform: uppercase;
font-weight: lighter;
letter-spacing: 2px;
border-top-width: 2px;
font-family: "Source Sans Pro";
}
body {
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px;
}
@media (max-width: 320px) {
.cabecera_secundaria ul li {
float: none;
margin-top: 28px;
margin-left: 0px;
width: 100%;
}
.container .cabecera_secundaria ul {
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 0px;
height: auto;
width: 100%;
text-align: center;
31
}
.cabecera_secundaria {
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px;
padding-top: 1px;
padding-bottom: 40px;
}
.articulo_izquierdo {
width: 100%;
height: auto;
}
.articulo_derecho {
width: 100%;
height: auto;
}
.placeholder {
width: 100%;
margin-top: 22PX;
margin-right: 0px;
margin-bottom: 22PX;
margin-left: 0px;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 0px;
max-width: 400px;
max-height: 200px;
height: auto;
}
.copyright {
padding-top: 25px;
padding-bottom: 0px;
margin-bottom: 0px;
}
.container .articulo_izquerdo h3 {
margin-top: 30px;
}
@media (min-width: 321px) and (max-width: 768px) {
.cabecera_secundaria ul li {
float: none;
margin-top: 28px;
margin-left: 0px;
width: 100%;
}
32
.container .cabecera_secundaria ul {
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 0px;
height: auto;
width: 100%;
text-align: center;
}
.cabecera_secundaria {
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px;
padding-top: 1px;
padding-bottom: 40px;
}
.articulo_izquierdo {
width: 100%;
height: auto;
}
.articulo_derecho {
width: 100%;
height: auto;
padding-bottom: 25px;
}
.placeholder {
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 0px;
width: 100%;
max-width: 100%;
height: auto;
max-height: 100%;
}
@media (min-width: 769px) and (max-width: 1000px) {
.cabecera_secundaria {
overflow: auto;
33
padding-top: 30px;
padding-bottom: 30px;
}
.cabecera_secundaria ul li {
margin-top: 10px;
margin-right: 7%;
margin-bottom: 10px;
margin-left: 7%;
}
.articulo_izquierdo {
height: auto;
}
.articulo_derecho {
height: auto;
padding-bottom: 27px;
}
.placeholder {
width: 100%;
margin-left: 0px;
margin-right: 0px;
padding-left: 0px;
padding-right: 0px;
}
Localiza.html.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Edunet</title>
<link href="css/localiza.css" rel="stylesheet" type="text/css">
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries
-->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<header>
<div class="cabecera_principal">
<h1 class="titulo">EDUNET</h1>
</div>
34
<nav class="cabecera_secundaria">
<ul>
<li><a href="index.html">INICIO</a></li>
<li><a href="#">CURSOS</a></li>
<li><a href="http://localhost/moodle"
target="_blank">CAMPUS</a></li>
<li><a href=localiza.html>DÓNDE ENCONTRARNOS</a></li>
<li><a href="contacto.html">CONTACTO</a></li>
<li><a href="privacidad.html">LEGAL</a></li>
<li></li>
</ul>
</nav>
</header>
<section>
<h2 class="noDisplay">Main Content</h2>
<article class="articulo_izquierdo">
<h3>Dónde encontrarnos</h3>
<iframe
src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2901.7808896823162!2d-
8.175178684200613!3d43.33977388065874!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x
d2e6d79448d7709%3A0xcb98d5e666d78d72!2sBemantes!5e0!3m2!1ses!2ses!4v1527501794179"
width="800" height="600" frameborder="0" style="border:0" allowfullscreen></iframe>
</article>
</section>
<footer class="cabecera_secundaria footer">
<div class="copyright">&copy;2018 -
<strong>edunet.com</strong></div>
</footer>
</div>
</body>
</html>
Localiza.css.
@charset "UTF-8";
.container {
background-color: #FFFFFF;
width: 90%;
margin-left: auto;
margin-right: auto;
border-bottom-width: 0px;
padding-left: 0px;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
}
.cabecera_principal {
width: 100%;
background-color: #52bad5;
padding-top: 10px;
padding-bottom: 10px;
35
clear: left;
border-bottom: 2px solid #2C9AB7;
}
.cabecera_secundaria {
width: 100%;
padding-top: 50px;
padding-bottom: 50px;
background-color: #B3B3B3;
clear: left;
}
.container .cabecera_secundaria ul {
margin-top: 0%;
margin-right: auto;
margin-bottom: 0px;
margin-left: auto;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 15px;
padding-left: 0px;
width: 100%;
}
.cabecera_secundaria ul li {
list-style: none;
float: left;
margin-right: auto;
margin-top: 0px;
font-family: "Source Sans Pro";
font-weight: normal;
color: #FFFFFF;
letter-spacing: 1px;
margin-left: auto;
text-align: center;
width: 16%;
transition: all 0.3s linear;
}
.cabecera_secundaria ul li:hover {
color: #717070;
cursor: pointer;
}
.articulo_izquierdo{
background-color: #FFFFFF;
width: 60%;
float: center;
font-family: "Source Sans Pro";
color: #343434;
padding-bottom: 15px;
}
36
.noDisplay {
display: none;
}
.container .articulo_izquierdo h3 {
padding-left: 5%;
padding-right: 5%;
margin-top: 5%;
color: #717070;
font-weight: bold;
text-transform: uppercase;
}
.container .articulo_izquierdo p {
padding-left: 5%;
padding-right: 5%;
text-align: justify;
line-height: 24px;
margin-top: 30px;
margin-bottom: 15px;
color: #B3B3B3;
}
.footer {
background-color: #717070;
}
.titulo {
font-weight: bold;
font-style: normal;
font-family: "Source Sans Pro";
text-align: center;
color: #FFFFFF;
letter-spacing: 2px;
}
.placeholder {
/* [disabled]max-width: 400px;
*/
/* [disabled]max-height: 200px;
*/
width: 100%;
padding-top: 30px;
/* [disabled]padding-left: 19px;
*/
padding-bottom: 30px;
height: 100%;
}
.copyright {
text-align: center;
background-color: #717070;
color: #FFFFFF;
37
text-transform: uppercase;
font-weight: lighter;
letter-spacing: 2px;
border-top-width: 2px;
font-family: "Source Sans Pro";
}
body {
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px;
}
@media (max-width: 320px) {
.cabecera_secundaria ul li {
float: none;
margin-top: 28px;
margin-left: 0px;
width: 100%;
}
.container .cabecera_secundaria ul {
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 0px;
height: auto;
width: 100%;
text-align: center;
}
.cabecera_secundaria {
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px;
padding-top: 1px;
padding-bottom: 40px;
}
.articulo_izquierdo {
width: 100%;
height: auto;
}
.copyright {
padding-top: 25px;
padding-bottom: 0px;
margin-bottom: 0px;
38
}
.container .articulo_izquierdo h3 {
margin-top: 30px;
}
@media (min-width: 321px) and (max-width: 768px) {
.cabecera_secundaria ul li {
float: none;
margin-top: 28px;
margin-left: 0px;
width: 100%;
}
.container .cabecera_secundaria ul {
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 0px;
height: auto;
width: 100%;
text-align: center;
}
.cabecera_secundaria {
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px;
padding-top: 1px;
padding-bottom: 40px;
}
.articulo_izquierdo {
width: 100%;
height: auto;
}
@media (min-width: 769px) and (max-width: 1000px) {
.cabecera_secundaria {
overflow: auto;
padding-top: 30px;
padding-bottom: 30px;
}
.cabecera_secundaria ul li {
margin-top: 10px;
margin-right: 7%;
margin-bottom: 10px;
39
margin-left: 7%;
}
.articulo_izquierdo {
height: auto;
}
Contacto.html.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Edunet</title>
<link href="css/contacto.css" rel="stylesheet" type="text/css">
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries
-->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<header>
<div class="cabecera_principal">
<h1 class="titulo">EDUNET</h1>
</div>
<nav class="cabecera_secundaria">
<ul>
<li><a href="index.html">INICIO</a></li>
<li><a href="#">CURSOS</a></li>
<li><a href="http://localhost/moodle"
target="_blank">CAMPUS</a></li>
<li><a href=localiza.html>DÓNDE ENCONTRARNOS</a></li>
<li><a href="contacto.html">CONTACTO</a></li>
<li><a href="privacidad.html">LEGAL</a></li>
<li></li>
</ul>
</nav>
</header>
<section>
<h2 class="noDisplay">Main Content</h2>
<article class="articulo_izquierdo">
<h3>CONTACTO</h3>
<!-- formulario de contacto -->
<form name="contactform" method="post" action="send_form_email.php">
<table width="450px"><!---Este tamaño en px es personalizable -->
<tr>
40
<td valign="top">
<label for="first_name">Nombre *</label>
</td>
<td valign="top">
<input type="text" name="first_name" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="last_name">Apellido *</label>
</td>
<td valign="top">
<input type="text" name="last_name" maxlength="50" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="email">E-mail *</label>
</td>
<td valign="top">
<input type="text" name="email" maxlength="80" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="telephone">Teléfono</label>
</td>
<td valign="top">
<input type="text" name="telephone" maxlength="30" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="message">Mensaje *</label>
</td>
<td valign="top">
<textarea name="message" maxlength="1000" cols="25"
rows="6"></textarea>
</td>
</tr>
<tr>
<td colspan="2" style="text-align:center">
<input type="submit" value="Submit"><a
href="http://www.edunet.com/email_form.php"></a>
</td>
</tr>
</table>
</form>
<!-- fin formulario -->
</article>
</section>
<footer class="cabecera_secundaria footer">
<div class="copyright">&copy;2018 - <strong>edunet.com</strong></div>
41
</footer>
</div>
</body>
</html>
Contacto.css.
@charset "UTF-8";
.container {
background-color: #FFFFFF;
width: 90%;
margin-left: auto;
margin-right: auto;
border-bottom-width: 0px;
padding-left: 0px;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
}
.cabecera_principal {
width: 100%;
background-color: #52bad5;
padding-top: 10px;
padding-bottom: 10px;
clear: left;
border-bottom: 2px solid #2C9AB7;
}
.cabecera_secundaria {
width: 100%;
padding-top: 50px;
padding-bottom: 50px;
background-color: #B3B3B3;
clear: left;
}
.container .cabecera_secundaria ul {
margin-top: 0%;
margin-right: auto;
margin-bottom: 0px;
margin-left: auto;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 15px;
padding-left: 0px;
width: 100%;
}
.cabecera_secundaria ul li {
list-style: none;
float: left;
42
margin-right: auto;
margin-top: 0px;
font-family: "Source Sans Pro";
font-weight: normal;
color: #FFFFFF;
letter-spacing: 1px;
margin-left: auto;
text-align: center;
width: 16%;
transition: all 0.3s linear;
}
.cabecera_secundaria ul li:hover {
color: #717070;
cursor: pointer;
}
.articulo_izquierdo{
background-color: #FFFFFF;
width: 60%;
float: center;
font-family: "Source Sans Pro";
color: #343434;
padding-bottom: 15px;
}
.noDisplay {
display: none;
}
.container .articulo_izquierdo h3 {
padding-left: 5%;
padding-right: 5%;
margin-top: 5%;
color: #717070;
font-weight: bold;
text-transform: uppercase;
}
.container .articulo_izquierdo p {
padding-left: 5%;
padding-right: 5%;
text-align: justify;
line-height: 24px;
margin-top: 30px;
margin-bottom: 15px;
color: #B3B3B3;
}
.footer {
background-color: #717070;
}
43
.titulo {
font-weight: bold;
font-style: normal;
font-family: "Source Sans Pro";
text-align: center;
color: #FFFFFF;
letter-spacing: 2px;
}
.placeholder {
/* [disabled]max-width: 400px;
*/
/* [disabled]max-height: 200px;
*/
width: 100%;
padding-top: 30px;
/* [disabled]padding-left: 19px;
*/
padding-bottom: 30px;
height: 100%;
}
.copyright {
text-align: center;
background-color: #717070;
color: #FFFFFF;
text-transform: uppercase;
font-weight: lighter;
letter-spacing: 2px;
border-top-width: 2px;
font-family: "Source Sans Pro";
}
body {
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px;
}
@media (max-width: 320px) {
.cabecera_secundaria ul li {
float: none;
margin-top: 28px;
margin-left: 0px;
width: 100%;
}
.container .cabecera_secundaria ul {
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px;
padding-top: 0px;
44
padding-right: 0px;
padding-bottom: 0px;
padding-left: 0px;
height: auto;
width: 100%;
text-align: center;
}
.cabecera_secundaria {
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px;
padding-top: 1px;
padding-bottom: 40px;
}
.articulo_izquierdo {
width: 100%;
height: auto;
}
.copyright {
padding-top: 25px;
padding-bottom: 0px;
margin-bottom: 0px;
}
.container .articulo_izquierdo h3 {
margin-top: 30px;
}
@media (min-width: 321px) and (max-width: 768px) {
.cabecera_secundaria ul li {
float: none;
margin-top: 28px;
margin-left: 0px;
width: 100%;
}
.container .cabecera_secundaria ul {
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 0px;
height: auto;
width: 100%;
text-align: center;
}
45
.cabecera_secundaria {
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px;
padding-top: 1px;
padding-bottom: 40px;
}
.articulo_izquierdo {
width: 100%;
height: auto;
}
@media (min-width: 769px) and (max-width: 1000px) {
.cabecera_secundaria {
overflow: auto;
padding-top: 30px;
padding-bottom: 30px;
}
.cabecera_secundaria ul li {
margin-top: 10px;
margin-right: 7%;
margin-bottom: 10px;
margin-left: 7%;
}
.articulo_izquierdo {
height: auto;
}
Envia.php.´
<?php
if(isset($_POST['email'])) {
$email_to = "fjcaneda@gmail.com";
$email_subject = "consulta";
function died($error) {
// si hay algún error, el formulario puede desplegar su mensaje de aviso
echo "Lo sentimos, hubo un error en sus datos y el formulario no puede ser enviado en
este momento. ";
echo "Detalle de los errores.<br /><br />";
echo $error."<br /><br />";
echo "Porfavor corrija estos errores e inténtelo de nuevo.<br /><br />";
die();
}
// Se valida que los campos del formulairo estén llenos
if(!isset($_POST['first_name']) ||
46
!isset($_POST['last_name']) ||
!isset($_POST['email']) ||
!isset($_POST['telephone']) ||
!isset($_POST['message'])) {
died('Lo sentimos pero parece haber un problema con los datos enviados.');
}
//En esta parte el valor "name" nos sirve para crear las variables que recolectaran la
información de cada campo
$first_name = $_POST['first_name']; // requerido
$last_name = $_POST['last_name']; // requerido
$email_from = $_POST['email']; // requerido
$telephone = $_POST['telephone']; // no requerido
$message = $_POST['message']; // requerido
$error_message = "Error";
//En esta parte se verifica que la dirección de correo sea válida
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email_from)) {
$error_message .= 'La dirección de correo proporcionada no es válida.<br />';
}
//En esta parte se validan las cadenas de texto
$string_exp = "/^[A-Za-z .'-]+$/";
if(!preg_match($string_exp,$first_name)) {
$error_message .= 'El formato del nombre no es válido<br />';
}
if(!preg_match($string_exp,$last_name)) {
$error_message .= 'el formato del apellido no es válido.<br />';
}
if(strlen($message) < 2) {
$error_message .= 'El formato del texto no es válido.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
//A partir de aqui se contruye el cuerpo del mensaje tal y como llegará al correo
$email_message = "Contenido del Mensaje.nn";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "Nombre: ".clean_string($first_name)."n";
$email_message .= "Apellido: ".clean_string($last_name)."n";
$email_message .= "Email: ".clean_string($email_from)."n";
47
$email_message .= "Teléfono: ".clean_string($telephone)."n";
$email_message .= "Mensaje: ".clean_string($message)."n";
//Se crean los encabezados del correo
$headers = 'From: '.$email_from."rn".
'Reply-To: '.$email_from."rn" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);
?>
<!-- mensaje de Éxito-->
Gracias! Nos pondremos en contacto contigo a la brevedad
<?php
}
?>
Privacidad.html.
<?php
if(isset($_POST['email'])) {
// Edita las dos líneas siguientes con tu dirección de correo y asunto personalizados
$email_to = "fjcaneda@gmail.com";
$email_subject = "consulta";
function died($error) {
// si hay algún error, el formulario puede desplegar su mensaje de aviso
echo "Lo sentimos, hubo un error en sus datos y el formulario no puede ser enviado en
este momento. ";
echo "Detalle de los errores.<br /><br />";
echo $error."<br /><br />";
echo "Porfavor corrija estos errores e inténtelo de nuevo.<br /><br />";
die();
}
// Se valida que los campos del formulairo estén llenos
if(!isset($_POST['first_name']) ||
!isset($_POST['last_name']) ||
!isset($_POST['email']) ||
!isset($_POST['telephone']) ||
!isset($_POST['message'])) {
died('Lo sentimos pero parece haber un problema con los datos enviados.');
}
//En esta parte el valor "name" nos sirve para crear las variables que recolectaran la
información de cada campo
$first_name = $_POST['first_name']; // requerido
$last_name = $_POST['last_name']; // requerido
$email_from = $_POST['email']; // requerido
$telephone = $_POST['telephone']; // no requerido
$message = $_POST['message']; // requerido
$error_message = "Error";
//En esta parte se verifica que la dirección de correo sea válida
48
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email_from)) {
$error_message .= 'La dirección de correo proporcionada no es válida.<br />';
}
//En esta parte se validan las cadenas de texto
$string_exp = "/^[A-Za-z .'-]+$/";
if(!preg_match($string_exp,$first_name)) {
$error_message .= 'El formato del nombre no es válido<br />';
}
if(!preg_match($string_exp,$last_name)) {
$error_message .= 'el formato del apellido no es válido.<br />';
}
if(strlen($message) < 2) {
$error_message .= 'El formato del texto no es válido.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
//A partir de aqui se contruye el cuerpo del mensaje tal y como llegará al correo
$email_message = "Contenido del Mensaje.nn";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "Nombre: ".clean_string($first_name)."n";
$email_message .= "Apellido: ".clean_string($last_name)."n";
$email_message .= "Email: ".clean_string($email_from)."n";
$email_message .= "Teléfono: ".clean_string($telephone)."n";
$email_message .= "Mensaje: ".clean_string($message)."n";
//Se crean los encabezados del correo
$headers = 'From: '.$email_from."rn".
'Reply-To: '.$email_from."rn" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);
?>
<!-- mensaje de Éxito-->
Gracias! Nos pondremos en contacto contigo a la brevedad
<?php
}
?>
49
Privacidad.css.
@charset "UTF-8";
.container {
background-color: #FFFFFF;
width: 90%;
margin-left: auto;
margin-right: auto;
border-bottom-width: 0px;
padding-left: 0px;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
}
.cabecera_principal {
width: 100%;
background-color: #52bad5;
padding-top: 10px;
padding-bottom: 10px;
clear: left;
border-bottom: 2px solid #2C9AB7;
}
.cabecera_secundaria {
width: 100%;
padding-top: 50px;
padding-bottom: 50px;
background-color: #B3B3B3;
clear: left;
}
.container .cabecera_secundaria ul {
margin-top: 0%;
margin-right: auto;
margin-bottom: 0px;
margin-left: auto;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 15px;
padding-left: 0px;
width: 100%;
}
.cabecera_secundaria ul li {
list-style: none;
float: left;
margin-right: auto;
margin-top: 0px;
font-family: "Source Sans Pro";
font-weight: normal;
50
color: #FFFFFF;
letter-spacing: 1px;
margin-left: auto;
text-align: center;
width: 16%;
transition: all 0.3s linear;
}
.cabecera_secundaria ul li:hover {
color: #717070;
cursor: pointer;
}
.articulo_izquierdo{
background-color: #FFFFFF;
width: 60%;
font-family: "Source Sans Pro";
color: #343434;
padding-bottom: 15px;
}
.noDisplay {
display: none;
}
.container .articulo_izquierdo h3 {
padding-left: 5%;
padding-right: 5%;
margin-top: 5%;
color: #717070;
font-weight: bold;
text-transform: uppercase;
}
.container .articulo_izquierdo p {
padding-left: 5%;
padding-right: 5%;
text-align: justify;
line-height: 24px;
margin-top: 30px;
margin-bottom: 15px;
color: #B3B3B3;
}
.footer {
background-color: #717070;
}
.titulo {
font-weight: bold;
font-style: normal;
font-family: "Source Sans Pro";
51
text-align: center;
color: #FFFFFF;
letter-spacing: 2px;
}
.copyright {
text-align: center;
background-color: #717070;
color: #FFFFFF;
text-transform: uppercase;
font-weight: lighter;
letter-spacing: 2px;
border-top-width: 2px;
font-family: "Source Sans Pro";
}
body {
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px;
}
@media (max-width: 320px) {
.cabecera_secundaria ul li {
float: none;
margin-top: 28px;
margin-left: 0px;
width: 100%;
}
.container .cabecera_secundaria ul {
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 0px;
height: auto;
width: 100%;
text-align: center;
}
.cabecera_secundaria {
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px;
padding-top: 1px;
padding-bottom: 40px;
}
52
.articulo_izquierdo {
width: 100%;
height: auto;
}
.copyright {
padding-top: 25px;
padding-bottom: 0px;
margin-bottom: 0px;
}
.container .articulo_izquierdo h3 {
margin-top: 30px;
}
@media (min-width: 321px) and (max-width: 768px) {
.cabecera_secundaria ul li {
float: none;
margin-top: 28px;
margin-left: 0px;
width: 100%;
}
.container .cabecera_secundaria ul {
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px;
padding-top: 0px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 0px;
height: auto;
width: 100%;
text-align: center;
}
.cabecera_secundaria {
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px;
padding-top: 1px;
padding-bottom: 40px;
}
.articulo_izquierdo {
width: 100%;
height: auto;
}
@media (min-width: 769px) and (max-width: 1000px) {
53
.cabecera_secundaria {
overflow: auto;
padding-top: 30px;
padding-bottom: 30px;
}
.cabecera_secundaria ul li {
margin-top: 10px;
margin-right: 7%;
margin-bottom: 10px;
margin-left: 7%;
}
.articulo_izquierdo {
height: auto;
}
7.- Servidor LDAP.
Instalaremos ahora un servidor LDAP para gestionar nuestro dominio, en este caso vamos a utilizar
OpenLDAP y lo primero será instalarlo.
A continuación vamos a configurar nuestro dominio en el para ello utilizamos el siguiente comando.
Una vez empezada la configuración nos pedirá nos aparecerán una serie de ventanas pidiéndonos la contraseña
de administrador para nuestro dominio LDAP, en la cual nos pedirá confirmación posteriormente.
Nos pregunta si deseamos omitir la configuración, le decimos que no.
54
Nos pide ahora un nombre de dominio para nuestro servidor.
Le indicamos el tipo de base de datos con la que trabajar, en este caso HDB.
Le podemos contestar que si a purgar bases de datos cuando se purgue el paquete.
55
Y por último si deseamos mover los datos antiguos.
7.1.- Creación de objetos LDAP.
Creemos ahora una serie de objetos con ldif como ejemplo de cómo utilizarlo.
#Unidades Organizativas
dn: ou=usuarios,dc=edunet,dc=com
objectClass: top
objectClass: organizationalUnit
ou: usuarios
description: Unidad Organizativa para alojar a los usuarios de la empresa
dn: ou=grupos,dc=edunet,dc=com
objectClass: top
objectClass: organizationalUnit
ou: grupos
description: Unidad Organizativa para alojar a los grupos
56
#Grupos
dn: cn=alumnos,ou=grupos,dc=edunet,dc=com
objectClass: top
objectClass: posixGroup
cn: alumnos
gidNumber: 20001
description: alumnos matriculados
dn: cn=profesorado,ou=grupos,dc=edunet,dc=com
objectClass: top
objectClass: posixGroup
cn: profesorado
gidNumber: 20002
description: Departamento de profesorado
dn: cn=administracion,ou=grupos,dc=edunet,dc=com
objectClass: top
objectClass: posixGroup
cn: administracion
gidNumber: 20003
description: Departamento de administracion la empresa
dn: cn=desarrollo,ou=grupos,dc=edunet,dc=com
objectClass: top
objectClass: posixGroup
cn: desarrollo
gidNumber: 20003
description: Departamento de desarrollo la empresa
#Usuarios
dn: uid=luis,ou=usuarios,dc=edunet,dc=com
objectClass: posixAccount
objectClass: shadowAccount
objectClass: account
objectClass: top
uid: luisito
userPassword: 1234
cn: Luis
gecos: Luis Mejide
homeDirectory: /home/luis
uidNumber: 10001
gidNumber: 20001
loginShell: /bin/bash
shadowLastChange: 16431
shadowMax: 999999
shadowMin: 0
shadowWarning: 7
dn: uid=patxikin,ou=usuarios,dc=edunet,dc=com
objectClass: posixAccount
objectClass: shadowAccount
objectClass: account
objectClass: top
57
uid: patxikin
userPassword: 1234
cn: Patxi
gecos: Patxi Alonso
homeDirectory: /home/patxikin
uidNumber: 10002
gidNumber: 20003
loginShell: /bin/sh
shadowLastChange: 16431
shadowMax: 999999
shadowMin: 0
shadowWarning: 7
dn: uid=juan,ou=usuarios,dc=edunet,dc=com
objectClass: posixAccount
objectClass: shadowAccount
objectClass: account
objectClass: top
uid: juan
userPassword: 1234
cn: Juan
gecos: Juan Sinmiedo
homeDirectory: /home/
uidNumber: 10003
gidNumber: 20002
loginShell: /bin/bash
shadowLastChange: 16431
shadowMax: 999999
shadowMin: 0
shadowWarning: 7
Como podemos ver se ha creado una estructura con dos unidades organizativas cuatro grupos y otros tres o
cuatro usuarios como ejemplo que creo que con los comentarios es ilustrativo.
Ahora solo nos queda añadir estos objetos a nuestro directorio ejecutando el siguiente comando.
58
8.- Instalación de ApacheDirectoryStudio.
Este software nos facilitará el trabajo con el directorio LDAP, nos servirá tanto para crear nuevos objetos,
visualizar la estructura etc; posee también un potente editor de archivos ldif lo que nos facilitará enormemente
trabajar con los mismos. Como esta utilidad está programada en java (corre sobre eclipse), vamos a instalar y
a utilizar la versión de Oracle-java, la instalamos y la fijamos por defecto.
Añadimos el repositorio.
Actualizamos nuestros repositorios e instalamos java.
Nos pide el paquete java-default si queremos ponerlo por defecto y lo instalamos.
Ahora comprobamos si está fijado para que Ubuntu lo utilice por defecto, de no ser así lo ponemos.
59
Añadimos el directorio de java al PATH del sistema.
Y recargarmos el entorno.
Y por último comprobamos que el directorio está efectivamente añadido al sistema.
Vamos ahora a descargar ApacheDirectoryStudio de la página http://directory.apache.org/studio/ en cuanto
termine la descarga lo desempaquetamos y lo ejecutamos.
Podríamos copiar o mover la carpeta desempaquetada a directorio /opt de la siguiente manera.
Y hacer un enlace desde el ejecutable al directorio /bin, de esta manera podremos ejecutar el programa desde
cualquier lugar del sistema.
60
8.1.- Añadir dominio LDAP a ApacheDirectoryStudio.
Después de ejecutarlo nos aparecerá la interfaz de la aplicación que por el momento aparecerá en blanco, una
vez a la vista vamos al menú “New…” y en el menú emergente pinchamos en “Connection”, aparecerá un
asistente donde desplegaremos la carpeta “LDAP Browser” y “LDAP Connection” y “Next”.
En la siguiente ventana cubrimos los datos de la conexión que pretendemos crear, una vez introducidos los
datos podemos chequear la conexión y una vez que comprobamos que todo está correcto pulsamos en “Next”.
Y luego, en la siguiente cubrimos los datos de autenticación tal como aparece en la pantalla, los parámetros,
utilizaremos la autenticación simple, no configuraremos SASL ni Kerberos, una vez introducidos los datos,
ce la misma manera que antes los chequeamos y una vez todo correcto pulsamos “Next”.
61
En opciones del browser, que es la siguiente ventana dejaremos las opciones por defecto y pulsaremos en
“Next”.
62
La siguiente ventana “opciones de edición” la dejamos por defecto y pulsamos “Finish”.
Una vez configurado podemos ver los objetos añadidos al directorio.
Como se ha explicado anteriormente, este programa nos ofrece un sinfín de posibilidades para gestionar el
directorio activo, posibilidades que no se mostraran en este documento pero que se pude consultar en la
documentación de este magnífico programa.
63
9.- Instalación de Webmin.
Pondremos a disposición de los usuarios en la aplicación Webmin, con esta aplicación, podremos administrar
nuestro sistema Linux así como todos los servicios instalados, este programa funciona via web, a través del
puerto 10000; deberemos tener esto en cuenta al conectarnos, en nuestro caso teclearemos
https://edunet.com:10000. Como vemos utiliza el protocolo seguro https. Para instalarlo debemos añadir el
repositorio.
Una vez añadido debemos actualizar los paquetes de fuentes con “sudo apt-get-update” y lo instalamos.
Una vez instalado tecleamos en el navegador https://edunet.com:10000 y en caso de que nos salte una ventana
de advertencia en el navegador, damos a “opciones avanzadas” y “añadir excepción”, una vez hecho nos pide
el usuario y la contraseña, introducimos los datos y se nos presentará una interfaz como esta desde donde
podremos gestionar nuestro sistema.
64
10.- Presupuesto.
En este somero presupuesto, se presentará una aproximación ya que suponemos que esto es un proyecto piloto
de ejemplo y no sabemos aún la ubicación exacta donde se montará la red y el servidor, así como la ubicación
física de los quipos, con lo que no es posible por ahora contabilizar los metros de cable, racks necesarios y
otros materiales menores a emplear por lo que se presupuestarán sólo los equipos que aparecen representados
en el esquema inicial y el equipo servidor. Tampoco se tendrá en cuenta por ahora la mano de obra que se
tendrá que emplear, en el proceso por el mismo motivo.
Equipo Unidades Precio
unidad
Total
Switch Cisco Systems WS-C2960X24T-S Catalyst 2960 4 1309,00 € 4664,80 €
Switch Cisco Systems WS-C3750X24T-S Catalyst 3750 2 2047,00 € 4094,00 €
Router Cisco Systems 3495/K9 3 4485,93 € 13457,79 €
HP EliteDesk 800 G3 SF Core I5-7500/8GB/256GB SSD 20 779,00 € 15580 €
Servidor HP ProLiant M110 GEN10 intel xeon30106/16GB 1 1671,05 € 1671,05 €
Monitor HP VH240A 23,8’’ 21 193,00 € 4053,00 €
Total: 43520,64 €
El importe total de la electrónica de red más equipos que aparecen en el esquema de inicio con sus pantallas
y es servidor con su pantalla ascienden a un total de 43520,64 €, a falta de analizar la ubicación física y calcular
racks, metros de cable necesarios y otros materiales o posibles actuaciones menores.
11.- Posibles mejoras.
Las posibles mejoras ara a una posible ampliación a una red de campus mucho mayor, serían, por ejemplo:
 Implementación de mecanismos de seguridad en la red cara a posibles ataques MIM.
 Mejora de la zona DMZ para el alojamiento de servidores, (mayores mecanismos de seguridad tanto
lógica como física, instalación de firewalls de red…)
 Instalación de diferentes servidores (DNS, Correo, Streaming, DHCP…).
 Instalación de VoIP en todos los edificios del futuro campus.
 A instalar VoIP y servidor de streaming, se habilitaría también un balanceo de cargas para separar
tráfico de datos y video y voz mejorando de esta manera el QoS.
 Mejora de la web principal, ya que necesitaría muchos retoques, ¿Quizás se podría integrar en el mismo
Moodle realizando por ejemplo una plantilla personalizada?
 Instalación en las futuras aulas de pizarras digitales, cámaras y micrófonos para transmisiones en
streaming.
 Habilitar un equipo servidor o parte para que los alumnos a distancia puedan crear sus propios espacios
de trabajo.
 Habilitar puntos de acceso wifi en la red tanto para personal como para invitados (redes separadas).
 Como estás podría haber más, todo dependería de los requerimientos del cliente y del espacio donde
se fuese a instalar la red.
 Redacción y ejecución de políticas de seguridad de red apropiadas, políticas de contraseñas, etc. Así
como una correcta redacción e implementación de políticas de copia de seguridad, actualizaciones etc.
Para todo el sistema.
 Creación de repositorio local donde almacenar y clasificar toda la documentación generada.
65
12.- Bibliografía.
Cisco CCNA/CCNT Oficial cert guide.
Cisco CCNA Routing and switching Oficial cert guide,
http://www.moodle.org.
https://www.evirtualplus.com.
https://www.cisco.com.
https://help.ubuntu.com/
https://blog.desdelinux.net/
https://www.isc.org/downloads/bind/doc/
http://www.bind9.net/manuals
https://ldap.com/
https://docops.ca.com/cad126es/referencias/estructura-dearchivo-y-formatos-de-archivo/ldif/formato-de-la-
informacion-en-un-archivo-ldif
https://debian-handbook.info/browse/es-ES/stable/sect.ldap-directory.html
http://directory.apache.org/studio/
66
67

Más contenido relacionado

La actualidad más candente

Isdn y rdsi comparacion ventajas y desventajas
Isdn y rdsi comparacion ventajas y desventajasIsdn y rdsi comparacion ventajas y desventajas
Isdn y rdsi comparacion ventajas y desventajasOSCAR G.J. PEREIRA M
 
La capa de transporte
La capa de transporteLa capa de transporte
La capa de transporteIsrael Rey
 
Configuración servidores DCHP, DNS y HTTP - Cisco Packet Tracer
Configuración servidores DCHP, DNS y HTTP - Cisco Packet TracerConfiguración servidores DCHP, DNS y HTTP - Cisco Packet Tracer
Configuración servidores DCHP, DNS y HTTP - Cisco Packet TracerŘỉgö VẻGầ
 
Taller de redes i
Taller de redes iTaller de redes i
Taller de redes icarlos
 
Aspectos De DiseñO De La Capa De Red
Aspectos De DiseñO De La Capa De RedAspectos De DiseñO De La Capa De Red
Aspectos De DiseñO De La Capa De RedAlex Gonzaga
 
Conmutacion de circuitos y paquetes
Conmutacion de circuitos y paquetesConmutacion de circuitos y paquetes
Conmutacion de circuitos y paquetesJarvey Gonzalez
 
Semejanzas y Diferencias entre Arquitectura cliente/servidor y Arquitectura p2p
Semejanzas y Diferencias entre Arquitectura cliente/servidor y Arquitectura p2pSemejanzas y Diferencias entre Arquitectura cliente/servidor y Arquitectura p2p
Semejanzas y Diferencias entre Arquitectura cliente/servidor y Arquitectura p2pFabiMolinares
 
Como realizar una red lan básica con packet tracer
Como realizar una red lan básica con packet tracerComo realizar una red lan básica con packet tracer
Como realizar una red lan básica con packet tracerJenny Lophezz
 
Todo sobre inteligencia artificial métodos de búsqueda ia
Todo sobre inteligencia artificial  métodos de búsqueda iaTodo sobre inteligencia artificial  métodos de búsqueda ia
Todo sobre inteligencia artificial métodos de búsqueda iajuliogtz28
 
Monografía sobre Enrutamiento estático - Redes de computadoras
Monografía sobre Enrutamiento estático - Redes de computadorasMonografía sobre Enrutamiento estático - Redes de computadoras
Monografía sobre Enrutamiento estático - Redes de computadorasJ-SociOs
 
Eoc internet sobre redes HFC y fibra óptica para catv
Eoc internet sobre redes HFC y fibra óptica para catvEoc internet sobre redes HFC y fibra óptica para catv
Eoc internet sobre redes HFC y fibra óptica para catvCable Servicios S.A.
 
Como armar un cable de red para varias computadoras
Como armar un cable de red para varias computadorasComo armar un cable de red para varias computadoras
Como armar un cable de red para varias computadorasJessica-Sofia
 

La actualidad más candente (20)

Isdn y rdsi comparacion ventajas y desventajas
Isdn y rdsi comparacion ventajas y desventajasIsdn y rdsi comparacion ventajas y desventajas
Isdn y rdsi comparacion ventajas y desventajas
 
La capa de transporte
La capa de transporteLa capa de transporte
La capa de transporte
 
Cap3 mod3(sol)
Cap3 mod3(sol)Cap3 mod3(sol)
Cap3 mod3(sol)
 
Configuración servidores DCHP, DNS y HTTP - Cisco Packet Tracer
Configuración servidores DCHP, DNS y HTTP - Cisco Packet TracerConfiguración servidores DCHP, DNS y HTTP - Cisco Packet Tracer
Configuración servidores DCHP, DNS y HTTP - Cisco Packet Tracer
 
Todo sobre la ip.
Todo sobre la ip.Todo sobre la ip.
Todo sobre la ip.
 
Taller de redes i
Taller de redes iTaller de redes i
Taller de redes i
 
Aspectos De DiseñO De La Capa De Red
Aspectos De DiseñO De La Capa De RedAspectos De DiseñO De La Capa De Red
Aspectos De DiseñO De La Capa De Red
 
Conmutacion de circuitos y paquetes
Conmutacion de circuitos y paquetesConmutacion de circuitos y paquetes
Conmutacion de circuitos y paquetes
 
1. introducción a c#
1.  introducción a c#1.  introducción a c#
1. introducción a c#
 
1. Metodologia PPDIOO.pptx
1. Metodologia PPDIOO.pptx1. Metodologia PPDIOO.pptx
1. Metodologia PPDIOO.pptx
 
Spanning tree protocol CCNA
Spanning tree protocol CCNASpanning tree protocol CCNA
Spanning tree protocol CCNA
 
Ejemplo TCP-IP
Ejemplo TCP-IPEjemplo TCP-IP
Ejemplo TCP-IP
 
Semejanzas y Diferencias entre Arquitectura cliente/servidor y Arquitectura p2p
Semejanzas y Diferencias entre Arquitectura cliente/servidor y Arquitectura p2pSemejanzas y Diferencias entre Arquitectura cliente/servidor y Arquitectura p2p
Semejanzas y Diferencias entre Arquitectura cliente/servidor y Arquitectura p2p
 
Como realizar una red lan básica con packet tracer
Como realizar una red lan básica con packet tracerComo realizar una red lan básica con packet tracer
Como realizar una red lan básica con packet tracer
 
Modelo paso de mensajes
Modelo paso de mensajesModelo paso de mensajes
Modelo paso de mensajes
 
Todo sobre inteligencia artificial métodos de búsqueda ia
Todo sobre inteligencia artificial  métodos de búsqueda iaTodo sobre inteligencia artificial  métodos de búsqueda ia
Todo sobre inteligencia artificial métodos de búsqueda ia
 
Controles iso27002 2005
Controles iso27002 2005Controles iso27002 2005
Controles iso27002 2005
 
Monografía sobre Enrutamiento estático - Redes de computadoras
Monografía sobre Enrutamiento estático - Redes de computadorasMonografía sobre Enrutamiento estático - Redes de computadoras
Monografía sobre Enrutamiento estático - Redes de computadoras
 
Eoc internet sobre redes HFC y fibra óptica para catv
Eoc internet sobre redes HFC y fibra óptica para catvEoc internet sobre redes HFC y fibra óptica para catv
Eoc internet sobre redes HFC y fibra óptica para catv
 
Como armar un cable de red para varias computadoras
Como armar un cable de red para varias computadorasComo armar un cable de red para varias computadoras
Como armar un cable de red para varias computadoras
 

Similar a Proyecto academia

51036806 proyecto-ejemplo-ingenieria-de-software
51036806 proyecto-ejemplo-ingenieria-de-software51036806 proyecto-ejemplo-ingenieria-de-software
51036806 proyecto-ejemplo-ingenieria-de-softwareMiguel Angel Rodriguez
 
Proyecto Cloud Computing_OpenStack
Proyecto Cloud Computing_OpenStackProyecto Cloud Computing_OpenStack
Proyecto Cloud Computing_OpenStackJordi Rodriguez
 
Propuesta de una arquitectura para reemplazar el sistema informático la empre...
Propuesta de una arquitectura para reemplazar el sistema informático la empre...Propuesta de una arquitectura para reemplazar el sistema informático la empre...
Propuesta de una arquitectura para reemplazar el sistema informático la empre...Saul Mamani
 
GFPI-F-019 Formato Guia de Aprendizaje - FASE III - Servicios de Red (1).docx
GFPI-F-019 Formato Guia de Aprendizaje - FASE III - Servicios de Red (1).docxGFPI-F-019 Formato Guia de Aprendizaje - FASE III - Servicios de Red (1).docx
GFPI-F-019 Formato Guia de Aprendizaje - FASE III - Servicios de Red (1).docxSandraMilenaPerez5
 
Reparación Instalación y Mantenimiento de Equipos y Redes Informáticas
Reparación Instalación y Mantenimiento de Equipos y Redes InformáticasReparación Instalación y Mantenimiento de Equipos y Redes Informáticas
Reparación Instalación y Mantenimiento de Equipos y Redes InformáticasFomento Profesional
 
Desarrolo de un videojuego multijugador usando arquitectura Cliente-Servidor
Desarrolo de un videojuego multijugador usando arquitectura Cliente-ServidorDesarrolo de un videojuego multijugador usando arquitectura Cliente-Servidor
Desarrolo de un videojuego multijugador usando arquitectura Cliente-ServidorJhonatan Telmo Luis Visitacion
 
Tesis uso de assetbundles
Tesis uso de assetbundlesTesis uso de assetbundles
Tesis uso de assetbundlesEdilmer Ch
 
Cloud cumputing y las tic en el campo laboral
Cloud cumputing y las tic en el campo laboralCloud cumputing y las tic en el campo laboral
Cloud cumputing y las tic en el campo laboralGilberTorrado
 
Proyecyo final de analisis estructurado
Proyecyo final de analisis estructuradoProyecyo final de analisis estructurado
Proyecyo final de analisis estructuradoJuan Jose Flores
 
Prontuario Oracle
Prontuario OracleProntuario Oracle
Prontuario Oraclelsri8088
 
Informe de pasantías Víctor Reyes AIS UNERG
Informe de pasantías Víctor Reyes AIS UNERGInforme de pasantías Víctor Reyes AIS UNERG
Informe de pasantías Víctor Reyes AIS UNERGVictor Reyes
 
Ti documento grupo_2
Ti documento grupo_2Ti documento grupo_2
Ti documento grupo_2ingrisiitha
 
HERRAMIENTAS BÀSICAS DEL INTERNET
HERRAMIENTAS BÀSICAS DEL INTERNETHERRAMIENTAS BÀSICAS DEL INTERNET
HERRAMIENTAS BÀSICAS DEL INTERNETsilvia0208
 

Similar a Proyecto academia (20)

51036806 proyecto-ejemplo-ingenieria-de-software
51036806 proyecto-ejemplo-ingenieria-de-software51036806 proyecto-ejemplo-ingenieria-de-software
51036806 proyecto-ejemplo-ingenieria-de-software
 
Proyecto Cloud Computing OpenStack
Proyecto Cloud Computing OpenStackProyecto Cloud Computing OpenStack
Proyecto Cloud Computing OpenStack
 
Proyecto Cloud Computing_OpenStack
Proyecto Cloud Computing_OpenStackProyecto Cloud Computing_OpenStack
Proyecto Cloud Computing_OpenStack
 
Memoria
MemoriaMemoria
Memoria
 
Hoy
HoyHoy
Hoy
 
Pdc ldap
Pdc ldapPdc ldap
Pdc ldap
 
Carlos arteche gonzalez
Carlos arteche gonzalezCarlos arteche gonzalez
Carlos arteche gonzalez
 
Propuesta de una arquitectura para reemplazar el sistema informático la empre...
Propuesta de una arquitectura para reemplazar el sistema informático la empre...Propuesta de una arquitectura para reemplazar el sistema informático la empre...
Propuesta de una arquitectura para reemplazar el sistema informático la empre...
 
Trabajo de informatica
Trabajo de informaticaTrabajo de informatica
Trabajo de informatica
 
Memoria.pdf
Memoria.pdfMemoria.pdf
Memoria.pdf
 
GFPI-F-019 Formato Guia de Aprendizaje - FASE III - Servicios de Red (1).docx
GFPI-F-019 Formato Guia de Aprendizaje - FASE III - Servicios de Red (1).docxGFPI-F-019 Formato Guia de Aprendizaje - FASE III - Servicios de Red (1).docx
GFPI-F-019 Formato Guia de Aprendizaje - FASE III - Servicios de Red (1).docx
 
Reparación Instalación y Mantenimiento de Equipos y Redes Informáticas
Reparación Instalación y Mantenimiento de Equipos y Redes InformáticasReparación Instalación y Mantenimiento de Equipos y Redes Informáticas
Reparación Instalación y Mantenimiento de Equipos y Redes Informáticas
 
Desarrolo de un videojuego multijugador usando arquitectura Cliente-Servidor
Desarrolo de un videojuego multijugador usando arquitectura Cliente-ServidorDesarrolo de un videojuego multijugador usando arquitectura Cliente-Servidor
Desarrolo de un videojuego multijugador usando arquitectura Cliente-Servidor
 
Tesis uso de assetbundles
Tesis uso de assetbundlesTesis uso de assetbundles
Tesis uso de assetbundles
 
Cloud cumputing y las tic en el campo laboral
Cloud cumputing y las tic en el campo laboralCloud cumputing y las tic en el campo laboral
Cloud cumputing y las tic en el campo laboral
 
Proyecyo final de analisis estructurado
Proyecyo final de analisis estructuradoProyecyo final de analisis estructurado
Proyecyo final de analisis estructurado
 
Prontuario Oracle
Prontuario OracleProntuario Oracle
Prontuario Oracle
 
Informe de pasantías Víctor Reyes AIS UNERG
Informe de pasantías Víctor Reyes AIS UNERGInforme de pasantías Víctor Reyes AIS UNERG
Informe de pasantías Víctor Reyes AIS UNERG
 
Ti documento grupo_2
Ti documento grupo_2Ti documento grupo_2
Ti documento grupo_2
 
HERRAMIENTAS BÀSICAS DEL INTERNET
HERRAMIENTAS BÀSICAS DEL INTERNETHERRAMIENTAS BÀSICAS DEL INTERNET
HERRAMIENTAS BÀSICAS DEL INTERNET
 

Más de Francisco Jose Caneda Iglesias (14)

Redes packet tracer
Redes packet tracerRedes packet tracer
Redes packet tracer
 
Dominio Active Directory
Dominio Active DirectoryDominio Active Directory
Dominio Active Directory
 
Bd espaciais
Bd espaciaisBd espaciais
Bd espaciais
 
Disparadores en sql
Disparadores en sqlDisparadores en sql
Disparadores en sql
 
Funciones y procedimientos en mysql
Funciones y procedimientos en mysqlFunciones y procedimientos en mysql
Funciones y procedimientos en mysql
 
Vistas y permisos en bases de datos
Vistas y permisos en bases de datosVistas y permisos en bases de datos
Vistas y permisos en bases de datos
 
Creracion de usuarios y gestion de permisos en bases de datos mysql
Creracion de usuarios y gestion de permisos en bases de datos mysqlCreracion de usuarios y gestion de permisos en bases de datos mysql
Creracion de usuarios y gestion de permisos en bases de datos mysql
 
Ejercicios bbdd
Ejercicios bbddEjercicios bbdd
Ejercicios bbdd
 
Instalacion mysql
Instalacion mysqlInstalacion mysql
Instalacion mysql
 
Informes en java segunda parte
Informes en java segunda parteInformes en java segunda parte
Informes en java segunda parte
 
Informes java primera parte
Informes java primera parteInformes java primera parte
Informes java primera parte
 
Bases de datos con java
Bases de datos con javaBases de datos con java
Bases de datos con java
 
Automata finito
Automata finitoAutomata finito
Automata finito
 
Ejemplo BáSico De Uso De Alu
Ejemplo BáSico De Uso De AluEjemplo BáSico De Uso De Alu
Ejemplo BáSico De Uso De Alu
 

Último

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 

Último (20)

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 

Proyecto academia

  • 1. Francisco José Caneda Iglesias. PROYECTO PILOTO DE ACADEMIA DE ENSEÑANZA.
  • 2. 1 Contenidos. 1.- Introducción......................................................................................................................................................................................... 2 2.- Diseño de red...................................................................................................................................................................................... 3 2.1.- Subneteo de la red. .................................................................................................................................................................... 5 2.2.- Conexiones de red..................................................................................................................................................................... 5 2.3- Gateways y IP´s virtuales. .......................................................................................................................................................... 7 2.4.- Enrutamiento OSPF.................................................................................................................................................................... 7 3.- La máquina virtual............................................................................................................................................................................... 8 3.1- Servidor Apache con PHP y MYSQL...................................................................................................................................... 9 3.2- Descarga de Moodle en el directorio /opt............................................................................................................................ 9 3.3- Configuración de MySQL.........................................................................................................................................................11 3.4.- Preparación e instalación de Moodle...................................................................................................................................12 3.5- Instalación de gestores para la base de datos.....................................................................................................................13 4.- Gestión de la plataforma Moodle.................................................................................................................................................13 4.1.- Creación de cursos y categorías..........................................................................................................................................13 4.2.- Creación de repositorios locales..........................................................................................................................................16 4.3- Añadir contenido a nuestros cursos.....................................................................................................................................19 5.- El servidor DNS................................................................................................................................................................................22 6.- Página web..........................................................................................................................................................................................24 7.- Servidor LDAP. .................................................................................................................................................................................53 7.1.- Creación de objetos LDAP.........................................................................................................................................................55 8.- Instalación de ApacheDirectoryStudio........................................................................................................................................58 8.1.- Añadir dominio LDAP a ApacheDirectoryStudio.............................................................................................................60 9.- Instalación de Webmin....................................................................................................................................................................63 10.- Presupuesto.....................................................................................................................................................................................64 11.- Posibles mejoras. ............................................................................................................................................................................64 12.- Bibliografía........................................................................................................................................................................................65
  • 3. 2 1.- Introducción. Con el auge de las nuevas tecnologías, la enseñanza online está cada vez más presente por las ventajas que ofrece, tanto en comodidades y reducción de costes tanto para el alumnado como para el personal docente; en el presente proyecto se presenta un proyecto piloto que consiste en una academia de enseñanza online, como se ha indicado es un proyecto piloto, lo cual quiere decir que el proyecto está sujeto a modificaciones para adaptarse a las exigencias de nuestro cliente. En el presente documento se presenta un proyecto para un hipotético cliente que nos pide la realización de una obra en su local, esta obra consistirá en la informatización y puesta en marcha de un sitio para impartir clases online. El presente proyecto piloto presenta una posible realización de dicha obra que se presentará al cliente para que este se haga una idea de lo que se le va a instalar y de funcionamiento de la instalación; en posteriores reuniones con el cliente, se ofertará y se discutirán los pormenores del proyecto para adaptarlo sus exigencias y necesidades, pudiendo añadirse o quitarse características y elementos. En una primera fase del proyecto, se acometerá el montaje y puesta en marcha de la red, esto requerirá un equipo de profesionales expertos en el tema; en este montaje, se trabajará respetando las normas de seguridad y salud vigentes, uso de guantes, mono, casco, calzado de seguridad… Una vez hecho el montaje de red, se acometerá su configuración que se efectuará por un administrador de redes, que dejará la red completamente funcional. En una segunda fase, que será realizada por un profesional de la informática se implantará el software que no permitirá el acceso a un aula virtual donde se ofertarán varios cursos, esto será una plataforma Moodle, esta plataforma nos ofrece una fácil gestión de cursos, actividades, talleres… con los cuales el alumno podrá sacar el provecho esperado de los cursos realizados. Se le podrá ofrecer al cliente una personalización de la plataforma, en cuanto a diseño visual, funcionalidades etc. Que será realizada por nuestro equipo de desarrolladores. El equipo sobre el que va a ir montada esta plataforma será un sistema Debian con un servidor web apache ya que en este caso es lo más apropiado visto el tipo de software que va a correr sobre ellos, por otra parte, tanto el sistema operativo Debian como la plataforma Moodle son software libre pero al mismo tiempo sin sistemas ampliamente probados y utilizados para estos cometidos, no obstante, y a petición de nuestro cliente, se podría utilizar otro tipo de software incluso comercial, siempre claro está, este sería un coste era que se vería reflejado en el presupuesto final. Como se ha al principio, la enseñanza virtual en nuestros días es un negocio en auge con lo que las oportunidades de negocio son muchas. Los profesionales de hoy en día demandan formación especializada,
  • 4. 3 pero siempre se encuentran con la barrera de compatibilizar su trabajo con dicha formación, este tipo de enseñanzas viene en su auxilio eliminando las barreras espacio-temporales que hacen difícil que los profesionales puedan adaptarse a los sistemas de enseñanza tradicionales. Pero se podrían enumerar más ventajas de este tipo de enseñanzas como son el contacto con profesionales de todos los lugares, la flexibilidad que esta aporta, la posibilidad de colaboración con usuarios de cualquier parte del mundo, los contenidos y la información son más fácilmente actualizables, se reducen los costes en tiempo y dinero considerablemente… 2.- Diseño de red. La red estará diseñada en tres capas (acceso, distribución y núcleo). La electrónica de red estará compuesta por equipos cisco, en capa acceso se utilizarán switches de la serie catalyst de CISCO por ser una de las más comunes y ampliamente utilizadas en la actualidad, aunque dependiendo de los requerimientos de nuestro cliente se podrían buscar otro tipo de soluciones (distintos modelos e incluso distintos fabricantes). Habría que tener en cuenta, que en capa distribución serán necesarios dos switches con capacidad de trabajo en capa 3 (capacidades de enrutamiento de paquetes). En la capa distribución estarán los switches de capa dos que son los que tendrán la misión de dar acceso a los equipos de nuestra red. En estos estarán configuradas las distintas VLAN’s que soporta nuestra red (alumnado, oficinas, desarrollo y servidores), así como el correspondiente protocolo VTP que nos permitirá la configuración y gestión de las distintas VLAN´s. La capa de distribución, estará compuesta por dos switches con capacidad para funcionar en capa tres, hay que tener en cuenta que, en este montaje, la capa dos es la que llevará prácticamente todo el peso del enrutamiento de paquetes en nuestra red en este caso, los switches de capa tres nos proporcionan una mayor capacidad de proceso y por lo tanto un enrutamiento algo más rápido que lo que nos proporcionaría un router convencional. Así mismo, además de en estos switches de capa distribución se implementarán los siguientes protocolos.  VTP (VLAN Trunking Protocol): Es el protocolo trabajará en la capa dos del modelo OSI y nos permitirá configurar y gestionar las distintas VLAN´s.  STP (Spanning Tree Protocol): Este protocolo de capa dos nos permitirá gestionar la presencia de bucles en nuestra red debido a los enlaces redundantes que nos garantizan la disponibilidad de la red. Este protocolo funcionará activando o desactivando automáticamente los enlaces de nuestra red lo que garantiza la eliminación de dichos bucles y evita que se formen bucles infinitos que consuman todo el ancho de banda de nuestra red.  Etherchannel: Esta tecnología que utilizaremos entre los dos switches de capa distribución nos permite agrupar varios enlaces físicos (Ethernet) para hacerlos funcionar como uno solo, hay que tener en cuenta que solo podremos agrupar un máximo de ocho puertos; la agrupación de estos puertos nos posibilita que dichos puertos sean tratados como un único enlace permitiéndonos sumar la velocidad nominal de cada puerto, consiguiendo así una mayor velocidad de transmisión entre los dos switches de distribución.  HSRP (Hot Standby Router Protocol): Este es el único protocolo que utilizaremos que es propiedad de CISCO per lo que deberemos tener en cuenta de que en el caso de que la instalación finalmente no utilice electrónica de red CISCO, deberemos elegir otra solución como VRRP por ejemplo. Ese protocolo trabaja en capa tres y nos permite agrupar routers redundantes y tolerantes a fallos dentro de
  • 5. 4 una misma red, en el caso de nuestra red se ha decidido implementarlo en los switches de la capa de distribución. El funcionamiento de este protocolo es creando un grupo o clúster de routers en el que uno de ellos actuará como maestro enrutando el tráfico de nuestra red mientras que los demás actuarán como respaldo a la espera de que se produzca un fallo en el maestro. Este grupo de routers se estarán enviando mensajes, en el momento en el que el router de respaldo no reciba mensajes de tipo hello desde el router maestro, este asumirá que el maestro se encuentra fuera de servicio y pasará a asumir el rol de router maestro, dicho protocolo necesita de una dirección virtual que identifique al grupo de routers, en nuestro caso, y al estar implementado este protocolo en capa distribución tomaremos IP’s virtuales correspondientes a las VLAN´s. Cabe aclarar que en esta ocasión este protocolo se ha decidido que esté configurado en capa distribución trabajando con las VLAN´s.  OSPF (Open Shortest Path First): Esto es un protocolo jerárquico para encaminamiento de paquetes, funciona en capa tres utilizando el algoritmo Djistra enlace-estado (LSA) para calcular la ruta idónea entre dos nodos, este lo implementaremos tanto en capa distribución como en los routers correspondientes de capa tres. En la capa núcleo se encuentran tres routers que podrían ser de la serie 1800 o 1900 de CISCO pudiendo optar por otras soluciones tanto en modelos como en fabricantes como se indicó anteriormente con los switches. En está capa tendremos dos switches que nos permitirán enrutar paquetes desde otras redes distintas en nuestro campus o incluso desde distintas ciudades o regiones hacia nuestra red pudiendo de esta manera ampliar nuestra red, como es la intención a una red de campus o incluso una red intercity, en estos routers implementaríamos el protocolo de enrutamiento OSPF de la misma manera que en la capa distribución (teniendo en cuenta las distintas redes adyacentes). En este caso se ha decidido dejarlos para este fin, aunque se podrían implementar diferentes protocolos en los mismos y utilizarlos para más fines. Finalmente tendremos el router de acceso a internet en el que implementamos el mismo protocolo OSPF. El esquema final de nuestra red sería el que se muestra en la siguiente imagen.
  • 6. 5 Este esquema de red en tres capas, nos permite una fácil escalabilidad de nuestra red como es la intención y aunque posiblemente no sería practico para una empresa pequeña, la inversión si sería aceptable en el caso de necesitar futuras ampliaciones a una red de campus o incluso una red intercity incluso utilizando otra red tipo B (ya que la que estamos utilizando es tipo C) replanteando el subneteo de la red. En cuanto a la red que vamos a utilizar, como se ha dicho anteriormente es una red tipo C para este ejemplo. Será la 192.168.1.0/24, utilizaremos VLSM (Variable Lenth Subnet Mask) en primer lugar un mayor aprovechamiento de nuestro espacio de red ya que utilizaremos diferentes mascaras en función del número de host de nuestras subredes; asimismo nos permite utilizar direccionamiento sin máscara CDIR (Classless Inter- domain Routing) lo que significa que el protocolo de enrutamiento (OSPF) tiene en cuenta este direccionamiento VLSM en sus actuaciones de enrutamiento incluyendo estas máscaras de subred, nos permite también sumarizar rutas, lo que en las actualizaciones de se podrán enviar actualizaciones en las que una dirección de red representa la conectividad con varias redes con un prefijo común. 2.1.- Subneteo de la red. En la siguiente tabla podemos ver como se ha subneteado nuestra red 192.168.1.0/24. Nombre de subred Host Hosts útiles encontrados Dirección de Red Masca ra Mascara decimal Rango de IP’s asignable Broadcast VLAN Alumnado 30 30 192.168.1.0 /27 255.255.255.2 24 192.168.1.1 192.168.1.30 192.168.1.31 VLAN oficinas 20 30 192.168.1.32 /27 255.255.255.2 24 192.168.1.33 192.168.1.62 192.168.1.63 Van desarrollo 10 14 192.168.1.64 /28 255.255.255.2 40 192.168.1.65 192.168.1.78 192.168.1.79 VLAN servidores 5 6 192.168.1.80 /29 255.255.255.2 48 192.168.1.81 192.168.1.86 192.168.1.87 Distribución 2 a router 1 2 2 192.168.1.88 /30 255.255.255.2 52 192.168.1.89 192.168.1.90 192.168.1.91 Distribución 1 a router 2 2 2 192.168.1.92 /30 255.255.255.2 52 192.168.1.93 192.168.1.94 192.168.1.95 Distribución 1 a router 1 2 2 192.168.1.96 /30 255.255.255.2 52 192.168.1.97 192.168.1.98 192.168.1.99 Distribución 2 a router 2 2 2 192.168.1.100 /30 255.255.255.2 52 192.168.1.101 192.168.1.102 192.168.1.103 Con este esquema de red tenemos un número de IP´s utilizadas en las diferentes subredes de 88 (sin contar las dedicadas a puerta de enlace y broadcast) de las 254 disponibles con lo que ocupamos sobre el 41% del espacio disponible en nuestra red principal. En la conexión de nuestros dos routers router 1 y router 2 hacia el router 0, se ha decidido utilizar IP’s de case B, se muestra en la siguiente tabla. Router 1 a router 0 128.0.0.0/16 Router 2 a router 0 128.1.0.0/16 2.2.- Conexiones de red. En cuanto a las conexiones entre los diferentes puertos de los aparatos que componen la electrónica de red, en la siguiente tabla podemos ver estas conexiones (solo se muestran los puertos con conexión activa), cabe
  • 7. 6 destacar, que, por limitaciones del software, se han utilizado switches de 24 puertos en el esquema de red, con lo que se han representado menos equipos de los que realmente ocuparía la red real. Switch alumnos Puertos origen Puertos destino Modo de puerto fa0/1 – fa0/10 ethernet de cada uno de los equipos alumno access fa0/17 fa0/1 del switch distribución 1 trunk fa0/18 fa0/1 del switch distribución 2 trunk Switch oficinas Puertos origen Puertos destino Modo de puerto fa0/1 – fa0/7 ethernet equipos profesorado y administración access fa0/17 fa0/2 del switch distribución 1 trunk fa018 fa0/2 del switch distribución 2 trunk Switch desarrollo Puertos origen Puertos destino Modo de puerto fa0/1 – fa0/3 ethernet de los cada uno de los de desarrollo Access fa0/9 fa0/3 del switch distribución 1 trunk fa0/10 fa0/3 del switch distribución 2 trunk Switch servidores Puertos origen Puertos destino Modo de puerto fa0/1 – fa0/3 ethernet de cada uno de los servidores access fa0/9 fa0/4 del switch distribución 1 trunk fa0/10 fa0/4 del switch distribución 2 trunk Switch distribución 1 Puertos origen Puertos destino Modo de puerto fa0/1 fa0/17 switch alumnos trunk fa0/2 fa0/17 switch oficinas trunk fa0/3 fa0/9 switch administración trunk fa0/4 fa0/9 servidores g0/1 g0/0 router 1 g0/2 g0/1 router 1 fa0/21 – fa0/24 fa0/21 – fa0/24 de switch distribución 2 Switch distribución 2 Puertos origen Puertos destino Modo de puerto fa0/1 fa0/18 switch alumnos trunk fa0/2 fa0/18 switch oficinas trunk fa0/3 fa0/10 switch administración trunk fa0/4 fa0/10 servidores g0/1 g0/0 router 2 g0/2 g0/1 router 1 fa0/21 – fa0/24 fa0/21 – fa0/24 de switch distribución 1
  • 8. 7 2.3- Gateways y IP´s virtuales. Los puertos fa0/1 a fa0/24 de los switches distribución 1 y distribución 2 serán los puertos que compondrán el EtherChannel. Los puertos que vemos en modo trunk nos permitirán la comunicación entre las diferentes VLAN’s. Se muestra ahora las diferentes puertas de enlace de cada una de las VLAN´s, así como las diferentes IP’s virtuales que se han elegido para la configuración del protocolo HSRP. VLAN Puerta de enlace IP virtual alumnado 192.168.1.1 en switch distribución 1 192.168.1.2 en switch distribución 2 192.168.1.30 oficinas 192.168.1.33 en switch distribución 1 192.168.1.34 en switch distribución 2 192.168.1.62 desarrollo 192.168.1.65 en switch distribución 1 192.168.1.66 en switch distribución 2 192.168.1.78 servidores 192.168.1.81 en switch distribución 1 192.168.1.82 en switch distribución 2 192.168.1.86 En esta configuración tenemos dos puertas de enlace, una en cada switch de capa distribución ya que, siendo alta disponibilidad, en el caso de que se caiga uno de los switches, en el que queda activo deberá haber configurada una puerta de enlace de cada VLAN asociada con la IP virtual. Cabe destacar también que se han configurado las VLAN’ s alumnos y oficinas como primarias en el switch distribución 1 quedando como secundarias las VLAN desarrollo y servidores, en el switch distribución 2 han quedado configuradas a la inversa. Hay que destacar, que el protocolo HSRP se ha decidido implementarlo a nivel de distribución en las VLAN´s, de ahí esta configuración tan “especial”. 2.4.- Enrutamiento OSPF. En cuanto al protocolo de enrutamiento OSPF, en la siguiente tabla se muestra la configuración de redes vecinas y wildcards configuradas en cada dispositivo que lleva implementado dicho protocolo. Switch distribución 1 Red Vecina Wildcard 192.168.1.0 0.0.0.31 192.168.1.32 0.0.0.31 192.168.1.64 0.0.0.15 192.168.1.80 0.0.0.7 192.168.1.96 0.0.0.3 192.168.1.92 0.0.0.3 Switch distribución 2 Red Vecina Wildcard 192.168.1.0 0.0.0.31 192.168.1.32 0.0.0.31 192.168.1.64 0.0.0.15 192.168.1.80 0.0.0.7 192.168.1.100 0.0.0.3 192.168.1.88 0.0.0.3 Router 1 Red Vecina Wildcard 192.168.1.96 0.0.0.3 192.168.1.88 0.0.0.3 128.0.0.0 0.0.255.255 Router 2 Red Vecina Wildcard 192.168.1.100 0.0.0.3 192.168.1.92 0.0.0.3 128.1.0.0 0.0.255.255 Router 0 ISP Red Vecina Wildcard 128.0.0.0 0.0.255.255 128.1.0.0 0.0.255.255
  • 9. 8 Hasta aquí la configuración de esta red en tres capas, aunque puede que no sea la solución óptima para una empresa modesta, se ha querido hacer así también con el objeto también de poner un ejemplo modesto sobre el trabajo con diferente equipamiento de red CISCO y diferentes protocolos de red. En el video adjunto se podrán ver algunos detalles de la configuración de esta red. 3.- La máquina virtual.  Se ha montado una máquina virtual con un sistema operativo Linux Ubuntu 17.10 en la que se han configurado:  Servidor HTTP Apache2: Servidor web sobre el que correrá nuestra plataforma Moodle.  Servidor de bases de datos MySQL: Donde configuraremos nuestra base de datos de Moodle.  PHP 7.1: Lenguaje de programación de lado de servidor.  Moodle: Plataforma de Enseñanza virtual.  Phpmyadmin: herramienta para gestionar nuestra base de datos vía web.  MySQLWorkbench: herramienta de gestión de la base de datos vía escritorio.  Sublime text como herramienta de edición de código.  Se ha hecho un añadido en el archivo. bashrc para habilitar el abrir aplicaciones gráficas como superusuario y evitar el molesto error de “display”. A continuación, se muestra el fragmento del archivo con esta modificación.  Para facilitar el arranque de Moodle desde cualquier lugar del sistema, se ha realizado un enlace con el comando ln -s desde el ejecutable de dicho programa al directorio /bin con la intención de añadirlo en el PATH del sistema.  Se ha instalado Git, con el objeto de almacenar en un directorio el código de la plataforma Moodle que luego instalaremos en nuestro servidor.
  • 10. 9 3.1- Servidor Apache con PHP y MYSQL. Se han instalado un servidor HTTP Apache un servidor de BBDD MySQL y un lenguaje del lado de servidor como es PHP. No se ha utilizado para ello ninguna aplicación tipo XAMPP, sino que se han instalado por separado. Para que nuestra plataforma Moodle que se instalará a posteriori quede operativa, se han instado los módulos y el software adicional necesarios para tal fin, luego y para que estos queden activos, se ha reiniciado el servidor Apache. En este punto, utilizaremos Git para clonar las ramas de Moodle en nuestra carpeta /opt y posteriormente instalar la rama que nos interese en nuestro servidor Para ello instalaremos Git. 3.2- Descarga de Moodle en el directorio /opt. Primero, o cambiamos en nuestra máquina al directorio /opt. Y nos hacemos con el código y los índices de las diferentes ramas de Moodle.
  • 11. 10 En este punto, una vez descargado Moodle debemos cambiar a la carpeta con dicho nombre donde habremos descargado el código. Extraemos la lista de las ramas disponibles. En nuestro caso, optaremos por la última (MOODLE_34_STABLE), nos movemos a la rama elegida y la “fijamos”. Ahora copiaremos nuestro repositorio local al servidor que estará en /var/www/html, creamos una carpeta para almacenar los datos de Moodle fuera de la carpeta de nuestro servidor y asignamos los permisos correspondientes.
  • 12. 11 3.3- Configuración de MySQL. Primeramente, en el archivo de configuración de MySQL, debemos cambiar lo siguiente, se muestra el archivo modificado. Nota: En Ubuntu 17.10, el archivo de configuración “my.cnf” apunta a “mysql.cnf” dentro de otro directorio, por lo que se añadirán las líneas correspondientes a este último que se menciona, en la siguiente imagen se muestran los archivos implicados. Y reiniciamos nuestro servidor de BBDD. 3.4- Creación de usuario y BBDD. Llegó el momento de crear nuestro usuario en nuestra base de datos donde se almacenarán los datos de nuestra plataforma Moodle, primero nos loguearemos y en segundo lugar crearemos nuestro usuario, base de datos y asignaremos los permisos correspondientes.
  • 13. 12 3.4.- Preparación e instalación de Moodle. Para instalar Moodle, podremos crear nosotros mismos el archivo config.php que usa Moodle a través de la instalación, o bien podemos cambiar los permisos momentáneamente a la carpeta de nuestro servidor, en este caso y por comodidad lo haremos de esta manera teniendo en cuenta que cuando terminemos la instalación, deberemos volver los permisos del directorio a su estado “755”. Con el siguiente comando hacemos escribible el directorio “Moodle”. Una vez que esto esté correcto accedemos a la ruta http://localhost/moodle (en nuestro caso) y ajustamos los parámetros iniciales de la instalación y en la pantalla inicial ajustamos los parámetros iniciales, en este caso son:  Ruta para moodledata: /var/moodledata.  Tipo de base de datos: mysqli.  Host server: localhost.  User: francisco (el usuario creado en la base de datos).  Password: 1234 (contraseña de la base de datos).  Prefijo de las tablas: mdl_. Si estos datos son correctos, se harán una serie de comprobaciones en el servidor:
  • 14. 13 Por último, si todo está bien, daremos comienzo a la instalación en sí, seguiremos todos los pasos que nos indique el instalador y finalmente crearemos la cuenta de administración del sitio. Una vez completados estos pasos, la instalación quedará completada. 3.5- Instalación de gestores para la base de datos. En caso de requerir entornos gráficos para la gestión de bases de datos, podremos optar por phpmyadmin (vía web) o mysqlwokbench (entorno escritorio), a continuación, se muestran sendos procesos de instalación: 4.- Gestión de la plataforma Moodle. Una vez instalada la plataforma Moodle en nuestro servidor y una vez configurada según nuestras preferencias, veremos la manera de gestionar nuestros cursos y categorías añadiendo materiales tanto desde servidores en internet como desde repositorios locales, En el presente proyecto no se tocarán otros aspectos de la administración por ser un tema muy amplio. 4.1.- Creación de cursos y categorías. Para gestionar nuestros cursos y categorías nos moveremos a la administración del sitio y dentro de esta a la pestaña cursos. Una vez en ella vemos que nos aparecen todas las opciones para gestionar nuestros cursos, en este caso vamos al enlace añadir categoría desde donde podemos añadir las categorías que deseemos para clasificar nuestros cursos (por temática).
  • 15. 14 Veremos la ventana que nos permitirá crear una categoría, como podemos ver más abajo no tiene mayor complicación, nombramos la categoría, le asignamos un ID si lo necesitamos, este ID se utiliza para trabajar contra sistemas externos, en este caso lo podremos dejar en blanco ya que no lo necesitaremos, luego se nos permitirá introducir una descripción para la categoría, una vez completada pincharemos en el botón crear categoría y la categoría quedará añadida al sitio. Para crear un curso dentro de una categoría, iremos a “gestionar cursos y categorías”.
  • 16. 15 Como podemos ver en esta ventana, que ya tiene añadida dos categorías y dos cursos, podemos también crear nuevas categorías, así como nuevos cursos clasificándolos en sus categorías correspondientes. Como ejemplo, crearemos un nuevo curso “electrónica analógica” y lo clasificaremos dentro de la categoría “electrónica”. Haremos clic en el enlace de la parte derecha “crear nuevo curso”, y en la nueva ventana que se nos abre podremos cubrir la información del curso. Esta ventana nos permitirá nombrar nuestro curso, asignarlo a una categoría de las creadas con anterioridad, asignar un plazo de finalización o no, poner una descripción a nuestro curso, añadir y otras muchas opciones relacionadas con el curso como podremos ver en la parte de debajo de esa ventana.
  • 17. 16 Una vez finalizado tenemos la opción de guardar nuestros cambios y volver a la ventana anterior de creación de cursos o bien guardarlo y mostrar el curso creado. 4.2.- Creación de repositorios locales. Una vez creados nuestros cursos y categorías, vamos a crear un repositorio local y configurarlo en nuestra plataforma, en este repositorio podremos almacenar archivos de todo tipo para luego subir como material a nuestros cursos. Nuestro repositorio local estará dentro de la carpeta /var/moodledata que hemos creado a la hora de instalar nuestra plataforma. Dentro de esta carpeta hay otra que llamada “repository” y es dentro de esta donde crearemos nuestra estructura de directorios para almacenar nuestros archivos. Esta carpeta contiene otros directorios y archivos con los que trabaja Moodle, veámoslo.
  • 18. 17 Entre toda esta estructura de carpetas, podemos observar que se encuentra la referida, llamada “repository” y allí crearemos las carpetas que van a almacenar nuestros archivos; en nuestro caso crearemos dos de momento, una llamada “videos” y otra “archivos” que almacenará los demás archivos que utilizaremos en nuestro sitio. Tendremos ahora que configurar Moodle para utilizar estos repositorios, en el panel de administración vamos a “Extensiones”. Y dentro de las muchas opciones, si bajamos el scroll veremos “repositorios” y en ella un enlace llamado “gestionar repositorios”.
  • 19. 18 Una vez dentro, buscamos la opción “Sistema de archivos” y en el desplegable que tiene a su lado lo fijamos en activado y visible. Y sin marcar ninguna opción en la siguiente ventana guardamos. Vamos ahora a decirle las carpetas que tiene que buscar dentro del repositorio activo, después de guardar esto último, volveremos a la ventana de gestión de repositorios y en “Sistema de archivos” vamos a “Configuración”.
  • 20. 19 En la ventana siguiente pinchamos en “Crear una instancia de repositorio”. Y en la siguiente le damos nombre al repositorio y en el desplegable elegimos una de las carpetas creadas en /var/moodledata, que si lo hemos hecho bien aparecerán y pulsamos en guardar, haremos esto por cada repositorio que queramos añadir en nuestra plataforma. Una vez hecho esto, quedará accesible nuestro repositorio para añadir recursos a nuestros cursos. 4.3- Añadir contenido a nuestros cursos. Ahora estamos listos para añadir contenido a nuestros cursos, destacaremos que solo podrán añadir contenido los usuarios con privilegios adecuados para tal fin; para añadir recursos, entraremos en uno de los cursos creados, en este caso añadiré un curso de mi creación “principios de programación”, este curso muestra los rudimentos básicos de programación, en este caso utilizando lenguaje C. Entramos en el curso y nos aseguramos de habilitar al pulsar “Activar edición”.
  • 21. 20 Primero de todo cambiaremos el nombre de las unidades didácticas por nombres más significativos, para ello, y después de habilitar edición, veremos un pequeño icono con forma de lápiz, pulsamos sobre él. Esto nos permitirá cambiar el nombre de la unidad didáctica, en general en todos los sitios donde debamos cambiar esto lo haremos así.
  • 22. 21 Añadiremos video a nuestro curso para darle un poco de interactividad y hacerlo un poco más atractivo, en este caso añadiremos un vídeo corto desde nuestro repositorio local. Para ello pinchamos en “añade una actividad o recurso y en la ventana que se nos abrirá, navegamos hacia abajo, a la sección “recursos” y vamos a marcar la etiqueta para añadirla y pulsamos “Agregar”, en el resto de temas será el mismo proceso. Como vemos, en la ventana actividades hay infinidad de recursos que se pueden añadir, si pulsamos sobre cada uno, en la sección de la derecha podremos ver una descripción.
  • 23. 22 Una vez pulsemos en agregar, se nos abrirá una ventana de edición dónde tendremos que marcar el botón “multimedia” lo que nos abre el panel donde nos pide la localización del recurso, punchamos en la ventana vídeo y el botón “Examinar repositorios”, en la ventana que nos abre vamos a nuestra carpeta de videos y lo elegimos. En caso de querer insertar un vídeo de internet, por ejemplo de YouTube, simplemente, en lugar de pulsar el botón “Examinar repositorios” podemos poner su URL directamente, aunque también podemos habilitar el la API de YouTube en repositorios. En este apartado, se han creado varios foros y subido algún archivo para el curso, pero el proceso es muy similar en todos los casos. También se podrán realizar encuestas, proponer tareas, realizar cuestionarios, talleres... Pero como se ha indicado, el proceso en todos los casos es similar l comentado con los videos. 5.- El servidor DNS. Utilizaremos Bind 9 para instalar nuestro servidor DNS, primeramente procedemos a su instalación. El siguiente paso que realizaremos es definir los ficheros de zona en el archivo “/etc/named.conf.local”; en este, definiremos un archivo llamado “db.edunet.com” conde definiremos los registros de la zona directa y otro llamado “db.192.168.1” para la zona inversa.
  • 24. 23 Creamos ahora copias de los archivos “db.local” y db.127” a los que llamaremos “db.edunet.local” y “db.192.168.1” en los que almacenaremos los registros de zona directa e inversa respectivamente. Se muestran seguidamente dos capturas de pantalla de los archivos con la intención de mostrar el aspecto de cada uno una vez añadidos todos los registros, cabe aclarar aquí que se añadirán los equipos que aparecen en el esquema con su correspondiente redireccionamiento y suponiendo que el nombre de los equipos es el que aparece en el esquema. db.edunet.com.
  • 25. 24 db.192.168.1. y ahora nos queda reiniciar el servidor. 6.- Página web. En este caso, se ha realizado una pequeña página web de presentación, consta de una página principal con un menú que enlaza a las distintas secciones de la página, a continuación se muestran cada una de las páginas Inicio.
  • 27. 26 A continuación, se lista el código de la página. Index.html. <!doctype html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Edunet</title> <link href="css/principal.css" rel="stylesheet" type="text/css"> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <![endif]--> </head> <body> <div class="container"> <header> <div class="cabecera_principal"> <h1 class="titulo">EDUNET</h1> </div> <nav class="cabecera_secundaria"> <ul> <li><a href="index.html">INICIO</a></li> <li><a href="#">CURSOS</a></li> <li><a href="http://localhost/moodle" target="_blank">CAMPUS</a></li> <li><a href=localiza.html>DÓNDE ENCONTRARNOS</a></li> <li><a href="contacto.html">CONTACTO</a></li> <li><a href="privacidad.html">LEGAL</a></li> <li></li> </ul> </nav> </header> <section> <h2 class="noDisplay">Main Content</h2> <article class="articulo_izquierdo"> <h3>NUESTRA HISTORIA</h3> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p> </article> <aside class="articulo_derecho"> <img src="images/img01.jpg" alt="" width="400" height="200" class="placeholder"/>
  • 28. 27 </aside> </section> <footer class="cabecera_secundaria footer"> <div class="copyright">&copy;2018 - <strong>edunet.com</strong></div> </footer> </div> </body> </html> Principal.css. @charset "UTF-8"; .container { background-color: #FFFFFF; width: 90%; margin-left: auto; margin-right: auto; border-bottom-width: 0px; padding-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; } .cabecera_principal { width: 100%; background-color: #52bad5; padding-top: 10px; padding-bottom: 10px; clear: left; border-bottom: 2px solid #2C9AB7; } .cabecera_secundaria { width: 100%; padding-top: 50px; padding-bottom: 50px; background-color: #B3B3B3; clear: left; } .container .cabecera_secundaria ul { margin-top: 0%; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; width: 100%;
  • 29. 28 } .cabecera_secundaria ul li { list-style: none; float: left; margin-right: auto; margin-top: 0px; font-family: "Source Sans Pro"; font-weight: normal; color: #FFFFFF; letter-spacing: 1px; margin-left: auto; text-align: center; width: 16%; transition: all 0.3s linear; } .cabecera_secundaria ul li:hover { color: #717070; cursor: pointer; } .articulo_izquierdo{ background-color: #FFFFFF; width: 60%; float: left; font-family: "Source Sans Pro"; color: #343434; padding-bottom: 15px; } .noDisplay { display: none; } .container .articulo_izquierdo h3 { padding-left: 5%; padding-right: 5%; margin-top: 5%; color: #717070; font-weight: bold; text-transform: uppercase; } .container .articulo_izquierdo p { padding-left: 5%; padding-right: 5%; text-align: justify; line-height: 24px; margin-top: 30px; margin-bottom: 15px; color: #B3B3B3; }
  • 30. 29 .articulo_derecho { width: 40%; float: left; background-color: #F6F6F6; } .container .articulo_derecho ul { margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; } .articulo_derecho ul li { font-family: "Source Sans Pro"; list-style: none; text-align: center; background-color: #B3B3B3; width: 90%; margin-left: auto; margin-right: auto; margin-top: 10px; margin-bottom: 10px; padding-top: 15px; padding-bottom: 15px; color: #FFFFFF; font-weight: bold; border-radius: 0px; transition: all 0.3s linear; border-left: 5px solid #717070; } .articulo_derecho ul li:hover { background-color: #717070; cursor: pointer; } .footer { background-color: #717070; } .titulo { font-weight: bold; font-style: normal; font-family: "Source Sans Pro"; text-align: center; color: #FFFFFF; letter-spacing: 2px;
  • 31. 30 } .placeholder { /* [disabled]max-width: 400px; */ /* [disabled]max-height: 200px; */ width: 100%; padding-top: 30px; /* [disabled]padding-left: 19px; */ padding-bottom: 30px; height: 100%; } .copyright { text-align: center; background-color: #717070; color: #FFFFFF; text-transform: uppercase; font-weight: lighter; letter-spacing: 2px; border-top-width: 2px; font-family: "Source Sans Pro"; } body { margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; } @media (max-width: 320px) { .cabecera_secundaria ul li { float: none; margin-top: 28px; margin-left: 0px; width: 100%; } .container .cabecera_secundaria ul { margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; height: auto; width: 100%; text-align: center;
  • 32. 31 } .cabecera_secundaria { margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 1px; padding-bottom: 40px; } .articulo_izquierdo { width: 100%; height: auto; } .articulo_derecho { width: 100%; height: auto; } .placeholder { width: 100%; margin-top: 22PX; margin-right: 0px; margin-bottom: 22PX; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; max-width: 400px; max-height: 200px; height: auto; } .copyright { padding-top: 25px; padding-bottom: 0px; margin-bottom: 0px; } .container .articulo_izquerdo h3 { margin-top: 30px; } @media (min-width: 321px) and (max-width: 768px) { .cabecera_secundaria ul li { float: none; margin-top: 28px; margin-left: 0px; width: 100%; }
  • 33. 32 .container .cabecera_secundaria ul { margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; height: auto; width: 100%; text-align: center; } .cabecera_secundaria { margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 1px; padding-bottom: 40px; } .articulo_izquierdo { width: 100%; height: auto; } .articulo_derecho { width: 100%; height: auto; padding-bottom: 25px; } .placeholder { margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; width: 100%; max-width: 100%; height: auto; max-height: 100%; } @media (min-width: 769px) and (max-width: 1000px) { .cabecera_secundaria { overflow: auto;
  • 34. 33 padding-top: 30px; padding-bottom: 30px; } .cabecera_secundaria ul li { margin-top: 10px; margin-right: 7%; margin-bottom: 10px; margin-left: 7%; } .articulo_izquierdo { height: auto; } .articulo_derecho { height: auto; padding-bottom: 27px; } .placeholder { width: 100%; margin-left: 0px; margin-right: 0px; padding-left: 0px; padding-right: 0px; } Localiza.html. <!doctype html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Edunet</title> <link href="css/localiza.css" rel="stylesheet" type="text/css"> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <![endif]--> </head> <body> <div class="container"> <header> <div class="cabecera_principal"> <h1 class="titulo">EDUNET</h1> </div>
  • 35. 34 <nav class="cabecera_secundaria"> <ul> <li><a href="index.html">INICIO</a></li> <li><a href="#">CURSOS</a></li> <li><a href="http://localhost/moodle" target="_blank">CAMPUS</a></li> <li><a href=localiza.html>DÓNDE ENCONTRARNOS</a></li> <li><a href="contacto.html">CONTACTO</a></li> <li><a href="privacidad.html">LEGAL</a></li> <li></li> </ul> </nav> </header> <section> <h2 class="noDisplay">Main Content</h2> <article class="articulo_izquierdo"> <h3>Dónde encontrarnos</h3> <iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2901.7808896823162!2d- 8.175178684200613!3d43.33977388065874!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x d2e6d79448d7709%3A0xcb98d5e666d78d72!2sBemantes!5e0!3m2!1ses!2ses!4v1527501794179" width="800" height="600" frameborder="0" style="border:0" allowfullscreen></iframe> </article> </section> <footer class="cabecera_secundaria footer"> <div class="copyright">&copy;2018 - <strong>edunet.com</strong></div> </footer> </div> </body> </html> Localiza.css. @charset "UTF-8"; .container { background-color: #FFFFFF; width: 90%; margin-left: auto; margin-right: auto; border-bottom-width: 0px; padding-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; } .cabecera_principal { width: 100%; background-color: #52bad5; padding-top: 10px; padding-bottom: 10px;
  • 36. 35 clear: left; border-bottom: 2px solid #2C9AB7; } .cabecera_secundaria { width: 100%; padding-top: 50px; padding-bottom: 50px; background-color: #B3B3B3; clear: left; } .container .cabecera_secundaria ul { margin-top: 0%; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; width: 100%; } .cabecera_secundaria ul li { list-style: none; float: left; margin-right: auto; margin-top: 0px; font-family: "Source Sans Pro"; font-weight: normal; color: #FFFFFF; letter-spacing: 1px; margin-left: auto; text-align: center; width: 16%; transition: all 0.3s linear; } .cabecera_secundaria ul li:hover { color: #717070; cursor: pointer; } .articulo_izquierdo{ background-color: #FFFFFF; width: 60%; float: center; font-family: "Source Sans Pro"; color: #343434; padding-bottom: 15px; }
  • 37. 36 .noDisplay { display: none; } .container .articulo_izquierdo h3 { padding-left: 5%; padding-right: 5%; margin-top: 5%; color: #717070; font-weight: bold; text-transform: uppercase; } .container .articulo_izquierdo p { padding-left: 5%; padding-right: 5%; text-align: justify; line-height: 24px; margin-top: 30px; margin-bottom: 15px; color: #B3B3B3; } .footer { background-color: #717070; } .titulo { font-weight: bold; font-style: normal; font-family: "Source Sans Pro"; text-align: center; color: #FFFFFF; letter-spacing: 2px; } .placeholder { /* [disabled]max-width: 400px; */ /* [disabled]max-height: 200px; */ width: 100%; padding-top: 30px; /* [disabled]padding-left: 19px; */ padding-bottom: 30px; height: 100%; } .copyright { text-align: center; background-color: #717070; color: #FFFFFF;
  • 38. 37 text-transform: uppercase; font-weight: lighter; letter-spacing: 2px; border-top-width: 2px; font-family: "Source Sans Pro"; } body { margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; } @media (max-width: 320px) { .cabecera_secundaria ul li { float: none; margin-top: 28px; margin-left: 0px; width: 100%; } .container .cabecera_secundaria ul { margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; height: auto; width: 100%; text-align: center; } .cabecera_secundaria { margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 1px; padding-bottom: 40px; } .articulo_izquierdo { width: 100%; height: auto; } .copyright { padding-top: 25px; padding-bottom: 0px; margin-bottom: 0px;
  • 39. 38 } .container .articulo_izquierdo h3 { margin-top: 30px; } @media (min-width: 321px) and (max-width: 768px) { .cabecera_secundaria ul li { float: none; margin-top: 28px; margin-left: 0px; width: 100%; } .container .cabecera_secundaria ul { margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; height: auto; width: 100%; text-align: center; } .cabecera_secundaria { margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 1px; padding-bottom: 40px; } .articulo_izquierdo { width: 100%; height: auto; } @media (min-width: 769px) and (max-width: 1000px) { .cabecera_secundaria { overflow: auto; padding-top: 30px; padding-bottom: 30px; } .cabecera_secundaria ul li { margin-top: 10px; margin-right: 7%; margin-bottom: 10px;
  • 40. 39 margin-left: 7%; } .articulo_izquierdo { height: auto; } Contacto.html. <!doctype html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Edunet</title> <link href="css/contacto.css" rel="stylesheet" type="text/css"> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <![endif]--> </head> <body> <div class="container"> <header> <div class="cabecera_principal"> <h1 class="titulo">EDUNET</h1> </div> <nav class="cabecera_secundaria"> <ul> <li><a href="index.html">INICIO</a></li> <li><a href="#">CURSOS</a></li> <li><a href="http://localhost/moodle" target="_blank">CAMPUS</a></li> <li><a href=localiza.html>DÓNDE ENCONTRARNOS</a></li> <li><a href="contacto.html">CONTACTO</a></li> <li><a href="privacidad.html">LEGAL</a></li> <li></li> </ul> </nav> </header> <section> <h2 class="noDisplay">Main Content</h2> <article class="articulo_izquierdo"> <h3>CONTACTO</h3> <!-- formulario de contacto --> <form name="contactform" method="post" action="send_form_email.php"> <table width="450px"><!---Este tamaño en px es personalizable --> <tr>
  • 41. 40 <td valign="top"> <label for="first_name">Nombre *</label> </td> <td valign="top"> <input type="text" name="first_name" maxlength="50" size="30"> </td> </tr> <tr> <td valign="top"> <label for="last_name">Apellido *</label> </td> <td valign="top"> <input type="text" name="last_name" maxlength="50" size="30"> </td> </tr> <tr> <td valign="top"> <label for="email">E-mail *</label> </td> <td valign="top"> <input type="text" name="email" maxlength="80" size="30"> </td> </tr> <tr> <td valign="top"> <label for="telephone">Teléfono</label> </td> <td valign="top"> <input type="text" name="telephone" maxlength="30" size="30"> </td> </tr> <tr> <td valign="top"> <label for="message">Mensaje *</label> </td> <td valign="top"> <textarea name="message" maxlength="1000" cols="25" rows="6"></textarea> </td> </tr> <tr> <td colspan="2" style="text-align:center"> <input type="submit" value="Submit"><a href="http://www.edunet.com/email_form.php"></a> </td> </tr> </table> </form> <!-- fin formulario --> </article> </section> <footer class="cabecera_secundaria footer"> <div class="copyright">&copy;2018 - <strong>edunet.com</strong></div>
  • 42. 41 </footer> </div> </body> </html> Contacto.css. @charset "UTF-8"; .container { background-color: #FFFFFF; width: 90%; margin-left: auto; margin-right: auto; border-bottom-width: 0px; padding-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; } .cabecera_principal { width: 100%; background-color: #52bad5; padding-top: 10px; padding-bottom: 10px; clear: left; border-bottom: 2px solid #2C9AB7; } .cabecera_secundaria { width: 100%; padding-top: 50px; padding-bottom: 50px; background-color: #B3B3B3; clear: left; } .container .cabecera_secundaria ul { margin-top: 0%; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; width: 100%; } .cabecera_secundaria ul li { list-style: none; float: left;
  • 43. 42 margin-right: auto; margin-top: 0px; font-family: "Source Sans Pro"; font-weight: normal; color: #FFFFFF; letter-spacing: 1px; margin-left: auto; text-align: center; width: 16%; transition: all 0.3s linear; } .cabecera_secundaria ul li:hover { color: #717070; cursor: pointer; } .articulo_izquierdo{ background-color: #FFFFFF; width: 60%; float: center; font-family: "Source Sans Pro"; color: #343434; padding-bottom: 15px; } .noDisplay { display: none; } .container .articulo_izquierdo h3 { padding-left: 5%; padding-right: 5%; margin-top: 5%; color: #717070; font-weight: bold; text-transform: uppercase; } .container .articulo_izquierdo p { padding-left: 5%; padding-right: 5%; text-align: justify; line-height: 24px; margin-top: 30px; margin-bottom: 15px; color: #B3B3B3; } .footer { background-color: #717070; }
  • 44. 43 .titulo { font-weight: bold; font-style: normal; font-family: "Source Sans Pro"; text-align: center; color: #FFFFFF; letter-spacing: 2px; } .placeholder { /* [disabled]max-width: 400px; */ /* [disabled]max-height: 200px; */ width: 100%; padding-top: 30px; /* [disabled]padding-left: 19px; */ padding-bottom: 30px; height: 100%; } .copyright { text-align: center; background-color: #717070; color: #FFFFFF; text-transform: uppercase; font-weight: lighter; letter-spacing: 2px; border-top-width: 2px; font-family: "Source Sans Pro"; } body { margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; } @media (max-width: 320px) { .cabecera_secundaria ul li { float: none; margin-top: 28px; margin-left: 0px; width: 100%; } .container .cabecera_secundaria ul { margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px;
  • 45. 44 padding-right: 0px; padding-bottom: 0px; padding-left: 0px; height: auto; width: 100%; text-align: center; } .cabecera_secundaria { margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 1px; padding-bottom: 40px; } .articulo_izquierdo { width: 100%; height: auto; } .copyright { padding-top: 25px; padding-bottom: 0px; margin-bottom: 0px; } .container .articulo_izquierdo h3 { margin-top: 30px; } @media (min-width: 321px) and (max-width: 768px) { .cabecera_secundaria ul li { float: none; margin-top: 28px; margin-left: 0px; width: 100%; } .container .cabecera_secundaria ul { margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; height: auto; width: 100%; text-align: center; }
  • 46. 45 .cabecera_secundaria { margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 1px; padding-bottom: 40px; } .articulo_izquierdo { width: 100%; height: auto; } @media (min-width: 769px) and (max-width: 1000px) { .cabecera_secundaria { overflow: auto; padding-top: 30px; padding-bottom: 30px; } .cabecera_secundaria ul li { margin-top: 10px; margin-right: 7%; margin-bottom: 10px; margin-left: 7%; } .articulo_izquierdo { height: auto; } Envia.php.´ <?php if(isset($_POST['email'])) { $email_to = "fjcaneda@gmail.com"; $email_subject = "consulta"; function died($error) { // si hay algún error, el formulario puede desplegar su mensaje de aviso echo "Lo sentimos, hubo un error en sus datos y el formulario no puede ser enviado en este momento. "; echo "Detalle de los errores.<br /><br />"; echo $error."<br /><br />"; echo "Porfavor corrija estos errores e inténtelo de nuevo.<br /><br />"; die(); } // Se valida que los campos del formulairo estén llenos if(!isset($_POST['first_name']) ||
  • 47. 46 !isset($_POST['last_name']) || !isset($_POST['email']) || !isset($_POST['telephone']) || !isset($_POST['message'])) { died('Lo sentimos pero parece haber un problema con los datos enviados.'); } //En esta parte el valor "name" nos sirve para crear las variables que recolectaran la información de cada campo $first_name = $_POST['first_name']; // requerido $last_name = $_POST['last_name']; // requerido $email_from = $_POST['email']; // requerido $telephone = $_POST['telephone']; // no requerido $message = $_POST['message']; // requerido $error_message = "Error"; //En esta parte se verifica que la dirección de correo sea válida $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,4}$/'; if(!preg_match($email_exp,$email_from)) { $error_message .= 'La dirección de correo proporcionada no es válida.<br />'; } //En esta parte se validan las cadenas de texto $string_exp = "/^[A-Za-z .'-]+$/"; if(!preg_match($string_exp,$first_name)) { $error_message .= 'El formato del nombre no es válido<br />'; } if(!preg_match($string_exp,$last_name)) { $error_message .= 'el formato del apellido no es válido.<br />'; } if(strlen($message) < 2) { $error_message .= 'El formato del texto no es válido.<br />'; } if(strlen($error_message) > 0) { died($error_message); } //A partir de aqui se contruye el cuerpo del mensaje tal y como llegará al correo $email_message = "Contenido del Mensaje.nn"; function clean_string($string) { $bad = array("content-type","bcc:","to:","cc:","href"); return str_replace($bad,"",$string); } $email_message .= "Nombre: ".clean_string($first_name)."n"; $email_message .= "Apellido: ".clean_string($last_name)."n"; $email_message .= "Email: ".clean_string($email_from)."n";
  • 48. 47 $email_message .= "Teléfono: ".clean_string($telephone)."n"; $email_message .= "Mensaje: ".clean_string($message)."n"; //Se crean los encabezados del correo $headers = 'From: '.$email_from."rn". 'Reply-To: '.$email_from."rn" . 'X-Mailer: PHP/' . phpversion(); @mail($email_to, $email_subject, $email_message, $headers); ?> <!-- mensaje de Éxito--> Gracias! Nos pondremos en contacto contigo a la brevedad <?php } ?> Privacidad.html. <?php if(isset($_POST['email'])) { // Edita las dos líneas siguientes con tu dirección de correo y asunto personalizados $email_to = "fjcaneda@gmail.com"; $email_subject = "consulta"; function died($error) { // si hay algún error, el formulario puede desplegar su mensaje de aviso echo "Lo sentimos, hubo un error en sus datos y el formulario no puede ser enviado en este momento. "; echo "Detalle de los errores.<br /><br />"; echo $error."<br /><br />"; echo "Porfavor corrija estos errores e inténtelo de nuevo.<br /><br />"; die(); } // Se valida que los campos del formulairo estén llenos if(!isset($_POST['first_name']) || !isset($_POST['last_name']) || !isset($_POST['email']) || !isset($_POST['telephone']) || !isset($_POST['message'])) { died('Lo sentimos pero parece haber un problema con los datos enviados.'); } //En esta parte el valor "name" nos sirve para crear las variables que recolectaran la información de cada campo $first_name = $_POST['first_name']; // requerido $last_name = $_POST['last_name']; // requerido $email_from = $_POST['email']; // requerido $telephone = $_POST['telephone']; // no requerido $message = $_POST['message']; // requerido $error_message = "Error"; //En esta parte se verifica que la dirección de correo sea válida
  • 49. 48 $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,4}$/'; if(!preg_match($email_exp,$email_from)) { $error_message .= 'La dirección de correo proporcionada no es válida.<br />'; } //En esta parte se validan las cadenas de texto $string_exp = "/^[A-Za-z .'-]+$/"; if(!preg_match($string_exp,$first_name)) { $error_message .= 'El formato del nombre no es válido<br />'; } if(!preg_match($string_exp,$last_name)) { $error_message .= 'el formato del apellido no es válido.<br />'; } if(strlen($message) < 2) { $error_message .= 'El formato del texto no es válido.<br />'; } if(strlen($error_message) > 0) { died($error_message); } //A partir de aqui se contruye el cuerpo del mensaje tal y como llegará al correo $email_message = "Contenido del Mensaje.nn"; function clean_string($string) { $bad = array("content-type","bcc:","to:","cc:","href"); return str_replace($bad,"",$string); } $email_message .= "Nombre: ".clean_string($first_name)."n"; $email_message .= "Apellido: ".clean_string($last_name)."n"; $email_message .= "Email: ".clean_string($email_from)."n"; $email_message .= "Teléfono: ".clean_string($telephone)."n"; $email_message .= "Mensaje: ".clean_string($message)."n"; //Se crean los encabezados del correo $headers = 'From: '.$email_from."rn". 'Reply-To: '.$email_from."rn" . 'X-Mailer: PHP/' . phpversion(); @mail($email_to, $email_subject, $email_message, $headers); ?> <!-- mensaje de Éxito--> Gracias! Nos pondremos en contacto contigo a la brevedad <?php } ?>
  • 50. 49 Privacidad.css. @charset "UTF-8"; .container { background-color: #FFFFFF; width: 90%; margin-left: auto; margin-right: auto; border-bottom-width: 0px; padding-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; } .cabecera_principal { width: 100%; background-color: #52bad5; padding-top: 10px; padding-bottom: 10px; clear: left; border-bottom: 2px solid #2C9AB7; } .cabecera_secundaria { width: 100%; padding-top: 50px; padding-bottom: 50px; background-color: #B3B3B3; clear: left; } .container .cabecera_secundaria ul { margin-top: 0%; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; width: 100%; } .cabecera_secundaria ul li { list-style: none; float: left; margin-right: auto; margin-top: 0px; font-family: "Source Sans Pro"; font-weight: normal;
  • 51. 50 color: #FFFFFF; letter-spacing: 1px; margin-left: auto; text-align: center; width: 16%; transition: all 0.3s linear; } .cabecera_secundaria ul li:hover { color: #717070; cursor: pointer; } .articulo_izquierdo{ background-color: #FFFFFF; width: 60%; font-family: "Source Sans Pro"; color: #343434; padding-bottom: 15px; } .noDisplay { display: none; } .container .articulo_izquierdo h3 { padding-left: 5%; padding-right: 5%; margin-top: 5%; color: #717070; font-weight: bold; text-transform: uppercase; } .container .articulo_izquierdo p { padding-left: 5%; padding-right: 5%; text-align: justify; line-height: 24px; margin-top: 30px; margin-bottom: 15px; color: #B3B3B3; } .footer { background-color: #717070; } .titulo { font-weight: bold; font-style: normal; font-family: "Source Sans Pro";
  • 52. 51 text-align: center; color: #FFFFFF; letter-spacing: 2px; } .copyright { text-align: center; background-color: #717070; color: #FFFFFF; text-transform: uppercase; font-weight: lighter; letter-spacing: 2px; border-top-width: 2px; font-family: "Source Sans Pro"; } body { margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; } @media (max-width: 320px) { .cabecera_secundaria ul li { float: none; margin-top: 28px; margin-left: 0px; width: 100%; } .container .cabecera_secundaria ul { margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; height: auto; width: 100%; text-align: center; } .cabecera_secundaria { margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 1px; padding-bottom: 40px; }
  • 53. 52 .articulo_izquierdo { width: 100%; height: auto; } .copyright { padding-top: 25px; padding-bottom: 0px; margin-bottom: 0px; } .container .articulo_izquierdo h3 { margin-top: 30px; } @media (min-width: 321px) and (max-width: 768px) { .cabecera_secundaria ul li { float: none; margin-top: 28px; margin-left: 0px; width: 100%; } .container .cabecera_secundaria ul { margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; height: auto; width: 100%; text-align: center; } .cabecera_secundaria { margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 1px; padding-bottom: 40px; } .articulo_izquierdo { width: 100%; height: auto; } @media (min-width: 769px) and (max-width: 1000px) {
  • 54. 53 .cabecera_secundaria { overflow: auto; padding-top: 30px; padding-bottom: 30px; } .cabecera_secundaria ul li { margin-top: 10px; margin-right: 7%; margin-bottom: 10px; margin-left: 7%; } .articulo_izquierdo { height: auto; } 7.- Servidor LDAP. Instalaremos ahora un servidor LDAP para gestionar nuestro dominio, en este caso vamos a utilizar OpenLDAP y lo primero será instalarlo. A continuación vamos a configurar nuestro dominio en el para ello utilizamos el siguiente comando. Una vez empezada la configuración nos pedirá nos aparecerán una serie de ventanas pidiéndonos la contraseña de administrador para nuestro dominio LDAP, en la cual nos pedirá confirmación posteriormente. Nos pregunta si deseamos omitir la configuración, le decimos que no.
  • 55. 54 Nos pide ahora un nombre de dominio para nuestro servidor. Le indicamos el tipo de base de datos con la que trabajar, en este caso HDB. Le podemos contestar que si a purgar bases de datos cuando se purgue el paquete.
  • 56. 55 Y por último si deseamos mover los datos antiguos. 7.1.- Creación de objetos LDAP. Creemos ahora una serie de objetos con ldif como ejemplo de cómo utilizarlo. #Unidades Organizativas dn: ou=usuarios,dc=edunet,dc=com objectClass: top objectClass: organizationalUnit ou: usuarios description: Unidad Organizativa para alojar a los usuarios de la empresa dn: ou=grupos,dc=edunet,dc=com objectClass: top objectClass: organizationalUnit ou: grupos description: Unidad Organizativa para alojar a los grupos
  • 57. 56 #Grupos dn: cn=alumnos,ou=grupos,dc=edunet,dc=com objectClass: top objectClass: posixGroup cn: alumnos gidNumber: 20001 description: alumnos matriculados dn: cn=profesorado,ou=grupos,dc=edunet,dc=com objectClass: top objectClass: posixGroup cn: profesorado gidNumber: 20002 description: Departamento de profesorado dn: cn=administracion,ou=grupos,dc=edunet,dc=com objectClass: top objectClass: posixGroup cn: administracion gidNumber: 20003 description: Departamento de administracion la empresa dn: cn=desarrollo,ou=grupos,dc=edunet,dc=com objectClass: top objectClass: posixGroup cn: desarrollo gidNumber: 20003 description: Departamento de desarrollo la empresa #Usuarios dn: uid=luis,ou=usuarios,dc=edunet,dc=com objectClass: posixAccount objectClass: shadowAccount objectClass: account objectClass: top uid: luisito userPassword: 1234 cn: Luis gecos: Luis Mejide homeDirectory: /home/luis uidNumber: 10001 gidNumber: 20001 loginShell: /bin/bash shadowLastChange: 16431 shadowMax: 999999 shadowMin: 0 shadowWarning: 7 dn: uid=patxikin,ou=usuarios,dc=edunet,dc=com objectClass: posixAccount objectClass: shadowAccount objectClass: account objectClass: top
  • 58. 57 uid: patxikin userPassword: 1234 cn: Patxi gecos: Patxi Alonso homeDirectory: /home/patxikin uidNumber: 10002 gidNumber: 20003 loginShell: /bin/sh shadowLastChange: 16431 shadowMax: 999999 shadowMin: 0 shadowWarning: 7 dn: uid=juan,ou=usuarios,dc=edunet,dc=com objectClass: posixAccount objectClass: shadowAccount objectClass: account objectClass: top uid: juan userPassword: 1234 cn: Juan gecos: Juan Sinmiedo homeDirectory: /home/ uidNumber: 10003 gidNumber: 20002 loginShell: /bin/bash shadowLastChange: 16431 shadowMax: 999999 shadowMin: 0 shadowWarning: 7 Como podemos ver se ha creado una estructura con dos unidades organizativas cuatro grupos y otros tres o cuatro usuarios como ejemplo que creo que con los comentarios es ilustrativo. Ahora solo nos queda añadir estos objetos a nuestro directorio ejecutando el siguiente comando.
  • 59. 58 8.- Instalación de ApacheDirectoryStudio. Este software nos facilitará el trabajo con el directorio LDAP, nos servirá tanto para crear nuevos objetos, visualizar la estructura etc; posee también un potente editor de archivos ldif lo que nos facilitará enormemente trabajar con los mismos. Como esta utilidad está programada en java (corre sobre eclipse), vamos a instalar y a utilizar la versión de Oracle-java, la instalamos y la fijamos por defecto. Añadimos el repositorio. Actualizamos nuestros repositorios e instalamos java. Nos pide el paquete java-default si queremos ponerlo por defecto y lo instalamos. Ahora comprobamos si está fijado para que Ubuntu lo utilice por defecto, de no ser así lo ponemos.
  • 60. 59 Añadimos el directorio de java al PATH del sistema. Y recargarmos el entorno. Y por último comprobamos que el directorio está efectivamente añadido al sistema. Vamos ahora a descargar ApacheDirectoryStudio de la página http://directory.apache.org/studio/ en cuanto termine la descarga lo desempaquetamos y lo ejecutamos. Podríamos copiar o mover la carpeta desempaquetada a directorio /opt de la siguiente manera. Y hacer un enlace desde el ejecutable al directorio /bin, de esta manera podremos ejecutar el programa desde cualquier lugar del sistema.
  • 61. 60 8.1.- Añadir dominio LDAP a ApacheDirectoryStudio. Después de ejecutarlo nos aparecerá la interfaz de la aplicación que por el momento aparecerá en blanco, una vez a la vista vamos al menú “New…” y en el menú emergente pinchamos en “Connection”, aparecerá un asistente donde desplegaremos la carpeta “LDAP Browser” y “LDAP Connection” y “Next”. En la siguiente ventana cubrimos los datos de la conexión que pretendemos crear, una vez introducidos los datos podemos chequear la conexión y una vez que comprobamos que todo está correcto pulsamos en “Next”. Y luego, en la siguiente cubrimos los datos de autenticación tal como aparece en la pantalla, los parámetros, utilizaremos la autenticación simple, no configuraremos SASL ni Kerberos, una vez introducidos los datos, ce la misma manera que antes los chequeamos y una vez todo correcto pulsamos “Next”.
  • 62. 61 En opciones del browser, que es la siguiente ventana dejaremos las opciones por defecto y pulsaremos en “Next”.
  • 63. 62 La siguiente ventana “opciones de edición” la dejamos por defecto y pulsamos “Finish”. Una vez configurado podemos ver los objetos añadidos al directorio. Como se ha explicado anteriormente, este programa nos ofrece un sinfín de posibilidades para gestionar el directorio activo, posibilidades que no se mostraran en este documento pero que se pude consultar en la documentación de este magnífico programa.
  • 64. 63 9.- Instalación de Webmin. Pondremos a disposición de los usuarios en la aplicación Webmin, con esta aplicación, podremos administrar nuestro sistema Linux así como todos los servicios instalados, este programa funciona via web, a través del puerto 10000; deberemos tener esto en cuenta al conectarnos, en nuestro caso teclearemos https://edunet.com:10000. Como vemos utiliza el protocolo seguro https. Para instalarlo debemos añadir el repositorio. Una vez añadido debemos actualizar los paquetes de fuentes con “sudo apt-get-update” y lo instalamos. Una vez instalado tecleamos en el navegador https://edunet.com:10000 y en caso de que nos salte una ventana de advertencia en el navegador, damos a “opciones avanzadas” y “añadir excepción”, una vez hecho nos pide el usuario y la contraseña, introducimos los datos y se nos presentará una interfaz como esta desde donde podremos gestionar nuestro sistema.
  • 65. 64 10.- Presupuesto. En este somero presupuesto, se presentará una aproximación ya que suponemos que esto es un proyecto piloto de ejemplo y no sabemos aún la ubicación exacta donde se montará la red y el servidor, así como la ubicación física de los quipos, con lo que no es posible por ahora contabilizar los metros de cable, racks necesarios y otros materiales menores a emplear por lo que se presupuestarán sólo los equipos que aparecen representados en el esquema inicial y el equipo servidor. Tampoco se tendrá en cuenta por ahora la mano de obra que se tendrá que emplear, en el proceso por el mismo motivo. Equipo Unidades Precio unidad Total Switch Cisco Systems WS-C2960X24T-S Catalyst 2960 4 1309,00 € 4664,80 € Switch Cisco Systems WS-C3750X24T-S Catalyst 3750 2 2047,00 € 4094,00 € Router Cisco Systems 3495/K9 3 4485,93 € 13457,79 € HP EliteDesk 800 G3 SF Core I5-7500/8GB/256GB SSD 20 779,00 € 15580 € Servidor HP ProLiant M110 GEN10 intel xeon30106/16GB 1 1671,05 € 1671,05 € Monitor HP VH240A 23,8’’ 21 193,00 € 4053,00 € Total: 43520,64 € El importe total de la electrónica de red más equipos que aparecen en el esquema de inicio con sus pantallas y es servidor con su pantalla ascienden a un total de 43520,64 €, a falta de analizar la ubicación física y calcular racks, metros de cable necesarios y otros materiales o posibles actuaciones menores. 11.- Posibles mejoras. Las posibles mejoras ara a una posible ampliación a una red de campus mucho mayor, serían, por ejemplo:  Implementación de mecanismos de seguridad en la red cara a posibles ataques MIM.  Mejora de la zona DMZ para el alojamiento de servidores, (mayores mecanismos de seguridad tanto lógica como física, instalación de firewalls de red…)  Instalación de diferentes servidores (DNS, Correo, Streaming, DHCP…).  Instalación de VoIP en todos los edificios del futuro campus.  A instalar VoIP y servidor de streaming, se habilitaría también un balanceo de cargas para separar tráfico de datos y video y voz mejorando de esta manera el QoS.  Mejora de la web principal, ya que necesitaría muchos retoques, ¿Quizás se podría integrar en el mismo Moodle realizando por ejemplo una plantilla personalizada?  Instalación en las futuras aulas de pizarras digitales, cámaras y micrófonos para transmisiones en streaming.  Habilitar un equipo servidor o parte para que los alumnos a distancia puedan crear sus propios espacios de trabajo.  Habilitar puntos de acceso wifi en la red tanto para personal como para invitados (redes separadas).  Como estás podría haber más, todo dependería de los requerimientos del cliente y del espacio donde se fuese a instalar la red.  Redacción y ejecución de políticas de seguridad de red apropiadas, políticas de contraseñas, etc. Así como una correcta redacción e implementación de políticas de copia de seguridad, actualizaciones etc. Para todo el sistema.  Creación de repositorio local donde almacenar y clasificar toda la documentación generada.
  • 66. 65 12.- Bibliografía. Cisco CCNA/CCNT Oficial cert guide. Cisco CCNA Routing and switching Oficial cert guide, http://www.moodle.org. https://www.evirtualplus.com. https://www.cisco.com. https://help.ubuntu.com/ https://blog.desdelinux.net/ https://www.isc.org/downloads/bind/doc/ http://www.bind9.net/manuals https://ldap.com/ https://docops.ca.com/cad126es/referencias/estructura-dearchivo-y-formatos-de-archivo/ldif/formato-de-la- informacion-en-un-archivo-ldif https://debian-handbook.info/browse/es-ES/stable/sect.ldap-directory.html http://directory.apache.org/studio/
  • 67. 66
  • 68. 67