I am reading the book "Ubuntu-unleashed" and there is many topics on server, host, DHCP, Apache and I don't know those topics well. Where do I start to have the basic knowledge of networking in Ubuntu and the basic knowledge about apache,mysql etc servers(If I have interpreted the client/server/host meanings correctly)?
And by the way, my ultimate goal is learning Penetration Testing. But I have realized that without knowing this basic networking stuffs I can't do much. I have set up a virtual network in vBox with two Ubuntu OS. So my question is how do I proceed in learning networking, I just need a guideline?
PS. Should I Install Ubuntu server in one VM and normal in the other?
The best resource is Ubuntu's documentation. I have listed below some pages within that documentation and some other sources to help with you.
The LAMP topics (Linux, Apache, PHP and MySQL) are covered here.
As for security, the Ubuntu Wiki has an index page, which covers various topics such as intrusion detection, firewall and encryption. You may also wish to consult the guidance given by Ubuntu's Security Team.
I'm not sure how networking works in a virtualised environment. The needed set up also depends on what you want to achieve. For example, any security testing should probable be done on a real installation, as any limitations, bugs or security features could make your testing results unreliable or inaccurate.
Finally, this blog article lists various distributions that specialise into Penetration Testing, such as backtrack-linux or NodeZero, which is based on Ubuntu.
If you are serious about developing a skill-set on penetration testing, and plan to do more than just run scripts someone else wrote, you should start with the basics.
I suggest a three step approach:
First and foremost you should develop a solid understanding of computer networks. I have found A. Tanenbaum's "Computer Networks" now in 5th ed invaluable on this (I have 3rd ed and still consult it from time to time.) ISBN-13: 978-0132126953 Steep price but worth every penny.
Second, you should start building your knowledge of network protocols (like TCP/IP, DNS, DHCP, etc) These are the backbone on which the various internet services are build.
And the last step would be to focus on specific applications like web servers, mail servers, database servers, etc
These three steps will help you gain some traction. After that you will be able to "dig deeper" on specific setups, depending on installed operating system, available services, network topologies, etc
Note 1: The field is so vast that its very easy to get overwhelmed. Don't get disappointed if at first nothing makes sense and press on. As the different concepts start to sink in, you will start seeing the interconnections between the various parts and everything will start to make sense.
Note 2 : The reason I suggest buying the book is because its a textbook and as such it is highly structured. You can get the same information from around the internet, but it's not worth the time and effort to try to structure those info in a way that is coherent and that highlights the overall picture.