Realización del lado del servidor del sistema de gestión remota basado en Linux

Realización del lado del servidor del sistema de gestión remota basado en Linux

 

Resumen

Este tema está basado en el sistema operativo Linux, y el objetivo principal es hacer que el trabajo de administración remota de los administradores de sistemas sea más conveniente, simple y amigable. Las principales funciones realizadas son la operación de archivos, la operación de comandos, la operación de sistemas, la operación de procesos y la operación de redes, que básicamente cubren todos los aspectos de la gestión del sistema. En el diseño, se adopta la estructura B/S, para que el sistema se pueda actualizar fácilmente y los usuarios puedan acceder al servidor desde varias plataformas; se adopta la tecnología de acceso de seguridad para que el acceso y la administración sean más seguros; lo simple y hermoso Lo avanzado La tecnología de visualización de la interfaz hace que la navegación del usuario sea rápida y cómoda.

El sistema desarrollado por este tema debe instalarse y ejecutarse en el sistema Linux. El administrador del sistema puede iniciar sesión de forma remota utilizando un navegador. Después de pasar la verificación, es conveniente ver el estado operativo del sistema, administrar el sistema y configurar la red. , para analizar los datos, se debe tener en cuenta que se debe usar la autoridad raíz y la contraseña del servidor remoto para iniciar sesión en el sistema, y ​​para garantizar la seguridad del sistema y evitar accidentes, el administrador sólo puede operar tareas específicas. La importancia principal de este tema es que PHP se puede usar para la administración del sistema, y ​​el sistema desarrollado puede hacer que los administradores del sistema administren sistemas remotos de manera conveniente.

Palabras clave : gestión remota; estructura B/S; acceso seguro; Linux; PHP

1 Introducción

1.1 Antecedentes del tema

1.2 Estado de la investigación en el país y en el extranjero

1.3 Importancia de esta investigación

1.4 Método de investigación de este tema

2 análisis de necesidades

2.1 Resumen de tareas

2.1.1 Objetivos de desarrollo

2.1.2  Herramientas de desarrollo

2.1.3  Entorno de desarrollo

2.1.4  Desarrolladores

2.1.5  Entorno operativo

2.1.6  Restricciones condicionales

2.2 Análisis de funciones

2.3 Flujo de trabajo

2.4 Análisis de rendimiento

3 diseño general

3.1 Arquitectura del sistema

3.2 División de módulos

4 realización específica

4.1 Módulo de acceso seguro

4.2 Módulo de operación de archivos

4.3 Módulo de operación de comando

4.4 Módulo de operación de procesos

4.5 Módulo de operación del sistema

4.6 Módulo de operación de red

5 prueba del sistema

5.1 Módulo de acceso seguro

5.2 Módulo de operación de archivos

5.3 Módulo de operación de comando

5.4 Módulo de operación de procesos

5.5 Módulo de operación del sistema

5.6 Módulo de operación de red

conclusión    

referencias

gracias    

declaración    

1introducción

1.1 Antecedentes del tema 

La administración remota es una tecnología en la que una computadora (el cliente/remoto maestro) controla de forma remota otra computadora (el host/servidor controlado) en la red. El control remoto aquí no es literalmente una larga distancia. Se refiere al control de la computadora remota a través del red, pero la mayoría de las veces lo que llamamos control remoto a menudo se refiere al control remoto en la red de área local. Cuando el operador usa la computadora host para controlar la computadora controlada, es como sentarse frente a la pantalla de la computadora controlada y puede iniciar el programa de aplicación de la computadora controlada, usar los archivos y materiales de la computadora controlada e incluso Use el dispositivo de impresión externo (impresora) y el dispositivo de comunicación (módem o línea arrendada, etc.) de la computadora controlada para imprimir y acceder a Internet, al igual que usa el control remoto para controlar el volumen del televisor, cambiar el canal o cambiar el televisor. Sin embargo, hay un concepto que debe aclararse, es decir, la computadora host solo transmite los comandos del teclado y el mouse a la computadora remota, y al mismo tiempo devuelve la imagen de la pantalla de la computadora controlada a través de la línea de comunicación. Es decir, parece que nuestro control de la computadora controlada se lleva a cabo en la computadora que tenemos enfrente, pero en realidad se realiza en la computadora remota, ya sea para abrir archivos, navegar por Internet, descargar, etc. en el ordenador controlado a distancia en el ordenador terminal.

Para los administradores de sistemas que son nuevos en Linux, es simplemente una tarea imposible completar varias configuraciones clave del sistema de manera correcta y eficiente. Incluso un administrador de Linux experimentado a menudo tiene problemas con el formato de algunos archivos de configuración complejos. Por lo tanto, tener una herramienta de gestión de GUI en Linux siempre ha sido un buen deseo de la mayoría de los amantes de Unix. Aunque Linux tiene su propia herramienta de administración remota de interfaz de caracteres SSH, todavía es un poco torpe y aburrido por las dificultades que presenta la actualización continua de SSH, la interfaz gráfica amigable y la facilidad de uso de la estructura B/S. El método de administración web hace que este software tenga la capacidad de administración local y remota, el control de acceso y el soporte SSL brindan seguridad adecuada para la administración remota. Así que escribimos este software para administrar sistemas Linux remotos mejor y más fácilmente, reduciendo así la carga de los administradores del sistema.

1.2 Situación de la investigación en el país y en el extranjero

A juzgar por la literatura y los recursos de la red, ha habido software similar en el extranjero, como Webmin y PHPWebmin.

Estos softwares están todos en inglés y casi no hay versión en chino, muchos administradores de sistemas domésticos no están acostumbrados a ellos, además, algunos software están escritos en lenguaje Perl, lo que no es satisfactorio en términos de eficiencia y amplitud de uso.

