Knock: A Linux kernel patch for NAT-compatible, stealthy port knocking

A Linux kernel patch that “implements a new NAT-compatible, TCP option for stealthy port knocking with a few new twists for improved security” has been released.

Port knocking is a security implementation that’s designed to reduce the visibility of TCP servers on the network. A good port knock tool renders TCP servers stealthy, making them invisible to port scanners.

The point of a port knock tool is to make TCP servers respond to TCP SYN request only after a pre-defined sequence of packets have been sent and received. It’s like having a club house whose doors open only after a set number and sequence of knocks. There have been tools like in the past, but as far as I know, all have been in user space. Knock is thus likely the first port knock tool for Linux in kernel space.

From the release announcement:

  • Knocking is done in the Linux kernel. Applications can activate Knock with a single additional setsockopt call (in both client and server). Thus, once Linux has been patched, deployment will be much simpler compared to other implementations. Also, as Knock operates in the Kernel, timing attacks should be much harder to do.
  • Our Knock optionally does not merely enable opening the connection, but also can be used to protect the first N bytes of the TCP payload. Thus, given a sane protocol being run above TCP (one begins with a key exchange), an active attacker cannot simply take over the TCP connection after the handshake without also being locked into sending the same TCP payload. Thus, if the client begins by sending his public key and then continues to send data that must be authenticated with that key, even an active man-in-the-middle adversary cannot hijack the connection.

Knock is the work of Julian Kirsch, Maurice Leclaire and Christian Grothoff. The complete release announcement, associated documentations, as well as the code, are available here. The patch has been submitted to the Linux Kernel Mailing List (LKML), the kernel networking mailing list and subsystem maintainer. Could be coming to a Linux kernel next, if it passes muster.

Related Posts

Why I switched from Postgres to MongoDB, then to Neo4j When you're about to start a project and are trying to make a decision on the what applications to use, one way to proceed is to find out what other p...
Chronicles of SELinux: Dealing with web content in unusual directories For of you that run a server powered by Fedora or another distribution that's based on it, here's a very good SELinux tutorial from Major Hayden, a Ra...
Firefox OS: One more for the road Choice, as they say, is a good thing. Or you can never have too choices. In the mobile device operating system space, there are plenty to choose from,...
A $204,000 data-privacy violation fine against a company worth $381 billion! France has just handed out a fine against Google for failing to comply with the country's Data Protection Act. What's the fine amount? A measly USD...
Microsoft’s Surface RT is an “Unmitigated Disaster.” What’s wrong with that?... After Microsoft successfully used Restricted Boot to make dual-booting Linux distributions and Windows 8 on newer desktop and notebook computers a pai...
GNUnet submits draft for p2p-related TLDs to the IETF A GNUnet official, has submitted a request to the IETF, the Internet Engineering Task Force, the organization responsible for developing and promoting...

We Recommend These Vendors

Launch an SSD VPS in Europe, USA, Asia & Australia on Vultr's KVM-based Cloud platform starting at $5:00/month (15 GB SSD, 768 MB of RAM).

Deploy an SSD Cloud server in 55 seconds on DigitalOcean. Built for developers and starting at $5:00/month (20 GB SSD, 512 MB of RAM).


One Comment

  1. Pingback: Links 13/12/2013: Linux (Kernel) News | Techrights

Leave a Comment

Your email address will not be published. Required fields are marked *

*