Explicación detallada de la construcción manual de Troya
Instala las dependencias requeridas por acme.sh.
Ejecute el siguiente comando para usar nano para abrir el archivo de configuración de Nginx, eliminar el bloque del servidor y agregar un índice a la carpeta /etc/nginx/sites-enabled/.
Si encuentra el error setenforce: SELinux está deshabilitado, significa que selinux se ha cerrado por completo
Para volver a habilitar selinux, siga los pasos a continuación:
Debe reiniciar Linux
El comando de inicio de Nginx es el mismo que el de Trojan, por lo que no habrá más explicaciones
Al obtener un certificado de Let's Encrypt, Let's Encrypt verificará el control de el nombre de dominio en el certificado. Generalmente, se utiliza HTTP-01 o DNS-01 para la verificación. Para obtener más información, consulte el documento oficial Método de verificación. Este artículo utiliza el método HTTP-01 para la verificación. Si necesita utilizar el método DNS-01 para la verificación, consulte el documento oficial de acme.sh Cómo utilizar la API de DNS.
El primer comando crea una nueva carpeta /etc/letsencrypt/live para almacenar el certificado. El segundo comando cambia el propietario de la carpeta del certificado a acme para que el usuario acme tenga permiso para escribir el certificado.
Este artículo utiliza el método http de acme.sh para solicitar un certificado. El método http requiere colocar un archivo en el directorio raíz del sitio web para verificar la propiedad del nombre de dominio. nginx necesita tener permisos en el directorio webroot, por lo que el proceso de trabajo que ejecuta Nginx se une al grupo certusers y luego agrega el directorio webroot al grupo certusers.
En diferentes versiones de Linux, nginx puede usar diferentes usuarios para ejecutar el proceso de trabajo, que puede ser www-data, nginx y nadie. Por lo tanto, debe ejecutar el siguiente comando para encontrar nginx usted mismo. : trabajador El usuario al que pertenece el proceso:
La primera columna de la segunda línea del resultado del comando anterior es nginx: El usuario al que pertenece el proceso de trabajo, y luego ejecuta uno de los siguientes tres comandos de acuerdo con la situación real:
Ejecute los siguientes dos comandos, el primer comando crea una nueva carpeta /var/www/acme-challenge para almacenar el archivo de verificación del nombre de dominio para acme.sh. El segundo comando cambia el propietario de la carpeta del certificado a acme, de modo que el usuario acme tenga permiso para escribir el archivo y Nginx pueda leer el archivo durante la verificación.
Ejecute los siguientes comandos respectivamente y preste atención para ver si se informa algún error. El primer comando cambia a usuario acme. El segundo comando instala acme.sh. El tercer comando sale del usuario actual. El cuarto comando cambia nuevamente a usuario acme. Tenga en cuenta que no se puede omitir la operación de cambiar de usuario dos veces, porque después de instalar acme.sh, debe iniciar sesión con el usuario actual nuevamente; de lo contrario, no se reconocerá el comando acme.sh.
Ejecute el siguiente comando (tenga en cuenta el nombre de dominio lt; tdom.mlgt; cámbielo a su propio nombre de dominio) y espere un momento.
Cuando vea el mensaje en la imagen siguiente, la solicitud del certificado se realizó correctamente.
Ejecute el siguiente comando (tenga en cuenta el nombre de dominio lt; tdom.mlgt; cámbielo a su propio nombre de dominio. El primer comando usa acme.sh para instalar el certificado en el directorio certfiles, de modo que cuando). acme.sh actualiza el certificado Los nuevos certificados se instalarán automáticamente aquí. El segundo comando es configurar acme.sh para que actualice y actualice automáticamente el certificado, de modo que después de configurar Trojan, generalmente no tenga que preocuparse por el servidor.
Finalmente, se debe permitir a los usuarios del grupo acceder al certificado. Esto se puede lograr con el siguiente comando.
El primer comando cambia el grupo de usuarios donde se encuentra la carpeta del certificado a certusers. El segundo comando es otorgar permiso de lectura a los usuarios en el grupo de carpetas del certificado. Después de ejecutar estos dos comandos, el usuario troyano tendrá permiso para leer el certificado. El tercer comando sale del usuario acme porque se ha instalado el certificado.
Ejecute los siguientes cuatro comandos respectivamente y preste atención a si se informa un error. El primer comando es instalar Trojan. Una vez completada la instalación, normalmente se le solicitará el número de versión para ver si es la última. El segundo comando es cambiar el propietario del archivo de configuración del troyano al usuario troyano. Dado que el troyano se instala usando sudo, el archivo de configuración pertenece al usuario raíz de forma predeterminada y necesitamos usar el troyano para ejecutar el troyano. El propietario provocará que el troyano de inicio encuentre problemas de permisos. El tercer comando hace una copia de seguridad del archivo de configuración del troyano por si acaso. El cuarto comando es usar nano para modificar el archivo de configuración.
Después de ejecutar el cuarto comando, la pantalla mostrará el archivo de configuración del troyano. Localice la contraseña, el certificado y la clave y modifíquelos. La contraseña depende de sus preferencias. Cambie el certificado y la clave a /etc/letsencrypt/live/certificate.crt y /etc/letsencrypt/live/private.key respectivamente. Después de editar el archivo de configuración, presione las indicaciones de las teclas de acceso directo en la parte inferior de la pantalla (O y X: Ctrl O y Ctrl X) para guardar y salir de nano. El archivo de configuración modificado se muestra en la figura. Además, si hay una dirección IPv6, cambie 0.0.0.0 de local_addr a:: antes de poder usarla.
Ejecute el siguiente comando para abrir el archivo trojan.service y cambiar el usuario a trojan.
Agregue efectos de usuario como se muestra en la figura. Tenga en cuenta que no hay espacio al lado del signo igual.
Luego recarga el archivo de configuración.
Ejecute el siguiente comando para darle a Trojan la capacidad de monitorear los puertos por debajo de 1024, de modo que Trojan pueda monitorear el puerto 443. Esto se debe a que utilizamos un usuario no root para iniciar Trojan, pero Linux de forma predeterminada no permite que los procesos iniciados por usuarios no root escuchen puertos por debajo de 1024 a menos que se indique explícitamente para cada archivo binario.
Los comandos para iniciar Trojan y verificar el estado son los siguientes. El primero es iniciar Trojan y el segundo es verificar el estado de ejecución de Trojan. Después de iniciar, verifique el estado nuevamente. Si Trojan se muestra activo (en ejecución), significa que se inició normalmente. Si se produce un error fatal: config.json(n): secuencia de código no válido, entonces hay un error en la línea n de su archivo de configuración, verifíquelo. Si el inicio falla, también puede usar el troyano journalctl -f -u para ver el registro de systemd.
Aunque generalmente no es necesario iniciar automáticamente al arrancar, a menos que haya un corte de energía en la sala de computadoras vultr, no cuesta mucho de todos modos, así que hagámoslo.
En este punto la configuración del servidor está completa. En este punto, puede visitar su sitio web en el navegador para ver si se puede acceder a él. Si se puede acceder a su sitio web, entonces todo es normal.
Además, en base a la posible detección maliciosa considerada anteriormente, puedes verificar si las siguientes condiciones son normales.
Después de que acme.sh reinstale el certificado, es necesario notificar al troyano para que vuelva a cargar el certificado. La solución más sencilla es iniciar sesión en el servidor y reiniciar Trojan cada tres meses, pero no es perfecto, después de todo, reiniciar provocará la interrupción del servicio. De hecho, Trojan ha implementado la función de recarga de certificado y clave privada. Solo necesita enviar un mensaje SIGUSR1 a Trojan después de actualizar el certificado.
Después de que Trojan reciba el mensaje SIGUSR1, cargará automáticamente el nuevo certificado y los archivos de clave, por lo que no es necesario reiniciar Trojan. El comando para enviar manualmente mensajes SIGUSR1 al troyano es sudo -u trojan killall -s SIGUSR1 trojan, pero esto no es perfecto y debe iniciar sesión en el servidor y ejecutar este comando cada tres meses. De hecho, podemos agregar una tarea programada al troyano del usuario para que pueda ejecutar el comando una vez al mes. La implementación es la siguiente.
Primero, edite el archivo crontab del troyano de usuario
Agregue una línea como la siguiente al final del archivo. Esta línea significa ejecutar el comando killall -s SIGUSR1 troyano en el primer día. de cada mes Dado que lo está ejecutando el usuario troyano, no es necesario agregar sudo -u trojan al frente.
Por último, comprueba si crontab surte efecto.