Giter Club home page Giter Club logo

sidestep's Introduction

#Icon Sidestep#

##Say Hello to Sidestep##

The problem

When you connect to the Internet through an unprotected wireless network, such as at a coffeeshop or an airport, where you don’t have to enter a security key, you’re putting yourself at risk.

Attackers connected to the same network can easily intercept your unencrypted traffic and log in as you to services such as Facebook, Amazon, and LinkedIn.

Try Firesheep, a simple Firefox add-on, to see for yourself how serious the problem is and how easy it is for your privacy and security to be compromised.

The solution

When Sidestep detects you connecting to an unprotected wireless network, it automatically encrypts all of your Internet traffic and reroutes it through a secure connection to a server of your choosing, which acts as your Internet proxy. And it does all this in the background so that you don’t even notice it.

With Sidestep enabled, no one can eavesdrop on your traffic and impersonate you or see what you’re seeing as you browse the web. How does it work?

The first time you run Sidestep, you give it the details of the proxy server that you want it to use to securely reroute your Internet traffic through. And that’s it.

Welcome (main window)

Now, every time you connect to the Internet, Sidestep checks to see if your connection is already secured by WPA wireless security - if it is, Sidestep does nothing. After all, there’s no point in rerouting your connection and using up bandwidth on your proxy server if your connection is already secure. However, if your wireless connection is open and unprotected, Sidestep connects to your proxy server using SSH and reroutes all your traffic through it. This technology is called an SSH Tunnel Proxy.

In Geekspeak

When you connect to an insecure network, Sidestep opens an SSH tunnel with the proxy server, and then sets the Mac OS X system-wide SOCKS proxy to use this SSH connection. And since most Mac applications (including browsers) use this system-wide proxy to connect to the Internet through, they will all end up using the encrypted SSH tunnel.

Fighting Firesheep with fire

Firesheep, the Firefox add-on mentioned above, made a huge wave in the computer security world when it was released. Using it, anyone with Firefox can sit in a coffeeshop and click one button to hijack the browsing sessions of other users around them.

Sidestep is the easiest solution to the problem made mainstream by Firesheep. Set it up once, and never worry about attacks like Firesheep ever again.

Requirements

Mac OS X 10.5+ required

Project Homepage

Got a question or comment regarding Sidestep? Please stop by chetansurpur.com and let us know what you're thinking.

sidestep's People

Contributors

chetan51 avatar coneybeare avatar dgomes avatar jridgewell avatar mdesjardins avatar seibert avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sidestep's Issues

Option to keep the proxy open but not changing the default proxy on the OS

I would like an option that would prevent Sidestep from changing OS X proxy settings.

This would allow us to use Sidestep for tunnelling only the applications we want instead of the entire traffic.

It doesn't seem like something hard to implement, and I would code it myself but first I want to see if it's accepted as a feature. I do not want to endup maintaining my own fork.

Enabling reroute asks session password 3 times

I don't know if this specific to my setup, but when I enable the Reroute Traffic Through Proxy Server Now Lion asks me my user session password 3 times before actually rerouting.

Any solution to reduce or remove this requirement?

I don't know if this could be related by the built-in Firewall is activated.

Feature Suggestion: Run a bash (or other type) of script on connect, and another on disconnect

Maybe there's already a recipe for how to do this, if so I'd love some direction.

My specific use case is that when sidestep runs, I need to update .gitconfig with proxy = socks5://localhost:9050, and on disconnect, disable the line.

