Pwndrop: Docker
Pwndrop es un servicio de alojamiento de archivos autodesplegable para enviar cargas útiles o compartir de forma segura sus archivos privados a través de HTTP y WebDAV
.
Las principales características son las siguientes:
- Subir y compartir inmediatamente varios archivos usando tu propio VPS privado.
- Hacer que los archivos estén disponibles o no para su descarga con un solo clic.
- Configurar URLs de descarga personalizadas, para archivos compartidos, sin jugar con la estructura de directorios.
- Preparar los archivos de fachada, que serán servidos en lugar del archivo original cuando te apetezca.
- Configurar redirecciones automáticas para falsificar la extensión del archivo en un enlace compartido.
- Cambiar el tipo de MIME del archivo servido para cambiar el comportamiento del navegador cuando se hace clic en un enlace de descarga.
- Servir los archivos a través de HTTP, HTTPS y WebDAV.
- Protege tu panel de administración detrás de una ruta URL secreta personalizada e inicia sesión de forma segura con tu propio nombre de usuario y contraseña.
Instalación
Pwndrop
Vamos a realizar unos pasos previos para preparar el entorno. En primer lugar creamos las carpetas donde alojar el proyecto:
mkdir -p $HOME/docker/pwndrop/config && \
cd $HOME/docker/pwndrop
Ahora vamos a crear el fichero de configuración docker-compose.yml
lanzando el siguiente comando:
cat << EOF > $HOME/docker/pwndrop/docker-compose.yml
version: "2.1"
services:
pwndrop:
image: ghcr.io/linuxserver/pwndrop
container_name: PWNDrop
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Madrid
- SECRET_PATH=/lordpedal
volumes:
- ~/docker/pwndrop/config:/config
ports:
- 8003:8080
restart: always
EOF
Vamos a repasar los principales parámetros a modificar para adaptarlos a nuestro sistema y configuración especifica:
Parámetro | Función |
---|---|
PUID=1000 |
UID de nuestro usuario. Para saber nuestro ID ejecutar en terminal: id |
PGID=1000 |
GID de nuestro usuario. Para saber nuestro ID ejecutar en terminal: id |
TZ=Europe/Madrid |
Zona horaria Europa/Madrid |
SECRET_PATH=/lordpedal |
Ruta secreta para el acceso administrador /lordpedal |
~/docker/pwndrop/config:/config |
Ruta donde almacenamos los datos |
8003:8080 |
Puerto gestión web 8003 |
restart: always |
Habilitamos que tras reiniciar la maquina anfitrion vuelva a cargar el servicio |
Una vez configurado, lo levantamos para ser creado y ejecutado:
docker-compose up -d
Pwndrop + Traefik
Requisito obligatorio tener instalado Docker: Traefik Maroilles
Vamos a realizar unos pasos previos para preparar el entorno. En primer lugar creamos las carpetas donde alojar el proyecto:
mkdir -p $HOME/docker/pwndrop/config && \
cd $HOME/docker/pwndrop
Ahora vamos a crear el fichero de configuración docker-compose.yml
lanzando el siguiente comando:
cat << EOF > $HOME/docker/pwndrop/docker-compose.yml
version: "2.1"
services:
pwndrop:
image: ghcr.io/linuxserver/pwndrop
container_name: PWNDrop
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Madrid
- SECRET_PATH=/lordpedal
volumes:
- ~/docker/pwndrop/config:/config
ports:
- 8003:8080
networks:
- traefik
labels:
- traefik.backend=pwndrop
- traefik.frontend.rule=Host:pwndrop.lordpedal.duckdns.org
- traefik.docker.network=traefik
- traefik.port=80
- traefik.enable=true
restart: always
networks:
traefik:
external: true
EOF
Vamos a repasar los principales parámetros a modificar para adaptarlos a nuestro sistema y configuración especifica:
Parámetro | Función |
---|---|
PUID=1000 |
UID de nuestro usuario. Para saber nuestro ID ejecutar en terminal: id |
PGID=1000 |
GID de nuestro usuario. Para saber nuestro ID ejecutar en terminal: id |
TZ=Europe/Madrid |
Zona horaria Europa/Madrid |
SECRET_PATH=/lordpedal |
Ruta secreta para el acceso administrador /lordpedal |
~/docker/pwndrop/config:/config |
Ruta donde almacenamos los datos |
8003:8080 |
Puerto gestión web 8003 |
restart: always |
Habilitamos que tras reiniciar la maquina anfitrion vuelva a cargar el servicio |
traefik.frontend.rule=Host:pwndrop.lordpedal.duckdns.org |
Sustituimos la variable lordpedal por nuestro ID de DuckDNS |
Una vez configurado, lo levantamos para ser creado y ejecutado:
docker-compose up -d
En mi caso, el servicio estaría disponible en la dirección web https://pwndrop.lordpedal.duckdns.org/lordpedal
Configuración
Y listo!