Documente Academic
Documente Profesional
Documente Cultură
txt
###LinuxCBT EL-5 Edition###
Focuses on: RedHat Enterprise v5x
Successor to LinuxCBT EL-4 Edition, which succeeds LinuxCBT Classic Edition
Features:
1. 2.6x kernel (2.6.18)
a. 'uname -a' returns OS/Kernel information
Note: 'uname -a' returns the following useful info:
1. OS - Linux
2. Fully Qualified Domain Name (FQDN)
3. Kernel version - 2.6.18...
a. 2.6 = major version
b. .18 = minor version
c. anything else after the minor version indicates that the kernel was patched by
the distributor
4. Date and time that the kernel was compiled
2. Supports multiple versions:
a. Basic - Red Hat Enterprise Linux Server
a1. supports 2 physical (Socket) CPUs
a2. Up to 4 virtual guests
b. Advanced Platform
b1. supports unlimited physical CPUs
b2. supports unlimited virtual guests
Note: Virtualization limits pertain to the virtualization technology included with
Red Hat Enterprise Linux. NOT third-party software (VMWare)
###Kickstart Configurator###
Features:
1. Hands-free, automated installation
2. Scripted installation
3. Script can be used on multiple systems
Note: 'system-config-kickstart' is NOT installed by default
Steps:
1. Open previously created 'anaconda-ks.cfg' file and modify
2. Define partitions accordingly
3. Confirm settings
Page 1
LinuxCBT_EL-5_Edition_Notes.txt
4. Publish the 'ks.cfg' file to HTTP server
5. Install server using the following at the main menu:
'linux ks=http://192.168.75.100/ks.cfg'
Note: The following can be used to boot a kickstart installation:
1. boot.iso CD-ROM
2. First CD-ROM of the RH5 installation set
3. The DVD-ROM of the RH5 installation set
4. USB Pen/Stick - diskboot.img (use dd)
###FTP INSTALLATION###
Steps:
1. Create FTP user account on FTP server
a. 'useradd -s /bin/false -d /srv/wwwlinuxcbt.com linuxinstall'
b. 'passwd linuxinstall'
2. Confirm FTP connectivity as the user 'linuxinstall'
Page 3
LinuxCBT_EL-5_Edition_Notes.txt
Pipes '|':
Features: Connects the output stream of one command to the input stream of a
subsequent command
1. cat 123.txt | sort
2. cat 456.txt 123.txt | sort
3. cat 456.txt 123.txt | sort | grep 3
###Command Chaining###
Features:
1. Permits the execution of multiple commands in sequence
2. Also permits execution based on the success or failure of a previous command
1. cat 123.txt ; ls -l - this runs first command, then second command without
regards for exit status of the first command
2. cat 123.txt && ls -l - this runs second command, if first command is successful
3. cat 1234.txt && ls -l
4. cat 123.txt || ls -l - this runs second command, if first command fails
Gzip:
Includes:
1. gzip - compresses/decompresses files
2. gunzip - decompresses gzip files
Tasks:
1. compress '1million.txt' file using gzip
a. gzip -c 1million.txt > 1million.txt.gz
Page 4
LinuxCBT_EL-5_Edition_Notes.txt
Note: gzip auto-dumps to STDOUT, by default
b. gzip -l 1million.txt.gz - returns status information
c. gunzip 1million.txt.gz - dumps to file, and removes compressed version
d. gzip -d 1million.txt.gz
e. zcat 1million.txt.gz - dumps the contents to STDOUT
f. less 1million.txt.gzip - dumps the contents of gzip files to STDOUT
Bzip2:
1. bzip2 -c 1million.txt > 1million.txt.bz2
###GREP###
Features:
1. The ability to parse lines based on text and/or RegExes
2. Post-processor
3. Searches case-sensitively, by default
4. Searches for the text anywhere on the line
8. rpm -qa | grep grep - searches the package database for programs named 'grep'
9. rpm -qa | grep -i xorg | wc -l - returns the number of pacakges with 'xorg' in
their names
10. grep sshd messages
11. grep -v sshd messages - performs and inverted search (all but 'sshd' entries
will be returned)
12. grep -v sshd messages | grep -v gconfd
13. grep -C 2 sshd messages - returns 2 lines, above and below matching line
Note: Most, if not all, Linux programs log linearly, which means one line after
another, from the earliest to the current
Note: Use single or double quotes to specify RegExes
Also, execute 'grep' using 'egrep' when RegExes are being used
###Awk###
Features:
1. Field/Column processor
2. Supports egrep-compatible (POSIX) RegExes
3. Can return full lines like grep
4. Awk runs 3 steps:
a. BEGIN - optional
b. Body, where the main action(s) take place
c. END - optional
5. Multiple body actions can be executed by separating them using semicolons. e.g.
'{ print $1; print $2 }'
6. Awk, auto-loops through input stream, regardless of the source of the stream.
e.g. STDIN, Pipe, File
Usage:
1. awk '/optional_match/ { action }' file_name | Pipe
2. awk '{ print $1 }' grep1.txt
Note: Use single quotes with awk, to avoid shell interpolation of awk's variables
3. awk '{ print $1,$2 }' grep1.txt
###Perl###
Features:
1. Parses text
2. Executes programs
3. CGI - Web forms, etc.
4. Supports RegExes (Perl and POSIX)
5. etc.
Task:
1. Print 'Hello World' to STDOUT
a. perl -c helloworld.pl - checks the syntax of the script
b. perl helloworld.pl - executes the script
c. chmod +x helloworld.pl && ./helloworld.pl
###System Utilities###
Features:
1. Process listing
2. Free/available memory
3. Disk utilization
1. ps - process status/listing
a. ps -ef or ps -aux
2. top - combines, ps, uptime, free and updates regulary
3. uptime - returns useful system utilization information:
a. current time
b. uptime - days, hours and minutes
c. connected users
d. load averaged - 1,5,15 minute values
4. free - returns memory utilization
a. RAM
b. SWAP
Page 7
LinuxCBT_EL-5_Edition_Notes.txt
free -m - for human readable format
5. df - returns disk partition/mount point information
a. df - returns info. using kilobytes
b. df -h - returns info. using megabytes/human readable (gigs/teray/etc.)
6. vmstat - reports on: processes, memory, paging, block I/O, traps, CPU activity
a. vmstat
b. vmstat -p /dev/hda1 - returns partitions stats for /dev/hda1 (/boot)
7. gnome-system-monitor - GUI, combining most system utilities
8. ls -ltr /proc
a. cat /proc/cpuinfo
9. kill PID - kills the process with a given PID
10. runlevel - returns runlevel information using 2 fields:
a. represents previous runlevel
b. represents current runlevel
###User/Group Management###
Features:
1. The ability to control users and groups
Primary tools:
1. useradd - used to add users and modify group membership
2. system-config-users
Task:
1. Create a user named 'student1' using 'useradd'
username:shadow_reference:uid:gid:Description(GECOS):$HOME:$SHELL
Note: /etc/passwd is a world-readable file
Note: /etc/shadow now stores passwords in encrypted form
Note: /etc/shadow is NOT world-readable
Fields in /etc/shadow:
student1:$1$XSFMv2ru$lfTACjN.XxaxbHA0EkB4U0:13891:0:99999:7:::
1. username:
2. encrypted_password:
3. Days_since_Unix_epoch_password_was_changed (01/01/1970)
4. Days before password may be changed
5. Days after which the password MUST be changed
6. Days before password is to expire that user is warned
7. Days after password expires, that account is disabled
8. Days since Unix epoch, that account is disabled
9. Reserved field (currently unused)
Page 8
LinuxCBT_EL-5_Edition_Notes.txt
Groups:
1. groupadd - adds new group
2. groups - lists groups on the system: /etc/group
/etc/group - maintains group membership information
Task: Create a 'sales' group and add 'linuxcbt' and 'student1' as members
1. groupadd sales
2. usermod -G sales linuxcbt
3. usermod -G sales student1
Note: use 'ls -l' to examine permissions or GUI application like 'Nautilus'
Page 9
LinuxCBT_EL-5_Edition_Notes.txt
2. Ensure that 'regextest.pl' is rw by owner and noone else
a. chmod 600 regextest.pl
Note: File will now be rw by owner (linuxcbt) and 'root'
3. Ensure that 'regextest.pl' is r by owner and noone else
a. chmod 400 regextest.pl && ls -l regextest.pl
Note: chmod supports string values, which represent octal values
chmod +/- x file
chmod +/- w file
chmod +/- r file
chmod +/- u+x file - updates owner's execute permissions on the file
chmod +/- o+x file - updates other's execute permissions on the file
chmod +/- g+x file - updates group's execute permissions on the file
chmod a+rwx = chmod 777
SETUID:
Features:
1. ability to execute file as owner
chmod 4760 regextest.pl - this will ensure that the perl script always executes as
the user 'linuxcbt'
-rwsrw---- 1 linuxcbt sales 787 Jan 13 16:08 regextest.pl
's' in the execute position means that the program will execute as that user
SETGID:
Features:
1. Ability to enforce permissions to a directory structure
mkdir /sales
chmod 2775 /sales
chgrp:
Permits updating of group permissions
Sticky Bit:
Features:
1. Ability to ensure that users cannot delete others' files in a directory
drwxrwxrwt 23 root root 4096 Jan 13 15:05 /tmp/
Page 10
LinuxCBT_EL-5_Edition_Notes.txt
/tmp - users cannot delete other user's files in '/tmp'
chmod 3777 /sales - ensures that /sales will not lose files from incorrect users
Task:
1. Set '/sales' using sticky bit and test
a. chmod 3777 /sales && ls -ld /sales OR chmod 777 /sales && chmod +t /sales
###Symlinks###
Features:
1. Provides shortcuts to files (including directories)
2. Provides hard links to inode (file system) locations
Soft Links:
1. ln -s source_file target
a. ln -s ./regextest.pl lastscript.pl
Hard Links:
Features:
1. The ability to reference the same inode/hard drive location from multiple
places within the same file system
a. ln source target
ln regextest.pl ./testhardregextest.pl - creates a hard link
###Quotas###
Features:
1. Limits disk usage (blocks or inodes)
2. Tied to file systems (set on a per file system basis)
3. Can be configured for users and groups
Page 11
LinuxCBT_EL-5_Edition_Notes.txt
6. Report on usage
a. repquota -a - this reports on usage
Note: The blocks are measured in 1K increments. i.e. 20000 blocks is roughly 20MB
Steps:
1. Identify available storage
a. 'fdisk -l' - returns connected storage
2. Create partitions on desired hard drive:
a. 'fdisk /dev/sdb' - interacts with /dev/sdb drive
b. 'n' - to add a new partition
c. 'p' - primary
d. '1' - start cylinder
e. '+4096M' - to indicate 4 Gigabytes
f. 'w' - to write the changes to the disk
Note: use 'partprobe partition (/dev/sdb1)' to force a write to a hard drive's
partition table on a running system
Note: 'fdisk' creates raw partitions
Steps:
1. Identify current swap space
a. swapon -s - enumerates partitions and/or files, which constitute swap storage
b. free -m
Page 12
LinuxCBT_EL-5_Edition_Notes.txt
4. Enable swapping - publish the swap space to the kernel
a. swapon /dev/sdb2 - this enables swapping on /dev/sdb2
5. update /etc/fstab
a. /dev/sdb2 swap swap defaults 0 0
swapoff /dev/sdb2 - disables swapping on /dev/sdb2
Task:
1. Improve system performance by distributing swapping to /dev/sdb2
a. swapon /dev/sdb2
b. swapoff /dev/sda6
c. disable /dev/sda6 via /etc/fstab
Task:
1. Create 512MB swap file
a. dd if=/dev/zero of=/home1/swapfile1 bs=1024 count=524288
b. mkswap /home1/swapfile1 - overlays swap file system
c. swapon /home1/swapfile1 - makes swap space avaialable to the kernel
2. Ensure that when the system reboots, the swapfile is made avialable to the
kernel
a. nano /etc/fstab - /home1/swapfile1 swap swap defaults 0 0
Note: Be certain to update: /etc/fstab so that volumes are mounted when the system
reboots
Page 14
LinuxCBT_EL-5_Edition_Notes.txt
Task: Shrink (resize) 'logvolopt1' to 15GB
a. lvresize -L 15GB /dev/volgroup001/logvolopt1
b. lvdisplay
c. df -h
d. resize2fs -f -p /dev/volgroup001/logvolopt1
Note: online shrinking is not supported
e. df -h
Note: Check disk utilization prior to shrinking to reduce the risk of losing data
LVM GUI Utility:
system-config-lvm
###RAID###
Features:
1. The ability to increase availability and reliability of data
Tasks:
1. Create a RAID-1 Device (/dev/md0..n)
a. fdisk /dev/sdb - to create usable raw partitions
b. partprobe /dev/sdb - to force a kernel update of the partition layout of the
disk: /dev/sdb
b. mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb5 /dev/sdb6
c. cat /proc/mdstat - lists active RAID (md) information
d. mke2fs -j /dev/md0 - overlays a file system on the RAID device
e. mount /dev/md0 /raid1
f. update: /etc/fstab
Note: use 'mdadm --query /dev/md0' to get information about a RAID device
Page 15
LinuxCBT_EL-5_Edition_Notes.txt
###RPM###
Features:
1. Provides package management
a. Query
b. Install
c. Uninstall
d. Upgrade
e. Verify
2. Auto-verifies packages using GPG, MD5, SHA1SUMs
3. Automatically reports on unresolved dependencies
'rpm'
Query:
1. rpm -qa - dumps all installed packages
2. rpm -qa | wc -l - this dumps all packages and provides a count
3. rpm -qa | grep -i nano
4. rpm -qi nano - dumps info. about the 'nano' package as it's recorded in the
local RPM database
5. rpm -qf /usr/bin/nano - dumps package membership info. for the 'nano' file
6. rpm -qpi http://192.168.75.100/RH5/i386/Server/dhcp-3.0.5-7.el5.i386.rpm -
dumps info. about the uninstalled 'dhcp' package, which resides on the repository
7. rpm -ql package_name - returns all included files
Verify:
1. rpm -Va - verifies ALL packages on the system, returning info. only if there
are discrepancies from the original installation
2. rpm -Vf /usr/bin/nano
SM5....T /usr/bin/nano
S(file size), M(mode or permissions), 5(MD5), T(mod time)
3. rpm -Vp nano
Page 16
LinuxCBT_EL-5_Edition_Notes.txt
Removal:
1. rpm -ev *.rpm - removes a pacakge
Note: removal process considers dependencies and will complain if the removal will
break 1 or more packages. To get around this, use '--nodeps' option with 'rpm -ev
--nodeps *.rpm'
2. rpm -ev gftp
###YUM Configuration###
Features:
1. The ability to centralize packages (updates)
Installation & Setup:
1. Install 'createrepo*rpm'
2. Setup directory structure
a. /srv/www/linuxcbt.com/RH5/yum
Note: Ensure that about 3GBs are available for the yum respository
Yum Usage:
1. Search for packages
a. 'yum search gftp'
###Cron - Scheduler###
Features:
1. Scheduler
2. Rules (Cron entries) are based on times:
a. minute (0-59)
b. hour (0-23)
c. day of the month (1-31)
d. month (1-12)
e. day of the week (Sun,Mon,Tue, etc. OR 0-7)
f. command to execute (shell, perl, php, etc.)
3. Wakes up every minute in search of programs to execute
Page 17
LinuxCBT_EL-5_Edition_Notes.txt
4. Reads cron entries from multiple files
5. Maintains per-user and system-wide (/etc/crontab) schedules
/etc:
cron.d/
cron.deny - denies cron execution by user
cron.monthly/ - runs jobs monthly
cron.weekly/ - runs jobs weekly
cron.daily/ - runs jobs daily
cron.hourly/ - runs jobs hourly
crontab - contains system-wide schedules
Note: '*' wildcard in a time column means to run for all values
Per-user Crontabs:
Stored in: /var/spool/cron
Task:
1. Create a cron entry for the user 'student1'
a. su student1
b. crontab -e
c. create an entry, minus the name of the user
System-wide Crontab:
Stored in: /etc/crontab
Task:
1. Create a cron entry in: /etc/crontab
###SysLogD###
Features:
1. Handles logging
2. Unix Domain Sockets (/dev/log)
3. Internet Sockets (UDP:514)
4. Ability to log to local and remote targets
Implented as 'sysklogd' package
###Log Rotation###
Features:
1. Rotation of logs based on criteria
a. size
b. age (daily, weekly, monthly)
2. Compression
3. Maintain logs for a defined period
/var/log/httpd/*log {
missingok
notifempty
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
endscript
}
Page 19
LinuxCBT_EL-5_Edition_Notes.txt
PING:
Features:
1. ability to communicate with hosts using ICMP
a. PING sends ICMP echo-requests
b. PING expects to receive ICMP echo-replies
Task: PING some hosts and evaluate the output
1. ping localhost (127.0.0.1)
2. ping -c 3 localhost - sends 3 ICMP echo-requests
Note: 'ping localhost' performs name resolution using /etc/hosts
/etc/hosts stores static name-to-IP mappings
Note: 127.0.0.0/8 is fully-reserved to the loopback adapter of ALL IPv4 hosts
3. ping -c 3 192.168.75.199
4. ping -c 3 -i 3 192.168.75.199 - delays PINGs to 3 seconds apart
Note: PING defaults to a standard 1-second interval
Note: Firewall(s) may block ICMP traffic, causing PING to fail
TELNET:
Features:
1. Great for basic TCP port diagnosis
Task:
1. Connect to TCP ports on various hosts
a. telnet 192.168.75.100 22
b. telnet www.linuxcbt.com 80
NETSTAT:
Features:
1. Provides network connection information from /proc/net/*
Task:
1. Return useful information for various protocols
a. netstat
b. netstat -a - returns all protocols/sockets
c. netstat -ntlp - returns all TCP LISTENERS without name resolution
d. netstat -nulp - returns all UDP lISTENERS without name resolution
ARP:
Features:
1. Resolves layer-2 (OSI model) MAC addresses to layer-3 IP addresses
Task:
1. Examine MAC addresses using: ifconfig and arp
a. ifconfig - returns our local MAC addresses
Link encap:Ethernet HWaddr 00:02:B3:98:41:08
b. arp -a - returns MAC to IP mappings
Note: When 2 TCP/IP hosts communicate, ARP is performed to translate the IP address
(v6/v4) to a MAC address.
Note: If a one or more routers separate the communicating hosts, then the MAC
Page 20
LinuxCBT_EL-5_Edition_Notes.txt
address of the default router's (gateway's) interface is stored by each client
Note: Either update your net configuration manually from the shell, or using the
'system-config-network*' tools to avoid losing settings
IPv4 Aliases:
1. ifconfig eth0:1 192.168.75.11
2. ifconfig eth0:2 10.168.76.11
Note: To ensure that aliases persist do the following:
1. cp /etc/sysconfig/network-scripts/ifcfg-eth0 ./ifcfg-eth0:1
2. Modify ifcfg-eth0:1 to reflect aliased IP
Note: Aliases do NOT work with DHCP interfaces
IPv6 Config:
Features:
1. Auto-configured by default gateway (router)
2. fe80:: - link-local address (loopback/local subnet address)
3. 2002:: - 6to4 address, that can be configured based on IPv4 embedded address,
using HEX notation
ping6 -I eth0 fe80::
traceroute6 - used to trace routes on IPv6 networks
###Kernel Upgrade###
Features:
1. Provision of updated/patched kernel
Task:
1. Update the kernel
a. use 'uname -a' to reveal current version
b. use 'rpm -qa | grep -i kernel' - to reveal installed version
c. cat /etc/grub.conf -> /boot/grub/grub.conf - "" ""
2. Proper installation method is as follows:
a. 'rpm -ivh kernel*rpm' - install a separate version
Page 21
LinuxCBT_EL-5_Edition_Notes.txt
Note: Install the following kernel packages if necessary:
a. kernel-devel* - if module compilation is necessary
b. kernel-headers* - if recompilation is necessary
Install:
a. rpm -ivh kernel-2.6.18-53.el5.i686.rpm
Note: This will update GRUB (/boot/grub/grub.conf)
Note: Will also place the new kernel in the /boot file system
/usr/sbin/ntsysv:
Usage:
1. ntsysv - manages services in the current run-level
2. ntsysv 35 - manages services for run-levels 3 & 5
NTP Strata:
Features:
1. The ability to denote clock accuracy based on on stratum
2. With Stratum level 1 being the most accurate, as an NTP server at this level is
connected to an external time service (GPS, Radio, etc.)
Use: www.ntp.org - to located public NTP clocks at various strata
Task:
1. Synch against internal NTP server
a. /etc/ntp.conf
a1. server 192.168.75.100
b. service ntpd start - this starts the 'ntpd' service
c. chkconfig ntpd on
d. ntpq -np - this queries the running 'ntpd' server
Tasks:
1. Install 'vsftpd'
a. yum -y install vsftpd
###LFTP###
Features:
1. Sophisticated FTP client
2. Provides connectivity:
a. FTP
b. HTTP/HTTPS
c. SFTP(SSHv2)
3. Interactive and non-interactive client
4. Supports scripting
Page 24
LinuxCBT_EL-5_Edition_Notes.txt
5. Reads system-wide (/etc/lftp.conf) and per-user config files (~/.lftprc)
6. Behaves like the BASH shell
a. Command history
b. Permits execution of background jobs. Use CTRL-Z to background.
c. Tab completion
7. Supports mirroring (forward and reverse) of content
8. Supports FTP retransmit/reconnect from where you left off
9. Supports bookmarks of sites
10. Supports escape to shell using '!command' e.g. '!bash'
11. Supports the execution of BASH programs '!command' e.g. '!ps -ef'
Usage:
1. lftp - enters interactive mode
a. 'set -a' - reveals all variables
2. lftp linuxcbt@192.168.75.199
###Telnet Server###
Features:
1. Shell interface on remote system
2. Binds to TCP:23
Caveat:
1. Clear-text based application (credentials are transmitted in the clear)
2. By default, 'root' is NOT permitted access via telnet-server - /etc/securetty
Requirements:
1. xinetd - installed automatically via yum
Page 25
LinuxCBT_EL-5_Edition_Notes.txt
Note: Wherever/whenever possible opt for SSH in place of Telnet Server
Note: DNS is organized into an inverted tree, with '.' representing the root of the
DNS tree. e.g.
dig mail1.linuxgenius.com.
- . = root
- .com = top level
- .linuxgenius = second level
-mail = third level
Note: A trailing '.' in a DNS query is implied, and may optionally be indicated if
desired in any standard Internet application (web browser, FTP client, wget,
nslookup, dig, host, etc.)
Reverse Zones:
Features:
1. The ability to resolve a name, given an IPv4 or IPv6 address
Tasks:
1. Define an IPv4 reverse zone for the local subnet:
a. Define zone name: '75.168.192.in-addr.arpa' - /etc/named.conf
b. Update: /etc/named.conf
c. Create zone file in: /var/named
d. Update configuration
e. Restart named
f. test using 'dig -x 192.168.75.1'
Note: Reverse zones are built from the prefix in IPv4 subnets
2. /var/named/zone_file
a. Include entries using the last 64-bits or IPv6 host part
d.a.a.4.b.1.e.f.f.f.e.5.a.0.2.0 IN PTR linuxcbtmedia1.linuxcbt.internal.
Note: When creating reverse IPv6 entries for hosts, do the following:
a. reverse the 64-bit portion of the address that corresponds to the host,
expanding all zeros
b. Create PTR record based on the reverse, nibble-format of the address
Test using dig:
a. dig -x 2002:4687:db25:3:20a:5eff:fe1b:4aad
Tasks:
1. Export a directory on the server using: /etc/exports
a. /path_to_directory IP_ADDR(rw)
b. /nfs1 192.168.75.10(rw)
c. mkdir /nfs1
d. start NFS server - 'service nfs start'
e. Confirm export(s) - 'exportfs -v'
Note: NFS matches remote user's UID to local /etc/passwd to determine ACLs
2. Export /nfs2
a. Create entry in /etc/exports
b. Update current exports using: exportfs -a
###AutoFS###
Features:
1. Automatically mounts file systems (NFS, local, SMBFS, etc.) upon I/O request
Page 29
LinuxCBT_EL-5_Edition_Notes.txt
Requirements:
1. autofs-*rpm must be installed
/etc/auto.master - primary configuration file
- also contains mount points and their mappings
/etc/sysconfig/autofs - default startup directives
Note: AutoFS must be running in order to auto-mount directories
Task:
1. Create an automount for /shares, which will mount /nfs1 & /nfs2
a. update /etc/auto.master - '/shares /etc/auto.shares'
b. cp /etc/auto.misc /etc/auto.shares
c. update the rules in /etc/auto.shares
d. Create AutoFS tree: /shares/
e. Restart the autofs service
f. Unmount: /nfs1 & /nfs2 if necessary
Note: Do NOT auto-mount directories that are already mounted
g. Test access to AutoFS controlled directory
g1. 'ls -l /shares/nfs1'
Note: syntax for auto-mount files is as follows:
<mount-point> [<options>] <location>
nfs1 -fstype=nfs 192.168.75.199:/nfs1
###Samba ###
Features:
1. Provides Windows features (file & print) on Linux | Unix
Samba Server:
/etc/samba/smb.conf - primary config file
SWAT manages /etc/samba/smb.conf
Samba Server Modes:
1. User
a. One Samba-defined user is required per Linux user
Page 30
LinuxCBT_EL-5_Edition_Notes.txt
b. Authentication of users is handled by Samba server
2. Server/Domain (PDC/BDC)
a. Authentication is handled by the Windows NT/2K/2K3/2K8 server
b. Still requires a local Samba-defined user accounts database
3. ADS - Active Directory
a. Authentication is handled by Active Directory
b. When used with Winbind, locally-defined Samba users are NOT required
Note: Ultimately, users must authenticate to the local Linux file system
Task:
1. Install SWAT
a. yum -y install samba-swat
b. nano /etc/xinetd.d/swat - set 'disable = no'
c. service xinetd restart
d. netstat -ntl | grep 901
Winbind:
Features:
1. Windows AD integration
2. Avoids having to define users in 2 places: Windows, Linux
3. Uses Kerberos for authentication
Requirements:
1. krb5-* packages
2. Properly configured Kerberos environment:
a. /etc/krb5.conf
[libdefaults]
default_realm = AD2.LINUXCBT.INTERNAL
[realms]
AD2.LINUXCBT.INTERNAL = {
kdc = linuxcbtwin3.ad2.linuxcbt.internal
admin_server = linuxcbtwin3
}
[domain_realm]
.linuxcbtwin3.ad2.linuxbt.internal = AD2.LINUXCBT.INTERNAL
Steps:
1. Update: /etc/krb5.conf
2. Update Samba configuration to use ADS authentication
3. Update Samba server's DNS to point to ADS server
a. /etc/resolv.conf
b. /etc/hosts - including a pointer to the ADS server (linuxcbtwin3)
4. Join AD domain:
a. 'net ads join -U administrator'
5. Confirm AD membership using: 'Active Directory Users & Computers' Tool
6. Setup Winbind to authenticate using ADS:
a. /etc/pam.d/system-auth - account & auth settings
auth sufficient /lib/security/pam_winbind.so - place before 'pam_unix.so'
account sufficient /lib/security/pam_winbind.so
Page 31
LinuxCBT_EL-5_Edition_Notes.txt
b. /etc/nsswitch.conf
passwd: files winbind
group: files winbind
c. Configure 'idmap' 'uid & gid' mappings - 10000 - 20000
Use SWAT to update idmap settings for 'uid & gid'
Note: If you want ADS users to be able to logon to your Samba-Winbind Linux box
using SSH, Telnet, mingetty, etc., change the 'Template Shell' directive to a valid
shell. i.e. /bin/bash
Task1:
1. Authenticate using ADS, as 'administrator' from Windows box
2. Create a user named 'linuxcbt' in AD
3. Create shared directory on the Samba box, and provide access (Share it)
Tasks:
1. Install Apache 2.2x
a. httpd*rpm
Note: Parent Apache runs as 'root' and can see the entire file system
Note: However, children processes run as 'apache' and can only see files/directories
that 'apache:apache' can see
4. Create an Alias for content outside of the web root (/var/www/html)
a. Alias /testalias1 /var/www/testalias1
<Directory /var/www/testalias1>
AllowOverride Non
order allow,deny
allow from all
</Directory>
5. Ensure that Apache will start when the system boots
a. chkconfig --level 35 httpd on && chkconfig --list httpd
Tasks:
1. Create IP Based Virtual Hosts
a. ifconfig eth0:1 192.168.75.210
b. Configure the Virtual Host:
<VirtualHost 192.168.75.210>
ServerAdmin webmaster@linuxcbtserv4.linuxcbt.internal
ServerName site1.linuxcbt.internal
DocumentRoot /var/www/site1
<Directory /var/www/site1>
Order allow,deny
Allow from all
</Directory>
CustomLog logs/site1.linuxcbt.internal.access.log combined
ErrorLog logs/site1.linuxcbt.internal.error.log
</VirtualHost>
c. Create: /var/www/site1 and content
d. Update: /etc/httpd/conf/httpd.conf with VHost information
###MySQL###
Features:
1. DBMS Engine
2. Compabtible with various front-ends:
a. Perl
b. PHP
c. ODBC
d. GUI Management
Tasks:
1. Install MySQL Client & Server
a. yum -y install mysql
/etc/my.cnf - primary config file
/usr/bin/mysql - primary client used to interact with the server
/usr/bin/mysqladmin - primary admin utility to return useful info, and perform admin
tasks from the shell
Page 34
LinuxCBT_EL-5_Edition_Notes.txt
b. yum -y install mysql-server
###Postfix MTA###
Features:
1. Message Transfer Agent (MTA)
2. Modular (SpamAssAssin)
3. Drop-in replacement for Sendmail, as it provides a 'sendmail' binary
Note: Use 'system-switch-mail*' package to switch between Postfix and Sendmail
Tasks:
1. Install Postfix
Page 35
LinuxCBT_EL-5_Edition_Notes.txt
a. yum -y install postfix
/etc/postfix - primary configuration directory
/etc/postfix/main.cf - primary configuration file
/etc/postfix/transport - contains routing rules for domains
/etc/postfix/virtual - contains virtual user mappings
Features:
1. Mail retrieval using standard protocols
2. Common package: dovecot
3. Supports both: mbox (/var/spool/mail/usernam) & Maildir formats
4. Supports SSL: POP3S & IMAPS
Tasks:
1. Install dovecot
/etc/dovecot.conf - primary config file
/etc/pki/dovecot/dovecot-openssl.cnf - SSL config
Note: Default configuration binds to:
a. POP3 - downloads messages to client
b. POP3S
c. IMAP - leaves messages on server
d. IMAPS
E-mail flow: mutt -> sendmail -> Postfix queue -> remote system -> POP3|IMAP
2. Configure mail client to download messages using POP3
Tasks:
1. Install Squirrelmail with support via Apache
a.Download from squirrelmail.org - *.bz2
b. Confirm the MD5SUM
c. Copy the *.bz2 file to the Apache server
d. yum -y install php php-imap - installs PHP support for Apache/IMAP
e. mkdir /var/www/mail
f. Extract Squirrelmail to: /var/www/mail
g. Optionally, create symlink named 'mail' to point to Squirremail version
h. Create the Apache Virtual Host
<VirtualHost 192.168.75.199:80>
ServerAdmin webmaster@mail.linuxcbt.internal
ServerName mail.linuxcbt.internal
DocumentRoot /var/www/mail
<Directory /var/www/mail>
Options FollowSymLinks
Order allow,deny
Allow from all
</Directory>
CustomLog logs/mail.linuxcbt.internal.access.log combined
ErrorLog logs/mail.linuxcbt.internal.error.log
</VirtualHost>
i. Restart Apache
j. Configure SquirrelMail defaults: /var/www/mail/mail/config/conf.pl
k. Create 'attach' and 'data' directories for SquirrelMail:
/var/local/squirrelmail/{data,attach}
l. Update permissions so SquirrelMail may write to 'data' and 'attach'
directories: chown -R apache.apache /var/local/squirrelmail
k. Setup DNS
l. Attempt to access SquirrelMail
http://mail.linuxcbt.internal/mail
http://mail.linuxcbt.internal/mail/src/configtest.php
Note: If SELinux is enabled, use 'setsebool...' to allow httpd to connect to IMAP
and SMTP ports. Consult: /var/log/messages
Tasks:
1. Install Squid Proxy server
a. yum -y install squid
/etc/squid - primary configuration container
/etc/squid/squid.conf - primary configuration file
/usr/sbin/squidclient - used to test Squid Proxy server
/var/log/squid - primary log directory
/var/spool/squid - cache directory containter
2. Start Squid, and ensure that it starts when the system reboots
a. service squid start
b. chkconfig --level 35 squid on
Note: Ensure that ample/fast disk storage is available for: /var/spool/squid
Note: Squid defaults to TCP:3128
Page 37
LinuxCBT_EL-5_Edition_Notes.txt
3. Configure Firefox browser to use Squid Proxy server
###SELinux Intro###
Features:
1. Restricts access by subjects (users and/or processes) to objects (files)
2. Provides Mandatory Access Controls (MACs)
3. MACs extend Discretionary Access Controls (DACs(Standard Linux Permissions))
4. Stores MAC permissions in extended attributes of file systems
5. SELinux provides a way to separate: users, processes (subjects), and objects,
via labeling, and monitors/controls their interaction
6. SELinux is integrated into the Linux kernel
7. Implements sandboxes for subjects and objects
8. Default RH5 implementation creates sandboxes (domains) for 'targeted' daemons
and one sandbox (unconfined_t) for everything else
9. SELinux is implemented/enabled by RH5, by default
10. Operates in the following modes:
a. Permissive - permission is always granted, but denials are logged in:
/var/log/messages
b. Enforcing - strictly enforces 'targeted' policy rules
c. Disabled - Only DACs are applied
11. Operating modes can be applied upon startup or while the system is running
Tasks:
1. Disable SELinux upon boot-up on LINUXCBTSERV4
a. nano /etc/grub.conf
a1. Update 'kernel' line to reflect: selinux=0
Note: If files(objects) lose their SELinux context, there are multiple ways to
relabel them:
1. 'touch /.autorelabel && reboot' - init will relable the system according to the
'targeted' policy
2. 'fixfiles' - use to relabel objects (files) while the system is running
Note: List of daemons protected by the 'targeted' SELinux policy:
1. apache(httpd)
2. dchpd
3. ntpd
Page 38
LinuxCBT_EL-5_Edition_Notes.txt
4. named
5. syslogd
6. squid
7. snmpd
8. portmap
9. nscd
10. winbind
Note: The 'targeted' policy assigns ALL other subjects and objects to the
'unconfined_t' domain
Note: The default SELinux 'targeted' policy, using MACs, binds subject domains: i.e.
'httpd_t' to object types: i.e. 'httpd_config_t'
Note: SELinux MACs compound Linux DACs
Usage:
1. gpg --list-keys - this enumerates keys in ~/
2. gpg --gen-key - generates a PKI keypair for the current user
3. gpg --encrypt -r LinuxCBT --armor sample.txt - encrypts sample.txt using our
'LinuxCBT's' public key
###OpenSSHv2###
Features:
1. Provides data encryption services based on PKI - Confidentiality
2. Primarily used to protect the transport layer
3. Encrypted shell sessions, file transfers
4. Password-less logins
5. Port forwarding - Pseudo-VPN
SSH Clients:
/etc/ssh/ssh_config - shared system-wide config file for SSH clients
1. scp - secure, non-interactive, copy program
Page 39
LinuxCBT_EL-5_Edition_Notes.txt
a. scp sample.txt linuxcbt@linuxcbtmedia1:
b. scp linuxcbt@linuxcbtmedia1:testRH5/sample.txt sample2.txt
Task:
1. Setup Password-less logins using SSH
###IPTables###
Features:
1. Firewall for Linux
2. Interface to Netfilter, which is loaded by the kernel
3. Operates primarily @ layers 3 & 4 of the OSI model
4. Modular
5. Provides Network Address Translation (NAT)
6. IPTables can also access other layers (2, 5-7), with modules
1. grep -i config_netfilter /boot/config*
Note: Save rules in: /etc/sysconfig/iptables so that when IPTables is restarted, the
rules will be applied OR, update /etc/sysconfig/iptables-config to save the rules
automatically
/sbin/iptables - primary ACL modifier utility
/sbin/iptables-restore - restores rules to current IPTables instance
/sbin/iptables-save - saves rules to STDOUT, by default, or to a file
Usage:
1. iptables -L
Tasks:
1. Filter inbound traffic to remote RH5 system to SSH
a. iptables -A INPUT -p tcp --dport 22 -j ACCEPT
b. iptables -A INPUT -j DROP
Page 40
LinuxCBT_EL-5_Edition_Notes.txt
2. Filter outbound traffic to ANY remote SSH port
a. iptables -A OUTPUT -p tcp --dport 22 -j DROP
3. Flush ALL rules from OUTPUT chain of the Filter table
a. iptables -F OUTPUT
4. Save rules to file, then flush rules
a. iptables-save > iptables.rules.1
5. Reinstate flushed rules
a. iptables-restore iptables.rules.1
###IPv6 IPTables###
Features:
1. Firewall for IPv6
/etc/rc.d/init.d/ip6tables - run-script
/etc/sysconfig/ip6tables-config - system-wide config file
/sbin/ip6tables - primary tool for administering IP6Tables
/sbin/ip6tables-restore
/sbin/ip6tables-save
2. Maintains 3 default tables:
a. Filter - matches IPTables(IPv4)
b. Mangle - matches IPTables(IPv4)
c. Raw
Usage:
1. ip6tables -L
###NMap###
Features:
1. Port/Reconnaissance Scanner
2. Hosts & device detection
3. Service detection
4. OS Fingerprinting
Page 41
LinuxCBT_EL-5_Edition_Notes.txt
5. Multi-target scanning
6. Produces various reports
Tasks:
1. Download and install the latest version of NMap - nmap.org
a. wget http://download.insecure.org/nmap/dist/nmap-4.53-1.i386.rpm
b. rpm -Uvh nmap-4.53-1.i386.rpm
/usr/bin/nmap - primary binary
Note: Executing 'nmap' as non-privileged user, causes it to operate in TCP-Connect
mode, instead of the stealthy TCP-SYN mode
Usage:
1. Scan the localhost for open ports
a. nmap -v localhost
4. Reporting
a. nmap -v -oN filename.txt 192.168.75.1 - normal output
b. nmap -v -oX filename.xml 192.168.75.1 - XML output
###Nessus###
Features:
1. Vulnerability Scanner
2. Port Scanner
3. Host | Device detection
4. Can be used to scan NETBIOS (Windows|Samba) servers
5. Profiles (Scan Policies) for target scans, with specific exploits to query
6. Reporting
7. Client/Server enabled; multiple clients may use the central Nessus server
8. Client support for Windows, Linux, etc.
9. Runs as a service, awaiting inbound PenTest requests
10. Penetration testing tool
11. Nessus can be automated
12. Supports plug-ins for vulnerability signatures
13. Supports parallel scanning of targets
Tasks:
1. Download Nessus from nessus.org and install
2. Register nessus using 'nessus-fetch', with provided code
a. /opt/nessus/bin/nessus-fetch --register A65E-5116-4D76-FCD5-FF2A
3. Install Nessus Client and Explore the interface
a. rpm -Uvh NessusClient*
4. Perform a PenTest of the localhost
Page 42
LinuxCBT_EL-5_Edition_Notes.txt
5. Perform a PenTest of the local network
6. Evaluate results
Note: Nessus will auto-update its plug-ins after registration, every 12-hours
###Snort NIDS###
Features:
1. Network Intrusion Detection System (NIDS)
2. Packet Sniffer
3. Packet Logger - logs using TCPDump format
Tasks:
1. Download and install Snort NIDS
a. snort.org
b. Confirm MD5SUM: 'md5sum snort-2.8.0.2.tar.gz' Compare to
snort-2.8.0.2.tar.gz.md5
c. Import GPG key used to sign the current release of Snort
d. gpg --verify snort-2.8.0.2.tar.gz.sig snort-2.8.0.2.tar.gz
Requirements:
1. gcc - C compiler
2. make - creates binaries
3. libpcre - Provides access to Perl Compatible RegExes
4. mysql-devel* - provides access to MySQL
5. libpcap* - provides the TCPDump, packet capture library
Page 44
LinuxCBT_EL-5_Edition_Notes.txt
Page 45