Table of Contents

Lab Overview & What You Will Build

In this foundational lab, you will construct a complete enterprise-grade directory service infrastructure from scratch. Starting with nothing more than a physical computer, you will install a hypervisor (VirtualBox or VMware), provision an Ubuntu Linux virtual machine, deploy Docker containerization technology, and finally instantiate an OpenLDAP directory server. You will then populate this directory with a realistic organizational structure including departments, user accounts with full identity attributes, and security groups that mirror real enterprise access control patterns. By the end of this lab, you will have a fully functional LDAP directory capable of authenticating users, querying group memberships, and enforcing role-based access control—the exact same capabilities that power identity management in Fortune 500 companies worldwide.

What You Will Build

Real-World Scenario & Skills Application

Enterprise Scenario: TechCorp Global Identity Infrastructure

Imagine you've just joined TechCorp Industries, a multinational technology company with 15,000 employees across 47 countries. On your first day as a Junior IAM Engineer, your manager presents you with a challenge: "We're migrating from legacy authentication systems to a centralized directory service. Before we touch production, I need you to build a proof-of-concept LDAP environment that demonstrates our proposed directory structure."

This lab simulates exactly that scenario. The skills you develop here directly translate to:

  • Day 1 Onboarding: Understanding how your employee account was created, what attributes define your identity, and why you belong to certain groups
  • Access Reviews: Querying who has access to what, validating group memberships, and generating compliance reports
  • Incident Response: Rapidly looking up user details during security incidents, verifying authentication attempts, and tracing access patterns
  • Application Integration: Configuring web applications, VPN gateways, and cloud services to authenticate against your directory
  • Migration Projects: Exporting user data to LDIF format for migration to cloud identity providers like Azure AD or Okta

Skills You Will Gain & How They Apply

Directory Architecture Design

Design OU structures for organizations of any size. Used when planning Active Directory forests, Azure AD organizational units, or any hierarchical identity store.

LDIF Proficiency

Read and write LDAP Data Interchange Format files. Essential for bulk user imports, directory migrations, and backup/restore operations.

LDAP Query Mastery

Construct complex search filters to find users, groups, and relationships. Critical for application integration, security audits, and troubleshooting.

Authentication Troubleshooting

Diagnose why logins fail—wrong DN, bad password, account locked, group missing. The #1 skill needed in any IAM support role.

RBAC Implementation

Implement role-based access control using groups. The foundation for every modern authorization system from AWS IAM to Kubernetes RBAC.

Container-Based Identity Services

Deploy and manage identity infrastructure in containers. Modern pattern used in cloud-native and DevOps environments.

Industry Relevance

LDAP and directory services power identity management across virtually every enterprise environment:

  • Microsoft Active Directory: 95% of Fortune 500 companies use AD, which is built on LDAP protocol
  • Cloud Identity: AWS Directory Service, Azure AD DS, and Google Cloud Identity all leverage LDAP interfaces
  • Applications: Jira, Confluence, GitLab, Jenkins, SonarQube, Grafana, and thousands more authenticate via LDAP
  • Network Infrastructure: Cisco, Palo Alto, Fortinet firewalls and VPN appliances integrate with LDAP for user authentication
  • Linux/Unix Systems: SSH authentication, sudo privileges, and file permissions can all be centralized via LDAP

Lab Environment Legend

This lab involves multiple devices and environments. Each code block is tagged with a colored badge indicating exactly where to run the commands. Pay close attention to these badges to avoid running commands on the wrong machine, which could cause errors or unexpected behavior.

Windows Host Commands to run in Windows PowerShell or Command Prompt
macOS Host Commands to run in macOS Terminal application
Linux Host Commands to run on a Linux host terminal
Ubuntu VM Commands to run inside the Ubuntu virtual machine
LDAP Container Commands to run inside the Docker container (rarely needed)

Recommended Approach

Regardless of your host operating system (Windows, macOS, or Linux), we recommend running all lab exercises inside an Ubuntu 22.04 VM. This ensures:

  • Consistency: Same environment for all learners regardless of host OS
  • Isolation: Lab experiments cannot affect your main system
  • Easy Cleanup: Delete the VM when finished—no residual software
  • Safe Experimentation: Break things, learn from mistakes, restore from snapshot

Prerequisites & System Requirements

Physical Machine Requirements

Component Minimum Recommended Purpose
Operating System Windows 10, macOS 12+, Ubuntu 20.04+ Windows 11, macOS 14+, Ubuntu 22.04+ Hypervisor host platform
CPU Intel Core i5 / AMD Ryzen 5 (4 cores) Intel Core i7 / AMD Ryzen 7 (6+ cores) Must support VT-x or AMD-V virtualization
RAM (Total) 8 GB 16 GB Host OS + VM allocation
RAM (VM Allocation) 4 GB 8 GB Ubuntu + Docker + OpenLDAP
Disk Space (Free) 30 GB 50 GB VM disk image + Docker images
Network Internet connection Stable broadband Download Ubuntu ISO, Docker images

Critical: Hardware Virtualization Must Be Enabled

Before proceeding, ensure hardware virtualization is enabled in your BIOS/UEFI settings:

  • Intel CPUs: Enable "Intel VT-x", "Intel Virtualization Technology", or "VT-x"
  • AMD CPUs: Enable "AMD-V", "SVM Mode", or "Secure Virtual Machine"

How to check: If you see errors like "VT-x is disabled", "Hardware virtualization not available", or "This host does not support Intel VT-x" when creating VMs, restart your computer, enter BIOS setup (usually F2, F12, DEL, or ESC during boot), navigate to CPU or Advanced settings, and enable virtualization.

Lab Architecture Blueprint

The following diagram illustrates the complete technical stack you will build in this lab. Each layer represents a distinct component, from your physical hardware at the top to the LDAP directory entries at the bottom.

LAB INFRASTRUCTURE STACK

