The Network Time Protocol
Installing the binary version of the NTP Reference Implementation on Microsoft Windows based systems
Please note:
If you want to use the NTP reference implementation included in this
software package, a number of legal terms apply. You need to read the legal section of this document
and agree to these terms, otherwise you are not allowed to use any part of this software at all.
Table of contents
- Introduction
- Before You Start
- The Installation Procedure
- Upgrading NTP
- Uninstalling NTP
- Unattended Installation (Automatic/Silent Install)
- Addendum
Introduction
-
About this document
This document is part of the NTP binary distribution for Windows systems provided by Meinberg Radio Clocks. It contains short step-by-step instructions how to install this binary release of the NTP reference implementation
as well as some background and informations about the legal terms that apply if you decide to use NTP and the installer.
About the Network Time Protocol (NTP)
(taken from the NTP homepage)
The Network Time Protocol (NTP) is used to synchronize the time of a computer client or server to
another server or reference time source, such as a radio or satellite receiver or modem. It provides
accuracies typically within a millisecond on LANs and up to a few tens of milliseconds on WANs relative
to Coordinated Universal Time (UTC) via a Global Positioning Service (GPS) receiver, for example.
Typical NTP configurations utilize multiple redundant servers and diverse network paths in order to
achieve high accuracy and reliability.
Read more...
Back to top
About the NTP Project and its Reference Implementation
(taken from the ISC NTP Project homepage)
The NTP Project (R&D) produces a reference implementation of the NTP protocol,
and implementation documentation, through a largely a volunteer effort. The NTP software distribution is copyrighted,
as described in the NTP copyright page.
Read more...
Back to top
The Meinberg binary distribution of NTP for Windows Systems
Meinberg offers time synchronization hardware
(time servers and reference time sources like radio clocks)
and is often asked for software recommendations for the clients of a network that requires
synchronized time.
We are using the reference implementation of NTP in our NTP time servers
and tested a number of client software to be used for network time
synchronization. We recommend NTP not only because it offers the
highest compatibility but also an unmatched accuracy and reliability
among all tested network time synchronization products. The NTP project
mainly produces source code releases of NTP, at the moment there is no
official Windows binary distribution available from them. Because a lot
of their customers do not have the time or ressources to build their
own binary version of NTP, we decided to offer a pre-compiled,
easy-to-install software package including an actual version of NTP and
all necessary third party add-ons (e.g. OpenSSL libraries).
If you need a tool for monitoring your NTP time server and/or clients, please check out our NTP Time Server Monitor
application which can be downloaded free of charge from our Website.
Back to top
Before you start
-
System Requirements
Supported Operating Systems
-
This version of NTP only runs on Windows NT and its successors (e.g.
Windows 2000, Windows 2003 and Windows XP machines). Windows 95, 98 and
ME are not supported by the installer and it will show you an error
message and quit in case you do not trust us and try to run the
installer under one of those operating systems :-)
Hardware Requirements
-
The files installed need approx. 2-3 MB of harddisk space. NTP will run
on any hardware that meets or exceeds the minimum hardware requirements
of the underlying operating system.
Back to top
Necessary user rights
-
In order to use this installer, you need Administrator rights. This is
only necessary during installation, the NTP software itself runs fine
without admin rights, as long as the SetSystemTime privilege has been
assigned to the account used for running the service and we strongly
recommend to not run NTP (or any other system service, if possible)
using the local system account or any other account with full
administrator rights. If you want, the installer will create a
restricted account running the NTP service.
Back to top
The Installation Procedure
-
Getting the latest version
Meinberg tries to update the installer at least as often as a new
stable version of NTP has been released by the NTP project. If
important bug fixes or new features have proven their stability, an
updated installer may be released as a "developer version" without
waiting for an official stable NTP release. So, mostly two versions of
the installer ("latest" and "stable") will be available for download on
the Meinberg NTP download page.
Back to top
Installing NTP
Please check that the target system meets the system requirements and that you logged on with sufficient
user rights.
Step 1: Starting the Installer: License Agreement
downloading the appropriate version coming as a one-file executable, double-click it to start the installation procedure.
After checking that the target operating system is supported and that sufficient
user rights are present, the first page appears, containing legal informations covering the copyrights,
licenses and other legal terms. In order to proceed you need to agree to these terms by clicking the "I Agree" button.
[Prev][Next][Top]
Step 2: Choosing the Destination Folder: Where to install
You need to specify the directory the files will be installed in, default is PROGRAMDIR\NTP. PROGRAMDIR is depending on
the language and install location of your Windows version, for a standard english windows version installed on drive C: this is
"C:\Program Files\".
During installation a number of subdirectories will be created, e.g.
bin, etc and doc. You should keep an eye (or two) on security and may
want to restrict access to the destination folder after installation.
[Prev][Next][Top]
Step 3: Choosing Components: What to install
The installer offers you a number of components that can be selected
for install. Per default, everything is selected and this should fit
most situations. Here is a list of all components and their meaning:
[Prev][Next][Top]
-
The NTP daemon
A "daemon" is a term widely used in the Unix world. It stands for a
service program running in the background (i.e. without a visible
interface like a window). The Windows equivalent are System Services,
which can be controlled by using the Service Control Console
(services.msc). A Windows System Service can be run automatically at
system startup and logs on in the background, without the need of an
interactive logon.
Because the NTP daemon (ntpd.exe) is needed for client (i.e. aquire time) as well as server (i.e. distribute or redistribute)
configurations, installation is mandatory and this component cannot be deselected.
At a later stage you can choose whether it should start automatically with Windows or not.
[Prev][Next][Top]
The NTP Tools
This component contains a number of command line executables which are
not needed when operating a NTP client or server, but they are very
useful and should be included in every install. At the moment ntpq.exe,
ntpdc.exe and ntp-keygen.exe are included in this section. Please refer
to the documentation of these commands in order to find out what they
do. [Prev][Next][Top]
The NTP Documentation
The NTP Public Services Project composed a comprehensive set of html
pages forming the official NTP documentation. If you choose to install
this component, the documentation will be installed in the doc
subdirectory of the destination folder. [Prev][Next][Top]
Start Menu Entries
If you select this component (it is on per default) the installer will
create entries in your start menu to allow you to start/stop/restart
the NTP service, edit your configuration file and browse the installed
documentation. Additionally you will find a few interesting links to
NTP related websites in your NTP Start Menu (which is created as
Meinberg/Network Time Protocol). [Prev][Next][Top]
Settings
This component actually does not include any files, it just allows you
to enable/disable certain actions the installer is applying to your
system. The one and only setting that can be activated/deactivated is
expanding the PATH environment variable of your system to include the
path to the NTP binaries. If you do not want to install multiple
versions of NTP in different directories, we would recommend to not
disable this setting (it's selected per default). The PATH variable
holds a list of semicolon separated directories where the system should
look for an executable file when you do not specify its full path. That
means: You can use the command 'ntpq' anywhere without having to type
in the full path to the .exe file everytime you want to use it.
[Prev][Next][Top]
OpenSSL libraries
Selecting this component will install two DLL files from the OpenSSL
software distribution into the bin subdirectory of your NTP folder. You
should leave that turned on (that's the default) and only deselect it
if you already have a copy of the OpenSSL DLLs (libeay32.dll and
ssleay32.dll) in a place where NTP can find them (e.g. the
windows\system32 directory).
[Prev][Next][Top]
Step 4: Copying files
When you finished selecting your wanted components, the installer
starts copying the necessary files. Before this happens, it is checked
if there is already a NTP service running on this machine. If yes, you
are asked if this service should be stopped before starting the copy
process. It is recommended to choose "Yes" (=stop the service) here in
order to prevent file access errors when trying to eventually overwrite
the ntpd.exe file of an already running instance of NTP.
[Prev][Next][Top]
Step 5: Configuration File Settings
After copying of the files has been completed, the configuration file
page comes up. Here you can specify a location where the NTP daemon
looks for its configuration file (default is etc\ntp.conf in the
directory where you installed NTP), whether an initial configuration
file should be created for you and if you want to run NTP as a system
service.
You can use the "..." button to browse your files and find an already
existing ntp.conf file. Under normal circumstances we recommend to not
change the location of the config file and simply use the setting your
installer selected for you. When
you choose to create a configuration file (this should be done when
installing NTP for the first time on your computer or if you do not
want to use your old configuration file), you can select which NTP
servers you want to use for synchronization.
The installer comes with a drop down list (labelled "External Time
Reference" or "Pool Server") which includes a number of countries where
public NTP servers provided by the NTP Pool Project are
available. You should choose your county (or the nearest country) from
the list and everytime your NTP daemon starts, you are using a
different NTP server thanks to a rotation mechanism (see the Pool Project website if you are interested in the details.
If the installer detects the Meinberg Time Adjustment Service, it
allows you to choose "Follow Meinberg Time Service". The presence of
this service indicates that your system has a PCI radio clock from
Meinberg installed or uses an external reference clock connected to a
serial port. As the Meinberg Time Service already keeps the local clock
of your system synchronized to the Meinberg hardware clock, the NTP
configuration would be set up to simply use the local clock as a time
source with Stratum level 1. This configuration makes sense if you want
to use the Meinberg Time Service to get its time directly from a
Meinberg device but would like to be able to distribute the time via
NTP to your clients.
You are not able or do not want to use an entry of the drop down list
because you are sitting behind a corporate firewall and the security
policy permits no NTP connections to the outside world? Or you do not
have an internet connection or want to use a more reliable and accurate
NTP server in your local network? No problem, the next field on this
page allows you to specify up to nine NTP servers manually. Just enter
a comma-separated list of IP addresses or hostnames and there you go.
Example:
In your local network you maintain three NTP servers with which you
want to synchronize your Windows PC time. The NTP servers are called
"tick", "tack" and "tock", so all you have to do is to enter
"tick,tack,tock" into the NTP server field (the one that is labelled
"You can specify up to 9...") and that's it.
Advanced server specifications: If you want, you can add NTP specific tags/parameters to each server. So, you want to speed up
initial synchronization by using the iburst
option? And you want to prefer "tick" because you like the sound of its
name? Just enter: "tick prefer iburst,tack iburst, tock iburst" and you
are done.
[Prev][Next][Top]
Step 6: Service Settings
After configuring the config file settings, you are presented with a
dialogue where you have to specifiy how the service is installed.
First, you need to select the user account under which the service
runs. Service Account A service logs on in the background, for
this it needs a user account. You can either choose to create a new,
specially dedicated user account for the NTP daemon or you can use an
already existing account. The last option (and the worst from a
security viewpoint) is the possibility to run the service under the
local SYSTEM account, which has far too much access rights to be left
alone, therefore we strongly recommend (no, let me emphasize that)... strongly(!!) recommend to use
the default setting and create a dedicated user. You should use an
already existing user only if you are reinstalling and want to reuse
the dedicated user you created in a previous install.
This newly created user (its name and password has to be defined by you
in the next step) will only be granted the right to logon as a service
(no interactive or network logon allowed) and maintain the system time
(that's what you want from it, I suppose). Nothing else is allowed for
this user, so if anyone ever tries to attack the NTP service and
succeeds, he/she has very limited possibilities to cause any harm on
your system. You
can add extra security to your installation by changing the access
rights for the NTP folder on your harddisk to let only Admin and the
NTP user account access the files in it.
Starting Options
The NTP service can be run automatically when your system starts. If
you want to start it manually (this makes only sense if you want to
test NTP in non-productive environments), you can deselect the check
box "Start NTP service automatically".
NTP depends on being the only one altering the system clock, so the next option "Disable other Time Services eventually installed"
makes sure that at least a few services are deactivated (the start
option for these services is set to "deactivated"). This affects all
services named "NetworkTimeProtocol", "Network Time Protocol" and
"W32time". If you do not want to let the installer mess around with
your precious system, you can deselect this check box and the starting
options for those services are left untouched. However, this may cause
NTP not to run properly or even prevent it from running at all. You
have been warned :-) .
The next option ("Start NTP right after installation")
controls whether to start the service at the end of the installation or
not. If you think it is better to check a few things first, you may
want to deselect this option. If you chose to run NTP automatically, it
will be started during the next system boot or manually by using the
"net start NTP" command or the services.msc console.
Normally, the NTP daemon will exit immediately when it detects that
your current system time is far off (>1024 seconds). If you want NTP
to accept any time difference at startup and correct it as soon as the
correct time has been received from an NTP time source, you can leave
the checkbox "Allow big initial timestep" on. Uncheck this option if you want NTP to
stop and exit instead of stepping the time. Note:
Even when this option is enabled, NTP will only accept a big time
difference once at startup. If such a big difference occurs again
later, NTP will exit because this indicates that something is broken in
your NTP/time synchronization infrastructure.
If the NTP version included in the installer supports the automatic
enabling of the Windows multimedia timer, this can be turned off by
unchecking the corresponding checkbox "Enable Multimedia Timer at Startup". The per default
enabled feature switches the internal timing of Windows in multimedia
mode and prevents time shifts/steps when any other application using
the multimedia timer is started/stopped. If your system comes with a
version of the Windows Firewall (e.g. on XP SP2, Windows 2003 or
Windows Vista), you can ask the installer to check if your firewall
settings allow NTP to work properly. If you select the option "Check Firewall Settings",
the installer will check that and ask you if you want it to modify the
firewall rules for you in order to allow NTP packets to pass through.
This will effectively add an exception rule for UDP packets on port 123
(the NTP port) to your firewall settings.
[Prev][Next][Top]
Step 7: Specify Service Account
This step is skipped if you chose to run the NTP daemon under the
SYSTEM account, but I am sure you did not choose to do so for security
reasons.
In case you selected to create a new dedicated NTP account, you have to
enter its name (default is ntpd) and specify a password for the
account. You are not allowed to use the account name as your password
and a minimum length of five characters is required. Do not forget to
enter the password a second time in the "confirm" field.
If you chose to use an existing account, you will be asked for the
username and the password of the existing account (no confirmation
needed). Please make sure that you entered the correct password, as a
wrong input will prevent the service from running due to a login
failure.
[Prev][Next][Top]
Step 8: Finish Installation and Start the Service
If you selected that the NTP service should be started at the end of
the installation, this is done now. If an error message says that
starting the service did not succeed, you should look into your
eventlog (run "eventvwr" to check it) and check the reasons for the
failure in the system protocol and/or in the applications protocol.
On the last page of the installer you should now see what the installer
did during the installation process. Click "Finish" and you are done.
Congratulations!
[Prev][Top]
Upgrading NTP
- If the installer detects an already existing installation of NTP
(and if that installation was done using an old version of this
installer), it will ask you directly after startup how to proceed, i.e.
whether you want to simply upgrade your files or prefer a complete
reinstallation.
Automatic or Unattended Installation of NTP
-
Introduction If you want to deploy NTP on a large
number of PCs you probably want to automatize the installation process
in order to save time and shoeleather-costs. The Meinberg NTP Installer
supports automatic/unattended installation by specifying an INI file
which holds the settings you normally would enter via the various
dialogues during the installation. -
Running Installer in Unattended Mode (UAM)
In order to tell the installer that it should run in unattended mode,
you have to specify the name of the INI file on the commandline. This
can be done with the "/USEFILE" option: C:\> ntp_setup-win32-o.exe /USEFILE=C:\my_settings.ini
-
The INI-File: Configuration and Parameters for the Unattended Mode (UAM)
The INI file that is used to define all required parameters for the
installation is following standard Windows INI file format conventions.
Parameters are grouped into four sections: General Installer Parameters, Component Selection, NTP Service Parameters and
NTP Configuration File Settings. At the end of this chapter you will find a sample INI file, but first we will go through
the sections and explain each available parameter.
-
Automatic Template File Creation
During a regular (interactive) installation the settings specified by
the user will be collected and stored in a file install.ini in the
installation directory of NTP (e.g. C:\Program Files\NTP), the only
exception is the service password, which will not be written into this
file. You can use this automatically created install.ini file as a
template for future unattended installs of NTP, but please remember to
check the settings first and modify them to suit your needs:
- Fill in the service password, it is not written into the template for security reasons
- Change
the location of the config file in order to use a prepared ntp.conf,
this file path should be accessible from all PCs on which you want to
run the unattended install (i.e. it should be on a network drive)
- Check that the
upgrade mode should be Reinstall or Upgrade, in case the unattended
install is run more than once on a PC (it has no effect for a
first-time install)
- Please modify the location of the unattended install log file
[Installer] General Installer Parameters
This section is defined with the Installer group header: [Installer]
All installer related parameters have to be defined here, e.g. the logfile and target directory.
InstallDir
One of the most important parameters, it defines in which directory NTP
should be installed. There will be subdirectories created (like bin, etc and doc).
Example:
InstallDir=C:\NTP
Logfile
Due to the nature of an unattended installation there is no real way of
finding out details about what went wrong when the installer did not
successfully install NTP on the target machine. The Logfile that is
written by the installer in unattended mode can help you in detecting
any problems with your settings or system environment. With the Logfile parameter you
specifiy the full path of the logfile.Example:
Logfile=C:\TMP\NTP_UAM.LOG
UpgradeMode
If the target machine already runs a version of NTP you can use this
parameter to tell the installer what to do with such an existing
version. There are three possibilities: UpgradeMode=Upgrade
will only upgrade the files and does not touch your service settings (like the service account or any commandline parameters)
UpgradeMode=Reinstall
will uninstall the existing version and then perform a regular unattended installation based on the settings in the INI file
UpgradeMode=None
will not do anything and simply aborts the installation at this point,
keeping the existing version intact (basically you can specifiy
anything but Upgrade or Reinstall in order
to achieve this behavior
Silent
If you do not want your users to call you because of those strange
messages that flash on the screen everytime you are installing/updating
NTP on their PC, you can completely disable all visual feedback (which
in UAM means disaling the banners the are normally shown during
installation) by specifying Silent=Yes
in the Installer section of your INI file.
-
[Components] Components Selection
With this section you can control the scope of the installation. The
NTP service (NTPD.EXE) is always installed, but there are optional
components that can be deselected: InstallTools=No
will skip installation of the NTP commandline tools like ntpq or ntpdc.
InstallDocs=No
will skip installation of the NTP documentation set (in docs\).
InstallOpenSSL=No
will skip installation of the OpenSSL library file(s), which are
essential for running NTP on the target machine. The only reason why
you would not want to install them here is when they are already on the
target machine (probably installed by some other application) and you
prefer to use that version instead of the one that comes with the NTP
installer.
Please note that you have a good chance to run into compatibility problems when you choose not to use the included OpenSSL version.
CreateStartMenuEntries=no
will skip creating entries in your Start Menu for
starting/stopping/restarting the NTP service, for the documentation and
for weblinks to interesting/important NTP related websites.
-
[Service] NTP Service Parameters
This section controls the behavior of the NTP service and its installation on the target machine.
StartAfterInstallation
If you want the installer to start the service after the installation has been completed successfully, you have to specify
StartAfterInstallation=Yes
AutoStart
Most people want the NTP service to start automatically when the target
PC is booting Windows. This can be triggered by stating AutoStart=Yes
in the INI file.
ServiceAccount
The installer can either setup your NTP service to run as SYSTEM (e.g.
with full administrative rights) or use a regular user account with
limited access rights. This will reduce the impact of any security
issues with NTP and prevents an attacker to gain Administrator rights
if they somehow manage to compromise NTP. We strongly recommend to run
NTP using such a limited user account. If you want to use the SYSTEM
account, please specify ServiceAccount=@SYSTEM in your INI file. If you want to
use a limited rights account, please tell the installer the name of
this account (it can be automatically created using the CreateUser parameter, see below).
Example:
ServiceAccount=NTPService
CreateAccount
If your INI FIle includes a line like
CreateAccount=Yes
in the Service
section of your INI file, the installer will try to create the NTP user
account for you (you have to specify the name of the account with the ServiceAccount
parameter). It will even setup the access rights of the newly created
account and limit its privileges as far as possible. If the specified
user account already exists and CreateUser is set to Yes the
installer will still try to use that existing account.
ServicePassword
If you want to use an existing account or the installer should create
one, you can specify the password here. This is of course a potential
security problem, but if you let the installer create the account for
you, it will be only allowed to login as a service, which should
dramatically reduce the risk of someone abusing the account. Example: ServicePassword=BackToTheFuture
DisableOthers
If the target machine already runs some kind of a time synchronization
software, the installer can disable them for you when it installs NTP.
There is no point in trying to allow two programs to correct the time,
the result will be that both fight about the system clock and each one
will correct the corrections of the other software. If you want the
installer to look out for other time sync software, you can specifiy DisableOthers=Yes in your INI file. Of course only known
software (like W32time or older NTP installations) will be detected and
the installer will only deactivate their service entry. Nothing is
uninstalled or removed! AllowBigInitialTimeStep The default behavior of NTPD is
that it will exit if it detects a time offset of more than 1024
seconds. This can be a problem if the target PC is off for more than
~20 minutes at system start, therefore you can allow NTPD to correct
such a big offset once at startup by stepping the clock. This can be
achieved by specifying -g on the commandline of NTP and
specifying
AllowBigInitialTimeStep=Yes
in your INI file will tell the installer to add -g to the coimmandline parameters of the NTP service.
EnableMMTimer
Windows applications can tell the system to enable the so-called
Multimedia Timer in order to change the internal timing behavior of the
Windows kernel. Altering this during normal operation can lead to a
sudden time jump of several miliseconds in one direction. When the
MMTimer is switched back to normal afterwards, the time jumps back into
the opposite direction. This will lead to NTP synchronization problems
(obviously) and therefore NTPD can be told to permanently switch the
MMTimer to the higher resolution in order to prevent those time jumps
when you open a Quicktime video or a fancy website with animation and
sound. Example: EnableMMTimer=Yes
It is recommended to use Yes here since there seem to be no performance problems and it prevents those milisecond time jumps as long as NTP is running.
ModifyFirewall
If the Windows Firewall is enabled and allows exceptions, the installer
would add an exeception for NTP packets in order to allow them to pass
the firewall. Setting this parameter to "no" will leave your firewall
settings alone. ModifyFirewall=No
will skip the check for correct handling of NTP packets by the Windows Firewall (if applicable on your system).
[Configuration] NTP Configuration File Settings
The NTP configuration file (usually called ntp.conf) is expected to be stored in the etc subdirectory of your installation path. The installer can copy a
prepared NTP configuration file into that etc directory and configure the service to use it. You have to specify the full path of an already existing file with
UseConfigFile=G:\ntp_client.conf
in the [Configuration] section of your INI file and it will be copied to C:\Program Files\NTP\etc\ntp_client.conf by the installer (assuming that you specified
C:\Program Files\NTP as the InstallDir.
Sample Configuration
Here is an example of an INI file that can be used for the unattended installation of NTP:
[Installer]
InstallDir=C:\NTP
UpgradeMode=Reinstall
Logfile=C:\ntp_silent.log
Silent=Yes
[Components]
InstallTools=yes
InstallDocs=no
InstallOpenSSL=yes
CreateStartMenuEntries=yes
[Service]
StartAfterInstallation=yes
AutoStart=yes
ServiceAccount=NTP
CreateAccount=yes
ServicePassword=carlosantana
DisableOthers=yes
AllowBigInitialTimestep=yes
EnableMMTimer=yes
ModifiyFirewall=yes
[Configuration]
UseConfigFile=C:\ntp_test.conf
[Top]
Uninstalling NTP
-
Using the Software Applet of the Control Panel
It is easy to remove the installation of NTP you installed using this
installer. Just open your Windows control panel, double-click on the
Software icon and browse the list of installed software on your system
until you find an entry called "Network Time Protocol". Now press the
"Uninstall" button (this may be a little bit different on Windows NT,
if you face any difficulties, just check your operating systems
documentation for informations on "Uninstalling third party software".
Running the uninstaller directly
During installation, an uninstaller executable (uninstall.exe) is
copied into the NTP target folder (e.g. "C:\Program Files\NTP"). You
can use the Windows Explorer and browse to this directory. Then start
the uninstaller with a double-click.
Addendum
|