Table of Contents
  • Home
  • /
  • Blog
  • /
  • Step-by-Step Procedure to Set Up An Active Directory On Ubuntu
November 1, 2023

Step-by-Step Procedure to Set Up An Active Directory On Ubuntu

Step By Step Procedure To Set Up An Active Directory On Ubuntu

Active Directory (AD) is a technology developed by Microsoft to provide secure access and authentication for networks. It has become an essential tool in the IT industry, providing administrators with centralized control of user accounts and network resources. Since Active Directory service is developed by Microsoft, do you think Windows is the only operating system that provides Active Directory? The answer is no. Active Directory services could be built on the non-Windows platform. Ubuntu is one such open-source ono-Windows operating system built on Linux kernel that could be used to set up Active Directory service. This article will discuss how to set up an Active Directory on Ubuntu — an open-source operating system used mainly for server applications.

In this guide, we will go through step-by-step instructions on installing and configuring AD on Ubuntu servers. We’ll cover topics such as setting up a hostname, setting up a domain controller, setting up samba service as an Active Directory, installing Kerberos, adding users and groups to the directory, granting permissions to various resources, benefits of using Ubuntu as Active Directory server, and its drawbacks. In addition, best practices for managing your AD environment will be discussed.

By following these steps properly, readers can quickly deploy their own Active Directory setup on Ubuntu systems and start taking advantage of its features right away. The end result should be a stable, highly secure environment where users have access only to the resources they need and nothing more.

What Is An Active Directory?

Active Directory (AD) is a directory service developed by Microsoft for Windows domain networks. It is included in most Windows Server operating systems as a set of processes and services. The AD allows administrators to manage permissions, user authentication, network resources and more from one centralized location. It provides an organized view of the entire network structure which can be used for security purposes, such as preventing unauthorized access.

The Active Directory stores information about objects on the network such as users, computers, devices, and other data related to their use. It also defines how each object interacts with other objects within the system. For example, it defines who has access to what files or folders. Administrators can control access rights using groups and policies that are assigned to individual users or machines.

In addition to providing secure management of resources, Active Directory also simplifies administration tasks like creating new accounts and managing group memberships. This makes it easier for IT staff to maintain efficient network operations without needing additional training or manual intervention. With these features, Active Directory becomes an invaluable tool for businesses with large networks comprising multiple sites and departments. Transitioning into the subsequent section about the benefits of using Ubuntu as an active directory server will provide further insight into this topic area.

Benefits Of Using Ubuntu as an Active Directory Server

Ubuntu is an open-source operating system that offers several benefits when used as an Active Directory Server. This section will discuss three of its primary advantages:

1. Security: Ubuntu’s security protocols are highly advanced and continually updated, making it a reliable platform for hosting sensitive data. It offers multiple layers of authentication and encryption to ensure the safety of all stored information.

2. Customization: The ability to customize the server according to one’s own needs makes Ubuntu stand out from other platforms. It provides various options for customizing servers, such as setting up roles and providing access control levels based on user requirements.

3. Cost Efficiency: Since Ubuntu is an open-source software, there are no licensing fees associated with using it as an Active Directory Server, thus reducing overall costs significantly compared to proprietary solutions. Additionally, most of the updates can be done remotely without requiring physical presence at each site or office location where Ubuntu is installed.

Overall, due to its strong security protocols, customization capabilities, and cost efficiency, Ubuntu serves as an ideal choice when deploying an Active Directory Server in any organization or business environment. Its versatility allows administrators to tailor their setup accordingly while ensuring secure storage of confidential data. With these features combined into one package, it is easy to understand why many organizations consider Ubuntu for this task. Transitioning seamlessly into the next section about prerequisites required for setting up an active directory on Ubuntu, we learn more about what preparations must first be made before beginning the implementation process.

Drawbacks Of Using Ubuntu As an Active Directory Server

Before we head towards setting up an Active Directory on Ubuntu, we should consider it’s caveat too. Despite its advantages, there are certain challenges that come with deploying Ubuntu as an active directory server due to compatibility issues between different versions of Windows OS and Linux distributions such as Ubuntu. Furthermore, there may also be difficulties related to migrating existing data from existing Windows servers over to a new Linux-based system which could potentially lead to costly downtime if not properly planned out beforehand. The following sections will explore these challenges in greater depth along with discussing possible solutions for mitigating them wherever possible.

