Dante a BSD licensed SOCKS implementation. Inferno Nettverk A/S. Bergen Linux User Group 2005-11-24



Similar documents
z/os Firewall Technology Overview

Computer Security DD2395

12. Firewalls Content

ReadyNAS Remote White Paper. NETGEAR May 2010

Computer Security: Principles and Practice

Proxies. Chapter 4. Network & Security Gildas Avoine

Network Address Translation (NAT)

CSCE 465 Computer & Network Security

OS/390 Firewall Technology Overview

Considerations In Developing Firewall Selection Criteria. Adeptech Systems, Inc.

Dissertation Title: SOCKS5-based Firewall Support For UDP-based Application. Author: Fung, King Pong

Proxy Server, Network Address Translator, Firewall. Proxy Server

21.4 Network Address Translation (NAT) NAT concept

OS/390 Firewall Technology Overview

Firewalls. Test your Firewall knowledge. Test your Firewall knowledge (cont) (March 4, 2015)

Firewalls. Firewalls. Idea: separate local network from the Internet 2/24/15. Intranet DMZ. Trusted hosts and networks. Firewall.

Virtual private network. Network security protocols VPN VPN. Instead of a dedicated data link Packets securely sent over a shared network Internet VPN

Linux Network Security

Project 4: IP over DNS Due: 11:59 PM, Dec 14, 2015

Firewalls. Ingress Filtering. Ingress Filtering. Network Security. Firewalls. Access lists Ingress filtering. Egress filtering NAT

Introduction to Computer Security Benoit Donnet Academic Year

Network Defense Tools

Overview - Using ADAMS With a Firewall

Overview - Using ADAMS With a Firewall

Firewalls. Network Security. Firewalls Defined. Firewalls

CIT 480: Securing Computer Systems. Firewalls

Firewalls. Chien-Chung Shen

CSE 4482 Computer Security Management: Assessment and Forensics. Protection Mechanisms: Firewalls

CIT 480: Securing Computer Systems. Firewalls

ΕΠΛ 674: Εργαστήριο 5 Firewalls

A Study of Technology in Firewall System

Figure 41-1 IP Filter Rules

Internet infrastructure. Prof. dr. ir. André Mariën

7. Firewall - Concept

Cisco PIX vs. Checkpoint Firewall

How To Protect Your Firewall From Attack From A Malicious Computer Or Network Device

Types of Firewalls E. Eugene Schultz Payoff

CS 356 Lecture 19 and 20 Firewalls and Intrusion Prevention. Spring 2013

Multi-Homing Security Gateway

ΕΠΛ 475: Εργαστήριο 9 Firewalls Τοίχοι πυρασφάλειας. University of Cyprus Department of Computer Science

Media Exchange really puts the power in the hands of our creative users, enabling them to collaborate globally regardless of location and file size.

FreeBSD Firewalls SS- E Kevin Chege ISOC

ProxyCap Help. Table of contents. Configuring ProxyCap Proxy Labs

Virtual Fragmentation Reassembly

Tunnel Client FAQ. Table of Contents. Version 0v5, November 2014 Revised: Kate Lance Author: Karl Auer

Firewall. IPTables and its use in a realistic scenario. José Bateira ei10133 Pedro Cunha ei05064 Pedro Grilo ei09137 FEUP MIEIC SSIN

Cryptography and network security

Firewalls. Chapter 3

Linux firewall. Need of firewall Single connection between network Allows restricted traffic between networks Denies un authorized users

Chapter 9 Firewalls and Intrusion Prevention Systems

Securing Networks with PIX and ASA

Distributed Systems. Firewalls: Defending the Network. Paul Krzyzanowski

Internet Security Firewalls

Linux MDS Firewall Supplement

AXIGEN Mail Server. Quick Installation and Configuration Guide. Product version: 6.1 Document version: 1.0

Firewalls P+S Linux Router & Firewall 2013

Chapter 5. Figure 5-1: Border Firewall. Firewalls. Figure 5-1: Border Firewall. Figure 5-1: Border Firewall. Figure 5-1: Border Firewall

SE 4C03 Winter 2005 Firewall Design Principles. By: Kirk Crane

Chapter 11 Cloud Application Development

Instructions for Activating and Configuring the SAFARI Montage Managed Home Access Software Module

SFWR ENG 4C03 Class Project Firewall Design Principals Arash Kamyab March 04, 2004

FIREWALL AND NAT Lecture 7a

Network Security Topologies. Chapter 11

Appendix A: Configuring Firewalls for a VPN Server Running Windows Server 2003

