Cómo crear tu propio mini hosting dentro de Tor

🧅 Cómo crear tu propio mini hosting dentro de Tor (subida de archivos + usuarios)

En los artículos anteriores aprendiste a:

  • Montar un sitio en Tor
  • Hacerlo persistente
  • Protegerlo y crear un panel privado

Ahora vamos a dar un paso más:

👉 Crear tu propio mini hosting dentro de Tor
👉 Permitir subida de archivos
👉 Agregar un sistema básico de usuarios

Esto te permite tener algo como:

  • Un drive privado
  • Un sistema de intercambio de archivos
  • Un panel personal tipo “nube”

🧠 ¿Qué vamos a construir?

Un panel web accesible desde tu .onion donde:

  • Inicias sesión
  • Subes archivos
  • Ves archivos subidos
  • Solo usuarios autorizados pueden entrar

Todo funcionando en tu propio servidor.


⚙️ Requisitos

Debes tener ya:

  • Tor configurado
  • Apache2 funcionando
  • Tu sitio .onion activo

(Si no, usa los artículos anteriores como base)


📁 Paso 1: Preparar estructura del proyecto

Vamos a crear una carpeta para el panel:

sudo mkdir /var/www/html/hosting

Y dentro:

cd /var/www/html/hosting
sudo mkdir uploads

Dale permisos:

sudo chown -R www-data:www-data /var/www/html/hosting
sudo chmod -R 755 /var/www/html/hosting

🔐 Paso 2: Sistema básico de login (PHP)

Crea un archivo:

sudo nano index.php

Contenido:

<?php
session_start();$usuario = "admin";
$password = "1234";if ($_POST) {
if ($_POST['user'] === $usuario && $_POST['pass'] === $password) {
$_SESSION['login'] = true;
header("Location: panel.php");
exit;
} else {
echo "Credenciales incorrectas";
}
}
?><form method="POST">
<input type="text" name="user" placeholder="Usuario"><br>
<input type="password" name="pass" placeholder="Contraseña"><br>
<button type="submit">Entrar</button>
</form>

📂 Paso 3: Panel con subida de archivos

Crea:

sudo nano panel.php

Contenido:

<?php
session_start();if (!isset($_SESSION['login'])) {
header("Location: index.php");
exit;
}$dir = "uploads/";if ($_FILES) {
$archivo = $dir . basename($_FILES["file"]["name"]);
move_uploaded_file($_FILES["file"]["tmp_name"], $archivo);
echo "Archivo subido correctamente<br>";
}
?><h1>Mini Hosting 🧅</h1><form method="POST" enctype="multipart/form-data">
<input type="file" name="file">
<button type="submit">Subir</button>
</form><h2>Archivos:</h2><ul>
<?php
$files = scandir($dir);
foreach ($files as $file) {
if ($file != "." && $file != "..") {
echo "<li><a href='uploads/$file'>$file</a></li>";
}
}
?>
</ul><a href="logout.php">Cerrar sesión</a>

🚪 Paso 4: Logout

sudo nano logout.php
<?php
session_start();
session_destroy();
header("Location: index.php");

🌐 Paso 5: Acceder desde Tor

Entra a:

http://tu_sitio.onion/hosting

Y tendrás:

  • Login
  • Panel
  • Subida de archivos
  • Listado automático

🔒 Paso 6: Mejorar seguridad (MUY IMPORTANTE)

Este código funciona, pero hay que endurecerlo.


🛑 1. Evitar subir archivos peligrosos

Edita en panel.php:

$permitidos = ["jpg", "png", "pdf", "txt"];$ext = pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION);if (!in_array($ext, $permitidos)) {
die("Tipo de archivo no permitido");
}

📏 2. Limitar tamaño

if ($_FILES["file"]["size"] > 2000000) {
die("Archivo demasiado grande");
}

🔐 3. Cambiar credenciales

Nunca dejes:

admin / 1234

🧱 4. Bloquear ejecución en uploads

Crea:

sudo nano uploads/.htaccess
php_flag engine off

Esto evita que alguien suba un .php y lo ejecute.


👥 Paso 7: Sistema básico de múltiples usuarios (opcional)

Puedes usar un arreglo:

$usuarios = [
"admin" => "1234",
"user1" => "abcd"
];

Y validar así:

if (isset($usuarios[$_POST['user']]) && $usuarios[$_POST['user']] === $_POST['pass']) {

⚠️ Advertencias importantes

Esto es un mini hosting básico, no profesional.

Evita:

  • ❌ Subir archivos ejecutables
  • ❌ Usarlo para datos sensibles sin cifrado
  • ❌ Exponerlo fuera de Tor

🧠 ¿Qué acabas de crear?

Un sistema real con:

  • Autenticación
  • Subida de archivos
  • Gestión básica
  • Acceso privado en Tor

Esto ya es una base para cosas más grandes.


💡 Ideas para evolucionarlo

Aquí es donde se pone interesante:

👉 Panel tipo Google Drive
👉 Subida con barra de progreso
👉 Usuarios con roles
👉 Base de datos (MySQL)
👉 Interfaz bonita (CSS + JS)
👉 Logs de actividad


🚀 Conclusión

Ya no estás montando páginas…
Estás creando servicios.

Y eso cambia completamente el nivel.

Deja un comentario