1.3 Importancia de esta investigación 

Para los administradores de sistemas, administrar todo el sistema es un trabajo muy complicado y problemático, especialmente la administración remota de servidores es muy importante para los administradores de sistemas. El desarrollo de este software es para facilitar que el administrador del sistema administre los servidores locales y remotos instalados con el sistema Linux, para aumentar la conveniencia de la administración y, por otro lado, utilizar la estructura B/S para reducir la carga de trabajo del administrador. . Después de iniciar sesión de forma remota con un navegador, los administradores pueden verificar fácilmente el estado de ejecución del servidor, configurar servicios de red, analizar algunos datos y responder rápidamente a fenómenos anormales.

Uno de los desafíos de pasar de administrar un entorno Windows a administrar un entorno Linux es que necesita aprender a aprovechar las nuevas herramientas. Como administrador, desea comprender los detalles del sistema operativo para aprovecharlo al máximo. Sin embargo, cuando todavía estás en la etapa de aprendizaje, necesitas hacer un trabajo específico. Para acelerar su progreso en el dominio de Linux, instalamos un programa de administración remota de este tipo, que es muy conveniente para los administradores del sistema.

1.4 Método de investigación de este tema 

El desarrollo de este sistema requiere el uso de estructura B/S, simulando Webmin para su diseño y desarrollo. Por lo tanto, este proyecto de graduación primero debe analizar las funciones relevantes de Webmin y escribir un análisis de demanda en combinación con los requisitos relevantes de este proyecto de graduación; en segundo lugar, utilizar de manera integral el conocimiento relevante aprendido antes para seleccionar herramientas de desarrollo familiares para desarrollar este proyecto de graduación; En el diseño, basado en el análisis de requisitos, escriba el plan de desarrollo del sistema, el proceso de implementación y los métodos de implementación de temas relacionados; al mismo tiempo, en el diseño e implementación del desarrollo, es necesario guardar los documentos de diseño relevantes para prepararse para la redacción de la tesis de graduación Materiales posteriores; finalmente, después de que se complete el desarrollo del sistema, depurar y ejecutar pruebas, hacer registros relevantes de depuración y ejecución de pruebas, y preparar materiales para la redacción de la tesis de graduación posterior.

Los métodos principales son: primero, solo escriba la parte de operación del archivo para comprender el método de trabajo y la apariencia general del sistema, luego agregue gradualmente otras funciones y módulos, y finalmente modifique todo el sistema para completar el sistema.

2 análisis de necesidades

2.1 Resumen de tareas

      1.  Desarrollo de metas

1. Ser capaz de iniciar sesión en el host remoto de forma segura y realizar una interacción segura durante el proceso de gestión.

2. Puede administrar el sistema de archivos del host remoto y puede ver archivos o carpetas,

 Crear, eliminar, mover, cargar, etc.

3. Capaz de enviar comandos al host remoto para su interpretación y ejecución y devolver los resultados de la ejecución. 4. Ser capaz de ver y administrar los procesos en ejecución del host remoto.

5. Capaz de administrar el sistema host remoto, puede ver la información del sistema, apagar o reiniciar, modificar

contraseñas, administrar usuarios y grupos, administrar paquetes de software y más.

6. Ser capaz de administrar los servicios de red de hosts remotos, administrar servidores Apache, administrar

Administre el servidor DNS, administre el servidor MySQL, administre el servidor SSH y administre DHCP

Servidor, ver parámetros de red, configurar parámetros de red y otras operaciones.

7. Hacer que la gestión remota sea más humana, sencilla, cómoda y amigable.

8. Haga que el software sea fácil de actualizar, modificar, expandir y usar.

 herramientas de desarrollo

El lenguaje de desarrollo utiliza principalmente PHP y HTML, y  se utiliza SHELL o C cuando PHP no puede resolver el problema.

 entorno de desarrollo

Sistema operativo: Fedora Core 5

Referencia de PHP: PHP 5.1

Servidor web: APACHE2

Navegador: Mozilla firefox 2.0

 Desarrollador

Sun Zexi es el principal responsable del desarrollo del lado del servidor.

Xu Bin es el principal responsable del desarrollo del cliente.

 entorno operativo

El software se ejecuta en un host remoto con sistema operativo Linux y servidor Apache instalado. Antes de ejecutar, debe iniciar el servidor Apache y realizar algunas configuraciones.

 Condiciones

El inicio de sesión del sistema debe iniciarse con la autoridad raíz y la contraseña del servidor remoto, y para garantizar la seguridad del sistema y evitar eventos inesperados, el administrador solo puede realizar tareas específicas. Si el sistema está instalado en otros sistemas operativos, como el sistema operativo Windows, es posible que algunos módulos no funcionen o no funcionen correctamente.

2.2 Análisis de funciones

De acuerdo a los requerimientos y objetivos de este proyecto, se puede conocer que el sistema tiene principalmente las siguientes funciones:

1. Acceso seguro

El acceso seguro se refiere al uso del protocolo HTTPS y el socket SSL para iniciar sesión en el host remoto al iniciar sesión. El nombre de usuario y la contraseña de inicio de sesión no pueden ser detectados por piratas informáticos o atacantes maliciosos, y la tecnología de acceso de seguridad también debe adoptarse durante el proceso de gestión para evitar la pérdida, intercepción o ataque de datos importantes.

2. Operación de archivo

Las operaciones de archivos administran principalmente el sistema de archivos, incluida la visualización de información de archivos o directorios, la creación de nuevos archivos o directorios, la eliminación de archivos o directorios, la copia de archivos o directorios, la ejecución de archivos, la carga de archivos, la descarga de archivos, etc.

