Abstract This howto explains how to get an extra Windows computer installed and set up, so that it is accessible to current hardware through the network. The Windows computer is configured to be used remotely, so the computer itself has no monitor, keyboard or mouse. In most cases this means the CPU housed in a case, connected to power and a network connection. Motivation I use Linux on a daily basis. However, there are times when I need a box to do specific Windows jobs, which my Linux machine cannot do yet. An example is to use instant messengers to talk with my parents with. Your reasons may vary, but we'll agree that there are times when the vendor lock-in bites, and there is no way out. The simple solution is to buy a Windows machine. Since 99% of my time is spent with Linux based work this option will not be considered. Another option is to get VMWare and run windows on the same computer that Linux runs on. The disadvantages with this approach are: a. Only an x86 machine running Linux can be used here. Since Linux now runs on a variety of hardware, this is a big limitation. My primary machine is a PPC running Linux, for instance. b. The performance of Windows under VNC is limited to what the VNC software can do c. One cannot upgrade only the Windows computer, to increase more RAM, say. The Linux computer needs an upgrade as well. This is undesirable. Due to the dramatic fall in computer prices, it is seen that old computer hardware is even cheaper. It is not unreasonable to buy a Pentium class computer (without monitor) in under $20. My university routinely auctions out hardware, and in under $10, one can get a resonable Windows machine, with monitor as well. However, a monitor is a clumsy addition. Since we plan to use our Windows machine for small jobs, it is desirable that the computer is available to us all along, without our having to take the trouble to approach it, turn it on, and get our work done. Ideally, we want to use our primary computer all the time, logging into a Windows computer only for quick jobs. The Windows machine should be a _Windows_ server, in the sense that when we need Windows services (things only Windows can do), we should login, get our job done, and log out. Setup in brief We purchase an extra Windows box, and fill it up with the hardware required. It is loaded with Windows. A network card is added. Then we get Virtual Network Computing (VNC), and Back Orifice (BO) servers for the Windows machine, and clients for the Linux machine. All this software is available over the Internet. Windows side setup Get an old machine. You can buy these for cheap through friends, University or other auctions. In the extreme case, eBay might be used, though shipping on these is expensive ($40 or nearabouts). Stuff as much of RAM as you can possibly get: one of the primary performance bottlnecks on Windows is RAM. Borrow a monitor from somewhere. This is used only to set up the computer and will be returned later. While you are at it, borrow a suitable keyboard (xt or ps2.) and mouse (serial, ps2 or usb) Buy a good network card: one that works reliably in Windows. Old network cards are cheap too. These are available over eBay. Install Windows (95 or up) on your computer, taking care to install the network card for TCP/IP. Ensure that it works with your current Linux setup. Ping to and from the box. (If you don't have a network already, you might need to get an ethernet crossover cable or a hub. Check the Networking HOWTOs on this.) The VNC home page is hosted at: http://www.realvnc.com/ Their download page is at: http://www.realvnc.com/download.html Get their latest server, after verifying that it runs on your computer. You need to run the VNC install program. It will ask you if you want to run VNC as a service. Say "Yes" to this. Give VNC a nice password, while you are at it. Keep this password different from all other passwords, since Windows isn't a very secure OS. BO is usually available from http://www.cultdeadcow.com/tools/ There is BO 2000 (BO2k) and the old BO. I prefer the old BO, primarily since there is a command line Linux client for it. I have a mirror of BO, which can be increasingly hard to find on my page at: http://www.mayin.org/~aragorn/computers/ BO is a very powerful program. You can do more using BO on a Linux client that you can do on the Windows box running the server. Very powerful indeed. We need it since Windows freezes up often, and there has to be a remote way of killing naughty programs, and rebooting the machine. Unzip the bo.zip file. Start a command prompt. Run boconfig with the name of the BO server, to configure the server. Ex. c:\windows\temp>boconfig boserve Choose any name for the server: doesn't really matter. Make sure to choose a password for BO, or else everyone will have God-like powers on your little Windows box. Try to run it on a nonstandard port (not 31337), so that idle scans don't reveal that you're running BO. If possible, run a firewall to this Windows machine to protect it from other users. Now run the server by double clicking on it. Nothing happens. That's how it should be. BO is now installed. Remember the password, and the port, you'll need it. Linux side setup Verify that your computer can talk to the windows machine. Ping to and fro, and see if you have connectivity. Grab the VNC client for Linux, and the BO client for Linux. Both are available at the same place their server was. If you are using a non-x86 Linux box, you'll have to get sources for both of the above and compile it yourself. These are also available on the sites. I have a copy of the sources that are used on my ibook running Linux. Build the clients, as indicated by the instructions, and run them. RTFM Read the client and server manuals for both BO and VNC. They are both very powerful and can do cool things. Just because you didn't pay for a box and shrink wrap software is no reason to ignore their fine documentation. Talking of money, you might want to make a contribution (in either effort or time) to VNC and BO for their excellent work. I am not affiliated with either, so don't send me money intended for them. Run it! Run the VNC client on Linux, giving the IP of the Windows machine and the password when prompted. You should see the Windows desktop on your Linux machine. Run the BO client. The commands, to connect to the Windows box and verify things are OK are: boclient> host host IP> passwd host IP> dir Final touches Now that you have verified that everything works, it's time to remove both monitor and input devices (keyboard, mouse). Since some computers have ethical issues with booting up without a keyboard and mouse, this is a little tricky. Windows has a nasty habit of asking for a password on boot up. Since we will not be around, we have to disble this irritating feature. The way to do this is to right click on the Network Neighborhood. Under "Primary Network Logon", choose "Windows Logon". This is on the "Configuration" pane of the "Network" control box. Now reboot, and it will ask you for a password for the last time. Enter any username you want, and a blank password. Windows asks you to verify that password. After completely booting in (hard disks stop grinding, and the machine appears placid), do a shut down. On the next boot-up, it should fly past without any logon dialogue box. Now is a good time to verify that the computer gets you on the Windows desktop on boot up. You should not have to enter any passwords, usernames, or coffee preferences. Turn off BIOS password prompts, LILO or GRUB prompts, etc. The goal is to setup a machine, which gets to the desktop in case of power failure. You should just turn it on, and without human assistance, the machine should get to the screen where you can see the "My Computer", and other Windows structures. We will be rebooting Windows remotely, and don't want to plug a monitor just to type the sorry "password" that Windows requires. Shut down the Windows computer, and remove the mouse, and switch it on. Windows might complain about lack of mouse. If it pops up a dialogue box, click on the relevant checkboxes to ensure that he doesn't complain about this in the future. Shut down the Windows computer, and remove the monitor, and switch it on. If the BIOS complains about lack of monitor (couple of nasty beeps on startup), reattach the monitor, and disable all such settings in the BIOS. Shut down the Windows computer, and remove the keyboard, and switch it on. Verify that it doesn't complain. If it does, then attach the monitor, find out what the complaint is, and see if you can get rid of it. Otherwise, you'll have to leave a keyboard plugged in at all times. Not such a big deal. Now shove this computer in a closet, making sure the network connection and power are plugged in and working. This is your remote Windows server. Cool, isn't it? Security Be warned that this is a _very_ insecure setup. The insecurity arises from the following: a. The windows machine accepts connections from anyone on the basis of a lousy little password. Once connected through VNC, the remote user has total access to the machine. b. There is BO installed on the machine. There used to be a lot of BO script kiddies, looking around for weak machines. This might have changed, but BO clients can still look you up. Make sure your BO password is reasonably difficult (CAPS, numbers, special characters) c. Anyone can monitor traffic (on ethernet) and see what you're upto. I would highly recommend setting up a firewall if you are connected to the Internet 24/7. Do not leave such a Windows box on the Open Internet. You are inviting the wrath of the Gods of System Administration. I would also highly recommend not putting _anything_ of value on this Windows box. Do not use it to access sites requiring credit cards. Do not use it for any sites requiring passwords. Do not put sensitive information on it. End Notes All the software for this setup is mirrored on my page at: http://www.mayin.org/~aragorn/computers/