Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to make PC behind firewall become a socks proxy server for internet clients? #2

Open
nifflin opened this issue Apr 12, 2015 · 1 comment

Comments

@nifflin
Copy link

nifflin commented Apr 12, 2015

It's known that, in internet, a proxy server should have a public ip and port, then, clients in internet could access the web with this proxy.
But TOR changed our perception, PC behind firewall should also become a proxy server for internet clients.

It's a pity that TOR is blocked or censored in many coutries, and it's slow.I don't need the security of TOR, What i need is to make my PCs behind firewall to be socks proxy servers for internet clients (without router port mapping...).

Does there exists some open source solutions for my need? Thanks a lot!

@hardlyhuman
Copy link

Firstly, set up the SSH Connection and then follow the below procedure.
Method 1: SOCKS-supporting applications

Many applications support using SOCKS proxies to connect.

Warning: Many SOCKS-supporting applications "leak" DNS requests; i.e. even though the data is transmitted through the proxy, they look up domain names through the regular outside connection. If this occurs, it is bad for many reasons:
Any eavesdropper will be able to tell which sites you visit (even though they do not know exactly what data is being transferred).
Sometimes the local DNS server refuses to look up certain domains (e.g. censorship); resulting in not being able to find certain sites.
On a network such as unsecured wireless, it is possible for a malicious user to pretend to be the DNS server and "hijack" the request. They return a fake IP to an imitation of the real site (you would not notice because the URL looks correct), and phish your private information.
If you use an application which uses hostnames (rather than just IPs), such as a browser, and you care about DNS request leaks (and you probably should), you should either use an application which specifically supports remote DNS lookups through the proxy (SOCKS 4a protocol); or use Method 2 below.
Example: Mozilla Firefox browser
Go to "Tools" menu -> "Options"
Go to "Advanced" screen -> "Network" tab
In the "Connection" section, click the "Settings..." button
Select the "Manual proxy configuration" radio button
Make sure "Use this proxy server for all protocols" is unchecked
Make sure the "HTTP Proxy", "SSL Proxy", "FTP Proxy", "Gopher Proxy" fields are cleared
For "SOCKS Host", enter "127.0.0.1", and for "Port" enter 1080 (or whatever port you chose)
Select the "SOCKS v5" radio button
Click OK. Click OK.
Preventing DNS leaks is supported in Firefox 1.5.0.2 and above. Do the following:
Go to the URL "about:config"
Find the setting "network.proxy.socks_remote_dns" and set it to "true"
Example: Internet Explorer browser
Go to "Tools" menu -> "Internet Options"
Go to "Connections" tab
Click the "LAN Settings" button
In the "Proxy server" section, make sure the "Use a proxy server for your LAN..." box is checked
Click the "Advanced" button
Make sure "Use the same proxy server for all protocols" is unchecked
Make sure the "HTTP", "Secure", "FTP" fields are cleared
For "Socks", enter "127.0.0.1" as the address, and for "Port" enter 1080 (or whatever port you chose)
Click OK. Click OK. Click OK.
I don't know of any built-in support for preventing DNS leaks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants