Saludos a todos, soy nuevo en la pagina fp-informatica.es
Estoy realizando un proyecto para el modulo en php del cual os facilito info de analisis y especificacion y diseño.
- Objetivo: Qué pretendemos que haga nuestro proyecto. Descripción breve.
Aplicación informática basada en HTML / PHP / mySQL con uso de la aplicación VNC para la gestión del aula Tic.
Tenemos una red de x ordenadores cuyas ips son 10.0.0.x y van conectadas a un servidor cuya ip es 10.0.0.1,
Estos Pc cliente, tendran como pagina principal una pagina web en php alojada en el servidor en la que automaticamente el Pc
estará bloqueado, y solo sera activado por el admin cuando el cliente pida que se le abra. ASi el admin controlará a
quien le da acceso y a que hora.El admin escribirá el nombre del usuario al que le dá sesión manualmente y se guardará
en la base de datos respectiva.
Todos los Pc cliente, se llamaran PC01, PC02 ... y la contraseña de acceso para ellos será en todos iguales,
gestionadas por el admin.
Una vez que el cliente llega, pide acceso, el acceso a internet se le concederá por el admin mediante conexión ssh
utilizando las funciones de ssh en php.
En la pagina web del admin, el podrá ver, que pcs estan abiertos, podra acceder
a ellos mediante VNC, y tendra un control sobre ellos, pudiendo cerrarle internet, o apagarlo directamente, mediante ssh,
si el administrador lo ve necesario, de lo contrario, tendremos un script con el comando wait, que pasado el tiempo
que el cliente a pedido de internet, se ejecutarán otros script de apagado o cerrado de sesión mediante contador de tiempo.
Con esta aplicación conseguiremos:
- Colaborar con la nueva revolución tecnológica que están experimentando,
la mayoría de los Centros escolares, y para ello aportar un nuevo
instrumento, que sigue estando en la línea de software libre.
- Agilizar y facilitar en la medida de lo posible la tarea de los coordinadores
de los nuevos Centros TIC.
-Asegurarnos de la coordinación segura del centro y del buen uso de sus máquinas.Teniendo una vigilancia sobre quienes
entran y salen de éstas.
-Se pretende que sea una aplicación segura, ya que lleva incorporada una
capa de seguridad para evitar accesos indebidos, que puedan vulnerar la
información.
Aplicaciones parecidas que ya existen:
Aparentemente efectúa el trabajo de gestion de cualquier ciber café en vbnet pero realizado en Php, bajo Software Libre,
siendo asi un programa de gestión mediante web y no un skin de un windows pero capado como en los ciber cafés.
Ventajas que aporta la nuestra:
Software Libre, gestión mediante web, control de sesiones y acceso por login...
Plataforma a utilizar (hardware/software), motivando las ventajas e inconvenientes de varias alternativas.
Linux / PHP /MySQL / VNC . Ventajas: Software gratuito y de libre distribución.
Viabilidad.
Php con ssh y mySQL es viable 100% y teóricamente, es posible el control de pcs mediante ssh y desde php con funciones
que trabajan con comandos del sistema como system o exec.
Diseñar las interfases
Pantallas / formularios / listados / PDFs.
Nuestro propósito es mantener separado en diferentes archivos(*.php, *.sh, *.html) los diferentes módulos del que consta el proyecto Gestión tic.
Así, nada más abrir el navegador desde un PC cualquiera dentro de nuestra intranet, estaremos en la página principal login.php
Ésta pagina nos permitira el acceso mediante la inserción de nuestro nick y contraseña, y si aun no tenemos, nos ofrece un link a la pagina registrar.php en el cual introduciremos nuestros datos para poder acceder posteriormente.
En la pagina login.php podremos entrar como un usuario(cliente) en el cual tras insertar nick y password, podremos pulsar sobre un boton en HTML de aceptar, el cual ejecutara la validacion de si ese nick y ese password son correctos.
Si son correctos, automaticamente se ejecutara el script conecta.sh que nos conectara mediante ssh al servidor de red de nuestra intranet TIC.
Si no son correctos, la pagina login.php nos mostrara un mensaje de error de acceso, compruebe que nick y contraseña son correctos.
Si entramos como admin en la pagina login.php , automaticamente, pondremos el campo Admin de la Tabla Usuarios, en 1, y nos aparecera la pagina administrador.php desde la cual podremos borrar usuarios,modificar claves, acceder a logs de fecha de accesos de estos, observar mediante VNC que hacen, pings a ordendores clientes para saber si sus ips estan vivas o estan muertas...
Es decir, cada vez que logueamos como admin, la pagina login.php comprobara que el user es admin, que el password es correcto, nos pondra el campo Admin en 1 y nos llevará a administrador.php que es el panel de control en php del admin.El administrador podra obtener listados de usuarios, contraseñas, logs de accesos...
Resumen:
-Login.php -> Pagina principal de acceso.
-Registra.php -> Registra nuevos usuarios, con clave autonumerica, password en md5 y nickname no se puede repetir.
-Conecta.sh -> Script que conectara un Pc cliente al servidor por ssh.
-Administrador.php -> Panel de control del admin.
Diagramas (de modulos, de flujo de datos, entidad/relación)
Nuestra BBDD dispondrá de dos tablas 'USUARIOS' y 'ACCESOS' donde un usuario puede contener varios accesos pero un solo acceso es producido por un unico usuario, por lo cual arrastraremos la clave principal de USUARIOS (ID) y ACCESOS como foránea. A continuación hablamos mas a fondo sobre los atributos de estas dos entidades.
Archivos BD a utilizar :
Usaremos una BBDD (proyecto) que podremos crear directamente en phpmyadmin, o desde un script en PHP con MySQL.
La tabla 'USUARIOS' consta:
Id – Autonumerico, clave principal. Nickname - Varchar (30). Password - varchar (30) encriptado en md5 para una mayor seguridad. Curso int (1) Grupo varchar (1) Admin - Booleano que nos dirá si el usuario que pide acceder es admin o no.
La tabla 'ACCESOS' consta:
Id – clave foránea.
Fechalog - Datatime al que solo el admin tendra acceso.
Desde registrar.php se insertaran nuevas columnas a la tabla USUARIO.
El nickname sera unico por lo que no se podran registrar dos usuarios con el mismo nombre,
El admin es el unico que puede modificar la tabla. El admin tendra todos los privilegios desde administrador.php
Esta tabla mediante mySQL sera la que nos indique si el usuario esta registrado, y si es usuario normal(pc cliente) > ejecutar script de conecta.sh o si es el admin > acceder a panel de control administrador.php
Desde el login.php se insertaran nuevas fechas en la tabla 'ACCESOS' con la Id del usuario.
Algoritmos generales que se emplearán:
-Usaremos MySql para la creacion de tabla, modificacion de tablas.
CREATE TABLE usuarios
(
id
INT NOT NULL AUTOINCREMENT,
nickname
VARCHAR(30) NOT NULL,
password
VARCHAR(30) NOT NULL,
curso
INT(1) NOT NULL,
grupo
VARCHAR(1) NOT NULL,
admin
BOOLEAN NOT NULL,
PRIMARY KEY (id
));
CREATE TABLE `accesos` (
`id` INT NOT NULL AUTOINCREMENT,
`fecha` DATE NOT NULL,
FOREIGN KEY (`id`));
-Variables de sesion para los logins.
<?Ejemplo de sesiones dentro de php
session_start();
$_SESSION['nickname']
(...)
?>
-HTML para formularios
HTML:
<form action="login.php" method="post">
Usuario:<input type="text" name="usuario" size="20" maxlength="20" />
<br />
Password:<input type="password" name="password" size="10" maxlength="10" />
<br />
<input type="submit" value="Ingresar" />
</form>
-PHP / MYSQL
*Para obtener los datos desde MySQL necesitamos una conexión (una forma de enlazar o comunicarse), la cual nos permitirá extraer datos de la misma.
$conexion=mysql_connect('localhost','root','')or die ('Ha fallado la conexion: '.mysql_error());
mysql_select_db('proyecto','$conexion')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
*Una vez que tenemos una conexión lo siguiente es extraer los datos, esto lo hacemos enviando consultas SQL
mediante la función mysql_query. También obtenemos el numero total de registros devueltos por nuestra consulta.
$queUsers = "SELECT * FROM usuarios ORDER BY nickname ASC";
$resUsers = mysql_query($queUsers, $conexion) or die(mysql_error());
$totUsers = mysql_num_rows($resUsers);
A lo largo de mi progreso os lo ire facilitando por si sirvo de utilidad para vuestra comunidad, ademas acepto cualquier info, consejo o sugerencia para la mejora del mismo. Me encanta el Software Libre, por eso me decante en hacer el proyecto en PHP, ahora solo me queda programar que seguramente me pierda un poco y venga a pediros ayuda, 🙂. Por lo demas un placer y espero aprender un poco de PHP gracias a la comunidad y asi estar bien suelto a la hora de exponer mi proyecto, que realmente es lo que mas miedo me da jajaja. Un cordial saludo a todos!!