Step 1
Installing isc-dhcp server

To install isc-dhcp server on Ubuntu 14.04, use the following commands Update Linux files

Update command will fetch the packages from its location and updates them to newer version.

# apt update

Installs isc-dhcp Server

# apt install isc-dhcp-server


Step 2

Configuring isc-dhcp sever – /etc/dhcp/dhcpd.conf

The isc-dhcp server configuration file is dhcpd.conf and can be accessed using the following command

# vi /etc/dhcp/dhcpd.conf

This command will allow to make changes in the dhcp configuration file “dhcpd.conf” which is at specified path.

We are required to do the following modifications in dhcpd.conf file:

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.128 192.168.1.145;
    option routers 192.168.1.1;
    option broadcast-address 192.168.1.255;
    default-lease-time 3600;
    max-lease-time 7200;
}
option domain-name-servers 192.168.1.10 192.168.1.254;
option domain-name "nodisk.org";  // specified my domain

The following command is used to make the DHCP server an authoritative server for local network.

     authoritative;

The following command is used to check the syntax of dhcpd.conf file for errors

# dhcpd -t

The following command will allow to edit the isc-dhcp-server file, where we can manually determine the interface of the server.

 # vi /etc/default/isc-dhcp-server

We have to set the interfaces to wlan0 in our file

     INTERFACES= "en0"

The following line will display the contents of the current routing tables.

# ip route list
Setting for diskless system
 # A slightly different configuration for an internal subnet.
subnet 192.168.1.0 netmask 255.255.255.0 {

  allow booting;
  allow bootp;

 group {
    next-server 192.168.1.3;
    option domain-name-servers 192.168.1.1;
    option domain-name "nodisk.org";
    filename "pxelinux.0";
    include "/etc/dhcp/fixed_ip.conf";
  }

  range 192.168.1.129 192.168.1.191;
  option domain-name-servers 192.168.1.1, 192.168.1.241, 192.168.1.254;
  option domain-name "ntools.net";
  option routers 192.168.1.1;
  option broadcast-address 192.168.1.255;
  default-lease-time 600;
  max-lease-time 7200;
# End of subnet 192.168.1.0/24
}

‘next-server’ IP is written for ‘diskless NFS server’ IP.
‘filename’  include pxelinux package. it’s put into tftpsever root.
Example fixed_ip.conf

#
# dhcp for fixed ip
# included by /etc/dhcp/dhcpd.conf
#
# following for pxe boot
#
host host-name {
  hardware ethernet 00:aa:aa:aa:aa:aa;
  fixed-address 192.168.1.10;
  option host-name "host-name";
}


Step 3
Securing DHCP server The following modifications are done to configuration file to secure the DHCP server

ddns-update-style none;
deny declines;
deny bootp;

The DoS attack on DHCP server can be avoided by denying the DHCP decline messages and can deny supporting old bootp clients.



Step 4
Restart isc-dhcp server

Now that the isc-dhcp-server configuration is complete, we need to reload the dhcp server, so that the new configurations can be implemented

# systemctl isc-dhcp-server restart
# systemctl isc-dhcp-server start
# systemctl isc-dhcp-server stop



Step 5
Verifying.. Inorder to check the leases of the IP addresses assigned by the DHCP

# less /var/lib/dhcp/dhcpd.leases