Layer 1: Physical Host Machine
Windows 11 / macOS 14+ / Ubuntu 22.04
Your physical computer running the hypervisor
Layer 2: Hypervisor
VirtualBox 7.0+ VMware Workstation 17+
Type-2 hypervisor enabling virtual machine execution
Layer 3: Ubuntu Virtual Machine
Ubuntu 22.04 LTS 4GB RAM 40GB Disk NAT Network
Isolated Linux environment: identitybytes-lab (10.0.2.15)
Layer 4: Docker Engine
Docker CE 24.0+ Docker Compose v2 Bridge Network
Container runtime with ldap-network (172.18.0.0/16)
Layer 5: OpenLDAP Container
osixia/openldap:1.5.0 Port 389 (LDAP) Port 636 (LDAPS)
Container: identitybytes-ldap Base DN: dc=identitybytes,dc=lab
DIRECTORY INFORMATION TREE (DIT)
dc=identitybytes,dc=labBase DN (Root) ou=peopleUsers Container uid=jdoe (John Doe, Security Engineer) uid=jsmith (Jane Smith, IAM Architect) uid=bjohnson (Bob Johnson, SOC Analyst) ou=groupsGroups Container cn=admins jsmith cn=security-team jdoe, jsmith cn=soc-analysts bjohnson cn=developers jdoe ou=servicesService Accounts cn=app-service (Application service account)

Component Details

Layer Component Purpose Key Configuration
1 Physical Host Runs hypervisor software VT-x/AMD-V enabled in BIOS
2 Hypervisor Creates and manages VMs VirtualBox 7.0+ or VMware 17+
3 Ubuntu VM Isolated lab environment 4GB RAM, 40GB disk, NAT networking
4 Docker Engine Container runtime Docker CE with Compose plugin
5 OpenLDAP Directory service Port 389, persistent volumes

Security Note: Lab vs. Production Configuration

This lab uses simplified security settings for educational purposes. In production environments, you MUST implement:

  • TLS Encryption: LDAPS on port 636 with valid certificates, or STARTTLS on port 389
  • Network Segmentation: Place LDAP servers in protected network zones (management VLAN)
  • Firewall Rules: Restrict LDAP access to authorized systems only
  • Strong Authentication: SASL mechanisms, Kerberos integration, certificate-based auth
  • Password Policies: Complexity requirements, rotation, lockout policies
  • Audit Logging: Comprehensive logging of all authentication and modification events

Hypervisor Selection & Installation

A hypervisor is software that creates and manages virtual machines, allowing you to run multiple operating systems on a single physical computer. For this lab, you can choose between two popular Type-2 (hosted) hypervisors:

Feature VirtualBox VMware Workstation Player
Cost Free (Open Source) Free (Personal Use)
Platforms Windows, macOS, Linux Windows, Linux
Performance Good Excellent
Ease of Use Beginner-friendly Beginner-friendly
Recommended For macOS users, beginners Windows/Linux users wanting best performance

Recommendation

For this lab, we recommend VirtualBox as it works across all platforms and is completely free. The instructions below cover both options—choose the one that suits your environment.

VirtualBox Installation

Select your operating system below for platform-specific installation instructions:

Windows Host
# ============================================================ # VIRTUALBOX INSTALLATION ON WINDOWS # ============================================================ # VirtualBox is a free, open-source hypervisor that allows you # to run virtual machines on your Windows computer. # ============================================================ # STEP 1: Download VirtualBox # ----------------------------------------------------------- # Open your web browser and navigate to: # https://www.virtualbox.org/wiki/Downloads # # Click "Windows hosts" to download the installer. # File will be named: VirtualBox-7.x.x-xxxxxx-Win.exe # Save to your Downloads folder. # STEP 2: Run the Installer # ----------------------------------------------------------- # 1. Navigate to your Downloads folder # 2. Double-click: VirtualBox-7.x.x-xxxxxx-Win.exe # 3. Click "Yes" when User Account Control prompts for permission # STEP 3: Installation Wizard Steps # ----------------------------------------------------------- # Screen 1 - Welcome: # Click "Next" # # Screen 2 - Custom Setup: # Keep all features selected (VirtualBox Application, # VirtualBox USB Support, VirtualBox Networking, # VirtualBox Python Support) # Installation path: C:\Program Files\Oracle\VirtualBox # Click "Next" # # Screen 3 - Warning: Network Interfaces: # This will temporarily disconnect your network # Click "Yes" to proceed # # Screen 4 - Missing Dependencies (if shown): # Click "Yes" to install Microsoft Visual C++ Redistributable # # Screen 5 - Ready to Install: # Click "Install" # Wait for installation to complete (2-5 minutes) # # Screen 6 - Installation Complete: # Check "Start Oracle VM VirtualBox after installation" # Click "Finish" # STEP 4: Verify Installation # ----------------------------------------------------------- # Open Command Prompt (Win + R, type "cmd", press Enter) # Run the following command: VBoxManage --version # Expected output: 7.0.14r161095 (or similar version number) # If you see a version number, VirtualBox is installed correctly! # STEP 5: Verify Hypervisor is Working # ----------------------------------------------------------- # VirtualBox should have opened automatically. # You should see the main window with: # - "Welcome to VirtualBox!" message # - "New" button to create virtual machines # - Empty VM list on the left side # # If VirtualBox opened successfully, your hypervisor is ready!
macOS Host
# ============================================================ # VIRTUALBOX INSTALLATION ON macOS # ============================================================ # VirtualBox works on Intel Macs. For Apple Silicon (M1/M2/M3), # VirtualBox support is experimental - consider UTM instead. # ============================================================ # STEP 1: Check Your Mac's Processor # ----------------------------------------------------------- # Open Terminal (Applications > Utilities > Terminal) # Run this command to check your processor: uname -m # If output is "x86_64" Intel Mac (VirtualBox fully supported) # If output is "arm64" Apple Silicon (VirtualBox experimental) # STEP 2: Download VirtualBox # ----------------------------------------------------------- # Open Safari and navigate to: # https://www.virtualbox.org/wiki/Downloads # # For Intel Macs: Click "macOS / Intel hosts" # For Apple Silicon: Click "macOS / ARM hosts" (experimental) # # File will be named: VirtualBox-7.x.x-xxxxxx-OSX.dmg # STEP 3: Install VirtualBox # ----------------------------------------------------------- # 1. Open Finder and navigate to Downloads # 2. Double-click the VirtualBox .dmg file to mount it # 3. Double-click "VirtualBox.pkg" in the mounted disk image # 4. Follow the installer prompts: # Click "Continue" on the Introduction screen # Click "Continue" on the License screen, then "Agree" # Click "Install" (you may need to enter your password) # 5. Wait for installation to complete # STEP 4: Allow Kernel Extensions (IMPORTANT!) # ----------------------------------------------------------- # macOS blocks VirtualBox kernel extensions by default. # # 1. Open System Settings (Apple menu > System Settings) # 2. Go to Privacy & Security # 3. Scroll down to Security section # 4. You should see "System software from developer Oracle # America, Inc. was blocked from loading" # 5. Click "Allow" next to Oracle # 6. Enter your password when prompted # 7. RESTART YOUR MAC for changes to take effect # STEP 5: Verify Installation (after restart) # ----------------------------------------------------------- # Open Terminal and run: VBoxManage --version # Expected output: 7.0.14r161095 (or similar) # STEP 6: Launch VirtualBox # ----------------------------------------------------------- # Open VirtualBox from Applications folder or Spotlight (Cmd+Space) # You should see the main VirtualBox Manager window # NOTE FOR APPLE SILICON USERS: # ----------------------------------------------------------- # VirtualBox on M1/M2/M3 Macs is still experimental. # Alternative options for Apple Silicon: # - UTM (https://mac.getutm.app/) - Free, native ARM support # - VMware Fusion (Free personal license) - Excellent M-series support # - Parallels Desktop (Paid) - Best performance on Apple Silicon
Linux Host
# ============================================================ # VIRTUALBOX INSTALLATION ON LINUX (Ubuntu/Debian) # ============================================================ # These instructions are for Ubuntu 22.04/24.04 and Debian 12. # For other distributions, visit the VirtualBox Linux downloads page. # ============================================================ # STEP 1: Update System Packages # ----------------------------------------------------------- # Always start with a system update to ensure compatibility sudo apt update && sudo apt upgrade -y # STEP 2: Install Required Dependencies # ----------------------------------------------------------- sudo apt install -y wget apt-transport-https gnupg2 # STEP 3: Add Oracle VirtualBox Repository # ----------------------------------------------------------- # Import Oracle's public key for package verification wget -O- https://www.virtualbox.org/download/oracle_vbox_2016.asc | \ sudo gpg --dearmor --yes --output /usr/share/keyrings/oracle-virtualbox-2016.gpg # Add the VirtualBox repository to your system # This command automatically detects your Ubuntu/Debian version echo "deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-virtualbox-2016.gpg] \ https://download.virtualbox.org/virtualbox/debian $(lsb_release -cs) contrib" | \ sudo tee /etc/apt/sources.list.d/virtualbox.list # STEP 4: Install VirtualBox # ----------------------------------------------------------- sudo apt update sudo apt install -y virtualbox-7.0 # STEP 5: Add Your User to vboxusers Group # ----------------------------------------------------------- # This allows your user to manage VMs without sudo sudo usermod -aG vboxusers $USER # IMPORTANT: Log out and log back in for group changes to take effect # Or run: newgrp vboxusers (for current session only) # STEP 6: Install VirtualBox Extension Pack (Optional but Recommended) # ----------------------------------------------------------- # Provides USB 2.0/3.0 support, disk encryption, NVMe, PXE boot # Download the extension pack matching your VirtualBox version VBOX_VERSION=$(VBoxManage --version | cut -d'r' -f1) wget "https://download.virtualbox.org/virtualbox/${VBOX_VERSION}/Oracle_VM_VirtualBox_Extension_Pack-${VBOX_VERSION}.vbox-extpack" # Install the extension pack sudo VBoxManage extpack install --replace Oracle_VM_VirtualBox_Extension_Pack-${VBOX_VERSION}.vbox-extpack # Accept the license when prompted # STEP 7: Verify Installation # ----------------------------------------------------------- VBoxManage --version # Expected output: 7.0.14r161095 (or similar) # STEP 8: Launch VirtualBox # ----------------------------------------------------------- virtualbox & # Or search for "VirtualBox" in your application menu

