Sass
Desde Boostrap 4 se permite utilizar los archivos de Sass para aventajarnos y modificar sus variables, mapas, mixin, etc. (utilizad la última versión de Bootstrap). Estos archivos se encuentran en el directorio bootstrap-x.x.x/scss
Estructura
Siempre que sea posible, debemos evitar modificar los archivos troncales de Bootstrap, eso significa que debemos crear nuestras propias hojas de estilos, de modo que importemos Bootstrap, modifiquemos y extendamos los estilos ahí. Asumiendo que usamos la librería de Bootstrap que hemos descargado, la estructura que este tiene es:

En nuestro custom.scss, debemos importar los archivos Sass de Bootstrap. Para ello tenemos dos opciones: incluir todo Bootstrap o coger sólo las partes que necesitamos teniendo en cuenta las dependencias y requerimientos que pueden tener. Además, de incluir el JS correspondiente para el plugins que necesitemos.
Con esta configuración, podemos modificar cualquier variable con Sass y mapear nuestro custom.scss. Podemos añadir las partes de Bootstrap que necesitemos debajo de la sección dada, aunque el equipo de Bootstrap nos recomienda que añadamos Bootstrap.scss completo como punto de partida.
Variables por defecto
Todas y cada una de las variables de Bootstrap incluyen la posibilidad de utilizar !default para poder sobrescribir cualquier valor en tu código de Sass sin necesidad de tener que modificar el código original de Bootstrap. Podemos por tanto copiar y pegar todas las variables que necesitemos y modificar así posteriormente sus valores quitando el valor de !default. Si una variable ha sido ya asignada, a esta variable no se va a reasignar por los valores que tenga por defecto en Bootstrap.
La lista completa de las variables de Bootstrap la tenemos en: scss/_variables.scss. Algunas variables están establecidas a null, estas variables no generarán la propiedad a menos que lo establezcamos nosotros en nuestra configuración.
Veamos un ejemplo de cómo modificar el color de fondo del body importando y compilando Bootstrap vía npm:
Esto lo debemos repetir tantas veces como nos sea necesario para sobrescribir aquellas variables de Bootstrap que queramos modificar.
Maps y loops
Bootstrap incluye un gran número de maps en Sass (para colores, grid breakpoints, etc.) y pares de clave-valor para facilitar la generación de nuestros CSS. Al igual que las variables de Sass, todos los maps incluyen el valor !default que se puede sobreescribir y extender.
Por ejemplo, para modificar un color del mapa $theme-colors, lo que haremos será modificar el color que queramos:
Y después estas variables que hemos modificado se cambiarán en el map $theme-colors de Bootstrap:
Para añadir nuevos colores a $theme-colors o a otro map creando un nuevo map de Sass, lo que haremos será crear nuestras variables o mapa directamente y hacer un merge:
Si por el contrario lo que queremos hacer es eliminar un color, deberemos hacer un map-remove. Pero ¡ojo! debemos hacerlo antes de usar los mapas y tras las variables.