3. Operación de comando

La operación del comando es enviar comandos al host remoto, el servidor interpreta y ejecuta varios comandos SHELL y envía los resultados ejecutados al host remoto para su visualización.

4. Operación del proceso

La operación del proceso consiste en administrar el proceso en ejecución del host remoto, lo que incluye principalmente ver o finalizar el proceso en ejecución, ver la lista de servicios abiertos (número de puerto), administrar el servicio abierto, ver todos los procesos en ejecución del sistema actual y puede realizar actividades relacionadas. operaciones sobre el proceso .

5. Funcionamiento del sistema

La operación del sistema es la gestión del sistema del sistema Linux del host remoto, que incluye principalmente el apagado o reinicio, el cambio de contraseñas, la visualización de la información del sistema, la gestión de usuarios y grupos y la gestión de paquetes de software.

6. Operación de la red

El funcionamiento de la red es la gestión de los servicios de red de hosts remotos, que incluye principalmente la gestión del servidor Apache, la gestión del servidor DNS, la gestión del servidor MySQL, la gestión del servidor SSH, la gestión del servidor DHCP, la visualización de los parámetros de red y la configuración de los parámetros de red.

2.3 Flujo de trabajo

De acuerdo con los objetivos de diseño y los requisitos del sistema, se puede determinar que el flujo de trabajo del sistema se divide en tres partes en general: proceso de autenticación, proceso de gestión y proceso de cierre de sesión.

El flujo de trabajo de todo el sistema se muestra en la Figura 1:

 

Figura 1 Flujo de trabajo

1. Proceso de autenticación

El administrador inicia sesión en el sistema de administración remota a través de un navegador e ingresa el nombre de usuario y la contraseña del sistema. Si el nombre de usuario o la contraseña son incorrectos, se mostrará un mensaje de error y se le pedirá que vuelva a ingresarlo. ; si es correcto, entrará en el sistema de gestión, obtendrá determinados permisos y gestionará los servicios del sistema. . El proceso de autenticación debe llevarse a cabo en una situación segura y no puede transmitirse en texto plano.

2. Proceso de gestión

Cuando el usuario ingresa correctamente al sistema, puede administrar el sistema, hacer clic en un módulo de administración, configurar un determinado servicio, el sistema envía comandos al servidor web a través de la red e interactúa con el servidor. El servidor obtiene los comandos a través de el análisis del motor PHP, llama al script correspondiente y lo ejecuta. , devuelve el resultado al navegador del host remoto.

3. Proceso de cancelación

Una vez que el administrador completa la actualización o la administración del host remoto, puede hacer clic en cerrar sesión para salir del sistema de administración remota. El sistema envía un comando de cierre de sesión al servidor, y el servidor hace que el usuario que inició sesión pierda la autoridad de administración, corta la conexión entre el usuario y el servidor, y vuelve a la página de inicio de sesión del sistema de gestión.

2.4 Análisis de rendimiento

  De acuerdo con los requisitos y objetivos de este tema, y ​​la situación técnica actual, se puede determinar que el sistema debe alcanzar

al siguiente objetivo:

1. El sistema puede manejar múltiples usuarios que se conectan al servidor al mismo tiempo sin ningún problema (digamos 100).

2. El sistema puede devolver el resultado de la ejecución a tiempo y puede avisar cuando el comando no se puede ejecutar correctamente.

3. El sistema debería poder identificar correctamente cuándo la página se cierra de forma anormal y desconectarse automáticamente del cliente remoto.

4. El sistema debe impedir el acceso a los archivos individuales, no importa a qué tipo de archivos desee acceder, debe pasar por la página principal.

5. Para la anomalía que ocurre durante la ejecución del sistema, el programa puede identificar y mostrar correctamente la información relevante para solicitar.

6. El programa debe evitar la ejecución de comandos incorrectos o ilegales, y evitar que todo el sistema se bloquee o desconecte la conexión o bloquee el servidor remoto debido a la ejecución de un determinado comando durante la ejecución del programa.   

3 diseño general

3.1 Arquitectura del sistema

Debido a que el sistema adopta el modo B/S y lleva a cabo la administración remota, todo el sistema se puede dividir en cinco módulos, a saber, cliente, Internet, sistema operativo Linux, servidor Apache e intérprete de PHP.

El cliente es un navegador, y el cliente puede usar el navegador de forma remota para iniciar sesión en el servidor para administrar el sistema Linux remoto.

Internet es el medio que conecta el servidor y el cliente, y se utiliza para transmitir comandos y datos.

El sistema operativo Linux se ejecuta en el servidor remoto para administrar todo el sistema, y ​​los programas desarrollados también se ejecutan en el sistema operativo Linux.

El servidor web utiliza el servidor Apache para transmitir páginas web y llama al motor PHP para interpretar y ejecutar el script PHP, y transmite el resultado al navegador remoto.

El intérprete de PHP se utiliza para interpretar y ejecutar scripts de PHP.El intérprete de PHP interpreta diferentes scripts de acuerdo con diferentes parámetros de llamada de Apache y devuelve el archivo html obtenido después de la ejecución al servidor Apache.

El marco del sistema se puede representar en la Figura 2:

 

Figura 2 Arquitectura del sistema

3.2 División de módulos

De acuerdo con el análisis de requisitos anterior y la arquitectura del sistema, el sistema se puede dividir en seis módulos como se muestra en la Figura 3.

 

Figura 3 Módulos del sistema

  1. Módulo de acceso de seguridad

