December 1, 2010

Bypass Heavy-Handed Web Filters with Your Own Proxy Server


If your workplace or school's extra-restrictive internet filter has you pulling your hair out during the occasional browsing break, there's hope! Here's a quick look at how to get around heavy-handed browser restrictions with the open-source PHProxy.

Back in January we pointed you toward PHProxy, along with some instructions for setting it up on a web server; fact is, most people don't actually have access to a web server to run something like PHProxy. The solution: Install a local web server on your home computer, then run PHProxy from there. Setting one up is actually a lot easier than you may think.

A quick crash course on proxy servers: Let's say your dastardly workplace blocks you from reading Lifehacker. Many web filters block web sites based on URLs, so if Lifehacker were blocked, the filter would recognize the URL http://lifehacker.com and automatically block any connection. A proxy acts as a go-between for your browser and the web site you want to access, and as far as the web filter can tell, the proxy-employing user isn't visiting Lifehacker—she's visiting whatever the URL is for the proxy. And since we're setting PHProxy on your home computer, chances are slim that the web filter will block your home IP address (or URL, which we'll talk about more below).

When you're done here, you should be able to access restricted sites from anywhere by routing your requests through your home computer. First I'll explain how to install a local web server on your computer (for Windows and then Mac users), then explain how to install and use PHProxy from there, and finally I'll walk you through how to access your newly minted local proxy server easily from any other computer.

Download and Unzip PHProxy

Regardless of your OS of choice, the first step is easy: Head over to SourceForge and download PHProxy, then unzip your download to a folder and name that folder phproxy. Put it in a safe place, and we'll get back to it later.

Install a Local Web Server on Your Windows PC

In order to run PHProxy on your home computer, you'll need to install a local web server. You've got lots of options for doing this, but probably none easier than just downloading and installing WAMP—which stands for Windows (your operating system), Apache (the web server), MySQL (a database, which PHProxy won't actually use), and PHP (the popular programming language, which PHProxy is named for and written in).

Once you've downloaded WAMP, go ahead and run through the installer. It's a pretty basic install, and when you're done, launch the WAMP system tray application. After you do, you'll notice a new icon in your system tray (it's the one that looks like a speedometer). WAMP's running, but it's still not turned on. To put WAMP online, left-click the system tray icon and click Put Online.

Now, to verify that everything's working, left-click the WAMP icon in the system tray again and click Localhost—or just point your browser to http://localhost/. If all's well, your browser should load a page that looks like the one below.

Good work—you now officially have a web server up and running on your PC. You can skip the Mac section and head straight to the section on installing PHProxy to your server.

Install a Local Web Server on Your Mac

Above, Windows users installed a web server bundle called WAMP—in which the 'W' stood for Windows. Mac users, appropriately, have MAMPMac, Apache (the web server), MySQL (a database that you won't actually be using), and PHP (a popular web programming language after which PHProxy is named). So go download MAMP (it's a hefty 156MB download) and install it to your Applications folder (make sure you install the free version and not the Pro version).

Now it's time to fire up MAMP. Open the MAMP folder you dragged to your Applications folder, then double-click MAMP.app to launch it. On this first run, click the Preferences button in MAMP, click Ports, and then click the Set to default Apache and MySQL ports button. Hit OK (enter your password to confirm), then point your browser to http://localhost/ (or http://localhost/MAMP/ if you want to see the MAMP landing page). If everything's working as it should you should see a page called "Index of /" at localhost, or the page below if you go to the MAMP URL.

Good work, you're officially running a local web server on your Mac. Now to PHProxy.

Install PHProxy on Your Server

Now we want to install PHProxy on your server. I'm using "install" pretty loosely here; assuming you've already downloaded and unzipped PHProxy to a folder named phproxy, all you really need to do is copy that folder to the root directory of your local web server.

To find your server's root directory on Windows, just click the WAMP system tray icon and click www directory (which, on my Windows 7 installation, is located at C:\wamp\www\. Inside this folder you should see a file called index.php—that's the page that loaded when you pointed your browser to http://localhost/ above. Now simply take the phproxy folder you unzipped PHProxy to above and drag it directly inside the www folder.

Mac users, the MAMP root directory is located inside the MAMP folder at /Applications/MAMP/htdocs/. Likewise, just open that folder and copy the phproxy folder to it.

And… there you have it-you've officially installed PHProxy. To make sure it worked, point your browser to http://localhost/phproxy/. You should see the page below.

(Click the image above for a closer look.)

To test it further, all you have to do is type or paste the URL you want to visit into the web address input box and hit Enter. Below you can see me visiting Lifehacker through my PHProxy installation.

(Click the image above for a closer look.)

Depending on what your web filter is blocking, you can tweak the way PHProxy works—you can show or block images, allow or reject cookies and scripts, encode the URL you're visiting into a string that's complete gibberish, and more. Handy, huh?

Set Up Port Forwarding and a Friendly URL

At this point PHProxy should be working fine from your home computer, which is all well and good, but now we need to make it easy for you to access your local PHProxy installation from outside your home. To do so, we're going to have to set up port forwarding, then optionally we'll give your PHProxy server a friendly URL.

Set Up Port Forwarding on Your Router: When you try to communicate with your home computer from outside your local network, the request first has to go through your router—which then identifies which computer the request is intended for and sends it on its merry way. When you're running a web server on your home computer, other computers looking to communicate with that server will try communicating with it on port 80 (you don't really need to know what any of that means; web servers generally communicate on port 80, and that's what browsers try to access by default). So when your router receives a request on port 80, you need to tell it that those requests should be forwarded to your local PHProxy server.

Rather than detail the entire process, I'll point you toward our previous guide to accessing a home server behind a router/firewall. All routers are a little different, and that's a general guide, so if you want more specifics, try visiting PortForward.com, selecting your specific router model, and finding the instructions for setting up port forwarding with Apache (the web server).

If you've successfully set up port forwarding, you should now be able to access your home server by visiting your network's external IP address (this is the single address that identifies your home to all the other computers on the internet). Quickly point your browser to What Is My IP and copy the series of numbers following "Your IP Address Is:", paste that into your browser's address box, and hit Enter. If everything went according to plan above, your browser should now load up your local server. Add /phproxy/ to the end of your IP address and you should see the PHProxy homepage. Smooth.

Now that your web server is accessible to the outside world, you don't want to let just anyone access it, so at this point it's a good idea to password protect your server. We've already been down this road before, too, so rather than explain it all here, head to step three in our guide to setting up a personal home web server. (For a little extra help generating the necessary password files, I also like web site Htaccess Tools.)

Set Up a Friendly URL: You could stop at that point, but that series of numbers that makes up your IP address isn't all that friendly, and in fact, if your ISP assigns you a dynamic IP, it could change regularly. Luckily you can assign a friendly domain name to your home proxy server for free using DynDNS.com, a process that we've detailed in the past.

By assigning a domain name to your home server, you can create an easy-to-remember viagra buy uk URL like mycrazyproxy.selfip.com, rather than typing in 76.189.XX.XXX every time you want to access your home server.

A Few PHProxy Pointers

PHProxy is an excellent tool, but you should also be aware of the concessions you're making when using it. For example, you should expect your browsing experience to slow down considerably when you're browsing through your home proxy. Remember, your requests are being routed through your home proxy server every step of the way, which puts a rather slow middleman (your home network) between you and the web sites you want to access.

Also, while PHProxy works like a charm for most plain old browsing, it can be tricky when it comes time to log into some web sites. For example, I could log into Twitter without any issues, and I was able to get to the static HTML version of my Gmail account and Facebook, but—though I was able to log in—I had trouble viewing either until I told PHProxy to remove scripts. In fact, I found that removing scripts was a good step whenever I had trouble with sites I wanted to log into.

Last, a Note on Responsibility

Setting up your own proxy is a fun project, but a few things to keep in mind if you're actually planning to use it in your workplace:

  • Even if you're using a proxy, your employer can still see everything you're doing on the internet (and your computer), whether they're watching the data as it comes to your computer or they're literally watching your screen.
  • Some employers actually forbid the use of proxies in their employee agreements, so if you get caught, you could face some very serious consequences (like, you know, getting fired), so use at your own risk.

Got your own tried and true method for accessing blocked web sites? Have a web filter that just won't be defeated? Prefer not to mess with the establishment? Share your thoughts and experience in the comments.

Permalink • Print • Comment

Best Home Server Software

Best Home Server Software
Media files, data synchronization, and remote backups, oh my! Home computing has advanced to a point where it's practical to run your own home server, and we're running down the five best tools for the job.

Photo by Rudolf Schuba .

Earlier this week we asked you to tell us what software you used to power your home servers and add that extra kick of convenience and power to your home networks. After tallying up the votes we're back to share the top five contenders for the home server championship belt. The following server implementations cover a broad spectrum of solutions ranging from install-it-and-forget-it to tinker-your-way-to-perfection and everything in between.

FreeNas

Best Home Server Software
FreeNAS is by the far the most bare bones home server software in the top five. More specifically, FreeNAS is an extremely minimal distribution of FreeBSD. How minimal, you ask? You can run FreeNAS off a 32MB flash drive. Designed to be an absolutely skeletal operating system to maximize the resources devoted to storage FreeNAS is great for when you want a simple operating system that leaves every hard drive bay and disk platter wide open for file storage goodness. Despite being so slim, FreeNAS is still feature packed, including support for BitTorrent and remote web-based file management via QuiXplorer; it even serves as the perfect iTunes music server. You can boo FreeNAS off nearly any media: hard drives, optical discs, floppy disks, and flash-based media. It has support for both hardware and software based RAID, disk encryption, and management of groups and users via local authentication or Microsoft Domains. Even an old dusty Pentium III can become a headless file-serving powerhouse with the addition of a basic $20 SATA PCI card to pack it full of modern hard drives, thanks to FreeNAS's scant 96MB of RAM requirements.

Ubuntu Server Edition

Best Home Server Software
Ubuntu Server Edition shares the ease of use that has catapulted its desktop-edition sibling to popularity. The automated LAMP (Linux, Apache, MySQL, and PHP) installation makes installing the core components of a robust server a walk in the park compared to manually configuring each component on your own. While configuring Ubuntu isn't going to be as easy as grabbing a pre-configured Windows Home Server off the shelf at your local Best Buy and plugging it in, there are a wealth of applications to help you integrate your Linux based home server with the rest of your network. It won't be as straight forward as using Windows Home Server or a Time Machine backup, but Ubuntu is more than powerful and capable enough to handle all your media streaming, remote back up, and file serving needs. We've covered using Ubuntu as the basis for a home media server before, so if you're considering trying it out check out how to build a Linux media server and build yourself an affordable media server to get an idea of what you're in for.

Apache

Best Home Server Software
Apache is the only entry in the top five that isn't a completely stand alone server package. Apache is, however, open source and cross platform; it support a dozen operating systems; and it's the backbone of many of your fellow readers' home server operations. Because of its widespread adoption and extreme compatibility with a variety of platforms, we're including it here. No matter what operating system you throw on your home server, you're almost guaranteed that you can run Apache on it. Nearly four years ago we covered how to set up a personal web server using Apache , and it's still relevant and worth a look for getting an idea what the setup entails. While you're at it, you may also want to try setting up a home Subversion server with your Apache installation for keeping track of file revisions.
viagra buy cheap />

Debian

Best Home Server Software
Why use Debian for a home server? There are over twenty five thousands software packages available for Debian, and the operating system supports 12 unique hardware architectures. There's a a slim-to-none chance you've got a computer that can't run it. Like Ubuntu—a Debian derivative by the way—you can configure this flexible operating system to do nearly anything you can imagine, from serving media and remote backups to running your own web server with a wiki and running your own mail server . Like other Linux distributions, Debian can be used to run a low-power and headless server when run without a GUI and using remote administration. Along with FreeNAS, Debian is a prime candidate for turning an aging computer into a quiet, tucked-in-the-basement server.

Windows Home Server

Best Home Server Software
If your home is filled with Windows-based computers—which the average American home certainly is—it's tough to go wrong with Windows Home Server. It isn't free, and until recently you couldn't even buy it separately from the home servers sold by Hewlett Packard and others—but even though it has the distinction of being both the only commercial and closed-source software package on the list, that doesn't mean you should dismiss it out of hand. Windows Home Server stands definitively as the most Average Joe-friendly server implementation on the list. Not only is it the only server package you can buy pre-configured and installed in a ready to go off-the-shelf server, but Microsoft has gone out of their way to make the experience of using Windows Home Server as transparent and painless as possible for the end user. In fact, many Lifehacker readers expressed the "It just works" sentiment when logging a vote for Windows Home Server. Once you have all your computers connected to your Windows Home Server, you'll have a centralized backup location that supports up to 10 remote PCs and indexed remote file storage. Printers are shared and there is easy to use remote server access to log into your archives from anywhere in the world. Files are no longer lost in a mass of drives, add a few terabyte drives to a Windows Home Server and you'll never wonder if that movie file is on the F, G, or H drive again. Windows Home Server spans drives using Drive Extender so that files are located in a single folder namespace, sans drive divisions. The most recent update of Windows Home Server even adds an option to backup the server itself to external drives for extra data redundancy. Since the Microsoft site for Windows Home Server is heavy on promotion but low on actual screenshots, check out our screenshot tour for more.


Now that you've seen the contestants vying for the title of best home server, it's time to log your votes to see who will go home with the belt—and the task of storing your mountains of media files and remote backups.

Which Home Server Software is Best? (Poll Closed)

FreeNAS 16% (1546 votes) Ubuntu Server Edition 32% (3088 votes) Debian 9% (845 votes) Windows Home Server 32% (3059 votes) Apache 6% (546 votes) Other 6% (621 votes) If you have tips or tricks for running a home server, sound off in the comments below. Many readers will be considering running a home server for the first time after reading over the top contenders above, so your experience (and accolades) could help them find a home server package that works for them.

Permalink • Print • Comment

Geek to Live: How to access a home server behind a router/firewall

by Gina Trapani

Recent Lifehacker features have covered how to run a personal web server , how to control your home computer from anywhere , and how to set up a personal wiki . For users on a home network with a router installed, home servers are not accessible from the Internet because of many modern routers' built-in firewall.

Today we'll cover how to open up specific ports on your router to allow access to a home server behind a firewall.

Please note: this tutorial is for advanced users. Your router's firewall is there to protect you from evildoers who try to control your computer over the Internet. Make sure that any service you expose to the Internet is secured with a strong password.

Enabling outside access to an internal computer on a home network requires that you set up NAT – "network address translation," or port forwarding. Forwarding sends requests for ports on the outside of your firewall to the right computer on the inside.

For instance, someone on the outside requests a page from a web server at your router's IP address. With port forwarding viagra brand cheap set up, your router knows to forward requests for port 80 (a web server's default port) to the computer with the web server running only – and none of the others on your network.

Port forwarding is only necessary when you want to expose a service to computers on the Internet outside your firewall. Some servers you'd want to do that with:

  • a home web server
  • a personal wiki
  • a BitTorrent client uploading as well as downloading
  • a VNC server
  • a home FTP server

While all routers vary slightly, port forwarding is fairly simple. Here's how to get it set up:

Step 1. Determine your server's internal IP address.

All the computers on your internal network have an IP address which looks something like 192.168.0.XXX. Get on the computer with the server running and open a command window. Then type ipconfig to determine the machine's internal address, like so:

C:\Gina>ipconfig Windows IP Configuration Ethernet adapter Local Area Connection: Connection-specific DNS Suffix . : IP Address. . . . . . . . . . . . : 192.168.0.11 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.0.1

In this case, as you can see, the server's internal IP address is 192.168.0.11.

Step 2. Configure your router.

Most routers have an web-based administrative interface that's located at http://192.168.0.1. (This address does depend on your model. Consult your router user guide for more info.)

Once you've gone to the router administration, entered the password (if one is set up), there should be an area called "Port forwarding." There, you'll set the port number that requests from the Internet will come in, and the internal computer that should fulfill those requests. Here's a screenshot of my Netgear router set up to port forward 5900 to my VNC server, which is at 192.168.0.11 (see above). Click on the image to see a larger version.

Here's a table of common services and their default port numbers.

Service Port number
Web server 80
VNC (remote control) 5900
Instiki wiki 2500
FTP 21
BitTorrent 6881-6990

Any other services you port forward for that I missed? Add it in the comments to this article or drop me a note at tips at lifehacker.com.

Permalink • Print • Comment

Geek to Live: How to control your home computer from anywhere

by Gina Trapani

Ever been at a friend's house and wanted to show off a photo you left saved on your home computer? Ever wanted to check from the office that your daughter's doing homework and not instant messaging with friends at home? Ever need to grab a file on your home hard drive when you're miles away? An age-old protocol called VNC and some free software lets you control your home computer from anywhere.

In this tutorial, we'll set up a VNC (Virtual Network Computing) server on your home computer, which will let you connect to your desktop and drive it from any Internet-connected computer.

Notes and warnings: Running a server and opening up a port on your home computer to the Internet is a risky undertaking. Make sure your computer has all the latest security patches, has been checked for spyware and viruses and that you're using strong passwords. The VNC protocol is not inherently secure. This how-to assumes you're comfortable with basic networking concepts. If you're scared off by the fine print, check out an easier alternative [1] to VNC. Still with me? Read on.

The Virtual Network Computing (VNC) protocol remotely controls another computer over a network. Think of it as a window into your home computer's desktop from any other computer. Your key presses and mouse clicks get transferred over the network and happen on the remote computer in real time, and anyone at the remote computer can watch the action as it happens.

A few things you can do with a VNC server running at home:

  • Start a downloading a large file, like a movie, in the morning so it's there when you get home in the evening
  • Search your home computer's IM logs, address book or file system for important information
  • Help Mom figure out why Microsoft Word doesn't start without having to go to her house (even though Mom would like to see you more often)
  • Control a headless (monitor-less) machine like a media center or file server in another room in the house from the laptop on the couch

VNC requires two components for a successful connection: the server on your home computer, and the viewer on the remote computer. Let's set up each component to get going. Here's how.

Step 1. Install the VNC server.

Windows users: TightVNC is free Windows VNC server and client software. TightVNC is a nice choice because it also allows for file transfers and high compression levels for slow connections. Download TightVNC from here and run the installation on your home computer. Start the server, and set a password for incoming connections.

TightVNC can be set to run as a Windows service, which means your Windows usernames and passwords can be used to authenticate on the VNC server connection. Be sure viagra brand by online all your Windows passwords are set and strong, and that any passwordless guest accounts are disabled.

Mac users: OSXvnc is a free Mac VNC server. Download, install, set up a password and start the server.

If your VNC server is connected directly to the Internet, it is now listening for Internet requests [2] on port 5900, VNC's default port (which is also configurable). Visit WhatIsMyIP from your home computer to determine its IP address and write it down.

Step 2. Install the VNC client.

On the remote Windows computer, also download and install TightVNC, but this time, start the viewer, NOT the server. If you're on a Mac, download the free Chicken of the VNC Mac viewer to connect to your home PC. Enter your home computer's IP address [3] and password to connect.

Here's a screengrab of a VNC connection to my Windows PC from my Mac. Click on the image to see a larger version.

And that's that! You're virtually sitting at your home desktop from anywhere in the world.

A few extra VNC tips to chew on:

  • For slower network connections, set the compression to "best." The window image quality will be lower, but the connection response will be snappier.
  • Bring a VNC viewer with you on a USB memory stick so you don't have to download and install on every computer you want to use to connect to your server.
  • Avoid having to install a server on Mom's computer; email her the 166K self-extracting SingleClick UltraVNC server for your next tech support phone session. More on SingleClick in an upcoming Lifehacker feature.

Gina Trapani is the editor of Lifehacker. Her special feature Geek to Live appears every Wednesday and Friday on Lifehacker.

FOOTNOTES:
[1] LogMeIn is a web-based application that also provides this remote desktop control and may be a better option for some folks. I prefer VNC because it's more of a challenge and doesn't require third party intervention. [back to top]

[2] If your home computer is behind a home network router with a firewall, remote computers will not be able to connect. You must open up a port on your router's firewall and forward requests to it to your computer, a how-to that's beyond the scope of this article but will be covered in an upcoming Lifehacker feature is covered in the Lifehacker feature How to access a home server behind a firewall. [back to top]

[3] Alternately, you can enter your home computer's domain name. For more information on setting that up, see previous Lifehacker feature Assign a domain name to your home server. This way, when connecting using the VNC viewer, you can enter an address like mycomputer.dyndns.org instead of an IP address

Permalink • Print • Comment
Made with WordPress and a healthy dose of Semiologic • Sky Gold skin by Denis de Bernardy