Introduction the Daemon Plugins Missing Features

Introduction the Daemon Plugins Missing Features

Magic Tunnel Daemon mtund Matu´sˇ Harvan Information Security, ETH Zurich,¨ Switzerland Introduction Features: ICMP plugin • failover between plugins – using ICMP echo request/reply pairs to pass a stateful NAT gateway IP can easily be tunneled over a plethora of network protocols at various • probing and keep-alive “pings” – sys patch – net.inet.icmp.echo user sysctl allows receiving ICMP echo requests on a raw IP socket layers, such as IP, ICMP, UDP, TCP, DNS, HTTP, SSH and many others. – detects a broken encapsulation While a direct connection may not always be possible due to a firewall, the DNS plugin – keeps state in firewall IP packets could be encapsulated as payload in other protocols, which would – using DNS queries and replies • multi-user support get through. However, each such encapsulation requires the setup of a dif- – DNS encoding and decoding taken from iodine ferent program and the user has to manually probe different encapsulations – one tun(4) interface per client – if a DNS zone is properly delegated, connection to a working nameserver to find out which of them works in a given environment. – clients need to associate with the server is sufficient and direct Internet connectivity is not needed (this is the case The Magic Tunnel Daemon (mtund) consists of a daemon and plugins. Each • fragmentation and fragment reassembly at many hotspots) plugin implements a different encapsulation. The daemon automagically se- lects a working encapsulation in each environment, does the tunneling and Two types of encapsulations: can failover to another encapsulation if the environment changes. 1. direct (TCP, UDP) Missing Features • each side can send data anytime • more plugins The Daemon 2. polling (ICMP echo request/reply, DNS query/reply) • the client can send data anytime but the server can only send data in – HTTP replies – SSH • written in C – ... • using plugins for encapsulation (dlopen(3)) Plugins • config file format and parsing • using tun(4) virtual interfaces • encryption, client authentication • using libevent for multiplexing TCP plugin – protect tunnel control traffic – send tunneled IP packets as TCP payload in a TCP connection – tunneled traffic can use IPSec on the tun(4) interface mtund • – framing – prepend payload length before the actual payload so that the ICMP plugin probing and non-polling mode libevent tun(4) plugins recipient knows where the tunneled packet ends within the TCP stream – instead of ICMP echo request/reply pairs a “direct” mode of operation – additional feature: listen on all unused TCP ports could be used if the firewall allows it ∗ sys patch – TCP LISTENALL socket option – use a different ICMP type so that kernel patching would not be required tun_send() process_data_from_plugin() plugin_receive() ID SEQ UDP plugin – different strategies for ICMP echo and fields • DNS plugin should act as the UDP plugin if non-DNS traffic arrives – send tunneled IP packets as UDP payload in a UDP connection • MTU probing (can use probing pings) – additional feature: listen on all unused UDP ports tun_receive() process_data_from_tun() plugin_send() • port to other BSDs, linux,. (currently only for FreeBSD) ∗ sys patch – net.inet.raw.udp catchall sysctl allows receiv- ing unclaimed UDP packets on a raw IP socket, a new UDP socket then More information available under has to be bound/connected to the right ports/addresses http://wiki.freebsd.org/mtund The mark FreeBSD is a registered trademark of The FreeBSD Foundation and is used by Matu´sˇ Harvan with the permission of The FreeBSD Foundation. The FreeBSD Logo is a trademark of The FreeBSD Foundation and is used by Matu´sˇ Harvan with the permission of The FreeBSD Foundation. BSD Daemon Copyright 1988 by Marshall Kirk McKusick. All Rights Reserved..

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    1 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us