|
The perenial Linux / Windows Debate continues to rage. How many times have we heard something to the effect of "Linux is fast replacing Windows as a prefered operating system in <insert sector name here>" Which I think most people take with a pinch of salt. Where am I going with this? Im afraid its another "is linux better than windows" article.
Personally, whenever Im reading some article about which option is best for any given situation, I like to get my answers quickly. So to keep things simple, Ill offer my opinion, and then give you the reasons:
"Windows is better than Linux, SOMETIMES"
Talk about sitting on the fence! Now im not looking to start a fight with a bunch of linux advocates.... or Windows advocates for that matter. To be honest, this is my attempt at answering the oft quoted charge that Linux will never get into the main stream of operating systems. Its also supposed to be a guide for Windows users who have seen the multitude of things that linux is cabable of, and are looking to take thier first steps into that "unknown" command prompt domainated world.
Im not going to go into the Linux equivelents of commands and options, Just give advice to those thinking of starting the journey, and hopefully imparting some useful advice. ... Infact, since that was the original focus of this peice, I think Ill do just that
"I use Windows server all the time, and now I want Linux to be my xyz server"
First of all, congratulations, you've realised that Microsoft isn’t the only option for server operating systems. Now you probably know that when it comes to usability, Microsoft has the game all sewn up.Consider the task of setting up a bog standard VPN for a Windows server: Install the Routing and remote access service (since Windows 2000 available through a wizard) define the users that access to "dial" in, if you want to get really complex, define some VPN policies. Now putting aside the fact that by default MS VPN uses PPTP and all the bad things that go with it (including the Windows inbuilt VPN client) What you have is a VPN server that does the job 90% of the time.. good enough for most people.. (even me!) then you have one fully functioning VPN server that users can connect to and get access to server and network resources. The whole process takes 10 minutes at most, you've got your vpn and you've got the rest of the day to relax (or at least do other things)
Its the same on Linux, of course you have install the OS to begin with (as you do with windows, but at least Windows makes it easy - if you want a VPN for more than 1 person at a time, get Windows Server 200x) Linux, not so easy Debian, Fedora, Ubuntu, Mandrake... the list goes on (I btw, use fedora) But to be fair to most Linux Distros (Distributions) most of them have a wizard style installation routine that is pretty easy to use.
Next, lets look for a Linux VPN server. Do a search for this in google, and you'll get results for a product called "Openswan". Openswan uses (by default) IPSEC to generate vpn tunnels, which are very secure, and are supported by most hardware vpn solutions, and are generally created on demand (rather than having to double click a "connect to my vpn" icon) .. and I expect your response will be the same as mine (at the time):
"I just need a bog standard PPTP VPN. Yes I’m aware that its not as secure as IPSEC and that Microsoft might not suit everyone’s tastes, but I just want a way of setting up a VPN server using Linux, that I can get up and running in ten minutes, like I do with Windows, and people are raving about Linux, so I must be able to do that right?"
Right! on all points but the ten minutes! Now obviously Im generalising, and I dont think that Im sooooo intelligent that if I couldn’t figure it out in ten minutes, then no-one else will... but for your average "Ive used microsoft products most of my life, I know my stuff, and now I want to try linux" IT person... ten minutes wont even scratch the surface.
The main reason for this is the assumed level of knowledge. Microsoft, generally assumes a very low, or non existent level of knowledge for most of its products. Sure you cant set up Exchange with various bells and whistles without knowing a bit about what you're doing, but generally, if its possible to do, Microsoft have written a Wizard for it. As I mentioned before, its quick and simple and protects you from the inner workings of whatever it is you're setting up. Linux on the other hand (somewhat incorrectly) assumes that (in the case of a vpn server) you know the impact of changing the MTU, or what a pre-shared key is, or how security certificates work.
I guess that’s what sums up the problems with *nix (linux / unix): The assumed level of knowledge is just too high. I mentioned earlier that there have various attempts at getting linux "user friendly" And of course there is one notable success. OS X (Yes the mac operating system) Is living proof that it can be done, without compromising the "nuts and bolts" functionality of linux. But if you want OS x... again, It'll cost you!
My other feeling on Linux is that its inherent strength is also simultaneously it greatest weakness. That of course being the "community" nature of its support. Now i dont want to detract at all from the benefits of it, and 99% of people who have the knowledge are normally all to happy to offer advice to a noobie like me who's sitting on their pc on the other side of the world. (Who says charity is dead?) But unfortunately, people who have a good solid understanding of linux, tend to assume (as I touched on earlier) that you know a lot more than you actually do. But who can blame them? they've been using linux for years, so its obvious to them that the # prompt is the equivalent of the c:\ prompt in DOS/Windows. They assume you know that must have the gcc++ development Libraries installed in order to compile "Kevins xyz firewall and proxy server" and of course... this isn’t always the case.
Development to most standard users is something "other IT people do" so understandably, encountering an option in a Linux Installation wizard of "Install the gcc++ development libraries?" Is usually met with a thought process similar to : "I wont need those, because Im just trying to install a (for example) Vpn server, and have no intention of developing any programs" , and the box is left unticked. However, once you get your linux box setup (a couple of hours of installation) and try installing almost any program of any worth, and of course you'll find you'll need to compile it, and that means you'll need (guess what?) the gc++ development libraries!
So what now? Reinstall linux? try and install it manually? My first experience of Linux was Redhat 9. I set myself the task of setting up a mail server, with web access using the guide on qmailrocks.com (it does indeed rock, if you were wondering) I must have installed red hat at least 30 times by the time I got it right, with all of the things needed for qmail to run. That combined with if at any stage the qmail installation didnt go according to the guide, or an error message i didnt understand, usually (more for my peace of mind) resulted in me wiping the HD clean and starting again! ... Of course Im not saying that the "Niche" nature of Linux meant I had to do that. If I'd known what I was doing, it would have taken half the time!
But lets move the analogy over to Windows. OK the only show in town is Exchange, but If at any stage the setup wasnt going well... i could have quit out, the installation would have rolled by machine back to its previous state (more or less) and I could have had another attempt.
"So, enough of the Linux/Windows trade offs! I want to set me up a super dooper linux based flange server! Where do I start?"
Im by no means a linux expert, But I feel Im nearing the end of the fairly long "getting used to linux" road, so here’s my advice for anyone thinking of taking the plunge:
- Before you attempt to setup something mission critical on linux, install your chosen distribution on a spare pc, and dedicate some time to getting to know how it feels and works. As an initail installation Id recommend Fedora, Debian or Ubuntu, all three have been tweaked to make using it as easy as the linux world can make it, and similar to what you're used to in windows. And when I say "some time" I mean weeks, not hours, or days.
- Try installing some of the more popular packages that you may not need, but add functionality to your linux box, and give you an idea of the different methods of installing programs. Webmin can be installed via rpm or by copying files to certain locations. MySQL can also be installed using RPMs and you can get yourself a fully working database server within 30 mins.
- Try and find a How - To on installing whatever it is you want to finally install. (I found qmailrocks.com for example) Read it through, try to clarify any points you don’t understand before you start... but be aware that you wont get a good idea of the problems until you actually attempt the installation.
- Be prepared to install linux a few times before getting it right. I find a clean slate always helps eliminate any doubt as to whether or not the operation you performed two weeks ago, is causing the error you are seeing.
- In my experience, reboots generally don’t solve problems on linux. Linux is very very stable (far more so than windows) but 9 times out of 10, if whatever you are trying now doesn’t work, the chances are it still wont work after a reboot.
- Be prepared to take time over setting up your linux box. If you're used to Windows, then you might think: "Ill set up a mail server this afternoon, and have it online and running before the end of the day" Forget it. It just wont happen. You'll need to get the installation correct, and to your liking, and then you'll want to run the mail server and test its ok for at least a week, before letting your users loose on it.
- Finally, and this is the golden rule in my opinion: DONT GIVE UP! Linux can do what you want it to do. But as with all things that give you a lot of power and flexibility, you have to put the time in to understand how it works. To get to the level of knowledge I have now (where I feel confident I could do anything on Linux, that I can on Windows) Has taken me around 8 years. Granted, Ive not sat at a linux box for every day of that, and I dont consider myself to be especially quick on the uptake, so you might pick it up quicker, on the other hand, you might take longer, its a very personal thing. But as the old saying goes, dont try to run before you can walk. In Windows, the crawling - walking - running cycle takes very little time, with linux, it takes longer. But as your knowledege builds it will become easier and easier to get things up and running, and before long, you will be able to setup an IPSEC VPN in ten minutes, and end up with something a lot more reliable and secure than anything you could do on Windows. Then, and only then, a Linux Jedi Will you be.
|