Bug 1171630 - NTP drops requests when sourceport is below 123
Summary: NTP drops requests when sourceport is below 123
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: ntp
Version: 6.6
Hardware: Unspecified
OS: Linux
Target Milestone: rc
: ---
Assignee: Miroslav Lichvar
QA Contact: Vaclav Danek
Depends On:
Blocks: 1171640
TreeView+ depends on / blocked
Reported: 2014-12-08 09:20 UTC by Konrad Mosoń
Modified: 2019-07-11 08:26 UTC (History)
3 users (show)

Fixed In Version: ntp-4.2.6p5-3.el6
Doc Type: Bug Fix
Doc Text:
The ntpd daemon dropped incoming NTP packets if their source port was lower than 123 (the NTP port). As a consequence, clients behind Network Address Translation (NAT) were unable to synchronize with the server if their source port was translated to ports below 123. With this update, ntpd no longer checks the source port number, and clients behind NAT are now able to correctly synchronize with the server.
Clone Of:
: 1171640 (view as bug list)
Last Closed: 2015-07-22 07:00:10 UTC
Target Upstream Version:

Attachments (Terms of Use)

System ID Private Priority Status Summary Last Updated
Network Time Protocol 2174 0 None None None Never
Red Hat Product Errata RHSA-2015:1459 0 normal SHIPPED_LIVE Moderate: ntp security, bug fix, and enhancement update 2015-07-21 14:15:04 UTC

Description Konrad Mosoń 2014-12-08 09:20:02 UTC
Description of problem:

If NTP requests goes through NAT, NAT changes srcport of packet to something random. Sometimes it's below 123 and ntp drops it without any logging.

Source code says (ntpd/ntp_proto.c):

 332     /*
 333      * Bogus port check is before anything, since it probably
 334      * reveals a clogging attack.
 335      */
 336     sys_received++;
 337     if (SRCPORT(&rbufp->recv_srcadr) < NTP_PORT) {
 338         sys_badlength++;
 339         return;             /* bogus port */
 340     }

Version-Release number of selected component (if applicable):

...but srcrpm for centos7 shows, that it's version have the same problem (ntp-4.2.6p5-18.el7.centos.src.rpm)

How reproducible:
Always when packet srcport is lower than NTP_PORT (123).
For testing purposes you can create NAT that changes srcport to - for example - 121.

Steps to Reproduce:
1. Install NTP server on server-host and client on client-host
2. Configure NAT for client-host so NTP will exit host with srcport lower than 123. (or you can use simple python ntp client found here: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=691412)
3. Run `ntpq -p` on client-host. NTP is always in state .INIT. cause server dropped all requests. No logs at all in syslog. No debuglogs even with debuglevel=10.

Actual results:
NTP drops requests without any logging.

Expected results:
Packets are not dropped, or this option is configurable and should log something. Took me few weeks to debug why some servers have problems with ntp :(

Additional info:

Debian already fixed that:

Comment 5 errata-xmlrpc 2015-07-22 07:00:10 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.


Note You need to log in before you can comment on or make changes to this bug.