Es el principal responsable del acceso seguro del cliente al servidor, utilizando principalmente tecnología de control de acceso y tecnología de encriptación. La tecnología de control de acceso se adopta en el sistema de archivos del lado del servidor y la tecnología de cifrado se usa en el proceso de transmisión entre el lado del servidor y el lado del cliente.

  1. módulo de operación de archivos

Es principalmente responsable de operar el sistema de archivos del sistema operativo Linux remoto, que es la base para operar el host remoto. Al realizar operaciones de archivo por primera vez, la interfaz muestra el directorio donde se encuentra el archivo de script del sistema y los atributos del archivo, y luego muestra los botones de comando que se pueden operar, y hay cuadros de texto y comandos para convertir directorios en la parte superior de la interfaz. Utilice principalmente la cookie de PHP para pasar comandos y, en términos de operaciones específicas, utilice principalmente la función de E/S de archivo de PHP para lograrlo. En términos de visualización, se escribe una clase de formato y se puede llamar a la función correspondiente de esta clase para formatear o mostrar datos. .

  1. módulo de operación de comando

Es el principal responsable de interpretar y ejecutar el comando SHELL enviado por el cliente y devolver el resultado a tiempo. Al realizar este módulo, debe prestar atención a la puntualidad de la devolución del resultado y al indicador correcto del comando incorrecto. Utilice principalmente el método POST de HTML para transmitir comandos al servidor y, a continuación, utilice el sistema de funciones del sistema PHP, exec y passthru para ejecutar los comandos correspondientes y transmitir los resultados de la ejecución al navegador.

  1. Módulo de operación de procesos

Es el principal responsable de mostrar los procesos del sistema operativo Linux remoto y puede operar cada proceso, como eliminar un determinado proceso. Use principalmente la función del sistema para ejecutar el comando SHELL ps y grep para obtener la lista de procesos y mostrarla en una tabla en el lado del navegador, y use la función posix_kill para eliminar un determinado proceso.

  1. Módulo de operación del sistema

Es el principal responsable del funcionamiento de la gestión del sistema principal de Linux y puede utilizar estas operaciones del sistema para realizar una gestión del sistema simple en el sistema Linux remoto. La idea general es usar la matriz _POST de PHP para obtener el comando transmitido correspondiente, luego usar la función del sistema de PHP para ejecutar el comando SHELL correspondiente y transmitir el resultado al servidor.

  1. Módulo de operaciones de red

Principalmente administra y configura la red del sistema Linux remoto de manera simple. La idea general de la implementación es modificar los derechos de acceso de algunos archivos relacionados con la administración de la red en el lado del servidor para que Apache pueda acceder y modificar estos archivos, use la matriz _POST de PHP para obtener los comandos de operación de red transmitidos correspondientes, y luego use PHP La función del sistema ejecuta el comando SHELL correspondiente y transmite el resultado al servidor.

4 realización específica

4.1 Módulo de acceso seguro

El acceso seguro se logra principalmente a través de archivos de control de acceso nativos y autenticación de secuencias de comandos PHP.

1. Archivo de control de acceso al host

En el host remoto, se debe iniciar el servidor apache y se debe agregar la opción de control de acceso del directorio al que se accederá en el archivo de configuración de apache. Luego cree archivos de control de acceso .htaccess y .remoteadminpasswd en el directorio al que se accederá. El archivo .htaccess define la ruta a los archivos de nombre de usuario y contraseña y algunas otras opciones de control. El archivo .remoteadminpasswd tiene nombres de usuario y contraseñas encriptadas.

Apache está configurado para la protección de directorios y la autenticación básica, pero se requiere cierta configuración del servidor para elevar los privilegios de los usuarios.

  1. Verifique el archivo httpd.conf para encontrar el campo Usuario y verifique el usuario de inicio de Apache (el valor predeterminado es apache);
  2. Edite el archivo /etc/passwd, busque la línea de usuario de apache y modifique su shell (el valor predeterminado es /bin/nologin o /bin/false) a /bin/bash;
  3. Edite el archivo /etc/sudoers y agregue apache ALL=NOPASSWORD:ALL a la siguiente línea del campo raíz ALL=(ALL)ALL en el archivo, para que el usuario de apache pueda ejecutar todos los comandos a través del comando sudo.

Después de esta configuración, el usuario de apache puede obtener privilegios de root solo usando el comando sudo.

Para garantizar la seguridad del sistema, el control de acceso se realiza en el directorio del servidor web Apache aquí, utilizando el archivo de acceso .htaccess y el programa htpasswd para establecer una ACL para un directorio para autenticar a los usuarios y configurar la conexión SSL. en el archivo .htaccess, perfecta seguridad.

Suponga que PHPWebmin se encuentra en el directorio /var/www/phpwebmin.

1) Configurar httpd.Conf

Abra el archivo de configuración de Apache httpd.Conf (en el directorio /etc/httpd/conf/ de forma predeterminada) con el editor vi, busque el campo <Directorio "/var/www"> y agréguelo o modifíquelo en la siguiente configuración de atributos

AllowOverride ALL //Este parámetro establece qué directorios están protegidos con .ltaccess;

2) Cree una ACL para el directorio protegido

Ingrese al directorio phpwebmin, cd /var/www/phpwebmin, cree un archivo oculto en este directorio .htaccess (debe agregar un punto antes del archivo htaccess, si no hace esto, no puede crear una ACL, porque el punto significa crear un archivo oculto) vi .htaccess, ingrese el siguiente código en el archivo .htaccess:

SSLRequireSSL //Usar conexión segura SSL

AuthName "PHP Webmin" //Nombre de autenticación

Tipo de autenticación básico

require valid-user //Permitir que todos los usuarios en el archivo de contraseña accedan

