Now that we have seen the physical layout of a home network, lets discuss the programs which are used to make the hardware work correctly. Some of these are required programs, and some are recommended programs. In the description I will indicate which is which.
The Linux server is the heart of the system. It allows common storage of information and file sharing. It can also server as an information resource to the network as well as a print server.
Here is a list of the programs I think are important or useful on this server.
Samba is a program which supports the SMB protocol. OK, what is SMB? Here is their explaination:
The very short answer is that it is the protocol by which a lot of
PC-related machines share files and printers and other informatiuon
such as lists of available files and printers. Operating systems that
support this natively include Windows NT, OS/2, and Linux and add on
packages that achieve the same thing are available for DOS, Windows,
VMS, Unix of all kinds, MVS, and more. Apple Macs and some Web Browsers
can speak this protocol as well.
In short samba is what allows the Linux server to work as a file and print server to the Windows PCs.
Sendmail
Sendmail is a common mail server which comes with most Linux systems. By configuring it on the Linux Server, you can have an unlimited number of email boxes for your home or buisiness.
What we will do is configure sendmail for the users on the system. Then we will discuss how to setup the connection through a registered domain name. This allows you to have any number of email addresses you want, legally, with a dialup or cable modem account.
Print Server
Apache is not a required program on the Linux server. I find it an easy way of sharing information I think is useful to the users on the system. A lot of businesses are using web servers to distribute information from phone lists to Insurance form to their employees.
As an example I use the server to explain how some the services are configured on my network. I also use it to provide interesting web links for my children. Finally it is an easy way of keeping a record of how to perform some computer operations for my wife, who forgets how to do some operations she doesn’t do too often. I find it easier to write it down and put it on a notes page than remind her at 11 PM when she has forgotten again.
One area where Linux is competting directly with the commerical vendors is in the area of Firewall software. This is not difficult to understand, since most of the major firewall designed were originally implemented in Unix. Besides, since Linux is Open Source, a person who want to create a firewall has access to all the tools needed.
I have had exerience with two Firewall programs, Smoothwall and IPcop . Either of these programs will do a good job of a firewall on an older computer. If like me, you have an old 486, or 386 available, you can convert it to a good firewall.
This is not to say that there are not routers which contain reasonable firewalls at a decient price. I just like to know that if the firewall is broken, I can fix it myself. Also I believe in using what I have instead of buying more equipment. In the end, the choice is up to you. I guess I like Linux, so I use it.
One of the issues which comes up with most systems, is the need to make lots of choices. Defining the choices can be difficult prior to installing the system. But since this is a talk, I will try to state the decisions made and we can debate them if desired.
In any network situation we need to understand a little about the protocols that are used to connect the computers. In the case of Linux and Windows, we are talking about TCP/IP (Transmission Control Protocol/Internet Protocol)
In a nutshell we are going to choose names and addresses for each computer on the network. The TCP/IP protocol was designed with certain blocks of addresses undefined. This means that these addresses are not routed if they show up on the internet. In layman’s terms this means that some addresses were reserved for use by people like us. They are available for someone to use for their own purposes, and ignored by the internet.
The block of addresses I am going to use go from 192.168.1.0 to 192.168.1.255. This block of IP addresses is one of those reserved sets. Since it is reserved, we will be using it to configure the computers on our network. For all the computers we will be using the netmask of 255.255.255.0
Name | IP Address | Description |
---|---|---|
Samson | 192.168.1.254 | Firewall Computer |
Wizard | 192.168.1.1 | Linux Server |
Apollo | 192.168.1.5 | Linux Workstation |
Demeter | 192.168.1.7 | Windows Workstation |
We will use this list to configure the networking on each computer so they can be refered to by Name, instead of IP address. For more information on IP addresses let me recomment Introduction to IP from the Rute book.
What about users on the system? For this tutorial, I will assume the following users and passwords are the people in your home. I am not including the root user since he/she needs to already exist to install Linux.
Name | Login | Passwords | Shell | Home |
---|---|---|---|---|
Frank Smith | frank | magic | /bin/bash | /home/frank |
Sally Smith | sally | boat | /bin/bash | /home/sally |
Tom Smith | tom | fish | /bin/bash | /home/tom |
Finally lets chose the domain name “home.org”. Since you are not on the internet with this name, it can be anything you choose. We will use the same name for the samba work group. If in the future you want to have your own mail server, you might consider registering a domain name. We can discuss this later though. For now lets just just this default.
I am a strong believer in designing something before you implement it. I know that takes some of the fun out of working on computers, but it can save you a great deal of grief later. Planning what you are going to do first allows you to build a road map of the work in advance. It also allows you to create documentation of how your system is configured, BEFORE you forget what you did. Believe me, lots of people forget how something was configured once they have moved on to other things.
Here are the steps I am planning on implementing to configure our network structure.
I promised that use of VI would be minimal, but this will still require some knowledge. Lets look at a quick edit of a file using VI. We will make a change in the following text using the VI editor on Linux.
# default: on
# description: The telnet server serves telnet sessions; it uses \
# unencrypted username/password pairs for authentication.
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = no
}
This file comes from /etc/xinetd.d/telnet on my linux system. This is a typical configuration file for the xinetd program. We are going to change the disable option from no to yes . We will then save the file.
One piece of information before we start. Remember that vi has two modes. Insert mode and command mode. By default you will start in command mode. This is the mode where keypresses move you around on the window, or perform certain commands. When you are in insert mode, the characters you type are inserted into the file. When in doubt which mode you are in, press the <ESC> key to change back to command mode.
OK, enough theory, lets make the change. Here are the steps as done from the command line.
Congradulations, you just use VI for editing. Ok, so this wasn’t the most challenging editing job. The idea was you just used the dredded vi to edit a file. Not so difficult was it. For those of you feeling brave, try the command vimtutor to tryout a tutorial on VIM. It might be enlightening.
Now to be honest, I normally use Emacs for most of my editing. But vi is a quick editor with that ability to make changes on every Unix/Linux system you will encounter. Using an editor for configuration is slightly old fashoned, as there are getting to be graphical tools for this work. But the editor approach allows you to appreciate the scripting ability of Linux.
Written by John F. Moore
Last Revised: Wed Oct 18 11:01:35 EDT 2017