OXYGEN - December 2000 Updated 29 December 2000 IMPORTANT INFORMATION Read this document! It details items which will trip up new users to Oxygen, especially those who have used LRP in the past. FURTHER DOCUMENTATION After logging in as root, look in /root for more documentation. Other places to look include the directories in /usr/share/doc (including, in particular, /usr/share/doc/oxygen-Dec.2000). Very important: read the documentation located in syslinux.cfg: this documentation explains all of the new parameters available to configure the booting Oxygen kernel and system. PRINCIPLES Oxygen was developed for many reasons. Some of the goals I had during development were: * Create packages for all manner of network security tools and system rescue tools. * Create a "base" disk with add-on disks which could customize a particular installation. * Add ability to load packages over the network in any number of ways. * Replace lrcfg and lrpkg with something much more powerful. * Make adding modules much easier. SCENARIOS * Internet Firewall Boot with the boot disk, and then use the Firewall Disk as a second disk. Configure Seattle Firewall (seawall) to your desires. * Rescuing a Full Linux Distribution (such as Red Hat or Debian) Boot with the boot disk, and then use the System Rescue Disk as a second disk. * Network Security Testing Boot with the boot disk, and then use the Network Tools Disk (or disks) as data disks. DISK VOLUMES ET AL The /var/log directory is now in a volume by itself, with a default (and configurable) size of 2 megabytes. This prevents overflowing logs from shutting down your Oxygen system. The /tmp directory can optionally be a volume of its own also; the default is for /tmp to be just one more part of the / volume. To mount a 1.68M floppy - such as any of the Oxygen disks, or most Eiger and LRP disks - just use the command: mount /mnt It is preconfigured for mounting a 1.68M disk from the boot volume. Similarly, to mount a 1.44M disk, use: mount /dos This is also preconfigured for mounting from the boot volume, but for 1.44M disks. BASE PACKAGE DESCRIPTIONS/CONTENTS usr.lrp - /usr doc.lrp - /usr/share/doc home.lrp - /root and /home etc.lrp - /etc modules.lrp - /lib/modules and configuration files in /etc local.lrp - /usr/local log.lrp - /var/adm and /var/log There may be other packages loaded, including from the boot diskette itself; these are additional programs added to the base system. SPACE CONSTRAINTS There are a number of things that are included to make life simpler, or to make Oxygen more powerful, that can be eliminated in specific situations to free up space: * snarf - this program is used to download packages via FTP, HTTP, and GOPHER protocols. * acfg - this is the full-screen menu-based configuration utility. Once you know how things work, this could be gotten rid of. * Excess modules - the common modules are included; erase those you don't need and back up modules.lrp. Be sure to look for modules in /lib/modules and in /var/boot/modules. * doc.lrp - this can be erased from the disk if you don't need anything in /usr/share/doc. Just keep a copy, just in case. * This file - once you've printed it, or no longer need it, this file could be erased. * tftp - this file is a tftp client used particularly to download packages via TFTP. * ssmtp - this program is used to send mail FROM the Oxygen system; it receives no mail. If you're not going to send mail, erase this. * dhcpcd - a DHCP agent. If you don't need DHCP (client!) erase this. * micro_httpd - a web server. If you have no need, delete this. If you don't want the web server, erase everything in /var/www too. * fdformat - a MSDOS FAT-16 disk formatter. This is used to create MSDOS-format diskettes for use with Oxygen - it can create large format disks (such as 1.68M and others). * syslinux and ldlinux.sys - these are used to make a DOS disk bootable with Linux. They are used to create Oxygen boot disks. * iselect - this is used as a menu program for configuration, and and possibly other things in the future. This, at last look, was a package on the boot disk; it can be removed if desired. * /bin/unconfigured.sh* and /bin/setup.sh* - once configuration is done, these files are no longer necessary. They can be removed. After deleting things that are undesired, remember to back up the appropriate packages. MODULES If you have a module that needs to be loaded, put the appropriate module (a *.o file) on one of the disks used during booting, and that module will be loaded during the boot. After booting, if it works and has the right parameters, backup the modules.lrp package to disk, and you will be set - don't forget to delete the original *.o file from the floppy disk (not from modules.lrp!). Note well that the modules are *NOT* loaded in any specific order; they will probably be loaded in alphabetical order, but that is not guaranteed. SECURITY Oxygen should be more secure than most other LRP variants; however, there are some things you MUST do - otherwise, Oxygen will NOT be secure. Do the following: * Give GOOD passwords to root and lrp: # passwd root # passwd lrp * Go through /etc/inetd.conf and delete anything not needed there. * Delete the following binaries from the system if not desired: - snarf: a FTP/HTTP/GOPHER file getter - used to load packages over the network. - ssmtp: a Simple SMTP agent - used to send mail. It does NOT receive mail. - dhcpcd: a DHCP agent - if you don't use DHCP, save yourself the space and another network hassle. Delete /etc/dhcpcd too. - micro_httpd: a web server - used for documentation, and for help. When removing micro_httpd, make sure to comment out the line in inetd.conf and restart inetd.conf: # kill -HUP `cat /var/run/inetd.pid` To make any changes "stick" you'll have to back up root.lrp, usr.lrp, and perhaps etc.lrp as well... * Delete packages from your data disks that you don't need. In particular, note the following: - replace telnet.lrp and telnetd.lrp with ssh.lrp. Telnet transmits passwords in the clear across the network. ssh is more secure as passwords are passed encrypted at all times. - if you are using Oxygen as a firewall, *DON'T* use one of the network tools disks (unmodified) to load with. These are tools good for network administrators....... and system crackers. - If you aren't going to make data disks under Oxygen, then you can remove syslinux, fdformat, and mkfs.msdos too. * Configure Linux capabilities using lcap: PACKAGES The graphical interface is pretty simple; the command line usages are detailed below: apkg -c <pkg> [ <dir> ] Create a package <pkg>.lrp in the current directory, or in <dir> if specified. If <pkg>.list or <pkg>.lis exists in <dir>, then use that as a list of files instead of whatever might be in /var/lib/lrpkg. apkg -b <pkg> Backup package - without checking space constraints. It will back up to /mnt, and will mount the disk associated with /mnt if necessary - and will return the "mount" back to its original state (mounted or unmounted) after completing. So if the disk isn't mounted when you start, it won't be when you finish. Thus, you can insert disk, type "apkg -b mypkg", then remove the disk when the drive is done. apkg -l [ <pkg> ... <pkgN> ] List packages loaded in current system, or list files for package(s) listed. apkg -k <pkg1> ... <pkgN> List contents of package file or files <pkg>. apkg -i <pkg1> ... <pkgN> Install package or packages into current system. apkg -r <pkg> Remove <pkg> from current system. TELNET SUPPORT Telnet was removed for security reasons (both client and server); both are available on the Network Tools Disk. SSH is loaded from the firewall disk. UNATTENDED OPERATION There are many options designed to make the system easier to use, many of which require prompting the user. To remove all of these and set the system up for unattended operation, the syslinux.cfg file must be edited: 1. The APPEND= line: 1. Remove DISKWAIT option from APPEND= line 2. Remove any PKGPATH=ask:// or PKGPATH=query:// entries 3. Change VGA= to a specific setting (instead of ASK) or remove 2. Global options: 2. Set value of TIMEOUT to something better (10 seconds?) Also, during a system boot: 1. Make sure system is configured (answer "Y" to configure now?) 2. Make sure system is set up (answer "Y" to set up now?) 3. Back up root.lrp once system is up USERS There is a 'lrp' user, with no password. Change the password to whatever you like, but do it soon. The root user too, has no password. FIREWALL DISK The firewall disk is a *SNAPSHOT* of current operations - so it may or may not be operational at any given time. All of the packages should be okay except for brick.lrp (my firewall work). SYSLINUX.CFG The parameter LRP= is once again supported; if it is found, then the packages listed will be loaded. The system packages (etc.lrp, modules.lrp, local.lrp, log.lrp) will be loaded no matter what the contents of the LRP= parameter are. The packages listed in the LRP= parameter are the only ones loaded, with the exception of the system packages (which are always loaded). If no LRP= parameter is found, then all packages on the disk will be loaded; this is the way the Oxygen distribution is set up. The parameter PKGPATH= is the same as elsewhere, though new to LRP: insert the locations of data disks in the same number of disks you have. For example, if you have two data disks (besides the first boot disk), and all of them will be loaded from your first floppy drive, and all are 1.68M DOS-formatted disks, use this: PKGPATH=/dev/fd0u1680:msdos,/dev/fd0u1680:msdos The DISKWAIT parameter is used to cause the system to prompt for new disks during the boot process; it is a switch, and is either present (prompt) or not (don't prompt). COMMANDS Many commands have been added, many of them courtesy of busybox, and many due to Charles Steinkuehler: sort xargs which diff chroot wc wget basename dirname tr ping nslookup fdformat charconv Many commands have been shifted from /bin/POSIXness to /bin/busybox, and thus have the potential of acting differently, or with enhancements: uname grep id head tail hostname basename dirname Several new commands were created: mkram <ramdevice> <megabytes> [ <mount> ] Create RAM disk, and optionally mount it. BOOT-TIME CONFIGURATION FILES FOR DAEMONS The boot configuration files have been put into /etc/rc.config.d, with the exception of /etc/network, which is a link to /etc/rc.config.d/network. ALL of these files are sourced for each daemon that runs and is configured to use them; this allows the firewall daemon to refuse to run if networking is turned off, and the same for dhclient, syslog, etc. To use the configuration system properly, you should do the following in the startup scripts for your daemons: RCF=/etc/rc.config [ -f $RCF ] && . $RCF [ "$DAEMON" = "0" ] && exit 0 ....where DAEMON is replaced by your daemon name - such as DHCLIENT, NTP, SYSLOGD, KLOGD, etc. However, there is much more you can do.