VMware Workstation Player Installation (Alternative)

If you prefer VMware over VirtualBox, follow these instructions:

Windows Host
# ============================================================ # VMWARE WORKSTATION PLAYER INSTALLATION ON WINDOWS # ============================================================ # VMware Workstation Player is free for personal, non-commercial use. # It offers excellent performance and is widely used in enterprises. # ============================================================ # STEP 1: Download VMware Workstation Player # ----------------------------------------------------------- # Open your browser and navigate to: # https://www.vmware.com/products/workstation-player.html # # Click "Download for Free" Select "Workstation 17 Player for Windows" # Or direct link: https://www.vmware.com/go/getplayer-win # # File will be named: VMware-player-full-17.x.x-xxxxxxx.exe # STEP 2: Run the Installer # ----------------------------------------------------------- # 1. Double-click the downloaded .exe file # 2. Click "Yes" on User Account Control prompt # 3. Click "Next" on welcome screen # STEP 3: Installation Options # ----------------------------------------------------------- # License Agreement: # Check "I accept the terms in the License Agreement" # Click "Next" # # Custom Setup: # Installation folder: C:\Program Files (x86)\VMware\VMware Player # Check "Enhanced Keyboard Driver" (recommended) # Check "Add VMware Workstation console tools into system PATH" # Click "Next" # # User Experience Settings: # Uncheck "Join the VMware Customer Experience Program" (optional) # Uncheck "Check for product updates on startup" (optional) # Click "Next" # # Shortcuts: # Keep both Desktop and Start Menu shortcuts checked # Click "Next" # # Ready to Install: # Click "Install" # Wait for installation (3-5 minutes) # STEP 4: Complete Installation # ----------------------------------------------------------- # When installation completes: # Click "Finish" # RESTART YOUR COMPUTER (required for VMware services) # STEP 5: First Launch and License # ----------------------------------------------------------- # After restart, open VMware Workstation Player # # License Selection: # Select "Use VMware Workstation 17 Player for free for non-commercial use" # Click "Continue" # Click "Finish" # # You should now see the VMware Workstation Player home screen # with options to "Create a New Virtual Machine" and "Open a Virtual Machine" # STEP 6: Verify Installation # ----------------------------------------------------------- # VMware is ready to use when you see the home screen. # You can verify from Command Prompt: vmrun --version # Expected output: vmrun version 1.17.0 build-xxxxxxx
Linux Host
# ============================================================ # VMWARE WORKSTATION PLAYER INSTALLATION ON LINUX # ============================================================ # VMware Workstation Player is free for personal use on Linux. # These instructions are for Ubuntu/Debian-based distributions. # ============================================================ # STEP 1: Install Required Dependencies # ----------------------------------------------------------- sudo apt update sudo apt install -y build-essential linux-headers-$(uname -r) # STEP 2: Download VMware Workstation Player # ----------------------------------------------------------- # Open browser and navigate to: # https://www.vmware.com/products/workstation-player.html # # Click "Download for Free" Select "Workstation 17 Player for Linux" # # Or download via command line (check for latest version): cd ~/Downloads wget https://www.vmware.com/go/getplayer-linux # The file will be named: VMware-Player-Full-17.x.x-xxxxxxx.x86_64.bundle # STEP 3: Make Installer Executable # ----------------------------------------------------------- chmod +x VMware-Player-Full-*.bundle # STEP 4: Run the Installer # ----------------------------------------------------------- sudo ./VMware-Player-Full-*.bundle # A graphical installer will open. Follow these steps: # # 1. Accept the license agreement (check the box, click "Next") # 2. Choose whether to check for updates on startup # 3. Choose whether to join Customer Experience Program # 4. Enter license key OR select "Use VMware Player free for # non-commercial use" # 5. Click "Install" # 6. Wait for installation to complete # 7. Click "Close" # STEP 5: Launch VMware Player # ----------------------------------------------------------- vmplayer # Or search for "VMware Workstation Player" in your application menu # STEP 6: Verify Installation # ----------------------------------------------------------- vmrun --version # Expected output: vmrun version 1.17.0 build-xxxxxxx # TROUBLESHOOTING: Kernel Module Issues # ----------------------------------------------------------- # If VMware fails to start VMs due to kernel module issues: sudo vmware-modconfig --console --install-all # If that fails, you may need to sign the kernel modules for Secure Boot # or temporarily disable Secure Boot in BIOS.

