I just received the EXAM results. This was on Sunday at around 1500 Finnish time. About three days after I took the exam, these guys must be working on the weekend to check the results!
Result: 300/300!
I just received the EXAM results. This was on Sunday at around 1500 Finnish time. About three days after I took the exam, these guys must be working on the weekend to check the results!
Result: 300/300!
Wow, there’s lots of it in there.
Some of it is about networking and a lot about individual services.
I haven’t actually planned to go get the exam soon, but I think just going through these objectives will make me better at Linux. Anyway, if I pass the RHCE, that extends the RHCSA expiration automagically.
This is going to take a while to do. I will update this post as I progress through the sections.
This is a copy of the objectives from https://www.redhat.com/certification/rhce/objectives/
For the two above I think I need to use another machine. Maybe the IBM T40 could be of some use again. Install SLC via USB maybe! /2011 12 18: update: Nope, T40 didn’t like booting like that. So, booting via DVD instead. But, maybe I can boot via the small CD and then load the files off of an NFS-server instead. Turns out the CPU in my laptop does not have PAE and thus cannot install anything after RHEL5(possibly) with the default isos. There is a guide on scientificlinux.com that tells you how to do it via a fedora netinstall iso.
Network services are an important subset of the exam objectives. RHCE candidates should be capable of meeting the following objectives for each of the network services listed below:
RHCE candidates should also be capable of meeting the following objectives associated with specific services:
Just did the exam.
Not bad at all, I really enjoyed this hands-on exam.
Great way to test someone’s skills, although I thought it would be harder. But maybe I got lucky with the tasks.
I believe this RHCSA Rapid Track (along with My Own Preparation ™) and learning how to work inside a terminal/console is enough.
Can’t wait until next week to find out how it went!
Last day!
A little more kickstarting, LVM – logical volume management and File ACL.
Then a rehearse of the previous chapters.
Feeling a bit excited about tomorrow!
These ACL were a bit more complex than I thought, but they could be made very complicated if you want to. But there’s the default ACL and then there’s the normal ones. Chmod +s for sticky bits.
Also got a 4GB USB pen that does about 4.4MB/s :p
Some important ones:
mount -o remount,rw / /usr/share/doc/initscripts*/sysconfig.txt kernel-doc package and /usr/share/doc/kernel-* rpm -qd; rpm -qc
Some important but not importantest:
getsebool -a setsebool -P usermod -a sssd - service that caches authentication stuff
Automounter
/etc/auto.master ->
/home/guests /etc/auto.guests
/etc/auto.guests ->
* -rw nfsserver:/path/to/mount/on/home/guests/&
If on nfsserver there is an nfsshare that is: /path/to/mount/on/home/guests/
and in there you have home directories for users. Then this will automount these directories when anybody tries to access them. Same concept as doing:
ls /net/nameofnfsserver/
Wow, what a day!
It ended with configuring a kickstart file, starting an unattended installation via PXE by referring to said kickstart file on an http-server.
Before that we were playing with partitioning, making swap, encrypting with cryptsetup and LUKS. Also very interesting.
After we learned about partitioning we did changing booting kernel parameters, resetting root password, editing grub, loading modules, setting module specific parameters etc.
And we started the day with SELinux. Very interesting, a lot of opinion about that in the room but honestly I can see that SELinux is extremely useful and doesn’t cause much harm on a desktop. Especially one where you don’t run any services. Also, there’s so often 0-day exploits for various net-services that running SELinux can’t be bad, right? There’s probably lots of other stuff you can do to do hardening in a Linux system.
Teacher did not mention chcon at all, only restorecon.
This RHCSA course do assume that you know a bit. For example it assumes that you know scripting, we’re not going through that at all. Using vi, less, are also assumed. Parsing, grepping etc. There are people struggling keeping up in class.
Going through all the objectives before attending is a great idea. It gives you some breathing room while doing the exercises in class and if you have stumbled upon and questions while you were experimenting yourself – you have a great opportunity to ask these in class. Another good thing with this is probably that it makes you faster at doing the task. If you can reset the root password on a VM in 60 seconds, instead of 300s – because you’re wondering about what commands to run, what parameters to send and how to send them, etc, that’ll save you a lot of time.
But even that is not enough, you really need to be experienced with Linux before. How to use the CLI and things like that. There are some good books around. Such as the book UNIX and Linux System Administration Handbook. I haven’t read all of it yet, actually just the part until Perl scripting, which is only the 2nd chapter! The stuff before chapter 3 are just basic linux administration / using the system. After that it goes into booting, filesystem, basically everything, and this is with some serious depth. Which is not for me.
Found http://www.youtube.com/watch?v=CjVYnK57YLA on youtube. Pretty cool, snapshotting in LVM!
I wrote in the preparation that there were no ‘set up ftp/www service’. What do you think we did today in the course? Set up vsftpd and httpd :)
Ssh hardening, set up vnc server, configure firewall via gui, ntp setup. Stuff like that.
It’s getting closer! I believe tomorrow will be even more challenging, if there’s storage stuff and encryption. But, setting that up via the GUI are pretty easy. So we’ll see!
First day done!
What hit me was that there are many commands in linux, some you maybe only use for one purpose. But there are some things that you haven’t done with it before, so an old command can still cause some trouble. For example crontab and the last * (or, day of week) in conjunction with day/month or by itself.
Already seen one double negative (/usr/share/doc/initscripts/sysconfig.txt and PEERDNS= directive) – so beware and read carefully.
Cool things:
ls -l /net/dns.to.nfs.server/
Will automagically mount the nfs server in there. Pretty nice!
automount, autofs, with /etc/auto.master
so that you can for example set up dynamic mounting of nfs directories for users that haven’t logged on to the system.
configuring ldap authentication best done via system-config-authentication GUI tool. Doing it via the CLI takes about a gazillion (26) variables/commands.
anacron for crontab that runs the script again if the machine was off when it was supposed to run.
https://github.com/mconigliaro/RHCE-Cheat-Sheet
Found this “cheat sheet” for RHCE. Sure it doesn’t specifically say RHCSA but honestly there’s a lot of good commands in there. Some things obviously might be too advanced for RHCSA, such configuring an dns/named service. But it might be good as a reference.
The objectives of the RHCSA exam: https://www.redhat.com/certification/rhcsa/objectives/. I copied the ones I’m unsure about below.
I think definitely it would be a good idea to go through these objectives before taking the exam, and if you have time – do each step as well!
There’s a bunch of things there that I’m not sure about or know how to do. I’m attending a five day RHCSA rapid track course, so we should be able to go through the stuff I don’t know there, but doesn’t hurt to do a little preparation!
This post is about: me going through each objective and trying to accomplish it. Writing it down is for you, but mostly for me :) If you have any questions there is the comment field below.
The lists are the objectives, first level is the actual objective while the sub-lists are commands, thoughts and comments.
I’m writing this and updating it as I go along. It’s purpose is to prepare for the exam, without using any ‘cheats’ like trying to find out labs/questions that comes on the exam.
To test: installing with only Desktop.
Packages, modules, services?
After install ‘lsmod|grep kvm’ doesn’t show anything.
Went into Add/Remove Software and added stuff under ‘Virtualization’.
After install, just trying to start virt-manager doesn’t work. It asks if libvirt service is running. ‘service libvirtd start’. Then virt-manager starts and finds the qemu. No need to reboot as ‘chkconfig –list|grep libv’ shows that they start on boot. Booting a machine after this works.
You can format, partition a drive and encrypt it after install. In desktop you can go to places and find the drive in there, that will open a dialogue where you put in the password and tada. After that you can hit ‘df -h’ to get the UUID and mountpoint. This you then put in /etc/crypttab. Don’t forget to add it to /etc/fsstab too. But, be careful here. I managed to screw it up so much that it wouldn’t even boot anymore.
This is a great guide for how to set up a LUKS partition and mount it on boot.
Works for partitions created outside install.
When I did ‘custom layout’ in install and set up encryption, it appears to take a lot longer to encrypt/format. If doing this in the exam I’d consider making a small partition. Especially not a 16GB one. It took ~15minutes in comparison to 5s.
It was however fast to create with cryptsetup post-install.
If you do decide to split up the filesystem (perhaps one partition per VM) then you’ll need to set appropriate selinux settings to make it work.
During install:
vdisk in vmware of 20GB.
One partition of 500MB for /boot
One swap of 512MB
One pg of 10GB, VG of the same, and lv for /
Keeping available space of about 9GB.
After boot:
By UUID: If you for example like above have created another partition and encrypted it and added it to fstab. You could just hit ‘blkid’ to get the UUID of the partition. Then you can change the /dev/mapper/luksdrive on the fstab into UUID=12354-515-51-5. To try it out, hit mount -a.
By label: set it with ‘e2label /dev/mapper/luksdrive lukslabel’. Then in fstab add LABEL=lukslabel instead of /dev/mapper/luksdrive. To view label hit: blkid. If there is none set, it’s not shown.
First, we need to set up an nfs server, this is not part of RHCSA though.
on server:
mkdir /nfs;chmod a+w /nfs
Make sure nfs-utils and rpcbind are installed.
chkconfig –list # check nfs, nfslock and rpcbind are on
edit /etc/export # /nfs IP/netmask(rw,sync,no_root_squash)
setsebool -P nfs_export_all_rw
check /etc/hosts.allow and .deny
starts services
on client:
mkdir /mnt/nfs
mount.nfs 192.168.0.17:/nfs /mnt/nfs -v -w
or
mount -t nfs -o rw 192.168.0.17:/nfs /mnt/nfs
Installed SLC6.1 in a VM. This time I chose both Virtual Host and Desktop Environment and X11 for packages. In VMWare Workstation 8 and the settings for the VM, do enable ‘virtualization’ in the processor options or you cannot virtualize inside the VM. It’s a lot easier to setup/install VM if you have a desktop GUI. Especially the part about you getting access to the console.
Post-install there is a GUI tool in the menu that you can use to install a VM and configure VM-stuff.
By default the virtual machine starts on boot.
In chkconfig –list. There is an entry called ‘libvirt-guests’. This is a fairly complex script that looks where the VMs are installed and boots them. You can go into the settings of the VM in the GUI and enable it to boot when the host boots.
By the way, if there are issues during boot, see /var/log/boot.log
yum install php
This installs httpd with php-support.
Add port 80 in the firewall: iptables-save > fwrules. Copy the one with port 22, paste and add port 80. iptables-restore < fwrules.
To keep the rules on reboot:
/etc/init.d/iptables save
This assumes that the DVD is mounted automagically which it does for me.
sudo mkdir /var/www/html/SL6; sudo cp -pR /media/nameofdisk/* /var/www/html/SL6
If you use the -p that means it preserves the read/write permissions on the files, beceause it’s mounted as a CD/DVD that means the files are read-only. If you want to do changes don’t use the -p or you’ll have to change that stuff later.
chcon -R --reference=/var/www /var/www/html/SL6.
Launch the virtualization manager. Create new VM. Name and network transfer, point to your httpd. RAM, disk space. Chose network interface – I only had NAT. (if you follow my guide below you’ll need to set static IP settings). After that the machine boots and you get a console. It starts graphical and then install continues as usual. If you want to see which IP your VM in the VM gets you can look in the access_log in /var/log. By default it got an address in 192.168.122.* range. If you set too little memory you cannot get the kdump.
follow this guide (incomplete) or one on linuxtopia or on libvirt wiki
First, copy the /root/anaconda-ks.cfg to /var/www/html/SL6/ks.cfg. Also set permissions to the file as appropriate.
Then open that file in system-config-kickstart. You probably want to change some stuff. For HTTP server install set server to: 192.168.0.17 and path to SL6. That’s if your path is . And of course add the whole URL to the ks.cfg. Remove virtualization packets. Change hdd layout stuff, you probably have less space available this time. Change URL to repository. Mine was still set to CD/ROM so had to manually set that during boot. Got two questions during the install: do you want to overwrite what’s on the disk? And, reboot? at the end of install. Consider removing these to speed up install.
Also, I could not log on after first reboot. Even though I kept the root password as is.
In system-config-kickstart: Set it to clear MBR, initialize labels and also to autoreboot upon completion.
For root password you need to manually enter, you can set it to plaintext. Set setupagent to disabled for a completely automatic install.
Repository you cannot change in system-config-kickstart.
Manually edit the ks.cfg.
repo –name –baseurl=http://192.168.0.17/SL6
user –name user –plaintext –password 112233
Last one creates a user called user with pw 112233.
Download the .iso.
Add new storage hardware, make it an IDE CD-ROM, hit add existing storage and select the .iso, set type to ‘raw’. Change boot order.
By default sshd is running on SL6 and you can ssh in with ‘root’.
Probably a good idea to change this in /etc/ssh/sshd_config
permitrootlogin no
But first, create a user that can log in.
useradd mart passwd mart
Then you can change sshd_config and ‘service sshd reload’.
Then you can ssh in and either hit’ su -‘ to get root access.
Or, if you hit ‘visudo’ and add your user. You can later just type ‘sudo bash’ to get a root bash shell.
iptables -L to view the firewall setup, note that there is a ‘virbr0’ interface that has forwarding rules. This is probably for NAT or bridging for potential virtual machines, and was probably created when we chose ‘Virtual Host’ as the role for the system.
iptables-save : another view that may be easier to understand. This you can put in ‘file’ and then hit iptables-restore < file.
To see what is happening, ssh in with ‘ssh -v ip’.
In my case I saw
debug1: An invalid name was supplied
Cannot determine real for numeric host address
A little googling showed me that this is because your machine doesn’t have a name lookup for that IP. So go ahead and add one in /etc/hosts and then it will be fast.
If so, add this to your ~/.ssh/config file:
Host * ServerAliveInterval 60
Make sure there is at least a space on the second line. I have three :p
You can change the * to a specific domain if you do not want to do this on all your boxes.
If the file doesn’t exist, create it.
If you want you can hit: iptables -L or iptables-save.
These will also show the current iptables rules.
See ip6tables for IPv6 rules.
Now the port is running on another non-standard port (you could set it to whatever you want, as long as it’s lower then 65536 and preferably higher than 1024). This might be good for security reasons. You could still have port 22 open for access from your internal network (see adding a -s ip.add.r.ess on the row in the iptables rules) and the other one accessible from the internet or maybe even a specific network / address on the internet for even more security.
Time for some more Linux testing.
The reason for this is because I think I will go ahead and try to study for the RHCSA – Red Hat Certified System Administrator. Work might send me to a course in December, probably wise to play around with it before this.
So here we go.
Scientific Linux (SL) is a free clone of Red Hat Enterprise Linux (RHEL). Historically it’s been updated faster than CentOS. It’s same as Enterprise Linux (EL) – it’s re-compiled from source.
New VM, \SL-61-x86_64-2011-07-27-Install-DVD.iso, RHEL6 64-bit. 1 Core, 2G RAM, NAT, LSI Logic, New virtual disk, SCSI, 20G. Then boot the VM.
SL.org has this in pictures.
First thing you see is the Grub menu:
Chose 1. Next screen is a graphical interface where you click and write, so you need keyboard/mouse. Next screen asks if you want local disks or external storage (fc, iSCSI, or zFCP – for system Z). Hostname: SL1.localdomain.
Create disks. Custom/full size. xfs/encryption/lvm cannot be used for boot volumes.
Role: Virtual Host (I want to try KVM). Enabling SL 6.1 and SL 6.1 Security Updates repositories.
Pinging to something on the Intertubes work from the start.
More posts coming with more fun stuff :)