Home | close (×) |
A deeper look into (Open)Suse 10.1Dirk Wetter, Dr. Wetter IT-ConsultingThere was quite some research I did on Suse and other Linux distributions in the past, mostly for the German iX magazine (1), also some as a system researcher for distributors. This time I thought to pass the report on (Open)Suse 10.1 to more people and make it publicly available in English. (Copyright info below). To be consistent with the nature of previous writings, I concentrate on technical topics and in-depth analysis.The latest release of Suse Linux/Opensuse is more interesting than the usual because it was Novell's internal basis for developing SLES 10 (Suse Linux Enterprise Server) and SLED 10 (Suse Linux Enterprise Desktop), both aiming for business customers who want more than 2 years update support. The market of both the enterprise and community products is getting tougher: A few weeks after Suse 10.1 emerged, Ubuntu's version of Dapper Drake was launched which has 3 years desktop and 5 years server support. After the release on May 11 Suse 10.1 was installed on a couple of systems – some being in production, some test systems. After two months where enough changes compared to the predecessor Opensuse 10.0 were experienced and technical research was done, this report was created.
Two different chameleons
There's a common misconception that from Opensuse 10.0 on
there's only one Suse distribution. Opensuse
10.0 was the version distributed through
opensuse.org and its mirrors,
the one which could be purchased from the shelfs was named Suse Linux
10.0 like its predecessors. With 10.1 the
distribution channels haven't changed but the name as of version 10.1
has: Both carry now the same: Suse (Linux) 10.1. The
boxed version can be purchased from resellers for 59 Euros, it
includes a printed manual (German version has 281 pages) and 90 days
of limited installation support.
Bits and missing piecesOk, so much for the names. Now to the technical differences. If you think you can live happily with the Internet edition you might be disappointed later on: There are several programs missing compared to the boxed version. Here is a somewhat longer sample:
I was kind of surprised about the fact that there are such tremendous differences. As it turned out – more see below – the Internet version is basically useless for myself (I don't normally use it for customers since 2 years update is not enough, but that's a different story). You have to make a decision for your own between the two Suse versions available, depended on your needs and time, ability and laziness to compile the missing pieces. For your help I've compiled a complete list of the differences. Further PiecesCompared to it's predecessor Suse 10.0 – I am talking about the boxed versions from now on – a few packets are not supported anymore, a few made its way into the distribution. In general the system is pretty much up to date with the recent versions (see key packages at the right hand side) with the exception of
Installation funSo much for theory. Now I want to give you some reports what my experience was during a some rounds of installations on different systems. But first a look at Suse's installer: Yast is amongst the best considering all the major Linux distributions. The graphical user interface was born at a time where competitors used a ncurses- – if any – GUI. It contributed significantly to Suse's reputation being a good distribution for Linux beginners. Some however might draw the wrong conclusion from this, which is that Suse is not good for the enterprise. This is not true [1,2].
The Yast-installer gives you a good overview of the installation process and informs you of the progress and every step (see left had side in picture 3). Also: hardware detection is good and you will be prompted with reasonable choices. If you click "OK" you're most of the time fine with this default. Compared to the predecessor however there is a remarkable change in the speed of the initial menu: To resolve software dependencies a dialog shows up ("checking dependencies" or "evaluating package selection") which takes sometimes up to a minute. In those cases it looked like it was due to the fact that the system was upgraded from a previous version and not a freshly installed one. My educated guess is that for this is rather the Red Hat Package Management to blame. The overview dialog would be more endurable if the delays would happen only during software selection. However it stresses your patience also if you just changed the partition layout or e.g. the time zone. Here is just the dependency on software dependencies wrong (got that?). An somewhat old annoyance of the installer – specifically the software selection window: After clicking on Details you will be presented with different software categories. Depended on what kind of system you set up, you can install the appropriate software, down to the RPM level. The strange thing though is that you find packages in categories like apache "VoIP", bonnie/++, dbench, e3, emacs, g3utils as well as minicom, rzsz, rsync, smartmontools in the "Kernel Development" section. Another example: xorg-x11-libs, mysql*, qt3 and some TCL-stuff in "Simple Web Server with Apache2". The impression is that this might come due to RPM dependencies, it has certainly nothing to do with the context. The latter one is the criterion the user should be bothered with and not with the RPM dependencies which should be automatically resolved by the installer in the background. Back to the good points: Apart from the possible automated installation with ( Autoyast) there are a variety of controls possible for the interactive installation: as usual from the console, and remote from a serial line, via SSH and via VNC. It's just a matter of the append option in linuxrc. As for as normal interactive installations are concerned, Suse 10.1 works as expected. 10.1 installs by default with a reiserfs 3 partition. New in 10.1 is that automatically not only one root and a swap partition is suggested, the suggestion made includes also a /home partition which is the right thing to do on a desktop/laptop system. As with other products I do QA for, professionally or for magazines, I am not only testing the "normal" features or procedures (7): they are always working. Well, at least thy should be. Since the development of Suse 10.x is "open" I thought I wouldn't find anything in the installation procedure. But I was wrong, there were two occasions where the installer hiccuped: There was an old hard-disk I had lying around, loaded with Windows 2000. The installer suggested to shrink the NTFS partition, but it failed later on to really do so (German message: Bei der folgenden Auswahl ist ein Fehler aufgetreten: /dev/hda4 wird auf 4.6 GB verkleinert: Systemfehlercode: -1021 (Update: This error was reproduced on SLED 10). Well, no big deal, except the fact that the installer left no choice to save any settings made for the installation, especially the software selection where I spend some time for. Unfortunately all this work was gone. The second one hit me harder: I tried to upgrade my day-to-day used desktop system. I redefined the installation source for packman – the repository which I use mainly for multimedia apps like lame, xine, mplayer. As it turned out later, it was not the right thing to do: Somewhere in the middle of the 5 GB and 1400 packages to be upgraded, the installer wasn't able to find a package from packman. It complained about it, I hit the retry button and it segfaulted. It left behind a non-working installation. Suse's repair option wasn't able to fix the installation. Prospectively I did a backup before. Maybe including packman in the beginning was not the right thing to do, but an installer should never crash and leave a mess behind. Another bigger point for criticism: Suse has since 9.3 by default an automatic login without password for the graphical display manager enabled. This is a somewhat high security risk and a large step backwards in time where people didn't have to provide credentials for accessing private data. More on this see automatic login on the right hand side. The good, the bad and the uglyHere are some reports about the experiences I had since the two months in production. Except maybe the fact that Xen was upgraded, the kernel was no real surprise. Changes nowadays are not anymore of a drastic nature. Reiserfs4 support in the kernel is gone – also in userspace. Still supported are the variety of other native Linux file systems like ext2/3, reiserfs3, XFS, JFS. OCFS2 is supported since Suse 10.0, whereas AFS as I mentioned above shares the same fate as reiser4. Suspend to RAM and suspend to disk on the three different x86 desktop systems still doesn't work. On an old Thinkpad wake up from suspend to disk now finally works. Suspend to RAM still leaves the TFT backlight lit (radeon graphics card) which makes Suspend to RAM useless. The Suse 10.1 kernel doesn't support suspend2, the one in the kernel has some restrictions but made some progress in the past (SMP and e.g. x86_64 support). Speaking of the laptop: One annoyance is the fact that the serial ports – the wired one and the infrared – of the Thinkpad are useless after a ACPI-suspend-resume cycle. It's a known kernel bug since more than a year. The workaround affected: rmmod and modprobe the appropriate module after resume (8250 and serial_core). Unfortunately Suse's kernel needs to be recompiled, both are compiled into the kernel (CONFIG_SERIAL_8250=y and CONFIG_SERIAL_CORE=y). Alternatively: Use APM, you don't have this problem then. On odd thing I noticed: If I copy DVD images on a particular server system equipped with HPT RAID controller from one partition to another, the new Suse kernel had the habit to slow down this box to a non-working status: the load was at 20 and beyond. hdparm /dev/hdx couldn't held its status of using DMA transfer mode. I am still investigating this (Kubuntu e.g. doesn't show this behavior). A mitigation on the high load could be achieved if I changed the default scheduler from cfq (Complete Fair Queuing Scheduler) to as (Anticipatory I/O Scheduler) or deadline by just echoing the appropriate name into /sys/block/<block device>/queue/scheduler. For some reasons Suse 10.1 chose cfq as a default IO scheduler. Small issues
A trap ;-)A pitfall is also that – if despite its lifetime you run Suse 10.1 as a server distribution – another update/change of snmpd/snmptrapd took place. Some time ago the change was converting from ucd-snmp to net-snmp. man snmptrapd.conf reveals (you won't find it in snmptrapd(8)): Previously, snmptrapd would accept all incoming notifications, and log them automatically (even if no explicit configuration was provided). Starting with release 5.3, access control checks will be applied to incoming notifications. If snmptrapd is run without a suitable configuration file (or equivalent access control settings), then such traps WILL NOT be processed. See the section ACCESS CONTROL for more details.The previous snmptrapd version was from NET-SNMP 5.2.1, now it's version 5.3.0.1. If you want to ignore the idea of the change – thus being less secure – add the following line to /etc/snmp/snmptrapd.conf: disableAuthorization yesBy the way, if you're looking for a proper startup file, do the following: mine: ~# cp /usr/share/doc/packages/net-snmp/rc.snmptrapd /etc/init.d/snmptrapd mine: ~# ln -s /etc/init.d/snmptrapd /usr/sbin/rcsnmptrapd mine: ~# rcsnmptrapd start mine: ~# chkconfig snmptrapd 35Instead of the first step you can also take this rc-file and the appropriate /etc/sysconfig/snmptrapd config file so that you have a separate place for the options of snmptrapd. Don't forget to chown 0:0 and chmod 750 both files. Listening daemon createdThe update also magically spawned a new daemon, and this also has a somewhat diabolic part: Suse 10.1 comes with hddtemp which monitors the hard drive temperature. It supports drives which support SMART (Self-Monitoring Analysis and Reporting Technology). The supported bus technology is (P)ATA, SATA or SCSI. So far, so good. The downside is that it's started by default and a TCP listening port is created. Everybody from the network can connect to this port. Ok, you might throw in that there's no crucial info or "so what, I am running a firewall". You're somewhat right, but it's still providing potential attack vector and some people just don't run a host- or network-based firewall. The daemon is even running as root, though the port used is above 1024: mine:~# ps -ef | egrep -w "UID|hddtemp" UID PID PPID C STIME TTY TIME CMD root 16043 1 0 14:15 ? 00:00:00 /usr/sbin/hddtemp -d -f /etc/hddtemp.db -p 7634 /dev/hda /dev/hdb /dev/hdf root 16353 6128 0 14:21 pts/6 00:00:00 /bin/grep -E (PID|hdd) mine:~#You can query the temperature either from localhost or remotely by just connecting to the port: mine2:/tmp # netcat mine 7634 |/dev/hda|ST3160023A|44|C||/dev/hdb|ST3160023A|46|C||/dev/hdf|Maxtor 6Y120L0|SLP|*| As you can see the drive temperature on this host is ok, though the heat in the bin where the system has it's home is currently heavily influenced by the rare German whether conditions (read: hot). Bottom line: Nice feature, however Suse should have given more info on this and not started after the update the daemon per default. Bottom line
Suse has a good approach for their distributions. Yast eases management
for the beginners. Also for experienced users it's lowering bar for new
system administration fields, e.g. if you're not quite familiar yet setting
up Xen, in Suse 10.1 you don't really have too much to think about it,
supposed you don't want anything special.
What's the good part? Novell certainly managed to stay in the first line with the current hype topic Xen, the desktop search kerry is useful and the animated desktop Xgl – for those who have the right graphics card – is a nice thing. AppArmor including an easy to use GUI showed up the first time in Suse 10.0, which from the security perspective narrows the gap to Fedora Core. Fedora Core is using SELinux for mandatory access control since FC2. SELinux is tighter compared to AppArmor, whose main weakness is the fact that it is working with file paths [5]. On the other side SELinux is way more difficult to set up if you want more than the factory defaults provided by Red Hat. Fedora Core uses a number of further security measures, namely fstack-protector (aka stack smash protection/canaries), fpie, NX/XD-Bit and gcc FORTIFY_SOURCE. As well as the latter one is concerned, Suse 10.1 makes also use of it: Apparently everything is compiled with -D_FORTIFY_SOURCE=2, as retrieved from the OPTFLAG: rpm -qa --queryformat '%{NAME}-%{VERSION}\t%{VENDOR}: %{OPTFLAGS}\n' |grep SUSE. According to Novell some [4] binaries of SLES are compiled with similar hardening measures as Fedora Core. I'll investigate and verify whether this applies also for the non-enterprise product. Despite the issues version 10.1 has, Novell/Suse still provides a good distribution. If you're not a long time Suse-user I would rather take it as a bad coincidence that the research you are reading is not giving grade A/B to the latest community product from Novell. Not that I am superstitious, but may be ".1" is a kind of a bad augury: 9.1 had quality problems, too. 9.2, 9.3 and 10.0 were not only in my humble opinion overall very good distributions. Finally it would be great if Novell could be more clear about the names for their Internet edition and the distribution sold. If it is really policy not to provide a variety of important packages in the downloadable edition, the different distributions should have different names to distinguish them. The development of Suse 10.2 started already, we'll see how good that one will be. Dirk WetterDiscuss this article | Permalink, Comments [0], Reply | del.icio.us Literature[1] Dirk Wetter: Green Light, report about SLES 9, published in iX international 2004, p. 24[2] Dirk Wetter: Nominiertenrunde (German), Comparison Enterprise Linux distributions: RHEL 4, SLES 9, UCS 1.2, Mandriva CS 3 (extract), iX 6 (2005) 48 [3] Dirk Wetter: Grüner Bock im roten Kleid (Review Suse 9.1), iX 6 (2004) 68 [4] Dirk Wetter: [title not clear yet], Comparison SLES 10, Xandros Business Server, to be published in late summer 2006 in iX magazine (German) [5] Oliver Tennert: Die Schilde hoch, (research on Novell's AppArmor), iX 8 (2006) 70 |
Conclusion
Key packages
I am hungry: zmd.exe
One of the changes in 10.1 compared to its predecessor 10.0 is that
the architecture for the higher level package management and online
update changed completely.
During first contact the process zmd.exe and all it's DLLs (during runtime you'll see 42 DLLs linked against it) made me think "What is that?". Since I am using – i.e. pen testing – MS Windows myself, so in general I am considering myself to be open minded. ;-) The naming scheme of the Mono/C# framework is kind of strange in the Unix world and I never a really became a friend of. But if that would have been it, I wouldn't have written this.
Bottom line: If you can do without the status of the icon just switch the whole "thing" off: mine:~# /etc/init.d/novell-zmd stop mine:~# chkconfig novell-zmd offFor online updates or a status check you have to manually use yast2 online_update. If you found a way to automatically check for updates (9), please let me know. rug list-updates does it (slowly), but therefore you need zmd running. Update (July 18,2006): Suse released an update for its zmd-framework on the client side: Amongst all the 9 (!) update RPMs one can find an update to the agent zmd and to libzypp-zmd-backend which addresses some of the issues. Notably the resource consumption is lower: load never exceeds 1.8 and the processes eat way less memory, especially as far as update-status is concerned: It seems to cut off at 80 megs. Still, the other issues are not addressed yet. Update (September 19,2006):Another two months later another major fix: Suse released a patch which brings back the delta/patch RPM feature, fixes the /var/tmp/TmpFile.xxxxx issue and makes it possible to run fetchmsttfonts.sh via online-update. From the info file: This update contains the following new features: * support for patch/delta RPMs in YUM sources (#168844) This update includes fixes for the following bugs: * various performance enhancements * 190163 -kmp-dependencies match multiple kernel packages * 195567 - 100 /var/tmp/TmpFile.xxxxx in 3 Days [..] * 191676 - zen installer/updater cannot add an FTP YUM repository [..] * 192535 - test fetchmsttfonts script does not get run /usr/local and NFS/sbin/service has this line with a hard-coded PATH containing /usr/local:PATH=/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/binSimilar applies to the root-environment: PATH=/sbin:/usr/sbin:/usr/local/sbin:/opt/gnome/sbin:/root/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin:/usr/lib/mit/bin:/usr/lib/mit/sbinBoth (10) has reliability and security implications in an NFS environment where /usr/local is shared: Suse/Novell as well as lots of other vendors put for not comprehensible reasons – this PATH is empty – /usr/local in their root-environment or even (like in /sbin/service) in system scripts. Imagine /usr/local resides on NFS, and
Automatic loginA security flaw by design is the by default enabled/suggested autologin feature of the display manager (fortunately not for the enterprise products):
I know that I don't want to have this under no circumstances enabled, you might, too. But what about the Linux or Computer newbie, does he know what the risks involved are? Why does Novell makes the wrong decision for them, especially since the distribution has a strength for this type of unexperienced user? If you don't understand what I mean, here are some examples: I don't want a curious neighbor e.g. taking care of my plants while I am away have immediate access to all my data. All he would have to do is switching on the computer, – maybe the initial intention is just getting access the Internet – and after 2 minutes he is served will all my personal data on a silver platter. With desktop search based on beagle it's even more easier to find out may be what bank one is using, where the text file of the diary is located, what love letters somebody sent to his girlfriend. Beagle-searching for the name also brings up e-mails and instant messages to her. I don't even dare to think about if the careless user has set firefox/thunderbird to remember passwords but not protect it with a master passphrase. Note: These are scenarios for home users, the consequences might be more severe for office desktops or even laptops. In the same window (see picture 4) the installer asked for a password – per default there are even simplicity checks and it's strongly encrypted with the blowfish algorithm. The set default button for autologin nearly of rendered this question for the password useless, supposed the system cannot be accessed from the network. Dear Novell: Please don't enable automatic login by default. If you feel the need for providing such a thing at all, change to a safer default. This way you'll not potentially punishing the unaware. Only the people who intentionally checked this button have to live with their own decision. What you have to do if you want to clean up that manually is to set DISPLAYMANAGER_AUTOLOGIN="" in /etc/sysconfig/displaymanager, and run SuSEconfig --module xdm. Alternatively you can directly edit the appropriate config files (for KDE): /etc/opt/kde3/share/config/kdm/kdmrc="" the AutoLoginUser and set AutoLoginEnable to false if the latter variable contains anything else.
|
Home | close (×) |
© 2006-2007 Dr. Wetter IT-Consulting, copying longer parts of the text requires the written consent of the author. |