Network Services ======Objective====== This project will have you setting up, in virtual machines, various network services. ======Prerequisites====== To do this project, you will need to have successfully completed: * [[spring2011/hpc0/projects/vm_server_install|Linux VM Server Install]] * [[spring2011/hpc0/projects/creating_virtual_machines|Creating Virtual Machines]] ======Ingredients====== You will need: * a couple virtual machines * root access on said virtual machines * configured / up-to-date package database ======Background====== Network Services provide the backdrop for most of what we consider the Internet. Client/Server transactions, where we see information either being sent or received (depending on your perspective). Your aim for this project is to set up, configure, populate, and demonstrate at least one such client/server setup. You will probably want to have at least one virtual machine acting as the server, and at least one other acting as the client. ======Logging====== One of the important activities to participate in during this project is the development of good log viewing habits. Without a view of what is actually going on behind the scenes, debugging can be a nightmare. Luckily, systems by default tend to do a fair amount of logging, we just need to remember to check the logs! Logs are stored in **/var/log**, and there are a number of different log files broken out there. The recommendation, if you don't haven't yet figured out specifically which logs are worth checking out for your particular debugging session, are: * auth.log - logs authentication information * daemon.log - logs daemon/server processing related information * messages - kernel and system messages * syslog - more system messages In addition, running the **dmesg** command will display messages the kernel has generated, including boot messages (although this information will gradually become unavailable over time as more kernel information is generated, scrolling it). There are other log files typically present by default, but these four (and even moreso, just **auth.log** and **daemon.log**) will likely be quite useful in helping you figure out what is going on. What you'll want to do is have an additional terminal open to your virtual machine in question (note this may mean having several terminals open, especially if you're checking logs on multiple systems), and, as root, run a **tail -f** on the log files in question. For example: vm:/var/log# tail -f auth.log daemon.log ... This will keep those log files open (constantly monitoring the end of the file), and when new messages are generated, you will see them display. This will help you get a feel for what is going on, and in the case of non-successful operation, perhaps identify some errors to start the debugging process. ======Scenarios====== Some example Network Services scenarios might include: * Network File Systems (NFS, Samba) * Web (Apache, Nginx, Cherokee, Lighttpd) * Database (MySQL, PostgreSQL) * Communications (XMPP, IRC) * Newsgroups * Authentication (LDAP, Kerberos, NIS) * DNS (bind) * Bit-torrent tracker ======References====== * http://lab46.corning-cc.edu/documentation/swatch