..\..\Local Settings\Temporary Internet Files\Content.IE5\WL2C8E1D\j0411667.jpg. Week Ten Agenda. Announcements Link of the week Review supplemental information Review week nine lab assignment Week ten expected outcomes Next lab assignment Break-out problems Upcoming deadlines
Week Ten Agenda Files\Content.IE5\WL2C8E1D\j0411667.jpg
This web site is a protocol directory. It provides a break down of TCP/IP, VoIP, Cellular, and general protocols.
This web site Network Protocol Suite Directory and Index
Sites contains software, books, tools, and services.
Network communication is defined by network protocols.
Define: Network Protocol serves as a communication language among computing devices. A network protocol facilitates device identification and data transfer. What type of things are determined by a network protocol?
ln small_passwd small_passwd_hard
-rwx---r-x 2 dandrear faculty 402 Mar 1 10:43 small_passwd
-rwx---r-x 2 dandrear faculty 402 Mar 1 10:43 small_passwd_hard
A physical link provides an additional path to the data.
Most all file name entries in a directory are hard links.
ln –s small_passwd small_passwd_soft
lrwxrwxrwx 1 dandrear faculty 12 Mar 7 12:22 small_passwd_soft -> small_passwd
Symbolic links allow data to be referenced across different file systems (no restrictions) and serve as another path to access the data.
lrwxr-xr-x 1 root root 22 May 12 2004 grub.conf -> ../boot/grub/grub.conf
lrwxrwxrwx 1 root root 10 Jun 28 2005 rc3.d -> rc.d/rc3.d
“Initializing” or “booting” the machine
The startup process of a computing system is the installation of software. Many pieces of the software are configured into subsystems and are interdependentupon each other.
Both Red Hat Linux and Solaris are based on theUNIX System Vboot up procedure.
Steps involved in the boot procedure
CPU mode is set to RESET
CPU is pre-programmed to begin execution at hex address 0Xfffffff0. Address 0Xfffffff0 is mapped to ROM (Read Only Memory). This ROM (BIOS ) address contains a set of routines that are burnt on the chip.
“Initializing” or “booting” the machine
The I/O routines on the BIOS continue the boot process by reading Track 0, Sector 1 of the hard disk. This is the location of the Master Boot Record (MBR). The size of the MBR is 512 bytes. The MBR contains the disk partition tables, and executable code which is the first part of the boot loader. The MBR is independent of the kernel.
In Linux operating systems, most modern boot loaders (such as LILO or GRUB), users can change which process the kernel spawns at the end of its initialization from the normal default of /sbin/init file.
The boot loader is responsible for loading the kernel into memory. Boot loaders are independent of the operating system and are executable code found inside the MBR. The boot loader must share the 512 bytes with the partition table.
When Unix was written over 40 years ago, one unusual design feature was that every physical device connected to the computer was represented as a file.
There are differences between devices that is apparent. Disk devices are random-access, and others like terminals are sequential-access.
A practical difference is that filesystemscan only be mounted on block devices, not on character ones. For example, tapes are character devices. It is possible to copy the contents of a raw, quiescent (unmounted and not being modified) filesystem to a tape, but you will not be able to mount the tape, even though it contains the same information as the disk.
Define: Linux initrd
The /dev/initrd file is a read-only block device. Device /dev/initrd is a RAM disk that is loaded by the boot loader into memory before the kernel is started. The kernel utilizes this block device for a two phased system boot-up.
During the first phase, the kernel starts up and mounts an initial root filesystem from the contents of the /dev/initrd (RAM disk initialized by the boot loader).
The second phase, additional drivers or other module information are loaded from the initial root device as contents. After loading all modules, a new root filesystem (/etc/fstab) is mounted from a different device.
Define: Block device is a device you can read blocks of information. Some block devices are CDROM, hard disk, and floppy disks.
The following dd statement reads one 512 byte record.
dd if=/dev/sda1 of=/dev/null count=1
ls –l /dev/initrd
brw-rw---- 1 root disk 1, 250 Jun 24 2004 initrd
Role of the kernel
Once the drivers have been loaded, execution is turned over to the kernel.
The kernel then executes a series of steps.
- Determines memory size
- Initializes Data Structure
- Mount root partition
- Hardware Configuration
Kernel configures information based on probing the system bus, and querying drivers for information. Devices that are missing drivers are considered disabled.
- Hand crafted/Spontaneous processes.
Linux Kernel Data Structure (task_struct)
The task_struct data structure contains the following fields:
- Process state
returning from system call
processing an interrupt routine
processing a system call
- Processes priority
-Clock ticks (10ms intervals) which the process can continue executing without forced rescheduling.
- Error number of the last faulting system call
- Describe a processes:
original parent, parent, youngest child, younger sibling, and finally older sibling.
- Process ID
- Timing information; for example, the amount of time the process has spent in user mode.
The Linux kernel process table is a data structure that describes all processes that currently exist.
The process table is implemented as an array of pointers to task structures.
The kernel process table is limited in size to 512 entries and has its own block size. All Linux blocks are currently 1024 bytes.
Role of the init process
The kernel starts a few spontaneous/handcrafted processes in user space. The origin of the init process is from the kernel and not the fork and execute procedure. The init process has Process ID (PID) of one (1) and a Parent Process ID of zero (0).
The init process is the ultimate parent in the running system and plays an important role in the startup process. All future processes on the system are descendents of the init process.
Once the system processes are created, then the kernels work is basically completed.
The init process performs the following tasks:
Executions the /etc/rc.d/rc.sysinit script
Sets the system clock
Activates the paging process
Starts the RAID devices
Check and mounts other file systems
Executes the /etc/inittab script
Execution of run commands
Switch to multi user mode
After the run commands (rc) have executed, the system is fully operational.
It looks for the file /etc/inittabto see if there is an entry of the type initdefault. The initdefault entry determines the initial run level of the system.
Display: /etc/inittab file
init login process
1. Init process spawns the getty or minigetty process.
2. The getty process invokes the login process. After the user name has been entered, it is passed to the login process.
3. The login process prompts the user for a user password, and verifies it. If authentication is successful, the user’s shell is created.
Otherwise, a failure causes an error message, ends and then init process will respawngetty or minigetty.
4. The user’s preferred shell will be invoked creating a session. Eventually, the user will logout.
In UNIX, a process is a name given to a program being executed by the operating system.
In Linux, that same program is referred to as a task or process. Linux considers both names as the same.
A process consist of:
- Program code, data, and stack
- Open files (stdin, stdout, stderr)
- System data structures
- Environment (terminal type, user login directory, $HOME)
A Linux system will share code and system libraries among processes so that memory can be conserved and only keep one copy of the code is in memory at a time.
Each Linux process is allocated a unique process identifier (PID). The range of PIDs is usually between 2 and 32,768.
A process can be terminated several ways:
- Foreground process by typing Ctl-C
- Background process with PID=n and typing
kill [option] -n
A child process that terminates before its parent but still has an entry in the process table. This entry still needs to allow the process that started the zombie process to read its exit status.
Is a process that is still executing, but whose parent has died.
An orphan process is eventually adopted by the init process.
Processes go through various process states during their existence. These transitory states are managed by the operating system (OS). The specifics of these process states vary from one OS to another, as well as the state names.
In Unix-like operating systems, the kernel is invoked when a process issues a system call.
All processes have owners.
Processes transition through various states.
When an original process (parent) creates or spawns another processes (child), it inherits the file access and execution privileges belonging to the parent (basic frame work of the parent).
The amount of work performed by a process or task.
- A single threaded process is a process only performs one task.
- A multi-threaded process is a process that performs multiple tasks concurrently without incurring additional overhead needed to create a new process.
System run levels
0 - Halt system
1 - System maintenance
2 – Multi-user mode (NFS inoperative)
3 – Full Multi-user mode (remote file sharing state)
4 – unused
5 - X11 (X Window System for graphical desktop environment)
6 - Shutdown
One commonly issued form of this command is shutdown -h now, which will shut down a system immediately. Another one is shutdown -r now to reboot. Another command format allows the user to specify an exact time or a delay before shutdown: shutdown -h 20:00 will turn the computer off at 8:00 PM, and shutdown -r -t 60 will automatically reboot the machine within 60 seconds (one minute) of issuing the command.
The complete syntax of the Linux version of the command is:
usage: shutdown [-akrhfnc] [-t secs] time [message]
-a use /etc/shutdown.allow
-k don't really shutdown, only warn
-r reboot after shutdown
-h halt after shutdown
-f do a 'fast' reboot (skip fsck)
-F force fsck on reboot
-n do not go through "init" but go down real fast
-c cancel a running shutdown
-t secs delay between warning and kill signal
The command kill sends the specified signal to the specified process or process group. As a precaution, avoid indiscriminate use of the kill command on jobs involving text editors, databases programs, mail programs, or any other program that has a large amount ofuser interaction. The kill command terminates a job without saving any of the user input or program results.
Upon successful completion of this module, the student will be able to:
Manipulate user accounts.
Create a new process that is a clone of its parent. The clone reflects only the basic components of the parent, not the parents resource usage, semaphores, and pending signals.
Overlay the calling process virtual memory with a new program, and transfer control to it.
Exit with a status, destroying the process.
Parent process waits for exit (or other status change) of a child.
Field separators: Colon (:)
Permissions on Einstein:
-rw-r--r-- 1 root root 1636 Aug 16 10:37 /etc/passwd
Field separators: Colon (:)
Permissions on Einstein:
-r-------- 1 root root 1107 Sep 5 15:24 /etc/shadow (Permission denied)
Field separators: Colon (:)
Permissions on Einstein:
-rw-r--r-- 1 root root 833 Aug 16 10:37 group
Group name: Name of the group.
Password: The group password would be encrypted. If this field is empty, no password is needed.
GID: The numerical group ID and/or unique group identifier.
User_list: All the group member's user names, separated by commas.
Linex Security Features
Network daemon – Linux uses xinetd to monitor all configured ports and starts system resources usage only on-demand, since the daemons aren’t running all the time. Security and resource usage is the main objective..
Chroot jail – Utilized by Linux and UNIX OS to create an artificial root directory. Creating a temporary root directory prevents a program from accessing or modifying files outside the directory hierarchy starting at its root. Chroot affects only the current process and its child processes.
The files need to be placed in the jail directory (such as /users) in directories that mimic their placement in the root (/) file system. So you need to copy all required files. For example, /usr/bin/rssh is located on / file system. If your jail is located at /users, then copy /usr/bin/rssh to /users/usr/bin/rssh.
SELinux developed by the U.S. National Security Agency (NSA), implements Mandatory Access Control (MAC) in the Linux kernel. MAC enforces security policies that limit what a user or program can do. It defines a security policy that controls some or all objects, such as files, devices, sockets, and ports, and some subjects like processes. Utilizing SELinux, you can grant a process only those permissions it needs to be functional.
TCP Wrapper is part of the client/server model, and can be used with any daemon that is linked against libwrap.a, and relies on the /etc/hosts.allow and /etc/hosts.deny files as the basis of a simple access control language. This access control language defines rules that selectively allow clients to access server daemons on a local system based on the client’s address and the daemon the client tries to access.
iptables utility builds and manipulates network packet filtering rules in the Linux kernel. You can use iptables to create a firewall that protects a system from outside intruders.
1. Kill -l
2. What is a zombie process?
3. What files are updated on a Linux system when a new user is added?
5. What information is stored in the /etc/passwd file?
6. What information is stored in the /etc/shadow file?
7. What information is stored in the /etc/group file?
8. What is a background process?
9. What is a foreground process?
10. What is an orphan process?
11. What function does the kernel perform?
12. nice command
13. init process
Lab Assignment 9-1, Startup/Shutdown is due November 14, 2010.
Lab Assignment 10-1, Account Script /LDAP paper is due November 21, 2010.
Lab Assignment 10-2, Process Exercise is due November 21, 2010.
Lab Assignment 11-1, Knoppix File System Exercise is due November 28, 2010.
Final exam outline will be available on November 28, 2010.
I will be available after this Franklin Live session to discuss any problems and/or concerns regarding lab assignments.