Hypervisor Installation Verification

Before proceeding to VM creation, verify your hypervisor is working:

  • VirtualBox: Application opens without errors, shows "Welcome to VirtualBox!" screen
  • VMware: Application opens, shows "Create a New Virtual Machine" option

If you encounter errors about virtualization, revisit the BIOS settings mentioned in prerequisites.

Ubuntu VM Installation

Now we'll create an Ubuntu 22.04 LTS virtual machine that will serve as our isolated lab workstation. All remaining lab exercises will be performed inside this VM.

1Download Ubuntu 22.04 LTS ISO

Host Machine (Any OS)
# ============================================================ # DOWNLOAD UBUNTU 22.04 LTS DESKTOP ISO # ============================================================ # Ubuntu 22.04 LTS (Long Term Support) is supported until 2027, # making it ideal for learning and lab environments. # ============================================================ # Option 1: Download via Web Browser # ----------------------------------------------------------- # Navigate to: https://ubuntu.com/download/desktop # Click "Download 22.04 LTS" # # Direct download link: # https://releases.ubuntu.com/22.04/ubuntu-22.04.4-desktop-amd64.iso # # File size: Approximately 4.7 GB # Save to an easily accessible location (e.g., Downloads folder) # Option 2: Download via Command Line (Linux/macOS) # ----------------------------------------------------------- cd ~/Downloads wget https://releases.ubuntu.com/22.04/ubuntu-22.04.4-desktop-amd64.iso # Option 3: Download via Command Line (Windows PowerShell) # ----------------------------------------------------------- # Invoke-WebRequest -Uri "https://releases.ubuntu.com/22.04/ubuntu-22.04.4-desktop-amd64.iso" -OutFile "$env:USERPROFILE\Downloads\ubuntu-22.04.4-desktop-amd64.iso" # VERIFY DOWNLOAD INTEGRITY (Optional but Recommended) # ----------------------------------------------------------- # Check SHA256 checksum at: https://releases.ubuntu.com/22.04/SHA256SUMS # # Linux/macOS: sha256sum ubuntu-22.04.4-desktop-amd64.iso # Windows PowerShell: # Get-FileHash -Path "$env:USERPROFILE\Downloads\ubuntu-22.04.4-desktop-amd64.iso" -Algorithm SHA256 # Compare output with the checksum on Ubuntu's website

2Create Virtual Machine in VirtualBox

VirtualBox Application
# ============================================================ # CREATE VIRTUAL MACHINE IN VIRTUALBOX # ============================================================ # These are GUI steps - follow along in the VirtualBox application # ============================================================ # STEP 1: Open VirtualBox and Click "New" # ----------------------------------------------------------- # Click the blue "New" button in the toolbar # STEP 2: Name and Operating System # ----------------------------------------------------------- # Name: IdentityBytes-Lab-Ubuntu # Folder: (Keep default or choose your preferred location) # ISO Image: Click dropdown, select "Other", browse to your # downloaded ubuntu-22.04.4-desktop-amd64.iso # Type: Linux # Version: Ubuntu (64-bit) # # IMPORTANT: Check "Skip Unattended Installation" # This gives you full control over the installation process # # Click "Next" # STEP 3: Hardware Configuration # ----------------------------------------------------------- # Base Memory: 4096 MB (4 GB) minimum # 8192 MB (8 GB) recommended if available # # Processors: 2 CPUs minimum # 4 CPUs recommended if available # # DO NOT check "Enable EFI" (leave unchecked for compatibility) # # Click "Next" # STEP 4: Virtual Hard Disk # ----------------------------------------------------------- # Select: "Create a Virtual Hard Disk Now" # # Disk Size: 40 GB minimum # 50 GB recommended # # DO NOT check "Pre-allocate Full Size" (saves disk space) # # Click "Next" # STEP 5: Summary # ----------------------------------------------------------- # Review your settings: # - Name: IdentityBytes-Lab-Ubuntu # - Type: Linux / Ubuntu (64-bit) # - Memory: 4096 MB (or 8192 MB) # - Processors: 2 (or 4) # - Disk: 40 GB (or 50 GB) # # Click "Finish" # STEP 6: Additional Settings (IMPORTANT) # ----------------------------------------------------------- # Select your newly created VM in the list # Click "Settings" (gear icon in toolbar) # # System > Processor: # Ensure "Enable PAE/NX" is checked # # Display > Screen: # Video Memory: 128 MB # Graphics Controller: VMSVGA # # Network > Adapter 1: # Attached to: NAT (allows internet access from VM) # Advanced > Port Forwarding (optional, for SSH access): # Click "Port Forwarding", then add: # Name: SSH | Protocol: TCP | Host Port: 2222 | Guest Port: 22 # # Click "OK" to save all settings

