Skip to content

Instantly share code, notes, and snippets.

@oneohthree
oneohthree / quick-slugify.sh
Last active February 22, 2024 01:53
Quick bash slugify
echo "$STRING" | iconv -t ascii//TRANSLIT | sed -r s/[^a-zA-Z0-9]+/-/g | sed -r s/^-+\|-+$//g | tr A-Z a-z
@oneohthree
oneohthree / bash-feed-gen.sh
Last active July 12, 2017 19:56
bash-feed-gen generates a feed file from new files arriving to a directory. This would be useful for people who mantain file servers and want their users to be notify of new files.
#!/bin/bash
FILEDIR="/path/to/files/root/directory"
FEEDDIR="/path/to/feed/root/directory"
BASEURL="http://domain.tld"
TITLE="TITLE"
DESCRIPTION="DESCRIPTION"
ENTRIES="10"
if [[ ! -d $FILEDIR ]]

Integración de proxy cache Squid con Samba 4 AD DC

Este documento describe el proceso de integración de Samba AD DC con Squid con soporte para la autenticación Kerberos y basic (como fallback).

Consideraciones previas

  • Sistema operativo: Debian GNU/Linux 9 (Stretch) 64bits
  • Version de Squid: 3.5
  • Nombre de dominio: foo.bar
  • Nombre de host del servidor AD DC: dc
@oneohthree
oneohthree / samba-ad-dc-howto.md
Last active February 16, 2023 18:40
samba-ad-dc-howto.md

Instalación de Samba como Active Directory Domain Controller (AD DC)

Consideraciones previas

  • Sistema operativo: Debian GNU/Linux 9 (Stretch)
  • Nombre de host: dc
  • Nombre de dominio: foo.bar
  • Dirección IP: 192.168.0.1

Configuración de nombres de hosts

Protección de las credenciales enviadas por el navegador al servidor proxy

Problema

Es sabido que durante el proceso de autenticación en un servidor proxy HTTP las credenciales se envian en texto plano. Lo anterior pudiera convertirse en un problema de seguridad. Esta vulnerabilidad permite a un usuario malicioso capturar fácilmente el par usuario contraseña utilizando un ataque de tipo MitM.

Solución

Una solución viable consiste en configurar el servidor proxy con soporte para SSL, de modo que el tráfico enviado desde el navegador hacia este viaje por un canal seguro. Para esto, el navegador debe ser capaz de comunicarse con el servidor proxy a través del protocolo HTTP sobre SSL/TLS.

Instalación y configuración de LXC en Debian Stretch

Breve introducción a LXC

LXC es una interface de espacio de usuario para el soporte de contenedores sobre el kernel de Linux. Permite crear y administrar contenedores de sistemas o aplicaciones a través de herramientas sencillas y una potente API.

Los contenedores LXC frecuentemente son considerados como algo entre chroot y una máquina virtual. El objetivo fundamental de LXC es crear un entorno lo más cercano posible a una instalación estándar de Linux, pero sin la necesidad de un kernel independiente.

LXC actualmente se compone de varios componentes individuales: la biblioteca liblxc, varios bindings de lenguajes de programación para la API, tales como: Python 2 y 3, Lua, Go, Ruby y Haskell, un conjunto de heramientas estándar para controlar los contenedores, además de plantillas de contenedores de distribución.

#!/usr/bin/env bash
set -e
zeal_api="http://api.zealdocs.org/v1/docsets"
docset_names=( $(curl -s $zeal_api | jq -r '.[].name') )
docsets_local_api="/path/to/zeal/api/file"
docsets_local_dir="/path/to/zeal/docsets"
curl --silent $zeal_api --output $docsets_local_api/docsets
lf="$(curl -s https://product-details.mozilla.org/1.0/firefox_versions.json | \
jq -r .LATEST_FIREFOX_VERSION)"
lt="$(curl -s https://product-details.mozilla.org/1.0/thunderbird_versions.json | \
jq -r .LATEST_THUNDERBIRD_VERSION)"
releases=("win32" "win64" "lnux-i686" "linux-x86_64")
locales=("es-ES" "en-US")
for release in "${releases[@]}"; do
for locale in "${locales[@]}"; do
<?xml version="1.0"?>
<presets>
<MKV_VP8>
<label>MKV VP8</label>
<params>-crf 15.0 -f matroska -b:v 8000k -r 25 -vcodec libvpx -acodec aac -ar 48000 -b:a 192k -coder 1 -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -me_method hex -subq 6 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -b_strategy 1 -strict -2</params>
<extension>mkv</extension>
<category>MKV</category>
</MKV_VP8>
<MKV_VP9>
<label>MKV VP9</label>
lf="$(curl -s https://product-details.mozilla.org/1.0/firefox_versions.json \
| jq -r .LATEST_FIREFOX_VERSION)"
lt="$(curl -s https://product-details.mozilla.org/1.0/thunderbird_versions.json \
| jq -r .LATEST_THUNDERBIRD_VERSION)"
releases=("win32" "win64" "linux-i686" "linux-x86_64")
locales=("es-ES" "en-US")
for release in "${releases[@]}"; do
for locale in "${locales[@]}"; do