Windows Active Directory Vs Ubuntu Active Directory

Windows Active Directory (AD) is a directory service created by Microsoft used to store and manage user, computer, and network resources. It is typically deployed on Windows Server operating systems for authentication and authorization of users in an organization’s IT environment. Ubuntu Active Directory, the open-source alternative to AD, provides similar but limited features when compared with its proprietary counterpart. Ubuntu Active Directory allows administrators to securely manage access policies within their networks as well as allows them to add or delete members from different groups.

However, one major drawback of using Ubuntu Active Directory is that it does not support many of the same features as found in Windows AD such as group policy objects or fine-grained password policies. Additionally, Ubuntu Active Directory cannot integrate with other non-Ubuntu applications which makes it challenging for organizations that work across multiple platforms. Furthermore, since Ubuntu Active Directory is relatively new software there are fewer experts available who can help troubleshoot any issues that may arise during deployment or management than those experienced in working with Windows AD.

Pros vs Cons of Using Ubuntu as an Active Directory Server

It’s worth noting the pros and cons of using Ubuntu as an Active Directory server too. Let’s list it out.

Customizable: Ubuntu is highly customizable, which could allow you to tailor the Active Directory server to your specific needs and preferences.Limited support: Ubuntu may have limited support compared to other commercial options, which could make it challenging to troubleshoot issues or seek assistance if needed.
Learning curve: Using Ubuntu as an Active Directory server may require a learning curve if you are not familiar with the Linux operating system, which could be time-consuming and potentially frustrating.Learning curve:Using Ubuntu as an Active Directory server may require a learning curve if you are not familiar with the Linux operating system, which could be time-consuming and potentially frustrating.
Secure: Ubuntu has a strong reputation for security, which could provide peace of mind knowing your data is secure.Potential compatibility issues: There may be potential compatibility issues when using Ubuntu as an Active Directory server with Windows-based systems or applications, which could impact functionality and productivity.

Prerequisites To Set Up An Active Directory On Ubuntu

Before attempting to set up an Active Directory on Ubuntu, there are a few prerequisites that must be met. The first is that the system requires an internet connection for installation and configuration of its components. It also requires root access privileges in order to gain full control over the server. Additionally, it is important to have basic knowledge of Linux commands as well as familiarity with the command-line interface (CLI). Furthermore, users should be aware of DNS configurations and various security settings such as firewall rules and user authentication methods.

In addition to these technical requirements, users must ensure they have all necessary software installed ahead of time including Samba, Kerberos 5, and Winbind services. These packages provide essential features for setting up a domain controller on Ubuntu. Moreover, installing additional packages like Realmd can further simplify the process by automating several administrative tasks related to configuring network resources such as computers and printers.

Furthermore, users need license agreements from Microsoft if their environment contains clients using Windows operating systems before beginning the setup process due to legal reasons. Without this agreement in place, certain aspects may not function properly or will not work at all within the Active Directory environment. Allowing sufficient time for researching each step involved in setting up an Active Directory will help create a smooth transition when implementing new technologies onto any organization’s infrastructure.

How to Set Up An Active Directory On Ubuntu

Step 1: Configure Hostname

Hostname is one of the most important entities in Active Directory/Domain Controller services. It is used by Samba’s internal DNS. Use this command to set the hostname.

hostnamectl hostname dc

Step 2: Check the hostname and the IP address of your Ubuntu server

Use these commands to check the hostname and IP address.


ip a s

Step 3: Map the IP address with the hostname

Edit the hosts file using your favorite text editor. >ap the IP address with the hostname as shone in the below picture. We use nano editor to edit the etc/hosts’ in this demo.

sudo nano etc/hosts

Upon editing make sure hostname is set.

Step 4: Disable the system’s DNS resolver service

We need to disable the system’s resolver service as it keeps updates etc/resolv.conf.

Use these commands to check the status of system’s resolver service, stop, and disable the service on reboot. Because just stooping the service will not survive the reboot.