Introduction to Firewalls

CSE331: Introduction to Networks and Security. Lecture 12 Fall 2006

Stateful Inspection Technology

The SpeedTouch and Firewalling

IPv6 Security from point of view firewalls

A S B

Implementing Network Address Translation and Port Redirection in epipe

MULTI WAN TECHNICAL OVERVIEW

FIREWALLS & CBAC. philip.heimer@hh.se

Flow Analysis Versus Packet Analysis. What Should You Choose?

Architecture. The DMZ is a portion of a network that separates a purely internal network from an external network.

IMPLEMENTATION OF INTELLIGENT FIREWALL TO CHECK INTERNET HACKERS THREAT

Websense Web Security Gateway: What to do when a Web site does not load as expected

Firewalls and System Protection

Bridgit Conferencing Software: Security, Firewalls, Bandwidth and Scalability

Smart Tips. Enabling WAN Load Balancing. Key Features. Network Diagram. Overview. Featured Products. WAN Failover. Enabling WAN Load Balancing Page 1

Chapter 15. Firewalls, IDS and IPS

INTRODUCTION TO FIREWALL SECURITY

Single Pass Load Balancing with Session Persistence in IPv6 Network. C. J. (Charlie) Liu Network Operations Charter Communications

Polycom. RealPresence Ready Firewall Traversal Tips

CS 665: Computer System Security. Network Security. Usage environment. Sources of vulnerabilities. Information Assurance Module

Firewalls. Ahmad Almulhem March 10, 2012

Firewalls, IDS and IPS

TUNNA. A tool designed to bypass firewall restrictions on remote webservers. By: Rodrigo Marcos Nikos Vassakis

Firewall Security: Policies, Testing and Performance Evaluation

Firewalls and VPNs. Principles of Information Security, 5th Edition 1

DEPLOYMENT GUIDE Version 1.1. DNS Traffic Management using the BIG-IP Local Traffic Manager

Network Configuration Settings

SSL VPN connection multiplexing techniques

Running the Tor client on Mac OS X

Firewall Piercing. Alon Altman Haifa Linux Club

Firewall VPN Router. Quick Installation Guide M73-APO09-380

Dante, Module LDAP. Inferno Nettverk A/S Oslo Research Park Gaustadalleen 21 NO-0349 Oslo Norway. Date: 2011/06/13 13:19:23

Transcription:

Dante a BSD licensed SOCKS implementation Inferno Nettverk A/S Bergen Linux User Group 2005-11-24 1 / 21

Background (1) Inferno Nettverk A/S started as security consulting company goal: sell OpenBSD based firewalls/security solutions. packet filter existed in OpenBSD, wanted general proxy in addition. SOCKS5 implementation commercial, original V4 with free license. plan: add support for V5 of socks standard to free implementation. work started 1997/09/26 12:35:33. first release on the 16th of Nov 1998 (version 0.90.0). 2 / 21

Background - first announcement Subject: Dante - a free socks client and server implementation for UNIX To: socks@socks.nec.com Date: Mon, 16 Nov 1998 15:30:04 +0100 X-Mailer: Mutt 0.89.1 Inferno Nettverk A/S, Oslo, Norway Monday, November 16, 1998 Inferno Nettverk is pleased to announce the first public alpha release of Dante - a free socks client and server implementation for UNIX. It currently supports v4 and v5 (sans GSSAPI) of the socks protocol and is available under a BSD/CMU-type license with complete source code. Dante can be downloaded from ftp.inet.no:/pub/socks/danta-alpha.tar.gz. One should note that Dante is currently somewhat, to put it politely, lacking in documentation, but we are working on that too. For more information, please see http://www.inet.no/dante. (This implementation includes a small experimental extension to the v4/v5 protocol that provides a more generic bind functionality, such as that which might be expected by server applications like e.g ftpd. It can be enabled by providing the magic line "extension: bind" at the correct place in the server and client config file.) 3 / 21

Today Inferno Nettverk A/S no longer limits itself to security consulting, but also offers general UNIX-based development, from web-programming to low-level network programming. Dante ended up being a total rewrite. over 20 releases so far (excluding prereleases). has been described as scalable and stable by users. many large international companies among users. 4 / 21

SOCKS 5 / 21

Server Connection establishment - normal network User Internet Gateway/firewall 6 / 21

Connection establishment - SOCKS network Server User Internet Gateway/firewall SOCKS server 7 / 21

general proxy protocol. version 5 defined in rfc1928. SOCKS protocol - overview (1) client hosts do not make connections directly, but via SOCKS server. hides internal network (ala NAT). authentication possible (PAM, username/password). 8 / 21