AuthUserFile /var/www/phpwebmin/.phpwebminpasswd //archivo de datos de identidad;

3) Crear una base de datos de autenticación de usuarios

Ingrese la siguiente contraseña en la línea de comando para crear el archivo de base de datos de autenticación de usuarios, se le pedirá que cree una contraseña para el administrador de usuarios:

htpasswd -c /var/www/phpwebmin/.phpwebminpasswd administrador

Nueva contraseña:

Reescriba nueva contraseña:

El contenido del archivo .phpweminpasswd creado es similar a:

admin:Op96DPmXTKy5w //Nombre de usuario: contraseña cifrada MD5

Si el sistema no ha instalado htpasswd, también puede generar un nombre de usuario y una contraseña en línea y colocarlos en el archivo .phpwebminpasswd.

De esta manera, se ha establecido una base de datos de cuentas de usuario para el servidor Apache, se ha implementado la protección de directorio para el directorio phpwebmin y se ha implementado la autenticación básica de usuario, es necesario utilizar una conexión segura https://localhost/phpwebmin/ para acceder, y aparecerá una ventana emergente durante el proceso de acceso.Diálogo de validación.

2. Autenticación de scripts PHP

Utilice la matriz _GET para determinar si iniciar sesión o cerrar sesión. Si ha iniciado sesión, verifique si la contraseña es correcta. Si es correcta, ingrese a la interfaz de administración y configure una cookie en el cliente para registrar la información de inicio de sesión. De lo contrario , aparecerá un mensaje de error correspondiente. El proceso de verificación se muestra en la Figura 4:

 

Figura 4 Proceso de verificación de identidad

El código principal para la autenticación es el siguiente:

si ($_GET['acción'] == "cerrar sesión")

{

setcookie("contraseña de administrador", "");

echo"<meta http-equiv=\"refresh\" ontent=\"3;URL=".$self."\">";

echo "<span style=\" tamaño de fuente: 12px; familia tipográfica: Verdana\">注

Fijar correctamente......<p><a href=\"".$self."\">Salir automáticamente después de tres segundos o hacer clic aquí para salir de la interfaz del programa >>></a></span> " ;

ob_end_flush();

salida;

}

si ($_POST['hacer'] == 'iniciar sesión')

{

$thepass=trim($_POST['adminpass']);

if($admin['pass'] == $thepass)

{

setcookie("adminpass", $thepass, time() + (1 * 24 * 3600));

echo "<meta http-equiv=

\"actualizar\" content=\"3;URL=".$url."\">";

echo "<span style=\"font-size: 12px; font-family: Verdana\">Inicio de sesión exitoso......<p><a href=\"".$url."\">Tres segundos Salta automáticamente después de eso o haz clic aquí para ingresar a la interfaz del programa >>></a></span>";

salida;

}

demás

{

echo "Error de contraseña, vuelva a ingresarla</br>";

}

}

if(isset($_COOKIE['adminpass']))

{

if ($_COOKIE['contraseña'] != $administradoras['contraseña'])

{

página de inicio de sesión();

}

demás

{

página de inicio de sesión();

}

}

4.2 Módulo de operación de archivos

Hay muchos tipos de operaciones con archivos, principalmente la visualización de información de archivos o directorios, la creación de un nuevo archivo o directorio, la eliminación de un archivo o directorio, la copia de un archivo o directorio, la ejecución de un archivo, la carga de un archivo y la descarga de un archivo.

El funcionamiento del archivo es el mismo que para operar el archivo localmente, pero la forma es diferente, cuando el usuario selecciona uno o parte del archivo, puede hacer clic en el botón de comando correspondiente para generar la acción correspondiente. Utilice principalmente la cookie de PHP para pasar comandos y, en términos de operaciones específicas, utilice principalmente la función de E/S de archivo de PHP para lograrlo. En términos de visualización, se escribe una clase de formato y se puede llamar a la función correspondiente de esta clase para formatear o mostrar datos. .

El proceso de operación de archivos se muestra en la Figura 5:

Figura 5 proceso de operación de archivo

 

El código principal para editar archivos y renombrarlos es el siguiente:

// editar archivo

if ($_POST['hacer'] == 'hacereditararchivo')    

{

if (!empty($_POST['editar nombre de archivo']))

{

$nombrearchivo="$editarnombrearchivo";

@$fp=fopen("$nombrearchivo","w");

echo $msg=@fwrite($fp,$_POST['filecontent']) ?

"¡Escribir archivo con éxito!" : "¡Error de escritura!";

@fclose($fp);

}

demás

{

echo "¡Por favor ingrese el nombre del archivo que desea editar!";

}

}

// Editar propiedades del archivo

elseif ($_POST['hacer'] == 'editar archivoperm')

{

if (!vacío($_POST['archivoperm']))

{

$fileperm=base_convert($_POST['fileperm'],8,10);

echo (@chmod($dir."/".$file,$fileperm)) ? "¡Atributo modificado con éxito!" : "¡Modificación fallida!";

echo "archivo".$archivo." La propiedad modificada es: ".substr(base_convert(@fileperms($dir."/".$archivo),10,8),

-4);

}

demás

{

echo "¡Por favor ingrese la propiedad que desea establecer!";

}

}

4.3 Módulo de operación de comando

La operación de comando es la interpretación y ejecución de varios comandos SHELL, que se ejecutan principalmente a través de funciones como system y passthru de php. Las operaciones de proceso y las operaciones del sistema se pueden realizar en este módulo. Tenga en cuenta que se utiliza el modo web y no se pueden ejecutar comandos de shell interactivos. En el diseño, use un formulario para obtener la variable commond, ejecute system("sudo $commond") después de enviar a la función del sistema y devuelva el resultado.

