Seguramente tendrás que manejar un montón de cosas desordenadas si realmente quieres hacerlo. Y si está haciendo esto solo, es mucho más de lo que probablemente pueda manejar.
Suponga que cada usuario hará todo lo posible por abusar de su servidor, atacar a otros servidores, explotar criptomonedas, enviar spam, alojar pornografía y warez, robarse las contraseñas. Y tendrás un pequeño ejército de usuarios que se portan mal haciendo eso todo el tiempo.
Primero, tendrá que endurecer el servidor tan paranoico como pueda , tendrá que ser apenas utilizable para ser más difícil de abusar. Enumere todos los programas SUID que tiene y determine si todos necesitan SUID. Elimine el bit SUID de cualquier programa sin el cual pueda vivir.
Suscríbete a todas las listas de seguridad que tu amigo Google puede darte. Y seguirlos. Debe asegurarse de corregir cualquier error en los programas que tenga tan pronto como sepa que hay un error, ya que sus usuarios lo sabrán y lo explotarán. Tenga una política que le permita reiniciar el servidor cuando lo desee, sin previo aviso, por cualquier motivo. Parche y reinicio.
Configure adecuadamente SELinux o AppArmor en el servidor. Le ayudarán a mantener a sus clientes alejados entre sí y registrarán programas o usuarios que se comportan mal. Usa los registros para prohibir a los usuarios más tarde.
Tendrá que configurar un firewall robusto, con ingreso y filtrado de egreso para limitar el tráfico a lugares mal conocidos. Dejar caer todo el tráfico de Tor será bueno. Y defina la configuración del tráfico, y la asignación de ancho de banda y las asignaciones por usuario. Y prohibir UDP. Y torrent, y DHT, y cualquier cosa relacionada con P2P.
Coloque un buen IPS / IDS en su lugar en el servidor y en la puerta de enlace. Si alguien obtiene root en su servidor, puede poner un rootkit en el servidor y enmascarar sus actividades. Tener un IPS / IDS en otro servidor le ayudará a detectar discrepancias. Y asegure esa entrada lo mejor que pueda. Probablemente será el objetivo principal para la piratería.
Le gustaría eliminar compiladores y muchos intérpretes del servidor, para que sus usuarios tengan menos espacio para portarse mal. Y limitar la cuota de disco. Y montar / tmp con la bandera noexec
. Y montar / home con noexec
también. Y busque todos los archivos / directorios de escritura mundial, y cambie los permisos. Los directorios de escritura mundial son fáciles de abusar.
Y registra todo . Dos veces. En el servidor local, y en un servidor remoto, un servidor endurecido y de difícil acceso. Cuando alguien de su servidor abusa de otra parte, usted puede ser responsable hasta cierto punto. Una vez documentado todo el acceso, le ayudará a ignorar al usuario.
Y usa un administrador de registro (como Splunk). No podrá leer todos los registros que generará y analizará a mano. Un administrador de registros lo ayudará a detectar más rápido cuando alguien abusó del servidor y los eliminará lo antes posible.
Tenga un TOS draconiano, EULA, Acuerdo de servicio. El más draconiano de tu draconiano abogado puede escribir. Y haga que un abogado lo escriba , por lo que será válido cuando tenga que demandar a un usuario que usó su servidor para cometer un fraude. Y sé el BSfH (Bastard Sysadmin from Hell) cuando trates con ellos. No permitas que tus usuarios rompan ninguna regla dos veces, expulsalos por la puerta en la primera ofensa.
Y ni siquiera pienses en proporcionar esto gratis. Debe tener alguna forma de castigar a los usuarios malos, y hacer que paguen primero y luego usarlos, y perder el acceso si abusan de su servicio puede rechazar a algunos usuarios malos. Le ayudará a cobrar a 500 USD por tarifa de abuso (con toda la documentación de respaldo)
Y asegurar su servidor no es una actividad, es una rutina diaria. Todos los días tendrás que endurecer algo.
Y te deseo suerte.