SOCKS protocol - overview (2) Commands: CONNECT, BIND, UDP ASSOCIATE outgoing TCP connections (CONNECT). e.g. HTTP outgoing UDP packets, and reply (UDP ASSOCIATE). e.g. DNS incoming TCP connections, originaly from known IP/port number (BIND), but today interpreted more lose. Other typically active FTP bind extension. GSSAPI (unsupported). 9 / 21

Why use SOCKS? SOCKS protocol - overview (3) user authentication (allows per user resource accounting). avoids having traffic from bad TCP/IP implementations on the Internet. firewalls good for regulating incoming traffic, SOCKS for outgoing. 10 / 21

Dante configuration - server (1) Dante server rules operate on two levels. client-rules Rules prefixed with "client". Control access to the Dante server at the TCP level. Authentication possible here too (e.g. PAM or ident). socks-rules Control access via the Dante server, operating at the socks protocol level. Simple configuration; pass in/out all traffic. internal: fxp0 port = 1080 external: fxp1 method: none client pass { from: 0.0.0.0/0 to: 0.0.0.0/0 } pass { from: 0.0.0.0/0 to: 0.0.0.0/0 } 11 / 21

Add user authentication. Dante configuration - server (2) As above, but change "method: none" to "method: username". 12 / 21

Dante configuration - server (3) Limit access based on user/ip-address. As above, but create individual rules for each user/ip-address group instead of one global: block { from: 0.0.0.0/0 to:.naughty.com port = http } pass { from: 0.0.0.0/0 to: 0.0.0.0/0 port = http user: big-boss log: connect disconnect } pass { from: 0.0.0.0/0 to: 0.0.0.0/0 user: awk } pass { from: 0.0.0.0/0 to: 0.0.0.0/0 port = http maxsessions: 10 bandwidth: 102400 } pass { from: 0.0.0.0/0 to: 0.0.0.0/0 } 13 / 21

Dante configuration - client (1) Clients wishes to establish a connection to a given address/port. This cannot be done directly, request must be done via SOCKS server. scenario 1: Client support for SOCKS standard configure client to use server (e.g. browser) scenario 2: socksify allows (dynamically linked) programs to use socksify without changes. LD PRELOAD based approach, works on most UNIX platforms. client part of SOCKS protocol in Dante libdsocks library. system calls intercepted, connections made via SOCKS server. client configuration in global socks.conf. 14 / 21

scenario 3: windows Dante configuration - client (2) program which socksifies the entire system exists. Not from Inferno Nettverk. scenario 4: no preload support applications must be recompiled if possible. 15 / 21

Dante configuration - client (3) Client-configuration simpler, only a route statement required. route { from: 0.0.0.0/0 to: 0.0.0.0/0 via: 10.1.1.1 port = 1080 proxyprotocol: socks_v5 socks_v4 proxyprotocol: http_v1.0 proxyprotocol: msproxy_v2 method: none username } Multiple routes might exist, client will try first working one. 16 / 21

Dante modules Dante partially financed by support contracts. The module concept is an experiment in selling extra functionality. At the moment three modules exist. redirect - redirection of connections and control over address/port-usage. bandwidth - bandwidth limitation. session - limit sessions (not official yet). 17 / 21

Experiences Dante originally developed on OpenBSD, then ported to various UNIX platforms. before: nice and elegant code, after: spaghetti of #ifdef s. have tried to limit this, by adding missing functionality in library. have found many OS bugs, often in Linux and Solaris (2.5 especially). bugs in OpenBSD easy to fix, must work around in many other cases. preloading especially difficult, header files contain much strangeness (esp. Linux and OSF). 18 / 21

Development Much work this year on testing architecture. runs various applications with and without SOCKS, compares result. automated testing, different configuration files for each test. several bugs found, mainly in rarely used parts of the code. example: client support for http proxy servers; errors were not handled correctly. main benefit is catching bugs introduced during development. currently used internally only, generalisation is long term goal. partial support for server chaining new feature in next version. 19 / 21

Possible extensions Routers and firewalls see packets, while all traffic passes through SOCKS server as a sequential stream. Makes some creative usages of the SOCKS server potentially possible. inspection of data stream; identification of downloaded data types. protocol decoding, and identification of application. possible usage: blocking traffic from P2P networks. 20 / 21

Future Initially many new features introduced. System considered stable for the last couple of years, no big changes made. Current focus is on bug fixing and maintainance. 21 / 21