3Install Ubuntu Operating System

VirtualBox VM Window
# ============================================================ # INSTALL UBUNTU IN THE VIRTUAL MACHINE # ============================================================ # Start the VM and follow the Ubuntu installation wizard # ============================================================ # STEP 1: Start the Virtual Machine # ----------------------------------------------------------- # Select "IdentityBytes-Lab-Ubuntu" in VirtualBox # Click the green "Start" arrow in the toolbar # Wait for the VM to boot from the ISO (1-2 minutes) # STEP 2: Ubuntu Welcome Screen # ----------------------------------------------------------- # Select your language (English recommended for this lab) # Click "Install Ubuntu" # STEP 3: Keyboard Layout # ----------------------------------------------------------- # Select your keyboard layout (usually auto-detected correctly) # Click "Continue" # STEP 4: Updates and Other Software # ----------------------------------------------------------- # Installation type: Select "Normal installation" # # Check these options: # ☑ Download updates while installing Ubuntu # ☑ Install third-party software for graphics and Wi-Fi hardware # # Click "Continue" # STEP 5: Installation Type # ----------------------------------------------------------- # Select: "Erase disk and install Ubuntu" # # NOTE: This only affects the VIRTUAL disk, not your physical computer! # Your host machine's data is completely safe. # # Click "Install Now" # Click "Continue" on the confirmation dialog # STEP 6: Time Zone # ----------------------------------------------------------- # Click on the map to select your location # Or type your city name in the search box # Click "Continue" # STEP 7: User Account Creation # ----------------------------------------------------------- # Your name: IAM Student (or your preferred name) # Your computer name: identitybytes-lab # Username: iamstudent # Password: SecureLabP@ss2024! (or your preferred password) # Confirm password: (re-enter the same password) # # Select: "Require my password to log in" # # IMPORTANT: Remember this password! You'll need it for sudo commands. # # Click "Continue" # STEP 8: Wait for Installation # ----------------------------------------------------------- # Installation takes 10-20 minutes depending on your hardware # DO NOT close the VM window during installation # You can watch the slideshow to learn about Ubuntu features # STEP 9: Installation Complete # ----------------------------------------------------------- # Click "Restart Now" # When you see "Please remove the installation medium", press ENTER # The VM will restart into your new Ubuntu installation # STEP 10: First Login # ----------------------------------------------------------- # Click on your username ("IAM Student") # Enter your password # Complete the welcome wizard: # - Skip or configure Online Accounts # - Choose privacy settings # - Skip Ubuntu Pro registration # Click "Done"

4Post-Installation Configuration

Ubuntu VM
# ============================================================ # POST-INSTALLATION SYSTEM CONFIGURATION # ============================================================ # Run these commands inside the Ubuntu VM terminal # Open Terminal: Press Ctrl+Alt+T or click Activities > Terminal # ============================================================ # STEP 1: Update System Packages # ----------------------------------------------------------- # This ensures you have the latest security patches and software sudo apt update && sudo apt upgrade -y # Enter your password when prompted (it won't show as you type) # Wait for updates to download and install (5-15 minutes) # STEP 2: Install Essential Utilities # ----------------------------------------------------------- # These tools will be useful throughout the lab sudo apt install -y \ curl \ wget \ git \ vim \ nano \ htop \ tree \ net-tools \ dnsutils \ jq # What we installed: # curl, wget - Download files from the internet # git - Version control (useful for backing up configs) # vim, nano - Text editors # htop - Interactive process viewer # tree - Directory structure visualization # net-tools - Network utilities (ifconfig, netstat) # dnsutils - DNS utilities (dig, nslookup) # jq - JSON processor (useful for API responses) # STEP 3: Verify Network Connectivity # ----------------------------------------------------------- ping -c 4 google.com # Expected output: # PING google.com (142.x.x.x) 56(84) bytes of data. # 64 bytes from xxx: icmp_seq=1 ttl=xxx time=xxx ms # 64 bytes from xxx: icmp_seq=2 ttl=xxx time=xxx ms # ... # 4 packets transmitted, 4 received, 0% packet loss # STEP 4: Check VM's IP Address # ----------------------------------------------------------- ip addr show | grep "inet " # You should see something like: # inet 127.0.0.1/8 scope host lo # inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3 # # The 10.0.2.15 is your VM's IP address (NAT network) # STEP 5: Set Hostname (if not already set) # ----------------------------------------------------------- hostnamectl set-hostname identitybytes-lab echo "127.0.0.1 identitybytes-lab" | sudo tee -a /etc/hosts # Verify hostname hostname # Expected output: identitybytes-lab # STEP 6: Create Lab Directory # ----------------------------------------------------------- # Create a dedicated directory for all lab files mkdir -p ~/identity-bytes-labs cd ~/identity-bytes-labs pwd # Expected output: /home/iamstudent/identity-bytes-labs

5Install VirtualBox Guest Additions

Ubuntu VM
# ============================================================ # INSTALL VIRTUALBOX GUEST ADDITIONS # ============================================================ # Guest Additions provide better VM integration: # - Auto-resize display when you resize the VM window # - Shared clipboard (copy/paste between host and VM) # - Shared folders (access host files from VM) # - Better graphics performance # ============================================================ # STEP 1: Install Required Build Packages # ----------------------------------------------------------- sudo apt install -y build-essential dkms linux-headers-$(uname -r) # STEP 2: Insert Guest Additions CD # ----------------------------------------------------------- # In VirtualBox menu bar: # Devices > Insert Guest Additions CD image... # # If prompted to download, click "Download" # Wait for download to complete, then click "Insert" # STEP 3: Mount and Run the Installer # ----------------------------------------------------------- # A file manager window may open - close it # Instead, run from terminal: sudo mount /dev/cdrom /mnt sudo /mnt/VBoxLinuxAdditions.run # Wait for installation to complete (1-2 minutes) # Ignore any warnings about X.Org or Window System # STEP 4: Reboot the VM # ----------------------------------------------------------- sudo reboot # STEP 5: Enable Enhanced Features (after reboot) # ----------------------------------------------------------- # In VirtualBox menu bar: # # Shared Clipboard: # Devices > Shared Clipboard > Bidirectional # # Drag and Drop: # Devices > Drag and Drop > Bidirectional # # Auto-Resize: # View > Auto-resize Guest Display (should be checked) # # Try resizing the VM window - the display should now adapt! # STEP 6: Verify Guest Additions are Working # ----------------------------------------------------------- # Check that the vboxguest modules are loaded: lsmod | grep vbox # Expected output: # vboxguest xxx 2 vboxsf # vboxsf xxx 0 # (exact numbers may vary)

