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
.onionactivo
(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.



