Advanced Networking Courses for GNU/Linux? 9
Raj asks: "I am incharge of creating an advanced GNU/Linux course for my local User Group. We have a small but thriving software industry here. (I am from India). The aim of the course is to promote the usage of GNU/Linux among the local population by spreading quality information about GNU/Linux. After successfully taking our course the student should be in a position to manage the network of a small to medium company or academic institution. We are not looking at novices, but experienced users or sysadmins using other OSes. What I have in my mind now are the usual services: mail, DNS, Apache, Samba, CVS and so forth, along with internet security information like firewalls, SSH, SSL and the like. We have no time frame at this time. What services/daemons would you suggest. How deep should we delve into each subject. How should the practicals be handled. How should the course be structured. We will also be developing course materials for the course (which will be available under GPL) Are there any already existing documentation from which we can steal. Has any one attempted any courses like these before?"
Re:Answer AskSlashdot (Score:1)
scp away:/var/log/maillog.*
Answer AskSlashdot (Score:4)
First I would work on general issues. I would work on the
Then I would go a bit more into
With this out of the way, you can move on to the 'important' stuff (quoted because many will dismiss the earlier issues as fluff. It is no less important than this)
I'd start with Apache. Compiling it, installing it, securing it. It is going to be fairly ubiquitos (sp), has a huge user base and support, and offers the opportunity to do all the little bits that are important. The students will have to learn how to allow/disallow features, throw out garbage (for example, I usually combine all of the
Next I would go into SSL/SSH and telnet. Perhaps SSL/SSH should come first. No problem. By having this early, you can get new admins into the habit of switching to SSH early. It also allows an intro to inetd.conf.
Now that you have covered SSH and disabled telnet, it's time to disable ftp. Have them learn (or reiterate) why scp is better. Or show them how to set up Apache to offer similar functionality. Or show them how to install a new ftp daemon, or show them how to hit bugtrak, et al. and fix their own distro. For a well trained admin, I would suggest showing all of the options, explain why (IMHO) scp is the best solution, and let them make their own decisions about how to proceed.
Next up for me would be Samba. I imagine the same is true in most shops. You cover security (again:) users and groups (again:) and have a genuinely useful tool. This can also be the time for some preaching. Depending on the size of your training network, you can show students that the server doesn't matter, as the clients all look at it the same way. And this is free (and Free) (and Open) (hell, it's probably even shared:).
I would assume email is next, but we use Exchange. Follow up with DNS and dhcp, and you should be just about done.
You should have a mixed network (in this case meaning Linux clients and server plus M$ clients and server) with a decent sized network (number of students + 5 = number of hosts). I would also suggest that if your students are up to it (and to be honest, they should be if they are going to perform well outside of the classroom) you should periodically (between lessons or lesson segments) have students change which computer they are working on. This will give them the opportunity to see how other people configure things, opening the possibility for discussion, or simply cleaning up someone else's house.
Finally, I would again reiterate that if there is more than one way to do something, tell your students. Let them make the choice. They'll be doing that after they leave your care.
Now, as to specific course material: start with the basics, and let the course evolve on its own. I would pick a scenario that is easily grokked by your students (a university, a small business with a web-presence, whatever) and set things up with that in mind.
I have never taken an advanced computer class, but have taken some advanced classes in many other fields. If you are truly teaching an advanced class, the material you have prepared is just the beginning. The less of it you have, the better. Advanced students will have the questions and ideas to push the class along. Trying to return to the syllabus or lecture can and will just frustrate them. (Of course, in this, I am ignoring cultural differences, the actual 'advanced'ness of your class, etc. But your aren't paying for my advice, so...) If my experiences are any indications, you should be able to go into any class with a one-page list of 'today's' topics, and have a nice eight hour class.
I would keep on hand the official documentation of these projects, any ORA books you have on them, and so forth. For the benefit of the students, I would give them lists of websites, newsgroups, and mailing lists that may be able to help them in the future. In addition to getting used to making technilogical decisions, being able to find their own help is an important tool. If you can find the help, they can figure out much of the rest.
Sorry for rambling. I know I've missed a few points I wanted to make, but this should hopefully get you started. Any questions, ask.
random reiteration (Score:3)
Some suggestions (Score:3)
I would suggest adding to this list, some instruction on package management. Depending on which distribution you target, you'll want to cover downloading and installing rpms or debs and in any case, you'll definitely want to cover tarballs and also compiling from source.
You also definitely want to cover security issues. I note that you are planning on talking about firewalling and also covering ssh. But don't forget how important it is to stay up-to-date on your software installs, how important it is to monitor security mailing lists, that kind of thing.
What I'd like to see if I was signing up for this is a curriculum vaguely along the following lines:
--
Re:Some suggestions (Score:1)
I'm sure the graduates will be as literate in their 'specialty' as most H-1B types.
Re:Answer AskSlashdot (Score:1)
Course Structure and Material (Score:2)
If you insist upon teaching specific daemons (say, in the interest of time), use them only to illustrate a purpose - that is, teach them what the daemon does, not just how to operate it.
Depending on the experience and skill of your students, I would traverse through the BSD source code (NetBSD has the cleanest base, in my opinion) - BSD sources are laid out excellently and intuitively. BSD's TCP/IP stack is *the standard* implementation.
In one sentence: DON'T JUST TEACH YOUR STUDENTS HOW TO OPERATE THEM. FOR ADVANCED USERS, IT'S NOT ENOUGH EVEN TO LEARN THE PROTOCOLS THEMSELVES. GO THROUGH THE PROTOCOLS, THEIR IMPLEMENTATIONS, AND HOW TO MANAGE THE PARTICULAR IMPLEMENTATION.
Should be mainstreamed (Score:1)
BTW Raj, thanks for using the right name (GNU/Linux).
Re:Linux users are theifs (Score:1)
68 hp damage. Troll destroyed.