VM Setup Complete!

Your Ubuntu VM is now fully configured and ready for the lab. You should have:

  • ✓ Ubuntu 22.04 LTS running in VirtualBox/VMware
  • ✓ Internet connectivity from within the VM
  • ✓ Terminal access for running commands
  • ✓ System updated with latest packages
  • ✓ Essential utilities installed
  • ✓ Guest Additions for better integration (VirtualBox)

From this point forward, ALL commands will be run inside the Ubuntu VM unless otherwise noted.

Docker & Tools Installation

6Install Docker Engine

Ubuntu VM
# ============================================================ # DOCKER ENGINE INSTALLATION ON UBUNTU 22.04 # ============================================================ # Docker allows us to run OpenLDAP in an isolated container, # making it easy to deploy, reset, and clean up. # ============================================================ # STEP 1: Remove Old Docker Installations (if any) # ----------------------------------------------------------- # This ensures a clean installation sudo apt remove -y docker docker-engine docker.io containerd runc 2>/dev/null || true # STEP 2: Install Prerequisites # ----------------------------------------------------------- sudo apt update sudo apt install -y \ ca-certificates \ curl \ gnupg \ lsb-release # STEP 3: Add Docker's Official GPG Key # ----------------------------------------------------------- # This key verifies that packages are authentic sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \ sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg # STEP 4: Add Docker Repository # ----------------------------------------------------------- echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # STEP 5: Install Docker Engine # ----------------------------------------------------------- sudo apt update sudo apt install -y \ docker-ce \ docker-ce-cli \ containerd.io \ docker-buildx-plugin \ docker-compose-plugin # STEP 6: Add Your User to the Docker Group # ----------------------------------------------------------- # This allows running Docker commands without sudo sudo usermod -aG docker $USER # IMPORTANT: Apply the group change to current session newgrp docker # STEP 7: Verify Docker Installation # ----------------------------------------------------------- docker --version # Expected: Docker version 24.x.x or higher docker compose version # Expected: Docker Compose version v2.x.x or higher # STEP 8: Test Docker is Working # ----------------------------------------------------------- docker run hello-world # Expected output includes: # "Hello from Docker!" # "This message shows that your installation appears to be working correctly." # If you see this message, Docker is properly installed!

7Install LDAP Client Tools

Ubuntu VM
# ============================================================ # INSTALL OPENLDAP CLIENT UTILITIES # ============================================================ # These command-line tools allow you to interact with any # LDAP server for searching, adding, and modifying entries. # ============================================================ sudo apt update sudo apt install -y ldap-utils # Verify installation ldapsearch -VV # Expected output: # ldapsearch: @(#) $OpenLDAP: ldapsearch 2.5.x (date) $ # ... # Display installed LDAP tools echo " ============================================================ INSTALLED LDAP CLIENT TOOLS ============================================================ ldapsearch - Search and retrieve entries from LDAP directory ldapadd - Add new entries to the directory ldapmodify - Modify existing entries ldapdelete - Delete entries from the directory ldapwhoami - Display the DN of the authenticated user ldappasswd - Change LDAP user passwords ldapcompare - Compare attribute values ============================================================ "

8Create Lab Directory Structure

Ubuntu VM
# ============================================================ # CREATE LAB DIRECTORY STRUCTURE # ============================================================ # Organize all lab files for easy management and cleanup # ============================================================ # Create main lab directory with subdirectories mkdir -p ~/identity-bytes-labs/lab-01-ldap/{docker,data/ldap/{database,config},ldif-files,scripts} # Navigate to lab directory cd ~/identity-bytes-labs/lab-01-ldap # Set permissions for Docker volumes # Docker container needs write access to data directories chmod -R 777 data/ # Display directory structure tree -L 3 ~/identity-bytes-labs/lab-01-ldap # Expected output: # /home/iamstudent/identity-bytes-labs/lab-01-ldap # data # ldap # config <- LDAP server configuration # │ └── database <- LDAP database files # ├── docker <- Docker Compose files # ├── ldif-files <- LDIF import files # └── scripts <- Utility scripts # Confirm current directory pwd # Expected: /home/iamstudent/identity-bytes-labs/lab-01-ldap

OpenLDAP Deployment

9Create Docker Compose Configuration

Ubuntu VM
# ============================================================ # CREATE DOCKER COMPOSE CONFIGURATION # ============================================================ # Navigate to docker directory cd ~/identity-bytes-labs/lab-01-ldap/docker # Create docker-compose.yml cat <<'EOF' > docker-compose.yml # ============================================================ # OpenLDAP Directory Server - Docker Compose Configuration # ============================================================ # Identity Bytes Lab 1 - LDAP Fundamentals # This configuration deploys a production-grade OpenLDAP server # suitable for learning and development environments. # ============================================================ version: '3.8' services: openldap: # Official osixia/openldap image - well-maintained and production-ready # Version pinned for reproducibility (never use 'latest' in production) image: osixia/openldap:1.5.0 container_name: identitybytes-ldap hostname: ldap.identitybytes.lab # Environment Variables environment: # Organization name displayed in directory LDAP_ORGANISATION: "Identity Bytes Lab" # Domain creates the base DN: dc=identitybytes,dc=lab LDAP_DOMAIN: "identitybytes.lab" # Admin account: cn=admin,dc=identitybytes,dc=lab # WARNING: Never hardcode passwords in production! # Use Docker secrets or environment files instead. LDAP_ADMIN_PASSWORD: "SecureLabP@ss123!" # Read-only account for applications LDAP_READONLY_USER: "true" LDAP_READONLY_USER_USERNAME: "readonly" LDAP_READONLY_USER_PASSWORD: "ReadOnlyP@ss123" # TLS disabled for lab simplicity # PRODUCTION: Always enable TLS! LDAP_TLS: "false" # Logging level (256 = connection stats) LDAP_LOG_LEVEL: "256" # Port mappings ports: - "389:389" # LDAP (unencrypted - lab only) - "636:636" # LDAPS (requires TLS config) # Persistent storage volumes: - "../data/ldap/database:/var/lib/ldap" - "../data/ldap/config:/etc/ldap/slapd.d" # Restart policy restart: unless-stopped # Network networks: - ldap-network # Resource limits deploy: resources: limits: memory: 512M reservations: memory: 256M networks: ldap-network: driver: bridge EOF # Display the created file echo "Docker Compose file created successfully!" echo "============================================================" cat docker-compose.yml

