Top Banner
CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System Administration Software Installation Concepts / Multiuser Fundamentals Department of Computer Science Stevens Institute of Technology Jan Schaumann [email protected] https://stevens.netmeister.org/615/ Multiuser Fundamentals February 18, 2020
84

CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

Jun 26, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 1

CS615 - Aspects of System Administration

Software Installation Concepts / Multiuser

Fundamentals

Department of Computer Science

Stevens Institute of Technology

Jan Schaumann

[email protected]

https://stevens.netmeister.org/615/

Multiuser Fundamentals February 18, 2020

Page 2: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 2

Types of Software

Multiuser Fundamentals February 18, 2020

Page 3: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 3

Firmware

Multiuser Fundamentals February 18, 2020

Page 4: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 4

Firmware

Multiuser Fundamentals February 18, 2020

Page 5: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 5

Firmware

Multiuser Fundamentals February 18, 2020

Page 6: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 6

Firmware

Multiuser Fundamentals February 18, 2020

Page 7: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 7

Firmware

Multiuser Fundamentals February 18, 2020

Page 8: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 8

...

Multiuser Fundamentals February 18, 2020

Page 9: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 9

Kernel

Multiuser Fundamentals February 18, 2020

Page 10: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 10

Kernel

Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,

2006, 2007, 2008, 2009, 2010, 2011, 2012

The NetBSD Foundation, Inc. All rights reserved.

Copyright (c) 1982, 1986, 1989, 1991, 1993

The Regents of the University of California. All rights reserved.

NetBSD 6.1.2 (XEN3PAE_DOMU)

total memory = 615 MB

avail memory = 597 MB

mainbus0 (root)

hypervisor0 at mainbus0: Xen version 3.4.3.amazon

vcpu0 at hypervisor0: Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz, id 0x206d7

xenbus0 at hypervisor0: Xen Virtual Bus Interface

xencons0 at hypervisor0: Xen Virtual Console Driver

npx0 at hypervisor0: using exception 16

xbd0 at xenbus0 id 2049: Xen Virtual Block Device Interface

xbd1 at xenbus0 id 2050: Xen Virtual Block Device Interface

xennet0 at xenbus0 id 0: Xen Virtual Network Interface

xennet0: MAC address 22:00:0a:47:89:0e

balloon0 at xenbus0 id 0: Xen Balloon driver

balloon0: current reservation: 629760 KiB

xennet0: using RX copy mode

balloon0: current reservation: 157440 pages => target: 157440 pages

boot device: xbd1

root on xbd1a dumps on xbd1b

root file system type: ffs

Sat Feb 1 21:46:17 UTC 2014

Multiuser Fundamentals February 18, 2020

Page 11: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 11

OS

Multiuser Fundamentals February 18, 2020

Page 12: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 12

OS

Multiuser Fundamentals February 18, 2020

Page 13: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 13

System Software

Multiuser Fundamentals February 18, 2020

Page 14: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 14

System Software

Multiuser Fundamentals February 18, 2020

Page 15: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 15

Applications

Multiuser Fundamentals February 18, 2020

Page 16: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 16

Applications

Multiuser Fundamentals February 18, 2020

Page 17: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 17

Middleware?

https://en.wikipedia.org/wiki/List of smart TV platforms and middleware software

Multiuser Fundamentals February 18, 2020

Page 18: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 18

...and then there are unikernels and containers.

Multiuser Fundamentals February 18, 2020

Page 19: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 19

Software Installation Concepts

Operating System Installation

Multiuser Fundamentals February 18, 2020

Page 20: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 20

OS Installation

Multiuser Fundamentals February 18, 2020

Page 21: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 21

OS Installation

# fdisk -f -u 0 -s 169/63/4194241 /dev/rwd0d

# fdisk -f -c /usr/mdec/mbr /dev/rwd0d

# fdisk -f -a -0 /dev/rwd0d

# disklabel -e -I wd0

[...]

4 partitions:

# size offset fstype [fsize bsize cpg/sgs]

a: 4194241 63 4.2BSD 0 0 0 # (Cyl. 0*- 4161*)

c: 4194241 63 4.2BSD 0 0 0 # (Cyl. 0*- 4161*)

d: 4194304 0 unused 0 0 0 # (Cyl. 0 - 4161*)

# /sbin/newfs -O 2 /dev/rwd0a

/dev/rwd0a: 2048.0MB (4194240 sectors) block size 16384,

fragment size 2048 using 12 cylinder groups of

170.67MB, 10923 blks, 21504 inodes.