systemctl status systemd-resolved.service

systemctl stop systemd-resolved.service

systemctl disable systemd-resolved.service

systemctl status systemd-resolved.service

Step 5: Force the AD controller as the system’s DNS resolver

Edit the etc/resolv.conf file and use the server IP as nameserver and save the configuration to force the AD controller as the system’s DNS resolver.

Note: We have added the google’s DNS IP ( as fallback so that we can continue the installation.

sudo nano /etc/resolv.conf

Step 6: Check the system clock in synchronized

This step is crucial as we need time synchronization for the active directory to work:


Step 7: Install samba

Setting up an Active Directory (AD) on Ubuntu requires Samba, an open-source implementation of the SMB/CIFS networking protocol that allows you to create, manage, and authenticate users and groups in an Active Directory Domain Controller (AD DC) environment.

We recommend updating your package index before installing Samba, in fact any application.  Run these two commands to update package index and install samba and its client packages.

sudo apt-get update

sudo apt install samba smbclient

Step 8: Provision Samba AD

One of the most important parts of this step is the generation of /var/lib/samba/private/krb5.conf. Samba gives us a suitable Kerberos configuration to use for our domain controller. Let’s backup the actual Samba configuration by removing the old one and using Samba interactive provisioning.

Run these commands to locate the samba service file and take the backup of the file before making any changes, and provision samba AD.

whereis samba

sude mv /etc/samba/smb.conf /etc/samba/smb.conf.bk

sudo samba-tool domain provision --use-rfc2307 --interactive

Step 9: Install Kerberos

Kerberos is a network authentication system based on the principal of a trusted third party. Let’s install it:

As part of the Kerberos installation, you may need to configure the relam, Kerberos server, kerberos administrative server, and congfigurations. And take the backup of the kerberos configuration and replace by the one generated by the Samba provisioning process.

sudo apt install krb5-admin-server

sudo mb /etc/krb5.conf /etc/krb5.conf.orig

sudo cp /var/lib/samba/private/krb5.conf /etc/krb5.conf

Step 10: Disable and mask unused samba services

In order to run the domain controller, you’ll have to disable sbmd, nmbd and winbind:

sudo systemctl mask smbd nmbd winbind

sudo systemctl disable smbd nmbd winbind

Step 11: Start the samba-ad-dc service

Before we start we should unmask the service and start it.

sudo systemctl unmask samba-ad-dc

sudo systemctl start samba-ad-dc

sudo systemctl status samba-ad-dc

sudo systemctl enable samba-ad-dc

Step 12: List the samba shares and test authentication with administrator account

list samba shares using this command, test authentication with our administrator account, check if samba-ad-dc has configured the required DNS entries.

smbclient -L localhost -N
//list samba shares

smbclient //localhost/netlogon -UAdministrator -c 'ls'
//test authentication with our administrator account

host -t SRV
//check if samba-ad-dc has configured the required DNS entries

kinit administrator
//request a kerberos ticket

sudo samba-tool user list
//check the default users on the Active directory

Setting up an Active Directory on Ubuntu can be a powerful way to manage your resources more effectively, even if you’re not running Windows Server. Hope, this blog post has helped you understand how to set up an active directory on Ubuntu. Thanks for reading this tutorial post. Visit our social media page on FacebookLinkedInTwitterTelegramTumblr,  Medium & Instagram and subscribe to receive updates like this.

Arun KL

Arun KL is a cybersecurity professional with 15+ years of experience in IT infrastructure, cloud security, vulnerability management, Penetration Testing, security operations, and incident response. He is adept at designing and implementing robust security solutions to safeguard systems and data. Arun holds multiple industry certifications including CCNA, CCNA Security, RHCE, CEH, and AWS Security.

Recently added


View All

Learn More About Cyber Security Security & Technology

“Knowledge Arsenal: Empowering Your Security Journey through Continuous Learning”

Cybersecurity All-in-One For Dummies - 1st Edition

"Cybersecurity All-in-One For Dummies" offers a comprehensive guide to securing personal and business digital assets from cyber threats, with actionable insights from industry experts.



View All

Learn Something New with Free Email subscription