My bash script actually comments or uncomments those lines, one in [http and one in [https], if anyone is interested, these are the commands in my .bash_profile:

alias gpoff="sed -i '' '/proxy/s/^/;/g' ~/.gitconfig"
alias gpon="sed -i '' '/proxy/s/^;//g' ~/.gitconfig"

Which simply changes these lines in .gitconfig from

[http]
    proxy = socks5://localhost:9050
[https]
    proxy = socks5://localhost:9050

to

[http]
;   proxy = socks5://localhost:9050
[https]
;   proxy = socks5://localhost:9050

Thanks!

Lion--Connects to proxy on protected network

When I connect to a WPA2 network on Lion, Sidestep still re-routes through my proxy server. I see the following messages in my system.log. The network "NextSpace" is a WPA2 network.

Sep 13 10:16:49 laptop Sidestep[16736]: Environment: {
"AUTH_HOSTNAME" = "_.__.com";
"AUTH_USERNAME" = *_
;
DISPLAY = NONE;
"SSH_ASKPASS" = "/Applications/Sidestep.app/Contents/Resources/SSHAskPass";
"SSH_AUTH_SOCK" = "/tmp/launch-Q5iWJB/Listeners";
}
Sep 13 10:16:50 laptop ntpd[48]: bind(26) AF_INET6 fe80::e2f8:47ff:fe08:3e4a%5#123 flags 0x11 failed: Can't assign requested address
Sep 13 10:16:50 laptop ntpd[48]: unable to create socket on en1 (35) for fe80::e2f8:47ff:fe08:3e4a#123
Sep 13 10:16:53 laptop Sidestep[16736]: Environment: {
"AUTH_HOSTNAME" = "..com";
"AUTH_USERNAME" = *;
DISPLAY = NONE;
"SSH_ASKPASS" = "/Applications/Sidestep.app/Contents/Resources/SSHAskPass";
"SSH_AUTH_SOCK" = "/tmp/launch-Q5iWJB/Listeners";
}
Sep 13 10:16:53 laptop applepushserviced[78]: <APSCourier: 0x7fdcb3114840>: Stream error occurred for <APSTCPStream: 0x7fdcb3139b00>: The operation couldn’t be completed. (kCFErrorDomainCFNetwork error 2.)
Sep 13 10:16:55 laptop configd[15]: network configuration changed.
Sep 13 10:16:55 laptop UserEventAgent[11]: CaptiveNetworkSupport:CaptivePublishState:1211 en1 - Probe
Sep 13 10:16:55 laptop UserEventAgent[11]: CaptiveNetworkSupport:CaptiveStartDetect:2343 Bypassing probe on NextSpace because it is protected and not on the exception list
Sep 13 10:16:55 laptop UserEventAgent[11]: CaptiveNetworkSupport:CaptivePublishState:1211 en1 - Unknown
Sep 13 10:16:55 laptop configd[15]: network configuration changed.
Sep 13 10:16:56 laptop Rowmote Helper[291]: Est <AsyncUdpSocket: 0x1b38910> (5843)
Sep 13 10:16:56 laptop Sidestep[16736]: Environment: {
"AUTH_HOSTNAME" = "
_.
__.com";
"AUTH_USERNAME" = *_
*;
DISPLAY = NONE;
"SSH_ASKPASS" = "/Applications/Sidestep.app/Contents/Resources/SSHAskPass";
"SSH_AUTH_SOCK" = "/tmp/launch-Q5iWJB/Listeners";
}

Lion issues

Seems to be issues with Lion at least in my case no connection to remote host. Actually connection is established but when checking IP it gives my WAN and not that of my server which is hosted off site. I have only been able to check this on one Mac, hopefully in a few days more or so a few more people can check this out.

Icon displays as unsecured when connected to a system VPN

I previously used Sidestep to connect to an EC2 VPN, and when I did it would show that it was connected by showing the disjointed arrow. I've switched to using a VPN I setup in OS X's Network preferences, the option "Reroute through VPN," in Sidestep and now when I'm connected it shows an unsecured icon in the menubar when it's connected.

Sidestep silently fails with server setting "AllowTcpForwarding no"

I had been happily using Sidestep for some time, and loved the fact that it automatically triggered, but at some point I started to wonder whether it actually did what it advertised what was on the tin. I activated it, opened up whatismyip.com and imagine my surprise when it displayed my original IP address. So I started digging further.
I looked into the Proxy system settings, and the proxy was not enabled. I tried to enable it myself, but OS X (10.8 at the time) refused to activate it.
So I copy/pasted the ssh command from Sidestep and tried to connect manually. I then manually enabled the proxy system setting, and I found many instances of the following:

debug1: channel 2: free: direct-tcpip: listening port 9050 for 6-p-07-ash2.channel.facebook.com port 443, connect from 127.0.0.1 port 54921, nchannels 4
debug1: Connection to port 9050 forwarding to socks port 0 requested.
debug1: channel 2: new [dynamic-tcpip]
channel 3: open failed: administratively prohibited: open failed

After some more digging I found that the server I intended to use had set AllowTcpForwarding no in its config.

The "Test Connection" button in Sidestep meanwhile still happily reported that everything was working perfectly.

Could a test for this case please be added? Otherwise you are luring users into a false sense of security by displaying that traffic is rerouted over the tunnel, while in practice it is not.

Not remebering

Hello,

Everytime I open Sidestep, it does not automatically connect to the set SSH profile. I have to connect within the preferences, then try connecting, then re-enter the password (which doesn't save in the Keychain btw) and then it finally connects. What's the problem, or is it me?

Feature req: test for web authentication

Many open networks use some kind of webform for authentication and/or user agreement of the TOS. It would be great if Sidestep could detect the presence of these kinds of redirects and wait for the user to authenticate/agree. Once the internet connection is succesfully set up, Sidestep should automatically setup the proxy connection.

AFAIK Apple currently uses a hardcoded URL to a known file in iOS to test for an internet connection, if this fails it shows the user the webform for authenticating/agreeing. Something similar could be used by Sidestep perhaps?

always connect tunnel

I use sidestep as a tunnel a bit like a VPN. Not necessarily because it's secure, but because it enables the bypass of firewalls and access to my home network.

As such, it would be good to have a feature to automatically connect, regardless of wether the network is 'secure' or not.

[Feature]: Multiple servers

Would be very useful to be able to create multiple settings for different servers and the select which one to connect to from the menu.

Sidestep doesn't enable SOCKS proxy

Just configured SOCKS proxy using an SSH server. After connecting to open network, Sidestep icon changes suggesting it has connected to SSH server. But I don't see any changes to SOCKS proxy. The browser also shows same external IP address before and after Sidestep connects. Am I missing something? Am I supposed to see SOCKS proxy enabled after Sidestep connects to SSH server?

UDP support?

Is there something we can add to the SSH command to support UDP over SOCKS?

Feature Req: HTTP and HTTPS proxy support

Sidestep is easy and cool, but it only support socks proxy...

I like to use

ssh -L lport:host:rport user@host -N

to create HTTP proxy other than socks proxy, if Sidestep add HTTP(HTTPS) proxy support, that would be more cool!

No connection after reroute

Hi,

I installed Sidestep and configured it to use SSH on my webhosting server. The connection test in the preferences runs successfully.
If I reroute the traffic manually, I can't get any connection afterwards. If I set it back to normal routing without SSH it works as usual.

What am I missing and how can I find a point to fix it?

Regards,
b1tchnow

Ignoring /etc/hosts file

Not sure if this is inherent to how proxies work, but when I connect it seems to ignore any records in my /etc/hosts file. As a developer I kind of need those and it's now a choice between hosts file and secure proxy :/

Can't restore direct connection

Since one of the 10.7.X updates the "restore direct connection" menu item doesn't work anymore. As a workaround I'm always disabling the SOCKS proxy in the net settings and killing the ssh tunnel afterwards.. Reopening sidestep after that.

If you need any more information tell me. Right now I'm running 10.7.4 with newest XCode (if that matters). Haven't compiled Sidestep myself.

Allow cipher types via the "c" flag

Allow us to use encryption of various cipher types by adding the c flag to the ssh command: -c 3des-cbc. SSH is a powerful beast, so perhaps this (and other issues) is best added to the app by adding a simple text entry field for extra arguments. You could then take these user-entered arguments and append them to the SSH terminal command.

Proxy setting unchanged in Snow Leopard 10.6.8

Connecting to the proxy server using Sidestep works fine, but the proxy settings are never changed in the Network settings. When I manually enable the SOCKS proxy in the Network settings, everything works fine. I am using Sidestep version 1.3.2. I have another computer running Lion 10.7.4 with the same version of Sidestep that doesn't have this problem.

Sidestep not recognizing VPN

I have a VPN configured and saved but Sidestep is not showing it as an option in the "Available VPN Services". I've restarted Sidestep, but that hasn't made a difference. I'm running 10.9 Mavericks...anyone else seeing this?

screen shot 2013-11-19 at 9 18 38 am

Crash on connect

Sidestep crashs without error message when I choose "Connect" in the menu.

Infos:

  • Sidestep: 1.3.2
  • OSX: 10.8.1

Feature req: automatic restore after wake-up

Currently sidestep maintains the redirection state when a computer goes to sleep and wakes up.

The SSH connection usually fails if the computer goes to sleep, but this is not always detected by Sidestep.

Possible code typos?

The new Xcode noticed two code errors in AppController.m:

if (GrowlSpam_ConnectingToProxy == 0) {
    [growl message:connectingConnectionStatusText];
    GrowlSpam_ConnectingToProxy == 1; // Want single "="?
}

And:

// Reset GrowlSpam variable to allow notifications now that spam should have ended
GrowlSpam_ConnectingToProxy == 0; // Here as well?

Gatekeeper

Will the app be updated to work with Gatekeeper, as an identified developer etc ?

Port Number Formatting

When using a 4 digit port number, e.g., 5822 Sidestep inserts a comma so it becomes 5,822 which makes connecting impossible.

HowTo setup Transmit?

Hi,

I'm using SideStep to re-route all (the possible) traffic through my server (using SSH), and was trying to get Transmit using my server too.

I'm really not a Proxy / Socks guru at all. Under Transmit there are a lot of proxy options like SOCKS 4, SOCKS 4a, SOCKS 5...

I tried severals but didn't get my FTP connections to work.

Any feedback on this?

Thanks,
Jérémy

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.