Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Education

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?"
This discussion has been archived. No new comments can be posted.

Advanced Networking Courses for GNU/Linux?

Comments Filter:
  • last i checked, you could put wildcards in your scp command lines:

    scp away:/var/log/maillog.* /tmp/buns

  • by gmhowell ( 26755 ) <gmhowell@gmail.com> on Monday June 11, 2001 @11:28AM (#160166) Homepage Journal
    I think you hit the nail on the head with your choice of services. But I'll reiterate and narrow them down a little bit. Also, since you said an advanced course, I'll assume that your users can cd, cp, mv, emacs (vi), and LOCK DOWN A SINGLE BOX. Sorry, but that latter isn't what I call advanced. There are advanced topics within it, but this is something you must be able to do. So let's call security a beginning and an advanced topic and a topic that permeates the rest.

    First I would work on general issues. I would work on the ./configure, make, make install polka. Sure, the defaults are usually good enough, but there is rarely a package that I don't change at least one thing on.

    Then I would go a bit more into /etc/users, /etc/passwd, /etc/shadow and so forth. And also go into SUID stuff.

    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 .conf files into httpd.conf. Makes life much easier for me. YMMV, but it is an example of something that an admin should decide). You also can learn about chroot jails, running as non-root (and I usually run almost nothing as 'nobody.nobody', instead giving each daemon a specific 'nobody'-type user. Again, an admin decision).

    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.

  • by SuiteSisterMary ( 123932 ) <slebrunNO@SPAMgmail.com> on Monday June 11, 2001 @01:53PM (#160167) Journal
    Do NOT teach packages or applications. Hell, don't teach Linux. TEACH THEORY. If your kids understand what a HTTP server is, what virtual hosts are, SSL, realms authentication, all that stuff, then sure, they can apply it to Apache. Or iPlanet. Or IIS. Or whatever. Similarly, teach them package management. Explain about databases, conflicts, auto-changing of conf files, etc. Then, they'll be able to figure out Solaris pkgadd, RPM, DEB, etc etc.
  • by yamla ( 136560 ) <chris@@@hypocrite...org> on Monday June 11, 2001 @12:16PM (#160168)
    This hardly sounds like an advanced course, it sounds fairly intermediate to me. But then, maybe I have a different opinion of 'advanced' material.

    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:

    • Basic overview of Linux and open-source
    • Overview of different distributions, focused on server market
    • Installation without any of these servers running
    • Installation of each of these, one-by-one, listing the uses of each one and why, for example, ssh is better than telnet. Cover configuration of each. This section would be by far the largest and should be split up.
    • Locking down the system, tidying up.
    I would spend the bulk of the time on each particular service. And I would not expect the students to be experts at the end of the course, though they should certainly know enough to follow all the HOWTOs and make informed decisions for themselves.

    --
  • This is an 'advanced' course designed to churn out habib H-1Bs to come to this country and work for 1/2 of what you get paid.

    I'm sure the graduates will be as literate in their 'specialty' as most H-1B types.
  • scp isn't better...sure, it's "secure", but there's no interface worth mentioning. I mean, you need to know the *exact* filename and path of the file that you want to retrieve. No typos! If your developers like to use really_long_filenames_with-hyphens@chars&abbrevs-n -long.version.number.3.2.15r-release with spaces.tar.gz, scp can become a real chore.
  • I would teach the underlying protocols of the internet and the web (i.e. routing protocols, IP, HTTP) before they touch any specific daemons. This would give the students a solid grounding in internet architecture, something that many sysadmins lack. They should learn from the ground up.

    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.
  • It's a shame the admins chose to put this off in a corner instead of on the front page - I think a lot of readers would be able to suggest ideas, and a whole lot would benefit from reading them.

    BTW Raj, thanks for using the right name (GNU/Linux).

  • > CAST FIREBALL AT TROLL
    68 hp damage. Troll destroyed.

The Tao is like a glob pattern: used but never used up. It is like the extern void: filled with infinite possibilities.

Working...