10Launch OpenLDAP Container

Ubuntu VM
# ============================================================ # START OPENLDAP CONTAINER # ============================================================ cd ~/identity-bytes-labs/lab-01-ldap/docker # Pull the OpenLDAP image (downloads ~200MB) docker compose pull # Start container in detached mode (background) docker compose up -d # Expected output: # [+] Running 2/2 # ✔ Network docker_ldap-network Created # ✔ Container identitybytes-ldap Started # Verify container is running docker compose ps # Expected: # NAME STATUS PORTS # identitybytes-ldap Up 0.0.0.0:389->389/tcp, 0.0.0.0:636->636/tcp # Check container logs for successful startup docker compose logs --tail=30 openldap # Look for: "slapd starting" and "First start is done..." # Wait for LDAP to fully initialize echo "Waiting for LDAP server to initialize..." sleep 15 echo "LDAP server should be ready!"

11Verify LDAP Connectivity

Ubuntu VM
# ============================================================ # TEST LDAP SERVER CONNECTIVITY # ============================================================ # Test 1: Anonymous search (verify server is responding) echo "Test 1: Anonymous bind..." ldapsearch -x -H ldap://localhost -b "dc=identitybytes,dc=lab" -LLL # Expected output: # dn: dc=identitybytes,dc=lab # objectClass: top # objectClass: dcObject # objectClass: organization # o: Identity Bytes Lab # dc: identitybytes # Test 2: Admin authenticated bind echo "" echo "Test 2: Admin authentication..." ldapsearch -x -H ldap://localhost \ -D "cn=admin,dc=identitybytes,dc=lab" \ -w "SecureLabP@ss123!" \ -b "dc=identitybytes,dc=lab" \ -LLL "(objectClass=*)" dn # Test 3: Read-only user bind echo "" echo "Test 3: Read-only user authentication..." ldapsearch -x -H ldap://localhost \ -D "cn=readonly,dc=identitybytes,dc=lab" \ -w "ReadOnlyP@ss123" \ -b "dc=identitybytes,dc=lab" \ -LLL "(objectClass=organization)" echo "" echo "============================================================" echo " All connectivity tests passed! LDAP server is ready." echo "============================================================"

Building Directory Structure

12Create Organizational Units

Ubuntu VM
# ============================================================ # CREATE ORGANIZATIONAL UNITS (OUs) # ============================================================ cd ~/identity-bytes-labs/lab-01-ldap/ldif-files cat <<'EOF' > 01-organizational-units.ldif # ============================================================ # Organizational Units Structure # ============================================================ # OUs are containers that organize directory entries logically, # similar to folders in a file system. # ============================================================ # People OU - Contains all user accounts dn: ou=people,dc=identitybytes,dc=lab objectClass: organizationalUnit ou: people description: Container for all user accounts # Groups OU - Contains security and distribution groups dn: ou=groups,dc=identitybytes,dc=lab objectClass: organizationalUnit ou: groups description: Container for all security and distribution groups # Services OU - Contains application and service accounts dn: ou=services,dc=identitybytes,dc=lab objectClass: organizationalUnit ou: services description: Container for application and service accounts EOF # Import OUs into LDAP echo "Adding Organizational Units to LDAP..." ldapadd -x -H ldap://localhost \ -D "cn=admin,dc=identitybytes,dc=lab" \ -w "SecureLabP@ss123!" \ -f 01-organizational-units.ldif # Verify OUs were created echo "" echo "Verifying OUs..." ldapsearch -x -H ldap://localhost \ -D "cn=admin,dc=identitybytes,dc=lab" \ -w "SecureLabP@ss123!" \ -b "dc=identitybytes,dc=lab" \ -LLL "(objectClass=organizationalUnit)" dn description

Creating Users & Groups

13Create User Accounts

Ubuntu VM
# ============================================================ # CREATE USER ACCOUNTS # ============================================================ cd ~/identity-bytes-labs/lab-01-ldap/ldif-files cat <<'EOF' > 02-users.ldif # ============================================================ # User Account Definitions # ============================================================ # Schema: inetOrgPerson (RFC 2798) + posixAccount # Password for all users: SecureP@ss2024! # ============================================================ # User 1: John Doe - Security Engineer dn: uid=jdoe,ou=people,dc=identitybytes,dc=lab objectClass: inetOrgPerson objectClass: posixAccount objectClass: top uid: jdoe cn: John Doe sn: Doe givenName: John displayName: John Doe mail: jdoe@identitybytes.lab telephoneNumber: +1-555-0101 title: Security Engineer departmentNumber: 1001 employeeType: Full-Time uidNumber: 10001 gidNumber: 5001 homeDirectory: /home/jdoe loginShell: /bin/bash userPassword: {SSHA}FsKOqcH6yQkLmQkQxVx3hFfCx2Lq7aZC # User 2: Jane Smith - IAM Architect dn: uid=jsmith,ou=people,dc=identitybytes,dc=lab objectClass: inetOrgPerson objectClass: posixAccount objectClass: top uid: jsmith cn: Jane Smith sn: Smith givenName: Jane displayName: Jane Smith mail: jsmith@identitybytes.lab telephoneNumber: +1-555-0102 title: IAM Architect departmentNumber: 1001 employeeType: Full-Time uidNumber: 10002 gidNumber: 5001 homeDirectory: /home/jsmith loginShell: /bin/bash userPassword: {SSHA}FsKOqcH6yQkLmQkQxVx3hFfCx2Lq7aZC # User 3: Bob Johnson - SOC Analyst dn: uid=bjohnson,ou=people,dc=identitybytes,dc=lab objectClass: inetOrgPerson objectClass: posixAccount objectClass: top uid: bjohnson cn: Bob Johnson sn: Johnson givenName: Bob displayName: Bob Johnson mail: bjohnson@identitybytes.lab telephoneNumber: +1-555-0103 title: SOC Analyst departmentNumber: 2001 employeeType: Full-Time uidNumber: 10003 gidNumber: 5002 homeDirectory: /home/bjohnson loginShell: /bin/bash userPassword: {SSHA}FsKOqcH6yQkLmQkQxVx3hFfCx2Lq7aZC EOF # Import users echo "Adding users to LDAP..." ldapadd -x -H ldap://localhost \ -D "cn=admin,dc=identitybytes,dc=lab" \ -w "SecureLabP@ss123!" \ -f 02-users.ldif # Verify users echo "" echo "Listing all users:" ldapsearch -x -H ldap://localhost \ -D "cn=admin,dc=identitybytes,dc=lab" \ -w "SecureLabP@ss123!" \ -b "ou=people,dc=identitybytes,dc=lab" \ -LLL "(objectClass=inetOrgPerson)" uid cn title

