[SOLVED] I need a *nix Networking/Server Crash Course, or a 101 on it all. Where do I start?
Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Introduction to Linux - A Hands on Guide
This guide was created as an overview of the Linux Operating System, geared toward new users as an exploration tour and getting started guide, with exercises at the end of each chapter.
For more advanced trainees it can be a desktop reference, and a collection of the base knowledge needed to proceed with system and network administration. This book contains many real life examples derived from the author's experience as a Linux system and network administrator, trainer and consultant. They hope these examples will help you to get a better understanding of the Linux system and that you feel encouraged to try out things on your own.
Click Here to receive this Complete Guide absolutely free.
I need a *nix Networking/Server Crash Course, or a 101 on it all. Where do I start?
I have been using linux for several years now, just blackboxing it as I go. I've learned a lot, but not enough, and not a whole lot on the networking/server side of things.
I have primarily been using Debian, but I am planning on using CentOS in the future as well to gain experience with RHEL type systems, so if there is any "distro agnostic" info out there, or if there are specific guides for each OS that'd be great.
So, heres what I know I need a crash course/101 guide on:
1) How to setup a server to be networked for a small home/small business (eg, what is typically require on a server in these environments), How to setup a server as the highest point of a home/small business network (what is generally required of a server in that position, how would one setup these sorts of things)
2) How to setup a dedicated Firewall and/or AntiVirus on a stand-alone system (ie, turn a general desktop or laptop into a firewall/AV appliance)
3) How to setup a system as a router (ie, a standard desktop/laptop with an incoming and outgoing connection used as the router for a network, fed into a switch or somesuch)
4) Network Attached Storage, I know it's a thing, I don't know anything about it... How would I implement NAS? Should it be a dedicated box, or also part of the main server?
5) Remote connection to server, and subsequent remote connection to any systems (Windows, linux, Mac, unix) on network.
6) How would I have Windows and Linux machines communicate their needs to one another across the network/through the main server across the network. What is typically SOP for this type of thing?
7) Mail server, dhcp server, printer server, et al setup for small network
8) imaging server, either dedicated or the main could take over those functions, but how would I set it up?
I know there is a LOT more required of running servers, networks, etc so anything else that would be necessary to know is line with all this would be great! Thanks for all help in advance!
You need to better define what it is you want to do here, take it one task at a time.
1) What do you mean by "networked"? Do you just want the machine to be ON the network, or does it need to DO anything to support the network (DHCP server, DNS server, etc.)?
2) ClamAV is a decent choice for anti-virus
3) Two main options - Samba/CIFS or NFS. Samba is used to share a Linux filesystem with Windows machines. CIFS is used to mount a Windows share on a Linux machine. NFS is used to share and mount a Linux filesystem on other Linux machines. You can run one or both, doesn't matter. My home server for example shares the RAID using both Samba and NFS. Linux machines mount it via NFS, Windows/Mac machines mount it via Samba, everybody is happy. Do you plan on this Linux machine BEING a NAS system, or are you planning on adding a NAS system to the network and accessing it from all other machines? I have no experience with dedicated NAS boxes, but I have a lot of experience with making a general purpose Linux desktop/server perform NAS duties.
4) What kind of remote connection? SSH is built into all Linux distros which provides command line access. Windows can use Putty or Cygwin to do SSH operations as well. If you need a remote GUI then you'll want to look into VNC, Teamviewer, or the like.
5) What kind of support? What do you want the Windows or Linux system to do and what needs to be served/accessed?
6) I have no experience setting up or maintaining mail servers.
1) I want this server to essentially run the network. All duties on the network would run through this sever (Need to print? You -> Server -> Pinter. Need to get to the external internet? You -> Server -> ??? -> Internet. Etc)
2) ClamAV I have heard of and used a bit. Is it reliable enough for enterprise level applications? What about a firewall (I know clam doesn't do that, I mean in addition to clam)?
(you skipped over 3, I'm guessing because you don't know?)
4) (your 3) Samba I have very little experience with, same with CIFS and NFS for that matter. I would really need to know about all of that.
4.5) NAS. Like I said, I know nothing of this. You can make a general linux box a NAS? How does NAS work exactly? How would it get setup to interact between platforms (ie, windows and linux would need to share it)
5) (your 4) SSH would work, but I need to know what I need to setup on the server to allow outside remote connections (SECURELY), to then allow me to remote to clients on the network. Windows and linux remote connection would be required.
6) (your 5) I want the Windows and Linux system to be able to communicate through the server. If there is a NAS in place, both platforms would need access to it through the server. If there is a printer on the network, both platforms would need access through the server. Etc. I basically need to know how to allow Windows to communicate it's needs to the server, and vice versa.
7) (your 6) Mail servers, DHCP servers, all that. My original post wasn't too clear. I have edited it to clear up 6 and 7, and added a 8.
1) I suggest you take it one step at a time then. Start with DHCP, methinks, and then add printer serving, etc. from there. I've never done DHCP serving, but a Google search for "CentOS dhcp server" should get you 99% of the way there. Just make sure you document as you go. One of the good/bad things about Linux is that once it's set up, it just works forever. Which means, the next time you need to go in to change/fix/duplicate the setup, so much time has passed that you need to re-learn everything you had to learn the first time. So take lots of notes.
2) A Linux antivirus program is a unique beast. There are very few Linux viruses out in the world, so most of the antivirus's job is to scan for Windows viruses in files that will be shared to those systems. I can't say how good ClamAV is at this (how many viruses it catches), but I do know that even the best antivirus programs are still less than 50% effective. Whether or not this is sufficient for an "enterprise" system is a matter of debate. As for the firewall, most people just use iptables built into most distros, but there are other options as well. I don't have a lot of experience there since most of my Linux systems are on protected networks behind other firewalls.
3) Missed this one earlier, but yes, I have never done this. I kind of goes along with the DHCP server in #1, and would likely be covered in the same guides.
4) Samba can be a pain to configure, no doubt, but once you get it set up it works great. NFS is dead simple, so is CIFS. To set up an NFS server you need to edit the directory to host and who to host it to in /etc/exports, eg:
Then make sure the NFS services are running and run "exportfs -ra"
On the client, you just mount it like you would any other drive, just stick the server in front. An example fstab entry:
CIFS is a little more complicated since you need to provide credentials, but not that bad.
4.5) NAS just stands for network attached storage. Any machine that provides storage facilities over the network can be called a NAS. Most dedicated NAS boxes are just small Linux machines running your basic NFS, Samba, etc. There's no reason you can't have a real Linux machine doing the same thing. I just wasn't sure if you were asking about configuring the Linux box to perform NAS duties (see above about Samba and NFS serving), or if you were asking about using a dedicated NAS box and configuring the Linux machine to use it (CIFS and NFS mounting).
5) Once you start sshd and open up iptables (or whatever other firewall you're using) you should be able to access the system. For security, you need to disable ssh root login (it's an option in the sshd config) and it's a good idea to change the port from the default 22 to something more obscure, your preference. It's important you determine what remote services you'll need though. SSH gets you 99% of the way there on Linux, but SSH won't get you access to GUI applications that are running on a Windows system. For that you would need remote desktop, vnc, etc. Some combination of an SSH tunnel to the CentOS box and/or port forwarding should be able to handle secure connections to the machines inside the network though.
6) Every service is different, you'll need to take them one at a time.
Last edited by suicidaleggroll; 05-20-2014 at 05:39 PM.
1) 1 step at a time. Sounds like a good way to do it. Is tldp.org (The Linux Documentation Project) a good place to start with guides and such for these types of things? As far as documenting/noting things along the way, that is ALWAYS my weak point. I need to make that a more regular habit. I recently set up my own personal printer through cups about a month ago, today I couldn't tell you how I did it.
2) I seem to hear more about exploits of certain services or things in linux (openSSL being the most recent example) rather than linux viruses. But yes this is a good point. If I were using a windows tool to scan attached windows systems, is it less effective/secure/whatever if it were running under wine, or would it be best to have a virtual win. server running off the main server to use windows tools? As far as firewalls go, I have tinkered with iptables (broke something on my system once and got locked out of ... everything) but this doesn't seem versatile enough for a full fledged network firewall. Do you know of any other options with this? Dedicated firewalls even?
3) That's ok. I'm sure someone else who sees the thread might have some insight on the matter.
4/4.5) So, as long as I get Samba, NFS, or CIFS setup accordingly, NAS shouldn't be a problem whether it be a stand-alone box or part of the main server? Seems simple enough.
5) If I used VNC to get into the server, would I be able to VNC from there to another system on the network, or is chaining sessions like that a bad idea?
Essentially it seems that each of these things (Samba/NFS/CIFS, DHCP/Mail, AV/Firewall) are all things that I just need to find decent guides for. Problem being I don't know reliable places to find them. Also do you know much about the added 8) in OP?
Each of your points, separately, is a lifetime quest to become an expert in.
A "server" isn't any kind of magic entity that controls things and listens for others to communicate there 'needs'.
It is simply a machine that provides a collection of separate services that you set up to meet the needs of the users, generally dedicated to one or more of the tasks you list.
Unsure about centos, but the best place for info on Debian is Debian's own extensive documentation, supplemented by howto's and further info etc in general web searches.
Rather than trying to build your mythical "magic super SeRvEr!!!" concentrate on a single task or function you have a need for, then research and implement that. Learn enough to make it work and be able to troubleshoot problems, and document your work!