How to force whole-network Tor with LAN -> Tor -> WAN configuration?
-
you can always just run TOR with no squid and load the TOR proxy settings into all the browsers and chat tools etc that you use.
I just wanted to clarify that this actually does not work at all. If you run the tests at ip-check.info, you'll see just a few examples of all the ways your IP can leak past Tor. It's really pointless to try using Tor, because if your PC knows your true IP address, then it's only a matter of time before it can be learned by attackers or casual observers. Whonix is the first solution I've seen that thoroughly solves that problem, but only for one very limited VM.
Basically, by forcing Tor for a whole network, and blocking everything else, it's quite EASY(!) to ensure your PC doesn't know its own IP address. Then, even if you get rooted, your IP address, and thus your location, remains secret. This is why I'm so incredibly dumbfounded that no one cares about forcing Tor for a whole network. Even Whonix skips over that entire simple catch-all solution for 99.99999% of everything that's wrong with Tor. If you wanted to, you could even run a hidden service with open root access, and there's no way to learn its IP address.
Whole-network Tor is the H-bomb of privacy, and nobody seems to have fully realized that yet. The Whonix developer, adrelanos, is aware of that, but I don't think he has yet understood how important it is as a first step to using Tor. Instead, he designed Whonix to serve a much more narrow niche that perhaps 100 people in the world will bother to use. Whonix comes with a nearly useless desktop that's so limited, it's meant to be difficult to distinguish from others just like it, even if it gets rooted. In other words, Whonix promises ultimate anonymity AND location security, at the price of being useless. So, almost nobody has heard of it, almost nobody talks about it, and almost nobody wants it.
Step 1 is securing a location. That can be done, and it can be reasonably well-assured without sacrificing very much (slower Tor speed, UDP only with tunneling, etc). Anonymity can't be assured by any software package, and it's strange that Whonix bothers to try. There is no limit to all the ways anonymity can be lost. No amount of software, or restrictions of it, can prevent that. It's each individual's responsibility to be aware of what can go wrong. And, if someone MUST have anonymity, then they can simply use Tor Browser and turn off JavaScript, without bothering with Whonix.
For the amount of effort that adrelanos has put into Whonix, it serves a very tiny niche, for very few people. pfSense, or anything - SOMETHING - that can force Tor and block direct usage of an internet connection - that's useful, for everyone. I am shocked that no one seems to be aware of that. Even hardcore Tor people don't talk about it.
What I'd like to know is what the right way to do this is. Once I know that, then I can investigate making pfSense do it.
-
I just noticed that the transparent proxy option appears to only apply to port 80. Since I'm almost always using SSL whenever it's available, that means it will bypass Tor, right?
I couldn't see anything in your reply that answered this critical question. If the answer is yes, then I'm wasting effort on this solution, because it won't force whole-network Tor. If the answer is no, can you explain?
Once again, I appreciate that you're trying to help, but if this strategy with Squid doesn't achieve the goal I'm looking for, I'm sorry, but I've accidentally wasted your time, and I apologize. I'll have to find another way to force Tor. In that case, there's no need to answer the other questions I have to clarify what you've said, below. Either way, thank you very much for your help. Even if I didn't quite achieve my goal, I still have gained some familiarity with Squid and pfSense, thanks to the time you've spent with me here.
Proxies are subject to all sorts of "leaks" generally caused by running script.
So, NO SCRIPT.What script are you talking about?
"Basically, by forcing Tor for a whole network, and blocking everything else, it's quite EASY(!) to ensure your PC doesn't know its own IP address."
Only an idiot would block their clients computer to contact the router/firewall.
That doesn't mean that you have to allow egress to the open internet to all the clients.What router/firewall are you talking about? pfSense? Internet-connected router or modem (that pfSense connects to on its WAN interface)?
Who is the idiot you're talking about that would block contact to the router/firewall? An inexperienced pfSense user like me? adrelanos? "Hardcore Tor people"?
What do you mean by "allow egress", "open internet", and "all the clients"?
Its not all that unusual or weird what he is asking and I doubt it requires every user on his network run Whonix.
Who are you talking about that is asking something? Asking what? What is not unusual? What do you mean by "it" when you say "I doubt it requires every user on his network run Whonix"?
Whonix is designed to serve a single computer, not a network, so what does Whonix have to do with a network, and why did you mention it? Are you talking about a redesigned configuration using bits and pieces from the Whonix system (Whonix workstation + Whonix gateway = Whonix system)? Who's network is it that you're talking about that has something to do with Whonix?
-
You know, the more I think about this the more I'm thinking you really want a VPN f you wish to access streaming content, HTTPS and sites that use script.
-
Haha, you're reading my mind. I'm actually using a VPN over Tor right now. The only reason is because some sites blindly block all Tor nodes, and other sites freak out and assume my accounts have been hacked if IP geographic locations change frequently. The VPN gives me control over that, but it doesn't do anything "secret" like Tor does. The biggest problem with it is that when the VPN connection drops, communication continues via my raw internet connection. So, in practice, it doesn't work.
The thought crossed my mind that a local VPN could be used to connect to the pfSense machine or the Tor machine to ensure all traffic is being routed correctly, and nothing can escape unintentionally. Being local, the VPN connection couldn't drop unexpectedly. Also, anything that's not on the VPN connection could be blocked by the pfSense firewall.
Or, everything that's not Tor could be blocked by the pfSense firewall, similarly to what is described here:
http://torforum.org/viewtopic.php?f=f&t=18280
-
I have made some progress on achieving my goal of forcing no-leak Tor access to the internet using the pfSense firewall. It's not quite as thorough of a solution as I have wanted, but it's still useful because it serves the job of isolating my entire network from the internet, and only allowing connections via Tor. In the process of setting this up, I've discovered several leaks I was not aware of, and some of them were even bypassing the VPN somehow. It's been a learning experience overall, and I think I have a workable version of a simple solution, just like I wanted, thanks to pfSense. Here's what I have done in detail, in case someone finds this discussion wanting to make Tor safer with pfSense:
1. Configure Tor to Use a Tor bridge: Vidalia -> Settings -> Network -> Bridge Settings. This will make it possible for the pfSense firewall to allow connections only to the Tor bridge IP address, and block all other connection attempts. Adding several different Tor bridges will ensure you have connectivity if one of them goes down. Using 3 different Tor bridge IP's is recommended, but only 1 is necessary to try this out. It is much easier to find mistakes if you start with only 1 Tor bridge. More can always be added later.
The format given by the official Tor bridge service (search the web for "Tor bridge") is intended for direct addition to the "torrc" config file. Remove the word "Bridge" and add each IP and port pair one line at a time in Vidalia. That is not explained anywhere that I could find, which is strange because Vidalia is supposed to make this easy.
2. pfSense Firewall -> Rules -> LAN: Click the green icon to disable the "Default allow LAN to any rule". The rule is usually at the bottom of the rules list. That disables all communication to the internet. Don't delete it, because you might want to re-enable it in the future (it is easy to re-add it if you delete it). Next, we allow only Tor to communicate with the internet.
3. pfSense Firewall -> Rules -> LAN -> add new rule (click the + sign): Allow the Tor bridge IP's, and make sure the "Anti-Lockout Rule" is at the top of the rules list, and the "Default allow LAN to any rule" is at the bottom of the list (and disabled).
Action: Pass
Disabled: unchecked
Interface: LAN
Protocol: TCP
Source: not: unchecked
Source: Type: any
Destination: not: unchecked
Destination: Type: Single host or alias
Destination: Address: Enter the Tor bridge IP address here
Destination port range: from: Enter the Tor bridge port here (usually 443)
Destination port range: to: Enter the Tor bridge port here (usually 443)
Log: checked
Description: Allow Tor bridge4. pfSense Firewall -> Rules -> LAN: A prompt will appear above the list of firewall rules asking you to apply your changes. Click "Apply".
5. pfSense Diagnostics -> States -> Reset States: Existing connections will not be stopped when you change firewall rules, so you must close those connections before you can see the results of your firewall changes. Click the "Reset" button, then you can immediately reload the Reset States page manually. Because the connection was disrupted by clicking the reset button, the page will not be able to load on its own. When it loads, the reset is done (almost instantaneously).
6. Edit your Tor torrc configuration file, and add "DNSPort 53" on a new line at the bottom, without quotes, then save the file and restart Tor. The built-in torrc editor in Vidalia did not work for me, so I only used Vidalia to find the path to the torrc file, and then I edited it with a regular text editor. You can find the path in Vidalia -> Settings -> Advanced -> Tor Configuration File. On Windows, it might look like "C:\Users\Somebody\AppData\Local\Vidalia\torrc". To use the built-in torrc editor, click the button that says "Edit current torrc".
7. Configure your OS's DNS settings to use 127.0.0.1 as the primary DNS. If you are forced to enter a secondary DNS, you can enter 127.0.0.2 (it doesn't work and it doesn't do anything).
8. Test your setup just to verify that you have internet access. Use a safe computer on a safe connection so that it's OK if something goes wrong and your IP address leaks out.
9. In pfSense, check the firewall logs in Status -> System Logs -> Firewall. You should see a lot of stuff getting blocked, and only a few things passing through. Make sure those things passing through are supposed to be passing through, and also that it's ONLY passing through the Tor bridge IP's. If there is a problem, you will see it in the firewall log. Check the log frequently to be sure everything except Tor is being blocked. pfSense is good at that, so there's not much to worry about.
10. Turn on Flash, JavaScript, and all the nasty little backdoors that Tor users fear, and use the "full anonymity test" for your web browser at http://ip-check.info/?lang=en . In every test I have run, only VPN and Tor exits have been detectable, which is exactly the way it's supposed to be!
Because pfSense is blocking EVERYTHING except Tor, there is no way for any PC on your network to learn what IP it is using to access the internet. Because every bit of data leaving and entering your PC and your LAN must pass through Tor, there is no way anyone else can learn what your true IP is either. I setup my pfSense system with 2 separate ethernet ports, so there is physical isolation between the LAN and the WAN.
I'm sure this setup isn't 100% bulletproof, but as far as I can tell, as long as pfSense doesn't get hacked, it would be OK for any PC on my network to get hacked, and the hacker would not be able to learn my IP address (and location). Because I'm not using Tor Browser, my activities online are still trackable with cookies, JavaScript, browser profiling, etc. Although no one knows my name and where I live if I don't tell them, the ability to track my internet usage means that, in the strictest sense, I'm not using the internet anonymously.
If I wanted to be completely anonymous AND untrackable, I would have to switch to using Tor Browser, or even better, Whonix. I may do that when my tasks require that much protection, but for most things most of the time, I don't care if people know which websites I'm visiting. In my case, that information isn't a problem for me. It might be for you.
To have a full-featured internet experience (with Flash, JavaScript, etc) combined with the ability to conceal my location, is good enough for me 99% of the time. I can always switch to Whonix or Tor Browser if I need more privacy than that. The pfSense firewall will still do its job of blocking everything that's not Tor, if something goes wrong with Tor Browser or Whonix. I see that surprise bugs have been found in Tor Browser before, and pfSense would have prevented the bug from doing any damage. Here's more info about one of those bugs:
https://blog.torproject.org/blog/firefox-security-bug-proxy-bypass-tbbs
I'm sure my setup can be improved. I've noticed that sometimes my PC tells me I've got no internet access when I actually do. That's probably because pfSense is blocking DHCP. As long as stuff keeps working, then the more the merrier :)
-
One more thing, Squid will not be effective for caching on pfSense with this setup because all connections are encrypted. There might be a way to get it to work, perhaps on my local PC, but it would take some interesting gymnastics to give Squid access to decrypted traffic so it could cache some of the data. That would be nice.
-
FYI, I polished up that info a little better and turned it into an article for LBC: 10 steps to make Tor safer with pfSense. Thanks for the help kejianshi. Even though I didn't quite get to where I wanted to go, your help eventually led me to another solution that worked for me, and will probably work for a lot of other people who ought to take a look at using pfSense. I guess that's the only part of this that I got right from the start - pfSense is the key component!
-
Another FYI, my article is now slightly famous thanks to reddit:
http://www.reddit.com/r/onions/comments/1l15hx/10_steps_to_make_tor_safer_with_pfsense/
http://www.reddit.com/r/privacy/comments/1l25mu/adding_more_tor_to_your_day_leading_up_to_a_total/
I hope the attention will lead more people to try using pfSense. It's a fantastic system that more people ought to know about. Being able to so easily do unexpected stuff with it will probably get people's imaginations going. What will they think of next?!
-
Well - as long as you are happy, I am happy. Are you using it?
-
Yes, I am using it. Further research indicated that Tor was not configured to accept external connections, so I will be revisiting this topic later. It may still be possible to force whole-network Tor, without any LAN client configuration. I have succeeded in tunneling UDP over Tor and Torifying everything using a VPN. I tested it with VoIP, and despite such a long route, the increased latency was acceptable! I fully expected VoIP to be miserable to use, but it was not much worse than using it without Tor. That was a huge surprise.
-
I just created a VLAN using pfSense, and am routing all external traffic over Tor using a Raspberry Pi 2…
pfSense is my acting DHCP server, but the Raspberry Pi 2 is the default gateway... The Raspberry Pi 2 is also provided Internet access using a different VLAN that's traffic is routed over my PIA (PrivateInternetAccess) VPN, but that's defaulted at my Cisco Smart Switch... So I'm double covered...
I created an SSID on my Meraki Wireless AP just for the new VLAN so all my wireless clients that use it will be doing so over the VPN/TOR networks...
I'm also not using SQUID at all... Everything just works...
If anyone is interested, I can gladly post a tutorial...
FYI, and any traffic that shouldn't (or can't) transmit over the Tor network is being dropped to prevent leaks.
I haven't thoroughly tested for leaks yet, but am doing so now...
-
I would be very curious to see your tutorial if you write one.
-
I posted it to my blog for initial posting…
Here's the link: http://www.lennysh.com/create-a-tor-vlan-using-a-raspberry-pi-and-pfsense/
Please let me know if I missed anything, or could of done anything better.
Once I get it fine tuned, I may copy/paste it here for easy finding...
-
Just remember the spooks run their own honeypots including smaller honeypots on public websites & services in plain view.
You can be found using TOR because in maths its possible to workout unknowns and thus you wont ever have perfect privacy or anonymity which is especially bad news for introverts.
-
+1 on the need for a TOR package. It would make setting up a guest wireless network really easy. No WLAN passwords needed and no worrying about what the guest do on the network.
-
I just found out that Intel has had backdoors in their hardware for years. Of course they claim it's just a bug, and only processors from 1995 to 2011 are affected, but there is conveniently always a "bug upgrade" that removes the old backdoor and creates a new one that will take a while to be found. With that in mind, I have to wonder if we're all wasting our time. AMD said they would review the possibility that they have a backdoor, but I'm not optimistic. Who can we trust these days?
I don't know much about Raspberry Pi - is it running on something that is less likely to be backdoored? The thought crossed my mind that since ARM designs, but does not manufacture, that means anyone they license their design to would be able to see the licensed design specs, and spot a backdoor if one existed. Intel, AMD, etc don't let anyone look at their designs, so it literally takes a decades and a lot of luck for someone to find out about a backdoor.
“We cannot trust” Intel and Via's chip-based crypto, FreeBSD …
Intel left a fascinating security flaw in its chips for 16 years – here's …
I don't know why everyone isn't talking about this, and bringing it up in every conversation that remotely involves cryptography. The Intel backdoor is so phenomenally effective that it can be installed into the CPU microcode. It cannot be detected, and it can never be removed. Wiping an HDD and doing a fresh OS install will not get rid of it. Of course, Intel claims they got rid of it in 2011, but then they introduced something that could potentially be a wireless backdoor:
“Secret” 3G Intel Chip Gives Snoops Backdoor PC Access Alex …
That article seems alarmist, and people criticizing it point out that a lack of an antenna would give it pathetically short range, but I completely disagree. I think the alarmist reaction is the right one. First of all, being able to gain complete access to a CPU even if it requires you to be within 10 inches of it, is more than adequate to make the backdoor useful. Simply walking past a PC might be sufficient to gain access to it. Or, what about sending RF signals down ethernet or power lines? That'd do it too. That kind of weak signal espionage is well-developed in "spook" world, and even lowly amateur radio enthusiasts are able to pull off tricks like that.
This whole-network Tor thing is something I take pretty seriously, and I'm not afraid to turn to specialized hardware like Raspberry Pi or whatever if that's necessary to ensure Tor's cryptography can't be rendered useless by hardware backdoors. This is crazy that this even needs to be discussed, but since it does, it ought to be tattooed on everyone's forehead until solutions are found and made available. Everyone needs to worry about this.
-
IMHO if you need THAT much encryption, you're doing something really bad. Either that or you need a titanium tin-foil hat.
If you're really worried about it, drive 100 miles in any direction, find a home with an unsecured wireless connection, and use a throw-away Netbook each time you access the Internet via Tor. Oh, and either steal the Netbook or pay with cash in a back alley.
-
tim.mcmanus, how much encryption are you referring to as "THAT much"? Because what I've described obliterates ALL encryption. What exactly is a "really bad" use of encryption in your opinion? How much do you think your opinion of badness matters to people who want to use effective encryption? And, most importantly, what gives you the idea that you know anything at all about what other people are encrypting?
If you will kindly give me your login credentials for this forum, I will write your opinion for you, posing as you. I might then proceed to proclaim your love of evil and all things forbidden, once again, posing as you. You don't like the sound of that? Oh, then it looks like you need "THAT much really bad" encryption too.
No, sir, you can take your opinion of what I'm doing with my encryption, and shove it - into your favorite encryption tool, and then delete the key.
-
Famous:
https://www.reddit.com/r/conspiracy/comments/3kinq6/why_isnt_everyone_talking_about_hardware/
…and:
https://www.reddit.com/r/conspiracy/comments/3kesvm/study_shows_conspiracy_theory_insult_losing_power/
-
Time to loosen the tinfoil hat.