Bug 1171630 - NTP drops requests when sourceport is below 123
Summary: NTP drops requests when sourceport is below 123
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: ntp
Version: 6.6
Hardware: Unspecified
OS: Linux
unspecified
medium
Target Milestone: rc
: ---
Assignee: Miroslav Lichvar
QA Contact: Vaclav Danek
URL:
Whiteboard:
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)
Environment:
Last Closed: 2015-07-22 07:00:10 UTC


Attachments (Terms of Use)


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

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):
ntp-4.2.6p5-1.el6.centos.x86_64

...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:
http://lists.ntp.org/pipermail/hackers/2009-December/004758.html
http://bugs.ntp.org/show_bug.cgi?id=2174

Debian already fixed that:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=691412

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.

https://rhn.redhat.com/errata/RHSA-2015-1459.html


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