This guide will help you configure Ubuntu Server Edition 14.04 for a small/medium business. The server will provide DHCP, DNS, NTP, LDAP, Kerberos and NFS services such that users can login to any machine on the network and all their files and settings will be the same across the entire network. This will be one unified setup, supporting Ubuntu, Windows and OS X clients… let the fun begin!
When installing Ubuntu server, after selecting your country/keyboard you will be asked for a hostname. It will make life much easier later on, if you enter the FQDN (fully qualified domain name) for your server. So, if you’d like to call your server neo, and use the domain danbishop.org… then enter neo.danbishop.org
When asked to create a user, it’s best to chose a username you don’t want to use for your everyday account, for example adminlocal, rather than dan.
Part 1: DHCP and DNS
The first thing to get your server to do is act as a DHCP and DNS server for the network. This will allow you to map hostnames to IP addresses (and vice versa!) automatically. This means all network clients will know that neo.danbishop.org and 192.168.0.2 are one and the same. This is ESSENTIAL if you plan to use Kerberos later on.
Make sure you have disabled DHCP on your router (if enabled) and set a static IP address for the server. This is done by editing /etc/network/interfaces like so:
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.0.2 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1
Now it’s time to install Dnsmasq:
sudo apt-get install dnsmasq
Dnsmasq will take care of both DNS and DHCP for your network. We will configure it so that as it allocates IP addresses to clients on the network, it also adds them into its DNS server. This way both forward and reverse lookups will work on any machine, as required by Kerberos 🙂
The configuration file for Dnsmasq (/etc/dnsmasq.conf) is HUGE. However it is VERY well commented making it very easy to play around. The important things for this guide are:
#Use dnsmasq specific hosts file no-hosts addn-hosts=/etc/hosts.dnsmasq #DNS Settings server=/localnet/192.168.0.2 server=/#/22.214.171.124 server=/#/126.96.36.199 # # adapted for a typical dnsmasq installation where the host running # dnsmasq is also the host running samba. # you may want to uncomment some or all of them if you use # Windows clients and Samba. dhcp-option=19,0 # option ip-forwarding off dhcp-option=44,0.0.0.0 # set netbios-over-TCP/IP nameserver(s) aka WINS ser$ dhcp-option=45,0.0.0.0 # netbios datagram distribution server dhcp-option=46,8 # netbios node type # domain=danbishop.org #sets the domain name you're going to use dhcp-range=192.168.0.50,192.168.0.150,12h #sets the range from which to allocate IP addresses to clients and the lease time dhcp-option=option:router,192.168.0.1 #sets the IP address of the router (gateway address) to be given to clients dhcp-option=option:ntp-server,192.168.0.2 #sets the NTP server to 192.168.0.2 dhcp-authoritative #makes this the authoritative (in this case ONLY) DHCP server on the network # # Server DNS settings... this is required as the server itself will # not be obtaining it's IP address via DHCP and therefore would # not be automatically added to the DNS records for forward/reverse # DNS queries as required by Kerberos ptr-record=188.8.131.52.in-addr.arpa.,"neo.danbishop.org" address=/neo.danbishop.org/192.168.0.2 # # Kerberos and LDAP automatic stuff... # This maps kerberos.danbishop.org and # ldap.danbishop.org to the server and also makes all # dhcp clients aware of the kerberos realm... magic :D address=/kerberos.danbishop.org/192.168.0.2 address=/ldap.danbishop.org/192.168.0.2 # txt-record=_kerberos.danbishop.org,"DANBISHOP.ORG" srv-host=_kerberos._udp.danbishop.org,"kerberos.danbishop.org",88 srv-host=_kerberos._tcp.danbishop.org,"kerberos.danbishop.org",88 srv-host=_kerberos-master._udp.danbishop.org,"kerberos.danbishop.org",88 srv-host=_kerberos-adm._tcp.danbishop.org,"kerberos.danbishop.org",749 srv-host=_kpasswd._udp.danbishop.org,"kerberos.danbishop.org",464 # srv-host=_ldap._tcp.danbishop.org,ldap.danbishop.org,389
It is well worth reading through the entire configuration file though as there is a lot to be learnt from the excellent comments!
By default, dnsmasq would have read host information from /etc/hosts but Ubuntu (and other Debian derivatives) have an entry here that maps 127.0.1.1 to your hostname. This entry will ensure services such as OpenLDAP are configured for the proper domain later in this guide, but it would also result in failed dns lookups for “neo” on your network. Consequently, we’ve told dnsmasq to use its own /etc/hosts.dnsmasq file for any static host information you want served up to clients. We now need to create this file:
sudo touch /etc/hosts.dnsmasq
Dnsmasq is now configured to act as your network’s DHCP server and clients are told to use your server for DNS queries. Now you’re all set to get DNS and DHCP up and running. Simply restart the service to load the new configuration:
sudo service dnsmasq restart