El flujo de operación del comando se muestra en la Figura 6

 

Figura 6 flujo de operación de comando

Parte del código es el siguiente:

if (!vacío($_POST['comando']))

{

si ($execfunc=="sistema")

{

system("sudo ".$_POST['comando']);

}

elseif ($execfunc=="passthru")

{

passthru("sudo ".$_POST['comando']);

}

elseif ($execfunc=="exec")

{

$resultado = exec("sudo ".$_POST['comando']);

echo $resultado;

}

elseif ($execfunc=="shell_exec")

{

$resultado=shell_exec("sudo ".$_POST['comando']);

echo $resultado;

}

elseif ($execfunc=="abrir")

{

$pp = popen("sudo ".$_POST['comando'], 'r');

$leer = fread($pp, 2096);

echo $leer;

pclose($pp);

}

elseif ($execfunc=="wscript")

{

$wsh = nuevo COM('W'.'Scr'.'ip'.'t.she'.'ll') o

die("PHP Create COM WSHSHELL falló");

$ejec = $wsh->ejec

("cm"."de"."xe /c "."sudo ".$_POST['comando']."");

$salida_estándar = $ejec->Salida_estándar();

$stroutput = $stdout->ReadAll();

echo $salida de salida;

}

demás

{

system("sudo ".$_POST['comando']);

}

}

4.4 Módulo de operación de procesos

Las operaciones de proceso incluyen principalmente ver o finalizar procesos en ejecución, ver la lista de servicios habilitados, administrar los servicios habilitados, ver todos los procesos en ejecución en el sistema actual y realizar operaciones relacionadas en los procesos. Esto se obtiene principalmente ejecutando ps - aux para obtener la lista de procesos, y luego expresarla en una tabla, pudiendo matar cada proceso.

El flujo de operación del proceso se muestra en la Figura 7:

 

Figura 7 flujo de operación del proceso

El código principal es el siguiente:

si ($_GET['acción'] == "proceso")