14Create Security Groups

Ubuntu VM
# ============================================================ # CREATE SECURITY GROUPS # ============================================================ cd ~/identity-bytes-labs/lab-01-ldap/ldif-files cat <<'EOF' > 03-groups.ldif # ============================================================ # Security Groups for Role-Based Access Control (RBAC) # ============================================================ # Administrators - Full system access dn: cn=admins,ou=groups,dc=identitybytes,dc=lab objectClass: groupOfUniqueNames objectClass: top cn: admins description: System administrators with full privileges uniqueMember: uid=jsmith,ou=people,dc=identitybytes,dc=lab # Security Team - Security operations access dn: cn=security-team,ou=groups,dc=identitybytes,dc=lab objectClass: groupOfUniqueNames objectClass: top cn: security-team description: Security engineers and analysts uniqueMember: uid=jdoe,ou=people,dc=identitybytes,dc=lab uniqueMember: uid=jsmith,ou=people,dc=identitybytes,dc=lab # SOC Analysts - Security monitoring access dn: cn=soc-analysts,ou=groups,dc=identitybytes,dc=lab objectClass: groupOfUniqueNames objectClass: top cn: soc-analysts description: Security Operations Center analysts uniqueMember: uid=bjohnson,ou=people,dc=identitybytes,dc=lab # Developers - Development access dn: cn=developers,ou=groups,dc=identitybytes,dc=lab objectClass: groupOfUniqueNames objectClass: top cn: developers description: Application developers uniqueMember: uid=jdoe,ou=people,dc=identitybytes,dc=lab EOF # Import groups echo "Adding groups to LDAP..." ldapadd -x -H ldap://localhost \ -D "cn=admin,dc=identitybytes,dc=lab" \ -w "SecureLabP@ss123!" \ -f 03-groups.ldif # Verify groups echo "" echo "Listing all groups with members:" ldapsearch -x -H ldap://localhost \ -D "cn=admin,dc=identitybytes,dc=lab" \ -w "SecureLabP@ss123!" \ -b "ou=groups,dc=identitybytes,dc=lab" \ -LLL "(objectClass=groupOfUniqueNames)" cn uniqueMember

Testing & Validation

15Test User Authentication

Ubuntu VM
# ============================================================ # USER AUTHENTICATION TESTS # ============================================================ echo "Test 1: Authenticating as jdoe..." ldapwhoami -x -H ldap://localhost \ -D "uid=jdoe,ou=people,dc=identitybytes,dc=lab" \ -w "SecureP@ss2024!" # Expected: dn:uid=jdoe,ou=people,dc=identitybytes,dc=lab echo "" echo "Test 2: Authenticating as jsmith..." ldapwhoami -x -H ldap://localhost \ -D "uid=jsmith,ou=people,dc=identitybytes,dc=lab" \ -w "SecureP@ss2024!" echo "" echo "Test 3: Testing wrong password (should fail)..." ldapwhoami -x -H ldap://localhost \ -D "uid=jdoe,ou=people,dc=identitybytes,dc=lab" \ -w "WrongPassword" 2>&1 # Expected: ldap_bind: Invalid credentials (49) echo "" echo "Test 4: Query group membership for jdoe..." ldapsearch -x -H ldap://localhost \ -D "cn=admin,dc=identitybytes,dc=lab" \ -w "SecureLabP@ss123!" \ -b "ou=groups,dc=identitybytes,dc=lab" \ -LLL "(uniqueMember=uid=jdoe,ou=people,dc=identitybytes,dc=lab)" cn # Expected: security-team, developers echo "" echo "============================================================" echo " All authentication tests completed!" echo "============================================================"

16Verify Directory Integrity

Ubuntu VM
# ============================================================ # DIRECTORY INTEGRITY VERIFICATION # ============================================================ # Count total entries echo "Total directory entries:" ldapsearch -x -H ldap://localhost \ -D "cn=admin,dc=identitybytes,dc=lab" \ -w "SecureLabP@ss123!" \ -b "dc=identitybytes,dc=lab" \ -LLL "(objectClass=*)" dn | grep "^dn:" | wc -l # Expected: 11 entries (1 base + 3 OUs + 3 users + 4 groups) # Test persistence (restart container) echo "" echo "Testing data persistence..." cd ~/identity-bytes-labs/lab-01-ldap/docker docker compose restart sleep 15 echo "Verifying data survived restart:" ldapsearch -x -H ldap://localhost \ -D "cn=admin,dc=identitybytes,dc=lab" \ -w "SecureLabP@ss123!" \ -b "dc=identitybytes,dc=lab" \ -LLL "(objectClass=*)" dn | grep "^dn:" | wc -l # Should still show 11 entries echo "" echo "============================================================" echo " Directory integrity verified!" echo "============================================================"

Cleanup & Reset

17Lab Cleanup Options

Ubuntu VM
# ============================================================ # CLEANUP OPTIONS # ============================================================ # OPTION 1: Complete Cleanup (Remove Everything) # ----------------------------------------------------------- cd ~/identity-bytes-labs/lab-01-ldap/docker docker compose down docker rmi osixia/openldap:1.5.0 rm -rf ~/identity-bytes-labs/lab-01-ldap echo "Complete cleanup done!" # OPTION 2: Reset Lab (Keep Config, Clear Data) # ----------------------------------------------------------- cd ~/identity-bytes-labs/lab-01-ldap/docker docker compose down rm -rf ../data/ldap/database/* ../data/ldap/config/* docker compose up -d sleep 15 # Re-import LDIF files as needed

Key Takeaways & Next Steps

Skills Mastered in This Lab

Next Steps in Your IAM Journey