Professional Documents
Culture Documents
Proyecto Integrado
ndice
Enunciado.......................................................................................................................................................3
Descripcin del escenario ...............................................................................................................................3
Descripcin mquinas de la red interna ......................................................................................................4
vigila.proyectint.org ........................................................................................................................4
aplica.proyectint.org .......................................................................................................................4
datos.proyectint.org ........................................................................................................................4
clientex.proyectint.org ....................................................................................................................4
Enunciado
Despus de la excelente formacin recibida en el clico de ASIR, te animas a montar tu propia empresa de
servicios informticos: Proyect Int. El objetivo es crear la infraestructura necesaria para dar servicio de
respaldo de informacin (copias de seguridad) a tus clientes. El mecanismo ser el siguiente:
Al crear un contrato con un cliente, deber definirse el numero de mquinas que desea
integrar en el servicio (a las que se les va a realizar copias de seguridad).
Se instalar en la red del cliente una mquina y se configurar como cliente VPN para
que sea accesible desde tu red.
Tu sistema deber tener un proceso para que cada noche copie esos archivos a una
maquina especial de tus instalaciones, cuyo cometido es el de mantener las copias
seguras.
El estado y toda la informacin del proceso de copia debern ser almacenados en una
base de datos.
Toda la informacin anterior estar reflejada en una web, que servir como herramienta
de comprobacin del correcto funcionamiento del sistema.
vigila.proyectint.org
Dispondr de tres interfaces de red, una para la red interna y otra para la conexin a Internet. Se
implementar mediante una mquina virtual con pfSense. Contendr los siguientes servicios:
Firewall
Servidor VPN
Servidor DNS
aplica.proyectint.org
Ubicado en la red interna, se implentar mediante una mquina virtual Debian y contendr los siguientes
servicios:
Servidor Web
Servidor de correo
Aplicacin de monitorizacin con Nagios
Aplicativo web de gestin
datos.proyectint.org
Ubicado en la red interna, implementado mediante una mquina virtual Debian, tendr el cometido de
almacenar tanto las copias de seguridad realizas a los clientes, mediante un servidor FTP, como una Base de
Datos. Tambin se encargar de dar el servicio LDAP.
clientex.proyectint.org
vigila.proyectint.org
Para empezar importamos la OVA que contiene una mquina limpia con Debian instalado- A
continuacin vamos a la configuracin de las interfaces y establecemos las siguientes configuraciones:
aplica.proyectint.org
Como anteriormente, importamos la OVA y configuraremos la interfaz de esta forma:
# nano /etc/network/interfaces
datos.proyectint.org
Como anteriormente, importamos la OVA y configuraremos la interfaz de esta forma:
# nano /etc/network/interfaces
cliente1.proyectint.org
Como anteriormente, importamos la OVA y configuraremos la interfaz de esta forma:
# nano /etc/network/interfaces
Posteriormente arrancamos desde dicho dispositivo y seleccionamos la opcin 1. Tras unos segundos nos
empezar a pedir que le indiquemos las interfaces de red, las configuraremos tal que as:
As quedar la configuracin.
Una vez en el men de pfSense elegimos la opcin 2 para asignar las direcciones IP a las interfaces.
A continuacin vamos a modificar el nombre de la interfaz OPT1 por DMZ, para ello vamos a Interfaces
OPT1 y modificamos lo siguiente.
Posteriormente debemos ir a System General Setup para cambiar los servidores DNS, aadiremos
como servidor la propia mquina.
Ahora crearemos los certificados para los clientes, como antes se ha dicho, necesitamos uno para cada
cliente, pero como solo vamos a usar un cliente de momento, solo generaremos uno. Para generarlo vamos
a System Cerficate Authority Manager Certificates
Ahora nos dirigimos a VPN OpenVPN Server y aadimos uno, le indicaremos esta configuracin.
Ahora tenemos que crear usuarios para que los clientes puedan identificarse a la hora de conectarse por
OpenVPN. Tambien crearemos un grupo para englobar todos los usuarios de VPN. Vamos a System User
Manager Groups.
Ahora vamos a System User Manager Users para crear los usuarios para los clientes, crearemos
tantos usuarios como cliente tengamos, en este caso solo crearemos uno.
Ahora necesitamos un instalar un paquete para facilitar la configuracin del cliente, gracias a este
paquete podemos exportar los archivos de configuracin y pasarlo a la mquina cliente. Para ello vamos a
System Packages y elegimos este paquete.
A continuacin nos dirigimos a VPN OpenVPN Client Export y elegimos la siguiente opcin.
Se nos descargar un ZIP, este archivo lo pasaremos a la mquina cliente, podemos usar por ejemplo el
programa WinSCP. Para ver la configuracin del cliente ver este apartado del documento (Instalacin y
configuracin cliente VPN).
Configuracin Firewall
El firewall deber configurarse con las siguientes reglas:
Solo se aceptarn conexiones a los servicios dns a la mquina vigila.proyectint.org desde la dmz
(10.10.1.0/24) y la red interna (10.10.2.0/24).
Permitir peticiones y respuestas dns desde vigila.proyectint.org hacia el servidor dns del ISP.
Redireccionar todas las conexiones https recibidas de la subred 10.0.0.0/24 al puerto 443 de
vigila.proyectint.org hacia el puerto 443 de la mquina aplica.proyectint.org.
Permitir el paso de conexiones smtp desde el equipo aplica.proyectint.org hacia Internet, con sus
respectivas respuestas.
No permitir el paso de pings por el gateway desde la subred 10.0.0.0/24 hasta el resto: interna o
dmz.
Redireccionar todas las conexiones ftp recibidas de la subred 10.0.0.0/24 a vigila.proyectint.org hacia
los puertos que consideres necesarios de la mquina datos.proyectint.org
Otras:
o Necesito que pueda acceder a FTP desde aplica a datos para subir las copias desde el script.
# nano /etc/resolv.conf
$ ping 8.8.8.8
https://10.10.1.2:10000
Una vez instalado el servidor web, procedemos a configurarlo para que cumpla con el enunciado.
Para configurar apache2 podemos optar por hacerlo mediante Webmin, si entramos en este, nos vamos
al mdulo de Servidor Web Apache veremos los virtual hosts activos.
Ahora vamos a crear los dos sitios que nos pide el enunciado. Primero el que escucha por el puerto
8080. Luego el 443.
Para el siguiente sitio tenemos que activar el modulo ssl de apache, para ellos vamos al mbito global. Y
activamos el mdulo siguiente.
Ahora tenemos que agregar estos puertos al archivo ports.conf, en Webmin nos vamos al mbito global
y le damos a Redes y Direcciones.
Para configurar el servicio de correo saliente tendremos que modificar dos archivo de configuracin de
Postfix, en concreto los siguientes. (Modificamos lo que aparece resaltado en amarillo).
# nano /etc/postfix/main.cf
# nano /etc/postfix/master.cf
# adduser admin
# su admin
$ mail s correo_de_prueba pepe@yopmail.com
He usado Yopmail porque al enviar a Gmail, Google bloquea el correo porque considera que es SPAM (lo
mismo pasa con Outlook.com). Aqu est la captura de la comprobacin. (apenas se ve la direccin
pepe@yopmail.com porque se solapa).
Una vez acabado el proceso, para verificar la instalacin usamos el siguiente comando para comprobar
que Nagios3 se ha instalado.
$ nagios3 V
La configuracin de Nagios que debemos establecer para la correcta monitorizacin de los servicios y
dems se reparte en varios archivos (aunque podemos organizarlo como nos parezca mejor, no es
obligatorio hacerlo como propongo a continuacin.). El directorio donde se encuentra estos archivos es
/etc/nagios3/conf.d/.
$ cd /etc/nagios3/conf.d/
# nano equipos.cfg
# nano servicios.cfg
El plugin necesario para monitorizar MySQL (check_mysql) viene integrado en Nagios aunque necesita
alguna configuracin para su uso. Lo primero es crear un usuario con privilegios mnimos en nuestro servidor
de MySQL y aadimos lo siguiente.
# nano commands.cfg
# nano grupos.cfg
# nano contactos.cfg
# nano nagios.cfg
Para la monitorizacin de espacio en disco y dems cosas del sistema en otras mquinas remotas,
necesitamos otro paquete, lo instalamos con:
# nano /etc/nagios/nrpe.cfg
Para instalarlo en la mquina vigila podemos ir al rea de instalacin de paquetes y buscar el siguiente.
Los datos introducidos en este formulario se dirigen a login.php. Existe tres distintas redirecciones, si los
datos de acceso son errneos la pantalla es la siguiente.
Si nuestro usuario existe pero no tenemos ningn rol asignado nos aparecer la siguiente.
Si nuestro usuario introducido es un cliente, dos mostrar las copias de seguridad realizadas a dicho
cliente.
Si somos un administrador nos mostrara las posibles opciones que tenemos disponible.
# cpan i DBI
# cpan i Net::SFTP::Foreign
Este es el Shell script que usaremos.
#! /bin/bash
# Ejecutar bash bk.sh ip_maquina cod_maquina cod_cliente
DATE=$(date "+%d%h%Y%H%M")
TO="/root/bk/$3/$2/rsync"
FROM="root@$1:/root/copias/$2/"
if test ! -d /root/bk/$3
then
Para que las copias se realicen de manera automtica, adems de crear un tarea programada en el cron,
debemos crear una relacin de confianza entre las mquinas para que al ejecutar el script no nos pida la
contrasea del usuario. Para ello debemos realizar estos pasos en la mquina aplica.
# ssh-copy-id root@datos.proyectint.org
# ssh root@datos.proyectint.org
# ssh-copy-id root@10.0.0.6
Ahora para que el proceso de las copias es totalmente automtico, vamos a aadirlo a cron para que se
haga diariamente los backup.
# crontab e
Como vemos en la imagen, aadiremos tantas tareas como mquinas de clientes tengamos, cada una con
sus datos correspondientes.
# nano /etc/services
# nano /etc/xinetd.d/copias
Por ltimo, reiniciamos el super servicio xinetd y comprobamos que el puerto est a la escucha.
Para conectar con este servidor desde la aplicacin web se usar socket, desde un script PHP, se crear el
socket, se establecer la conexin con el servidor y se le transmitir los datos necesarios para la copia de
seguridad. El cdigo del script se encuentra en el anexo de este documento.
# nano /etc/resolv.conf
Instalacin de Webmin
(Ver instalacin en aplica.proyectint.org).
$ mysql -u root p
Para administrar la base de datos con un entorno amigable, vamos a instalar phpMyAdmin, que es una
herramienta escrita en PHP que nos permite realizar la administracin de MySQL a travs de pginas web,
utilizando un navegador.
El programa de instalacin crea un enlace simblico en el DocumentRoot del servidor web para que la
aplicacin pueda ser accesible desde la url, sino lo crea debemso hacerlo nosotros.
# nano /etc/apache2/sites-enabled/000-default
Una vez que ya tenemos la herramienta para administrar MySQL vamos a comenzar a crear las bases de
datos necesarias y las tablas. Primero tenemos que tener claro que necesitamos, segn se nos define en el
enunciado del proyecto, necesitamos registrar la informacin relativa a los clientes, a las diferentes
mquinas que dispone cada cliente, e informacin relativa a las copias de seguridad realizadas para ese
cliente. Lo que necesitamos almacenar de cada uno es lo siguiente.
Clientes
Guardaremos nombre del cliente, direccin, persona o personas de contacto, telfonos, correos
electrnicos, notas sobre el cliente.
Mquinas
Almacenaremos informacin relativa a las mquinas y los servicios que les proveemos a los clientes,
datos tcnicos sobre la mquina como su capacidad de disco total, su ubicacin fsica, notas sobre la
mquina, etc
Copias de seguridad
Aparte necesitamos una tabla para almacenar los usuarios y contraseas para acceder a la aplicacin
web, para ello crearemos una tabla en la base de datos, que a su vez relacione el cdigo de cliente con el
usuario para futuras consultas con la aplicacin web.
A continuacin procedemos con la creacin mediante phpMyAdmin. Este es el cdigo que se us para
crear la base de datos y el usuario que acceder a ella y sus privilegios.
CREATE DATABASE `db_proyectint`;
CREATE USER 'user_proyectint'@'localhost' IDENTIFIED BY '12Proyectint34*';
GRANT ALL PRIVILEGES ON `db_proyectint` . * TO 'user_proyectint'@'%';
Adems insertamos un usuario admininistrador para que pueda loguearse en la aplicacin web e
introducir a travs de sta los diferentes clientes, mquinas y usuarios que existan.
INSERT INTO usuarios VALUES ('admin',md5('admin'),'admin',null);
Por ltimo haremos una modificacin en el servidor MySQL para que podamos conectar desde la
aplicacin web. Para ello nos dirigimos a la configuracin del servidor MySQL y cambiamos la opcin
resaltada en la imagen.
Tambin podemos probar si est funcionando el servidor FTP utilizando cualquier cliente, por ejemplo un
navegador, solo tenemos que poner en la barra de direcciones la IP del servidor y nos mostrar lo siguiente:
ftp://datos.proyectint.org
Para configurar este servicio podemos usar la herramienta que instalamos antes. Pero si buscamos
VSFTPD entre los mdulos de Webmin puede ser que no se encuentre por ningn lado, esto no quiere decir
que no se pueda administrar desde aqu, sino simplemente esto indica que dicho mdulo no viene instalado
por defecto en Webmin.
Para instalar el mdulo VSFTPD nos dirigimos a la web de Webmin: http://www.webmin.com y nos
dirigimos a la opcin Third-Party Modules.
Y en el apartado Find modules or themes matching, indicamos el nombre del mdulo que necesitamos
instalar, en nuestro caso es VSFTP y buscamos.
Un problema que acarrea el uso de FTP es que se trata de un protocolo que no es seguro, la
comunicacin se hace en texto plano, sin ningn tipo de cifrado (tanto los datos para loguearse, como las
transferencias). Para solucionar este problema haremos una configuracin segura de FTP usando TLS, para
ello necesitamos generar un seguro. Para ello podemos hacerlo desde Webmin o bien desde la misma
mquina Debian usando openssl. En Webmin sera as.
Si pinchamos en el enlace anterior, nos llevar a la siguiente pantalla, que debemos de configurar as.
# nano /etc/ftpusers
Adems debemos de descomentar las siguientes opciones en el archivo de configuracin de VSFTPD para
desenjaular a root.
Ahora tenemos que crear el fichero con los nombres de los usuarios que no queremos enjaular.
# nano /etc/vsftpd.list
Para la configuracin de los usuarios indicamos la siguiente configuracin. Para agregar a los usuarios
clientes basta con aadir usuarios a la mquina Deban (podemos agregarlo mediante Webmin).
Reiniciamos el servidor mediante el siguiente botn y probamos a conectarnos en modo seguro y nos
saldr la pantalla del certificado.
Ya solo falta crear tantos usuarios como cliente tengamos, y en cada directorio crear tantas carpetas
como mquinas vayamos a ofrecer el servicio de backups. Si probamos a conectar con el usuario root:
Una vez acabada la instalacin debemos configurar nuestro servidor LPAD y para ello introduciremos el
comando siguiente y vamos introduciendo lo que nos pide.
# dpkg-reconfigure slapd
Como vemos en la pantalla anterior todo ha ido bien. Ahora es importante editar el fichero de
configuracion de slapd y establecer como dominio el que acabamos de crear. Para ello, editamos el fichero
/etc/ldap/ldap.conf.
# nano /etc/ldap/ldap.conf
Una vez que ya tenemos instalado, configurado y funcionando el servidor LDAP vamos a comprobar que
herramientas graficas podemos usar para la gestin del servidor y de clientes. Como tenemos instalado
Webmin en la maquina, no tenemos porque instalar otra aplicacin web para configurar LDAP y gestionar
usuarios y grupos. Si no tuviese instalado Webmin, me decantara phplpadadmin como aplicacin web para
la gestion de LDAP.
Veamos como es el men que nos ofrece Webmin para la configuracin del servidor y cliente.
Para poder administrar LDAP por Webmin hay que hacer algunos cambios en la configuracin, son los
siguientes.
Una vez aplicada la configuracin, podemos acceder al apartado donde es posible crear los usuarios y los
grupos.
Pues una vez acabado este proceso, ya tenemos correctamente instalado y configurado el servidor LDAP,
listo para ser usado. Vamos a crear un usuario para probar el funcionamiento.
# mv vigila-ud-1194-cliente1/* /etc/openvpn
# mv vigila-udp-1194-cliente1.ovpn vigila-udp-1194-cliente1.conf
En el siguiente archivo comentamos las siguientes lneas.
# nano vigila-udp-1194-cliente1.conf
# ifconfig
# ping 10.0.0.1
# ping 10.10.1.1
Copias de seguridad
Para realizar las copias de seguridad automticas a los diferentes equipos de los clientes, en la mquina
clienteX que instalaremos en la red de estos, tendremos un Shell Script que ser el encargado de realizar la
sincronizacin de directorios usando el rsync. Los directorios se almacenarn de la siguiente forma.
Cuando se contrate un servicio de copias de seguridad con un cliente se acordar el nmero de mquinas
a las que se le prestar el servicio. Para que las copias se realicen de manera automtica, adems de crear un
tarea programada en el cron, debemos crear una relacin de confianza entre las mquinas para que al
ejecutar el script no nos pida la contrasea del usuario. Para ello debemos realizar estos pasos para cada una
de las mquinas a la que se le prestar el servicio de copias.
Para empezar, vamos a suponer q en la empresa tienen la red 192.168.2.0/24, tenemos que establecer la
conexin con las mquinas de la empresa cliente, nuestra mquina cliente1 tendr una nueva interfaz donde
le asignaremos una ip de la subred que haya en dicha empresa, en este caso la ip de nuestra mquina
cliente1 es la 192.168.2.10.
A continuacin vamos a crear la clave en la mquina cliente1 (como anteriormente hicimos con aplica).
# ssh-keygen -t dsa
Ahora vamos a transferirla a las diferentes mquinas de la red a la que vayamos a prestar el servicio.
# ssh-copy-id root@192.168.2.2
A continuacin nos conectamos a la mquina del cliente vemos que no nos pide contrasea.
# ssh root@192.168.2.2
Esto lo tenemos que hacer para cada mquina del cliente. Una vez hecho ya podremos conectarnos sin
tener que introducir contrasea.
Para la copias de las mquinas de clientes desarrollaremos un script que realice la sincronizacin de la
carpeta de la mquina cliente1 con el contenido de la respectiva mquina con el comando rsync, el cual hay
que instalar en ambas mquinas.
Con este script tendremos los directorios actualizados, las copias de seguridad se realizarn de estas
carpetas desde los equipos de nuestra empresa. Para que el proceso de sincronizacin sea automtico
crearemos una serie de tareas (una por cada mquina) al cron. En el ejemplo siguiente valdr para tener
sincronizadas tres mquinas.
# crontab -e
Anexos
Bibliografa
http://lahackcueva.blogspot.com.es/
http://www.ite.educacion.es/formacion/materiales/
http://es.wikipedia.org/
http://perldoc.perl.org/
http://search.cpan.org/
http://usuariodebian.blogspot.com.es/
http://www.webmin.com/
http://www.php.net//manual/es/
http://www.desarrolloweb.com
http://stackoverflow.com
http://web.mit.edu
Index.html
<!doctype html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css"/>
<title>Login-proyectint.org</title>
</head>
<body>
<div id="envoltura">
<div id="contenedor" class="curva">
<div id="cabecera" class="tac">
proyectint.org
</div>
<div id="cuerpo">
<form id="form-login" action="login.php" method="post">
<p><label for="usuario">Usuario:</label></p>
<p class="mb10"><input name="usuario" type="text"
id="usuario"></p>
<p><label for="pass">Contrasea:</label></p>
<p class="mb10"><input name="pass" type="password" id="pass"></p>
<p><input name="submit" type="submit" id="submit" value="Entrar"
class="boton"></p>
</form>
</div>
<div id="pie">Aplicacin Web de Gestin</div>
</div>
</body>
</html>
Login.php
<!doctype html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css"/>
<title> Login-proyectint.org </title>
</head>
<body>
<?php
session_start();
if(!empty($_POST['usuario'])) {
$con=require('config_bd.php');
$usu=$_POST["usuario"];
$pass=$_POST["pass"];
$res = mysql_query("select count(*) as ok,rol from usuarios where
nombre='$usu' and pass=md5('$pass')", $con) or die(mysql_error());
$row = mysql_fetch_array($res);
if($row["ok"] == 0) {?>
<h1> Usuario incorrecto </h1><br>
<form method="POST" action="index.html" align="center">
<input type="submit" value="Volver a intentarlo" class="boton"/>
</form> <?php
}else{
$_SESSION["login_proy"]=$row["rol"];
setcookie("usuario",$usu);
if($row["rol"] == "admin"){
header("Location: admin/admin.php");
}elseif($row["rol"] == "cliente"){
header("Location: cliente/cliente.php");
}else{ ?>
<h1> Error. No tiene definido ningún rol. Póngase en
contacto con el Administrador. <h1>
<?php
}
}
mysql_close($con);
}else{?>
<h1> Usuario incorrecto </h1><br>
<form method="POST" action="index.html" align="center">
<input type="submit" value="Volver a intentarlo" class="boton"/>
</form>
<?php } ?>
<div class="bottom"><p>Aplicacin Web de Gestin - Proyectint.org</p></div>
</body>
</html>
Add_cliente.php
<!doctype html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../style.css"/>
<title> Aadir Cliente - proyectint.org </title>
</head>
<?php
session_start();
if (isset($_POST['cod_cli'])){?>
<body>
<h1>Aadir Cliente</h1><?php
$con=require('../config_bd.php');
$res = mysql_query("select count(*) as ok from clientes where
cod_cliente='{$_POST['cod_cli']}'", $con) or die(mysql_error());
$row = mysql_fetch_array($res);
if($row["ok"] == 0) {
$sql="INSERT INTO clientes
VALUES('{$_POST['cod_cli']}','{$_POST['nom_cli']}','{$_POST['dir']}','{$_POST['pe
rso']}','{$_POST['tel']}','{$_POST['email']}','{$_POST['notas']}')";
mysql_query($sql,$con) or die(mysql_error());?>
<p id="introd">Insertado correctamente.</p><?php
}else{?>
<p id="introd">El Cdigo del Cliente introducido est ya en uso. Prueba
de nuevo.</p><?php
}?>
<form method="POST" action="add_cliente.php" align="center">
<input type="submit" value="Volver a Introducir" class="boton"/>
</form><br/>
<form method="POST" action="admin.php" align="center">
<input type="submit" value="Volver a Panel de Control de Administrador"
class="boton"/>
</form><br/><?php
mysql_close($con);
exit;
}
if ((isset($_SESSION["login_proy"])) && ($_SESSION["login_proy"]=="admin")) {?>
<body>
<h1>Aadir Cliente</h1>
<p id="introd">Introduce los datos del nuevo cliente para aadir a la Base de
Datos de Clientes. El campo Cdigo del Cliente es nico.</p>
<form method="POST" action="admin.php" align="right">
<input type="submit" value="Volver a Panel de Control de Administrador"
class="boton"/>
</form><br/>
<div id="cuerpo">
<form id="form-login" method="post">
<p><label>Cdigo del Cliente</label></p>
<p><input class="mb10" name="cod_cli" type="text"></p>
<p><label>Nombre del Cliente</label></p>
<p><input class="mb10" name="nom_cli" type="text"></p>
<p><label>Direccin</label></p>
<p><input class="mb10" name="dir" type="text"></p>
<p><label>Persona de Contacto</label></p>
<p><input class="mb10" name="perso" type="text"></p>
<p><label>Telfono</label></p>
<p><input class="mb10" name="tel" type="tel"></p>
<p><label>Email</label></p>
Add_maquina.php
<!doctype html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../style.css"/>
<title> Aadir Mquina - proyectint.org </title>
</head>
<?php
session_start();
if (isset($_POST['cod_maq'])){?>
<body>
<h1>Aadir Mquina</h1><?php
$con=require('../config_bd.php');
$res = mysql_query("select count(*) as ok from maquinas where
cod_maquina='{$_POST['cod_maq']}'", $con) or die(mysql_error());
$row = mysql_fetch_array($res);
if($row["ok"] == 0) {
$sql="INSERT INTO maquinas
VALUES('{$_POST['cod_maq']}','{$_POST['serv']}','{$_POST['ubic']}','{$_POST['capa
']}','{$_POST['notas']}')";
mysql_query($sql,$con) or die(mysql_error());?>
<p id="introd">Insertado correctamente.</p><?php
}else{?>
<p id="introd">El Cdigo de la Mquina introducido est ya en uso. Prueba
de nuevo.</p><?php
}?>
<form method="POST" action="add_maquina.php" align="center">
<input type="submit" value="Volver a Introducir" class="boton"/>
</form><br/>
<form method="POST" action="admin.php" align="center">
<input type="submit" value="Volver a Panel de Control de Administrador"
class="boton"/>
</form><br/><?php
mysql_close($con);
exit;
}
if ((isset($_SESSION["login_proy"])) && ($_SESSION["login_proy"]=="admin")) {?>
<body>
<h1>Aadir Mquina</h1>
<p id="introd">Introduce los datos de la nueva mquina para aadir a la Base
de Datos de Mquinas. El campo Cdigo de la Mquina es obligatorio y nico.
Add_usuario.php
<!doctype html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../style.css"/>
<title> Aadir Usuario - proyectint.org </title>
</head>
<?php
session_start();
if (isset($_POST['usu'])){?>
<body>
<h1>Aadir Usuario </h1><?php
$con=require('../config_bd.php');
$res = mysql_query("select count(*) as ok from usuarios where
nombre='{$_POST['usu']}'", $con) or die(mysql_error());
$row = mysql_fetch_array($res);
if($row["ok"] == 0) {
$sql="INSERT INTO usuarios VALUES
('{$_POST['usu']}',md5('{$_POST['pass']}'),'{$_POST['rol']}','{$_POST['cod_cli']}
')";
mysql_query($sql,$con) or die(mysql_error());?>
<p id="introd">Insertado correctamente.</p><?php
}else{?>
<p id="introd">El nombre de usuario introducido est ya en uso. Prueba de
nuevo.</p><?php
}?>
<form method="POST" action="add_usuario.php" align="center">
<input type="submit" value="Volver a Introducir" class="boton"/>
Admin.php
<!doctype html>
<html>
<head>
Con_cliente.php
<!doctype html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../style.css"/>
<title> Consultar Clientes - proyectint.org </title>
</head>
<?php
session_start();
if ((isset($_SESSION["login_proy"])) && ($_SESSION["login_proy"]=="admin")) {
$con=require('../config_bd.php');
$res = mysql_query("select * from clientes", $con) or die(mysql_error());?>
<body>
<h1>Consultar Clientes</h1>
<p id="introd">Estos son todos los clientes que hay almacenados en la Base de
Datos.</p>
<form method="POST" action="admin.php" align="right">
<input type="submit" value="Volver a Panel de Control de Administrador"
class="boton"/>
</form><br/>
<div id="cuerpo">
<table border="2" bordercolor="black" align="center">
<tr bgcolor="#FA5050" align="center">
<td>Cdigo del Cliente</td>
<td>Nombre del Cliente</td>
<td>Direccin</td>
<td>Persona de Contacto</td>
<td>Telfono</td>
<td>Email</td>
<td>Notas</td>
</tr><?php
while($row = mysql_fetch_array($res)){?>
<tr bgcolor="#A0F894">
<td><?php echo $row['cod_cliente']?></td>
<td><?php echo $row['nombre_cliente']?></td>
<td><?php echo $row['direccion']?></td>
<td><?php echo $row['persona_contacto']?></td>
<td><?php echo $row['telefono']?></td>
<td><?php echo $row['email']?></td>
<td><?php echo $row['notas']?></td>
</tr><?php
} ?>
</table>
</div><?php
}else{?>
<h1> No ests identificado </h1>
<form method="POST" action="../index.html" align="center">
<input type="submit" value="Volver a intentarlo" class="boton"/>
</form><?php
Con_maquina.php
<!doctype html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../style.css"/>
<title> Consultar Mquinas - proyectint.org </title>
</head>
<?php
session_start();
if ((isset($_SESSION["login_proy"])) && ($_SESSION["login_proy"]=="admin")) {
$con=require('../config_bd.php');
$res = mysql_query("select * from maquinas", $con) or die(mysql_error());?>
<body>
<h1>Consultar Mquinas</h1>
<p id="introd">Estos son todas las mquinas que hay almacenadas en la Base de
Datos.</p>
<form method="POST" action="admin.php" align="right">
<input type="submit" value="Volver a Panel de Control de Administrador"
class="boton"/>
</form><br/>
<div id="cuerpo">
<table border="2" bordercolor="black" align="center">
<tr bgcolor="#FA5050" align="center">
<td>Cdigo de la Mquina</td>
<td>Servicios</td>
<td>Ubicacin</td>
<td>Capacidad de Disco</td>
<td>Notas</td>
</tr><?php
while($row = mysql_fetch_array($res)){?>
<tr bgcolor="#A0F894">
<td><?php echo $row['cod_maquina']?></td>
<td><?php echo $row['servicios']?></td>
<td><?php echo $row['ubicacion']?></td>
<td><?php echo $row['capa_disco']?></td>
<td><?php echo $row['notas']?></td>
</tr><?php
} ?>
</table>
</div><?php
}else{?>
<h1> No ests identificado </h1>
<form method="POST" action="../index.html" align="center">
<input type="submit" value="Volver a intentarlo" class="boton"/>
</form><?php
}?>
<br/><div class="bottom">Aplicacin Web de Gestin - Proyectint.org</div>
</body>
</html>
Con_copia.php
<!doctype html>
Cop_seg.php
<!doctype html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../style.css"/>
<title> Copia Manual - proyectint.org </title>
</head>
Socket.php
<!doctype html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../style.css"/>
<title> Copia Manual - proyectint.org </title>
</head>
<?php
Con_usuario.php
<!doctype html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../style.css"/>
<title> Consultar Usuarios - proyectint.org </title>
</head>
<?php
session_start();
if ((isset($_SESSION["login_proy"])) && ($_SESSION["login_proy"]=="admin")) {
$con=require('../config_bd.php');
$res = mysql_query("select * from usuarios", $con) or die(mysql_error());?>
<body>
<h1>Consultar Usuarios</h1>
<p id="introd">Estos son todos las usuarios con acceso a la aplicacin
web.</p>
<form method="POST" action="admin.php" align="right">
<input type="submit" value="Volver a Panel de Control de Administrador"
class="boton"/>
</form><br/>
Cliente.php
<!doctype html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../style.css"/>
<title> Cliente - proyectint.org </title>
</head>
<body>
<?php
session_start();
if ((isset($_SESSION["login_proy"])) && ($_SESSION["login_proy"]=="cliente")) {
echo '<h1> Bienvenido a proyectint.org Cliente</h1>';
?>
<br><form method="POST" action="cliente.php">
<input type="submit" value="Cerrar Sesión" name="exit"
class="boton"/>
</form>
<?php
$usu=$_COOKIE["usuario"];
$con=require('../config_bd.php');
$res = mysql_query("select c.cod_cliente, cod_maquina, fecha_ini,
fecha_fin, tipo_copia, correcta, nombre_fichero from copias c,usuarios u where
c.cod_cliente =u.cod_cliente and nombre='$usu'", $con) or die(mysql_error());?>
<body>
<h2>Copias de Seguridad Realizadas</h2>
<div id="cuerpo">
<table border="2" bordercolor="black" align="center">
<tr bgcolor="#FA5050" align="center">
<td>Cdigo del Cliente</td>
<td>Cdigo de la Mquina</td>
<td>Fecha de inicio</td>
<td>Fecha de Finalizacin</td>
<td>Tipo de Copia</td>
Style.css
body{
background:#02071D;
font-family:Arial, Helvetica, sans-serif;
font-size:12px;
margin: 0
}
#envoltura{
position:absolute;
left:50%;
top:50%;
margin-left:-165px;
margin-top:-150px;
width:330px
}
#contenedor{
background-color:green;
box-shadow: 0 0 0 5px rgba(255,255,255,.3);
-webkit-border-radius:4px;
-moz-border-radius:4px;
border-radius:4px
}
#cabecera{
border-bottom: 1px solid #666;