{

if(!$win) {$handler = "ps -aux".($grep?"

| grep '".addslashes($grep)."'":"");}

else {$manejador = "lista de tareas";}

$ret = myshellexec($manejador);

if(!$ret) {echo "No se puede ejecutar \"".$handler."\"!";}

demás

{

si (vacío ($ procesos_ordenar))

{$processes_sort = $sort_default;}

$parsesort = parsesort($processes_sort);

if (!is_numeric($parsesort[0])) {$parsesort[0] = 0;}

$k = $parsesort[0];

if($parsesort[1] != "a")

{

$y="<a href=\"".$surl."action=".$dspact."&d=".

urlencode($d)."&processes_sort=".$k."a\">

<img src=\"".$surl."action=img&img=

sort_desc\"height=\"9\"width=\"14\" order=\"0\"></a>";

}

demás

{

$y="<a href=\"".$surl."action=".$dspact."&d=".

urlencode($d)."&processes_sort=".$k."d\">

<img src=\"".$surl."action=img&img=

sort_asc\"height=\"9\" width=\"14\" border=\"0\"></a>";

}

$derecho = htmlspecialchars($derecho);

si (!$ganar)

{

si ($pid)

{

si (es_null($sig)) {$sig = 9;}

echo "Enviando señal ".$sig." a #".$pid."... ";

si (posix_kill($pid,$sig)) {echo "OK.";}

más {echo "ERROR.";}

}

}

}

}

4.5 Módulo de operación del sistema

Las operaciones del sistema incluyen principalmente apagar o reiniciar, cambiar contraseñas, ver información del sistema, administrar usuarios y

agrupar, gestionar paquetes. Esto es principalmente cambiando los permisos de Apache y el shell que ejecuta el comando, y poniendo

Apache se agrega al archivo sudoers para convertirse en un miembro que puede ejecutar el comando sudo.

Para apagar y reiniciar, el administrador puede hacer clic en los botones Apagar y Reiniciar para llamar a la función del sistema para ejecutar los comandos incorporados de apagado y reinicio, o ingresar otros comandos de apagado o reinicio en el formulario y ejecutarlos.

Vea la información del sistema, juzgue el comando enviado a través del interruptor y llame a la función del sistema para ejecutar comandos integrados como uname –a, fdisk –l, etc., incluida la visualización de la información de la CPU, la visualización de la información de la partición y la visualización del kernel.

Administre usuarios y grupos, puede ver los usuarios y grupos propiedad del sistema y enviarlos a través de un formulario simple para agregar o eliminar usuarios o grupos.

El proceso de operación del sistema se muestra en la Figura 8:

 

Figura 8 Flujo de operación del sistema

El código principal para ver la información del sistema y administrar usuarios y grupos es el siguiente:

//Ver información del sistema

interruptor($_POST['info'])

{

caso "Información de la CPU":

$exec="sudo cat /proc/cpuinfo";break;

case "Información del disco":

$exec="sudo fdisk -l";romper;

case "Versión del núcleo":

$exec="sudo uname -a";

}

si ($ejecutivo) { sistema ($ejecutivo);}

//Administrar usuarios y grupos

$commond="sudo groupdel ".$_POST['grupo'];

echo $común;

si ($común) { sistema ($común); }

$commond="sudo groupadd ".$_POST['grupo'];

echo $común;

si ($común) { sistema ($común); }

switch($_POST['modo de acceso'])

{

caso 0:

$contraseña="";descanso;

caso 1:

$contraseña=" -p ".$_POST['encpass'];

}

if(!$_POST['inicio'])

{

$inicio=" -d ".$_POST['inicio'];

}

$usuario=$_POST['usuario'];

$uid=" -u ".$_POST['uid'];

$cáscara=" -s ".$_POST['cáscara'];

$commond="sudo useradd ".$_POST['usuario']." -d ".$_POST['inicio']." -s ".$_POST['shell']." -u ".$_POST[ 'uid']." -p ".$_POST['encpass'];

echo $común;

si ($común) { sistema ($común); }

$commond="sudo userdel ".$_POST['usuario'];

echo $común;

si ($común) { sistema ($común); }

4.6 Módulo de operación de red

Las operaciones de red incluyen principalmente la administración del servidor Apache, la administración del servidor PHP, la administración del servidor MySQL, la administración del servidor SSH, la administración del servidor DHCP, la visualización de los parámetros de red y la configuración de los parámetros de red.

La visualización de los parámetros de la red incluye principalmente la visualización del estado de la conexión de la red, la tabla de enrutamiento, la información de la interfaz de la tarjeta de red, las estadísticas de la red, la información de almacenamiento temporal de ARP y los parámetros básicos de configuración de la red.

La configuración de los parámetros de la red incluye principalmente la configuración de los parámetros básicos de la red, la adición y eliminación de rutas.

La administración de servidores PHP incluye principalmente la visualización de variables de entorno de PHP, información de PHP y configuración de PHP.

Administrar el servidor Apache incluye principalmente detener el servidor y configurarlo.

Administrar el servidor MySQL incluye principalmente la consulta y la copia de seguridad de la base de datos, el inicio, la detención y el reinicio del servidor.

Administrar un servidor SSH incluye principalmente iniciar, detener y reiniciar el servidor.

Administrar el servidor DHCP incluye principalmente iniciar, detener y reiniciar el servidor.

El flujo de operación del proceso se muestra en la Figura 9:

 

Figura 9 Proceso de operación de la red

El código principal para configurar los parámetros de red es el siguiente:

interruptor($_POST['config'])

{

IP de configuración del caso:

$exec="ifconfig eth0 ".$ip." netmask ".$mask." arriba";

$exec1="ruta agregar gw predeterminado ".$gw;

$bandera=1;romper;

caso ConfigDNS:

$dns=1;romper;

caso AddHostRoute:

$exec="route add -host ".$host." gw ".$rgw;break;

caso AddNetRoute:

$exec="route add -net ".$netroute." netmask ".

$nmask." gw ".$nrgw; romper;

caso DelHostRoute:

$exec="ruta del -host ".$dhost." gw ".$drgw;break;

caso DelNetRoute:

$exec="ruta del -net ".$dnetroute." netmask ".$dnmask."

gw ".$dnrgw; descanso;

}

si ($ ejecutivo)

{

system("sudo $exec",&$ret);

si (! $ ret)

echo "Cambiado correctamente\n";

demás

echo "Cambio sin éxito\n";

}

si ($bandera)

{

system("sudo $exec1",&$ret1);

$bandera=0;

si(!$ret1)

echo "Getway cambió con éxito\n";

demás

echo "Getway cambió sin éxito\n";

}

si ($ dns)

{

$fd=fopen("/etc/resolv.conf", "w+");

si ($fd)

{

si ($ dns1)

fwrite($fd, "servidor de nombres $dns1\n");

si ($ dns2)

fwrite($fd, "servidor de nombres $dns2\n");

si ($ dns3)

fwrite($fd, "servidor de nombres $dns3\n");

}

demás

echo "¡error al abrir archivo!\n";

$dns=0;

si(!$dns1 && !$dns2 && !$dns3)

echo "¡El DNS no ha cambiado!";

demás

echo "¡El DNS ha cambiado!";

fclose($fd);

5 prueba del sistema

5.1 Módulo de acceso seguro

Cuando el usuario inicie sesión en el host remoto, aparecerá la siguiente figura para que el usuario ingrese el nombre de usuario y la contraseña. Después de eso, aparecerá la página de verificación de PHP y deberá ingresar otra contraseña nuevamente. Cuando el usuario hace clic en el botón de cierre de sesión, el usuario perderá la página de administración y volverá a la página de autenticación de PHP. Cuando el usuario necesite iniciar sesión en el servidor remoto nuevamente para la administración, puede ingresar la contraseña para iniciar sesión para la administración. El módulo de acceso seguro funciona bien.

La interfaz de inicio de sesión se muestra en la Figura 10:

 

Figura 10 Inicio de sesión

5.2 Módulo de operación de archivos

Después de que el usuario inicia sesión en el servidor remoto e ingresa al módulo de operación de archivos, puede operar el sistema de archivos del servidor. Después de la prueba, puede descargar archivos, mostrar archivos y directorios, etc. normalmente, pero necesita establecer algunos permisos en el lado del servidor al editar y cargar archivos.

La interfaz de operación de archivos se muestra en la Figura 11:

 

Figura 11 Operación de archivo

5.3 Módulo de operación de comando

Después de que el usuario inicia sesión en el servidor remoto e ingresa al módulo de operación de comando, puede ingresar comandos para realizar varias operaciones. Después de la prueba, el sistema puede funcionar bien para los comandos no interactivos, pero para los comandos interactivos, el sistema a veces no puede ejecutarse, a veces no puede ejecutarse correctamente y, a veces, lleva mucho tiempo.

5.4 Módulo de operación de procesos

Después de que el usuario inicie sesión en el servidor remoto e ingrese al módulo de operación del proceso, puede operar el proceso que se ejecuta en el servidor. Después de la prueba, el proceso en ejecución se puede mostrar correctamente en forma de tabla, y hay un botón KILL en el extremo derecho de cada elemento de la tabla. Cuando necesite matar un determinado proceso, puede hacer clic en este botón. El módulo puede funcionar normalmente.

5.5 Módulo de operación del sistema

Cuando el usuario inicia sesión en el servidor remoto e ingresa al módulo de operación del sistema, puede realizar varias operaciones en el servidor.

Operaciones de gestión del sistema. Después de la prueba, puede apagarse o reiniciarse normalmente, cambiar contraseñas, ver información del sistema, administrar usuarios y grupos y administrar paquetes de software. Pero esto es solo una administración simple del sistema y no involucra mucho en la administración compleja del sistema, o es solo una pequeña parte de la implementación.

5.6 Módulo de operación de red

 Después de que el usuario inicia sesión en el servidor remoto e ingresa al módulo de operación de red, puede ver y configurar los parámetros de red del servidor. Después de la prueba, puede ver el estado de la conexión de la red, la tabla de enrutamiento, la información de la interfaz de la tarjeta de red, las estadísticas de la red, la información de almacenamiento temporal arp y los parámetros básicos de configuración de la red. Puede configurar parámetros de red básicos, agregar y eliminar rutas. Puede ver variables de entorno de PHP, información de PHP y configurar PHP. Puede detener el servidor Apache y configurar el servidor Apache. Puede administrar el servidor MySQL, incluida la consulta y la copia de seguridad de la base de datos, el inicio, la detención y el reinicio del servidor. Puede administrar el servidor SSH, incluido el inicio, la detención y el reinicio del servidor. Puede administrar el servidor DHCP, incluido el inicio, la detención y el reinicio del servidor. Pero esto es solo una pequeña parte de la implementación simple de las operaciones de red, y algunas operaciones complejas no se han implementado.

Verifique la interfaz de parámetros de red como se muestra en la Figura 12:

 

Figura 12 Ver parámetros de red

en conclusión

A través de la investigación de este tema, entiendo el mecanismo operativo y la tecnología del software de estructura B/S, y aprendo muchos principios y procesos de diseño de ingeniería de software. Aunque el sistema de administración remota realiza operaciones de archivo, operaciones de proceso, operaciones de comando, operaciones de sistema y operaciones de red, estas son solo implementaciones preliminares, y todavía hay muchas deficiencias, como la configuración de permisos, incompletitud de algunas operaciones de red y algunos. la operación aún no ha sido implementada. Otros pueden implementarlo de acuerdo con nuestras ideas de diseño.

El sistema de administración remota basado en el sistema Linux de administración web es un problema relativamente complicado, pero también es un tema muy desafiante y también es un tema muy práctico. Un sistema de administración remota de este tipo puede ahorrar mucho tiempo y trabajo a los administradores del sistema, lo que hace que la administración del sistema sea más conveniente, fácil y amigable.

La investigación de este tema se refiere al patrón de diseño y al proceso de desarrollo del desarrollo de software exitoso de otras personas. En el estudio de este tema, aprendí que todas las etapas del desarrollo de software, como el análisis de requisitos, el diseño del esquema, el diseño detallado, la codificación del sistema y las pruebas del sistema, son muy importantes, especialmente el análisis de requisitos y el diseño del esquema. está relacionado con la calidad de todo el sistema, afecta directamente el desarrollo futuro y también corrigió muchos de mis malentendidos sobre el desarrollo de software.Por ejemplo, solía pensar que el desarrollo de software es codificación.

ginsengBibliografía _

[1] Evi Nermeth. UNIX System Management Technical Manual [M] Beijing: People's Posts and Telecommunications Press, 2002.

[2] Rasmus Lerdorf, Kevin Tatroe. Programación PH [M]. Beijing: China Electric Power Press, 2003.

[3] Guo Jinfeng, Lin Yu. PHP & MySql Web Network Programming [M]. Beijing: People's Posts and Telecommunications Press, 2001.

[4] Ning Lei, Zhou Wei. Linux Network and Security Management [M]. Beijing: People's Posts and Telecommunications Press, 2001.

[5] Zhao Qizhi. Programa completo de autoaprendizaje PHP 4+MySQL [M]. Beijing China Railway Press, 2001.

[6] Cox. Manual del administrador del sistema Red Hat Linux [M]. Beijing: Mechanical Industry Press, 2001.

[7] Leon Atkinson. PHP 4 Core Programming [M]. Beijing: China Water Conservancy and Hydropower Press, 2001.

[8] Tobias Ratschiller. Guía técnica de desarrollo web PHP 4.0 [M]. Beijing: Mechanical Industry Press, 2001.

gracias

Este artículo se completó bajo el cuidado y la guía entusiastas del Sr. Fang Rui. Su profundo conocimiento y estilo académico riguroso me han beneficiado mucho y jugaron un papel importante en la finalización exitosa de este proyecto. Aquí me gustaría expresar mi más sincero agradecimiento a él!

Gracias a Internet por su ayuda en la etapa inicial de la investigación del proyecto. Con la ayuda de Internet, el proyecto se puede llevar a cabo muy bien y ¡tiene un muy buen comienzo! Durante el proceso de realización de la tesis, también recibí la ayuda entusiasta de otros profesores y muchos compañeros de clase, ¡y me gustaría expresarles mi profunda gratitud!

Finalmente, me gustaría expresar mi más sincero agradecimiento a todos los expertos y maestros que revisaron este artículo en medio de sus apretadas agendas.

 

Atentos al blogger, el próximo artículo es más emocionante.

¡Tres en uno con un solo clic! ! !

¡Tres en uno con un solo clic! ! !

¡Tres en uno con un solo clic! ! !
¡Gracias por el triple de un clic! ! !

Supongo que te gusta

Origin blog.csdn.net/m0_56073435/article/details/131476412
Recomendado
Clasificación