super-block backups (for fsck_ffs -b #) at:

32, 349568, 699104, 1048640, 1398176, 1747712, 2097248, 2446784,

....................................................................

# mount -o async /dev/wd0a /mnt

# for pkg in base comp etc games man misc modules text kern-GENERIC; do

tar zxpf /i386/binary/sets/${pkg}.tgz -C /mnt

done

# cp /mnt/usr/mdec/boot /mnt/boot

# /usr/sbin/installboot -v -o timeout=5 /dev/rwd0a \

/mnt/usr/mdec/bootxx_ffsv2

File system: /dev/rwd0a

Primary bootstrap: /usr/mdec/bootxx_ffsv2

Boot options: timeout 5, flags 0, speed 9600, ioaddr 0, console pc

# cd /mnt/dev && ./MAKEDEV all

# shutdown -r now

Multiuser Fundamentals February 18, 2020

Page 22: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 22

OS Installation

General steps:

power up

PXE or iPXE boot

network configuration / BOOTP/DHCP

boot from network via e.g., tftp miniroot

identify root device and optional additional disks

create partition table / disklabel

create filesystem(s)

install MBR, bootblocks etc.

fetch OS software (e.g., via HTTPS, iSCSI, ...)

install / copy / extract OS

optionally add application software

perform basic system configuration

reboot

Multiuser Fundamentals February 18, 2020

Page 23: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 23

OS Installation

Most of the difficult parts happen outside of the building system:

hardware identification, provisioning, and registration

base OS installation

installation of add-on applications

initial minimum system configuration [*]

system registration

system restart

[*] system deployment ∩ system configuration

=> configuration management

Multiuser Fundamentals February 18, 2020

Page 24: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 24

Post Installation

Multiuser Fundamentals February 18, 2020

Page 25: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 25

Software Installation Concepts

System Software vs. Third Party Software

Multiuser Fundamentals February 18, 2020

Page 26: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 26

System Software vs. Third Party Software

Example System / OS 3rd Party Packaged

kernel

drivers

firmware

libc

shell

compiler

ssh(1) / sshd(8)

mail server

web server

database

python

Multiuser Fundamentals February 18, 2020

Page 27: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 27

Types of Software

Multiuser Fundamentals February 18, 2020

Page 28: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 28

System Software vs. Third Party Software

Consider:

OS upgrades vs. software upgrades

location of configuration files

duplicates or conflicting versions in the base system vs. the add-ons

startup scripts, dæmons

location of third party software

dependencies

installation by hand and/or installation using a package manager

proprietary third party software

Multiuser Fundamentals February 18, 2020

Page 29: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 29

Package Manager Features

easy and scalable installation of software

automatic resolution of software dependencies

package and file inventory

linux-lab$ dpkg -l

[...]

linux-lab$ dpkg -L tcpdump

[...]

linux-lab$ dpkg-query -S /usr/lib/libDeployPkg.so.0

[...]

Multiuser Fundamentals February 18, 2020

Page 30: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 30

Package Manager Features

easy and scalable installation of software

automatic resolution of software dependencies

package and file inventory

integration into OS

package and file integrity checks

$ rpm -Va

[...]

missing /etc/pki/CA/private (Permission denied)

S.5..... c /etc/pki/tls/certs/ca-bundle.crt

.......T c /etc/libuser.conf

..?..... c /etc/tcsd.conf

missing c /etc/logrotate.d/syslog

[...]

Multiuser Fundamentals February 18, 2020

Page 31: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 31

Managing Security Patches and Software Upgrades

How many known vulnerabilities (unique CVEs and affected packages)

exist in each of the Fedora and Debian instances?

debian$ sudo apt-get install debsecan

debian$ debsecan

debian$ sudo apt-get update

debian$ sudo apt-get upgrade

debian$ debsecan

fedora$ yum list-security

fedora$ yum info-security

Multiuser Fundamentals February 18, 2020

Page 32: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 32

Managing Security Patches and Software Upgrades

How many known vulnerabilities (unique CVEs and affected packages)

exist in each of the Fedora and Debian instances?

debian$ sudo apt-get install debsecan

debian$ debsecan

debian$ sudo apt-get update

debian$ sudo apt-get upgrade

debian$ debsecan

fedora$ yum list-security

fedora$ yum info-security

fedora$ sudo yum update

fedora$ yum list-security

Excellent! Now what about all the stuff you installed that wasn’t

packaged?

Multiuser Fundamentals February 18, 2020

Page 33: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 33

Special Purpose Package Managers

Multiuser Fundamentals February 18, 2020

Page 34: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 34

Special Purpose Package Managers

Multiuser Fundamentals February 18, 2020

Page 35: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 35

Special Purpose Package Managers

Most programming languages or environments come with their own

”package management” solutions, often integrating/mixing with a ”build

system”.

Common Lisp => quicklisp

Go => go get

NodeJS => npm

Perl => CPAN

Python => easy-install, pip, pants, setuptools, ...

Ruby => gems, rvm, rake

Scala => sbt

...

Multiuser Fundamentals February 18, 2020

Page 36: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 36

You don’t get to choose.

You routinely have to build from source and

(re-)package your software.

Multiuser Fundamentals February 18, 2020

Page 37: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 37

Dependencies, Integrity, and Trust

OS provider repositories:

yum update / yum install

apt-get

Language-specific community repositories:

gem install foo

go get github.com/randomAccount/randomRepository

npm install -g foo

perl -MCPAN -e ’install Something::YouWant’

pip install foo

What could possibly go wrong?

Multiuser Fundamentals February 18, 2020

Page 38: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 38

Left-Pad

module.exports = leftpad;

function leftpad (str, len, ch) {

str = String(str);

var i = -1;

if (!ch && ch !== 0) ch = ’ ’;

len = len - str.length;

while (++i < len) {

str = ch + str;

}

return str;

}

https://www.theregister.co.uk/2016/03/23/npm_left_pad_chaos/

Multiuser Fundamentals February 18, 2020

Page 39: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 39

Dependencies, Integrity, and Trust

Fun fact:

$ wget http://somewhere/some.tar.gz

$ tar zxf some.tar.gz

$ cd some

$ ./configure

$ make

$ sudo make install

is not inherently better than

$ curl http://somewhere/script.sh | sudo bash

Multiuser Fundamentals February 18, 2020

Page 40: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 40

Dependencies, Integrity, and Trust

Mirroring untrusted, unverified dependencies

does not solve any of your problems.

Integrity verification is meaningless

without assurance of trust.

Dependencies are called dependencies

because you depend on them.

Dependency trust and integrity is recursive.

Multiuser Fundamentals February 18, 2020

Page 41: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 41

Dependencies, Integrity, and Trust

Mirroring untrusted, unverified dependencies

does not solve any of your problems.

Integrity verification is meaningless

without assurance of trust.

Dependencies are called dependencies

because you depend on them.

Dependency trust and integrity is recursive.

Remember Left-Pad!

Multiuser Fundamentals February 18, 2020

Page 42: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 42

Exercises

All recommended, none graded:

https://stevens.netmeister.org/615/package-exercise.html

Identify a piece of software you use, but that’s not packaged for a given

package manager. Create a package for it, then contribute upstream.

Create a cheat sheet for 4 different package managers, listing the more

important equivalent commands.

How does your preferred OS update firmware?

How does the concept of reproducable builds relate to what we

discussed here?

What is the overlap with system configuration? Can a package manager

assert state?

Multiuser Fundamentals February 18, 2020

Page 43: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 43

Hooray!

5 Minute Break

Multiuser Fundamentals February 18, 2020

Page 44: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 44

Multiuser

UNIX was designed from the beginning (1970s) as a portable,

multi-tasking, multi-user system.

Windows gained this functionality with WindowsNT in 1993.

Mac OS followed in 2001 with OS X.

Multiuser Fundamentals February 18, 2020

Page 45: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 45

Implications of a Multi-User System

Multiuser Fundamentals February 18, 2020

Page 46: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 46

Implications of a Multi-User System

Multiuser Fundamentals February 18, 2020

Page 47: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 47

Consider Scalability

Things to consider:

Multiuser Fundamentals February 18, 2020

Page 48: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 48

Granting Privileges requires Trust

different environments have different trust models

human interactions in small groups strengthen trust

larger groups are divided into smaller, close-nit groups

the more groups you have, the weaker their trust bonds are

Multiuser Fundamentals February 18, 2020

Page 49: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 49

Granting Privileges requires Trust

different environments have different trust models

human interactions in small groups strengthen trust

larger groups are divided into smaller, close-nit groups

the more groups you have, the weaker their trust bonds are

Trust does not scale.

Multiuser Fundamentals February 18, 2020

Page 50: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 50

Granting Privileges requires Trust

We are considering computer-human systems.

For humans, trust, but (be able to) verify.

For computers, apply the Least Privilege principle.

Multiuser Fundamentals February 18, 2020

Page 51: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 51

Implications of a Multi-User System

users may want to keep files private

Multiuser Fundamentals February 18, 2020

Page 52: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 52

Implications of a Multi-User System

users may want to keep files private

users may want to share files

Multiuser Fundamentals February 18, 2020

Page 53: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 53

Implications of a Multi-User System

users may want to keep files private

users may want to share files

users may (try to gain) access to files they shouldn’t have access to

Multiuser Fundamentals February 18, 2020

Page 54: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 54

Implications of a Multi-User System

users may want to keep files private

users may want to share files

users may (try to gain) access to files they shouldn’t have access to

users may (want to) do things that affect other users

Multiuser Fundamentals February 18, 2020

Page 55: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 55

Implications of a Multi-User System

users may want to keep files private

users may want to share files

users may (try to gain) access to files they shouldn’t have access to

users may (want to) do things that affect other users

different users may require different privileges

Multiuser Fundamentals February 18, 2020

Page 56: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 56

Users and User-IDs

Bijective?

Multiuser Fundamentals February 18, 2020

Page 57: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 57

Users and User-IDs

Not surjective!

Multiuser Fundamentals February 18, 2020

Page 58: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 58

Users and User-IDs

Not injective, either!

Multiuser Fundamentals February 18, 2020

Page 59: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 59

Users and User-IDs

nobody

Multiuser Fundamentals February 18, 2020

Page 60: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 60

Authentication

proof of identity, not proof of authorization

Multiuser Fundamentals February 18, 2020

Page 61: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 61

Authentication

proof of identity, not proof of authorization

something you know, something you have, something you are

Multiuser Fundamentals February 18, 2020

Page 62: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 62

Authentication

proof of identity, not proof of authorization

something you know, something you have, something you are

multi-factor authentication combines these to help protect against

different threats

Multiuser Fundamentals February 18, 2020

Page 63: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 63

Authentication

proof of identity, not proof of authorization

something you know, something you have, something you are

multi-factor authentication combines these to help protect against

different threats

mutual authentication may be a requirement

Multiuser Fundamentals February 18, 2020

Page 64: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 64

Authentication

Common examples:

NetBSD/amd64 (SERVER) (console)

login: jschauma

password: *********************************

NetBSD 7.0.2 (SERVER) #2: Tue Jan 24 02:33:13 EST 2017

Welcome to NetBSD!

hostname$

Multiuser Fundamentals February 18, 2020

Page 65: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 65

Authentication

Common examples:

$ ssh-keygen -l -f /dev/stdin <<<$(aws ec2 get-console-output \

i-0990f1eb069c853c4 | grep ^ecdsa)

256 19:af:35:01:0b:2a:ee:3d:30:0f:69:11:cc:55:7c:20 (ECDSA)

$ ssh -i ~/.ssh/myawskey ec2-54-227-16-184.compute-1.amazonaws.com

The authenticity of host ’ec2-54-227-16-184.compute-1.amazonaws.com

(54.227.16.184)’ can’t be established.

ECDSA key fingerprint is 19:af:35:01:0b:2a:ee:3d:30:0f:69:11:cc:55:7c:20.

Are you sure you want to continue connecting (yes/no)? yes

NetBSD 7.0.2 (SERVER) #2: Tue Jan 24 02:33:13 EST 2017

Welcome to NetBSD!

hostname$

Multiuser Fundamentals February 18, 2020

Page 66: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 66

Authentication

Common examples:

$ kinit

Password for jschauma@DOMAIN: ********************************

$ klist

Ticket cache: /tmp/krb5cc_ttypa

Default principal: jschauma@DOMAIN

Valid starting Expires Service principal

02/13/17 13:50:21 02/13/17 21:50:20 krbtgt/KDC@DOMAIN

$ ssh somehost

somehost$

Multiuser Fundamentals February 18, 2020

Page 67: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 67

Authentication

Common examples:

localhost$ ssh sshcaYubiKey for ‘jschauma’: ********************************Password: ********************************localhost$ ssh-add -l2048 SHA256:TzwuHGc5BKBe+VJSnGoVyh92J8XKBUkaL7MGQn8ML0Y (RSA)2048 SHA256:TzwuHGc5BKBe+VJSnGoVyh92J8XKBUkaL7MGQn8ML0Y (RSA-CERT)localhost$ ssh somehostDuo two-factor login for jschauma

Enter a passcode or select one of the following options:

1. Duo Push to XXX-XXX-07122. Phone call to XXX-XXX-07123. SMS passcodes to XXX-XXX-0712

Passcode or option (1-3): 1Success. Logging you in...Last login: Thu Jan 26 17:39:30 2017 from 10.1.2.3

somehost$

Multiuser Fundamentals February 18, 2020

Page 68: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 68

Authentication

Common examples:

Multiuser Fundamentals February 18, 2020

Page 69: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 69

Authentication

Common examples:

passwords, PINs

ssh keys, PGP keys, X.509 certificates

security tokens: OTPs in hardware or software, RFIDs

physical biometrics: fingerprint, retina scan, facial recognition

behavioral biometrics: speech pattern, gait, keystroke dynamics...

Mix and match the above to yield multi-factor authentication:

password + PIN via e.g. SMS

ssh key + TOTP from e.g. mobile device

fingerprint + security token

...

Multiuser Fundamentals February 18, 2020

Page 70: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 70

UNIX Fundamentals: User Accounts and File Permissions

Every account

has a unique ID

belongs to at least one group

may or may not be password protected

may or may not have a valid login program

may or may not be allowed to escalate privileges

Multiuser Fundamentals February 18, 2020

Page 71: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 71

UNIX Fundamentals: User Accounts and File Permissions

Every account

has a unique ID

belongs to at least one group

may or may not be password protected

may or may not have a valid login program

may or may not be allowed to escalate privileges

Every file

is associated with a uid and a gid

has a number of protection bits

Multiuser Fundamentals February 18, 2020

Page 72: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 72

UNIX Fundamentals: User Accounts and File Permissions

Multiuser Fundamentals February 18, 2020

Page 73: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 73

Raising privileges

Some tasks require special privileges:

binding a port < 1024 (e.g. 22, 25, 80, 443)

operating on raw sockets (e.g. ping(1), traceroute(8))

changing local passwords

accessing files/directories without explicit permissions

just about anything involving file systems

...

Multiuser Fundamentals February 18, 2020

Page 74: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 74

Raising privileges

Options:

$ ls -l command

-rwsr-xr-x 1 daemon wheel 12556 Feb 17 21:45 command

$ man setuid

Multiuser Fundamentals February 18, 2020

Page 75: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 75

Raising privileges

Options:

somehost$ exit

$ ssh root@somehost

#

Multiuser Fundamentals February 18, 2020

Page 76: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 76

Raising privileges

Options:

$ su user2 -c ’some command’

Password:

$ su - root

Password:

#

Multiuser Fundamentals February 18, 2020

Page 77: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 77

Raising privileges

Options:

somehost$ sudo bash

jschauma is not allowed to run sudo on somehost. This incident will be reported.

Multiuser Fundamentals February 18, 2020

Page 78: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 78

Raising privileges

Options:

jschauma@somehost$ ls dir

ls: cannot open directory dir: Permission denied

jschauma@somehost$ sudo bash

Sorry, user jschauma is not allowed to execute ’/bin/bash’ as root on somehost.

jschauma@somehost$ sudo ls dir

Sorry, user jschauma is not allowed to execute ’/bin/ls’ as root on somehost.

jschauma@somehost$ sudo -u otheruser ls dir

Password: ********************************

file1 file2

jschauma@somehost$

Multiuser Fundamentals February 18, 2020

Page 79: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 79

Unix Groups

enables arbitrary collections of users to share resources

information stored in /etc/group, format is:

name:*:GID:user1,user2,...

most Unix systems impose a limit of 16 or 32 group memberships per

user

most Unix systems have a common default group for new users

(some Linux versions deviate)

some Unix systems have/had group shadow files

Multiuser Fundamentals February 18, 2020

Page 80: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 80

Group Access

At any but the smallest environments, we find:

a central user database

users divided into different access groups

access to systems is granted primarily by such group membership

privileges on a system are also granted by such group membership

The privileges granted in this manner are commonly broken down and

controlled via role-based access control (RBAC).

Multiuser Fundamentals February 18, 2020

Page 81: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 81

Group Access

Multiuser Fundamentals February 18, 2020

Page 82: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 82

Multiuser Truths

All users are equal.

Some users are more equal than others.

The principle of least privilege applies to all.

Humans require trust.

Trust does not scale. (Think “Zero Trust”)

You will always face trade-offs.

Multiuser Fundamentals February 18, 2020

Page 83: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 83

Adding and Removing Accounts

Recommended exercise:

https://stevens.netmeister.org/615/useradd-exercise.html

Multiuser Fundamentals February 18, 2020

Page 84: CS615 - Aspects of System Administration Software Installation Concepts / Multiuser ... · 2020-02-19 · CS615 - Aspects of System Administration Slide 1 CS615 - Aspects of System

CS615 - Aspects of System Administration Slide 84

Reading

User Management:

Frisch: Ch 6; Burgess: Ch 5;

https://is.gd/wg5OsE

https://www.netmeister.org/book/06-users-and-groups.pdf

Multiuser Fundamentals February 18, 2020