LPIC-1 - Kaku konspekt 2011, 4. osa

From EIK wiki

JÄTKUU... LPIC-1 - Kaku konspekt 2011, 3. osa



Administreerimine

Kasutajahaldus

Kasutajanimed - suhteliselt vaba märgivalik. Tühik võib probleeme tekitada, punkt ja allkriips üldiselt OK. Nimi peab algama tähega! Max pikkus 32 märki, aga paljud utiliidid lõikavad üle 8 märgi puhul saba maha - tihti ei soovitata üle selle panna. Tõstutundlikkus.

Grupid - peamiselt õiguste baasil loodud kasutajarühmad. /etc/group, /etc/passwd. Grupi vahetamine - newgrp -käsk (failidel ka chown ja chgrp)

UID ja GID . 0-99 reserveeritakse süsteemile, 0 on root. Mõni distro alustab 500-st, mõni 1000-st. Reeglina vabanenud ID-sid ei taaskasutata.

GID 100 on tihti users-grupp, vaikimisi grupp.

UID 0 mõnel teisel kontol on selge sissetungi märk (root-õigused).


Kasutaja lisamine:

useradd [-c comment] [-d home-dir] [-e expire-date] [-f inactive-days]➦
[-g default-group] [-G group[,...]] [-m [-k skeleton-dir] | -M]➦
[-p password] [-s shell] [-u UID [-o]] [-r] [-n] username

Expire-date - alati YYYY-MM-DD, vahel ka muud variandid lisaks

-f loob konto, mis pika kasutamatuse korral kinni läheb (päevades; vaikimisi -1 ehk mitte kunagi)

Kontoinfo läheb /etc/login.defs-i


passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]

  • -k - korjab ära aegunud kontod
  • -l - lukustab konto (kirjutab krüpteeritud parooli ette hüüumärgi)
  • -u - lukust lahti (lisades -f eemaldab parooli)
  • -d - eemaldab parooli
  • -S - parooli info (kas on, krüpteeringu tüüp)


usermod - suht sarnane useradd'iga. Erisused:

  • -m (koos -d-ga) - tõstab kasutaja failid uude kodukataloogi
  • -l - kasutaja ringinimetamine: usermod kakk -l puravik
  • -L, -U - nagu -l ja -u passwd'is

Faile ei tohiks liigutada, kui nende omanik on sisse logitud!!


Konto aegumise muutmine:

chage [-l] [-m mindays] [-M maxdays] [-d lastday] [-I inactivedays] [-E expiredate] [-W warndays] username

  • -l - seisu kuvamine
  • -m - paroolivahetuse min. periood (tihedamini ei saa)
  • -M - max (harvemini ei saa)
  • -d - viimase paroolivahetuse päeva seadmine
  • -I - passiivsusperiood päevades kuni lukustumiseni
  • -E - aegumise kuupäev
  • -W - hoiatuse kestus päevades enne aegumist


/etc/passwd

sally:x:529:100:Sally Jones:/home/sally:/bin/bash

kasutaja, parool (x märgib variparoole /etc/shadow's), UID, peamine GID, kommentaar (siin täisnimi), kodukataloog, kest

kestaks võib panna /bin/false - ei saa sisse logida, kuid võivad näiteks meili lugeda (POP, IMAP). Võib ka sürri teha - nt /bin/shutdown ...


/etc/shadow

sally:E/moFkeT5UnTQ:14069:0:-1:7:-1:-1:

kasutaja, krüpteeritud parool, viimane paroolivahetus (14069 - Unixi päeva number), päevi võimaliku paroolivahetuseni, päevi kohustusliku paroolivahetuseni, hoiatusega päevade arv, aegumise ja kustumise vahe päevades, aegumistähtaeg (Unixi päeva number), reservlipp

Võimalik rootkräki viis, kui admini parool on kadunud: recoveryga üles, kopeerida ruudu parooliväljale mõne teise kasutaja paroolihash, kelle parool on teada, tavaline boot ja selle parooliga sisse. Võib ka hashi kustutada, aga paroolita root on väga ohtlik asi...


/etc/shadow on harilikult root ja 600 -õigustega, /etc/passwd aga root ja 644.

Võrgulogimissüsteemid nagu LDAP on omaette teema, aga nad kasutavad /etc/nsswitch.conf'i ja /etc/pam.d/ -kataloogi.


userdel

  • -r kustutab koos failidega
  • -f kustutab ka sisselogitud kasutaja
  • -h help

Kasutaja kustutamisel tuleks otsida ka mujal olevaid faile (# find / -uid 529).


groupadd

groupadd [-g GID [-o]] [-r] [-f] groupname

  • -g - etteantud GID
  • -r - alla 500 numbriga grupp
  • -f - jõuga (ka eksisteeriva korral)

enamasti piisab groupadd kasutaja -st


groupmod:

groupmod [-g GID [-o]] [-n newgroupname] oldgroupname


gpasswd:

gpasswd [-a user] [-d user] [-R] [-r] [-A user[,...]] [-M user[,...]] group

  • -a - lisab gruppi
  • -d - eemaldab
  • -R - keelab newgrp'i
  • -A - määrab kasutaja grupi adminiks


/etc/group:

project1:x:501:sally,sam,ellen,george

parool on krüptitud (/etc/gshadow)

groupdel - vt userdel


Keskkonnakohandused /etc/profile, /etc/bash.bashrc, ~/.profile, ~/.bashrc, ~/.bash_profile, ~/.profile

vt keskkonnainfot env | less

/etc/skel - vaikimisi kodukataloogi jupid


Logimine

syslogd - üldine logideemon

klogd - kerneli logideemon

Võivad olla ka muud - syslog-ng, rsyslogd, metalog - Ubuntul on rsyslog!

konf /etc/syslog.conf

Üldkuju: facility.priority action

Facility: auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, security, syslog, user, uucp, local0-local7.

Priority: debug, info, notice, warning (varem warn), err (varem error), crit, alert, emerg (varem panic)

  • alert - alert või tõsisem
  • =alert - ainult alert
  •  !alert - alla selle
  • * - kõik

action - enamasti failinimi, tüüpiliselt /var/log all - väga tihti kas messages, syslog või secure


Näide:

kern.*			/var/log/kernel		&& kogu kerneli jutt logisse
kern.crit		@logger.pangaea.edu	&& crit teise masinasse
kern.crit		/dev/console		&& crit kohalikule peamonitorile
kern.info;kern.!err 	/var/log/kernel-info     && infost err-ini logisse


Käsitsi logimine

Vahel on vaja ise teha või skripti panna

logger [-isd] [-f file] [-p pri] [-t tag] [-u socket] [message ...]

  • -i - logib ka loggeri enda PID
  • -s - saadab väljundi stderr'i
  • -d - logib datagrammidena (profifeatuur)
  • -f fail - logifail (ettevaatust mahuga!)
  • -p prioriteet - prioriteedi määramine (vt eespool)
  • -t tag - logi märgendamine nimega (vaikimisi 'logger')
  • -u sokkel - kindla võrgusokli määramine (profifeatuur)
  • sõnum (Ctrl-D lõpetab) - jooksva sisendi logimine

N:

$ logger shutting down for system maintenance

Tulemus (ilmselt /var/log/messages):

Jul 29 14:09:50 nessus logger: shutting down for system maintenance


Logide rotatsioon

logrotate , /etc/logrotate.conf, /etc/logrotate.d/

Konfinäide:

# Rotate logs weekly
weekly
# Keep 4 weeks of old logs
rotate 4
# Create new log files after rotation
create
# Compress old log files
compress
# Refer to files for individual packages
include /etc/logrotate.d
# Set miscellaneous options
notifempty
nomail
noolddir
# Rotate wtmp, which isn’t handled by a specific program
/var/log/wtmp {
monthly
create 0664 root utmp
rotate 1
}

/etc/logrotate.d/ - iga logitava programmi konfid. Valikuid:

  • dateext - vaikimisi on messages.1, messages.2 jne. Saab panna kujule messages-20091005 (05.10.09)
  • compresscmd - vaikimisi gzip, võib panna näiteks bzip2. Täiendavad parameetrid võib lisada compressoption'iga
  • create vs copytruncate - viimane kopeerib vana logi ja siis teeb vana faili tühjaks (töötab mõne tarkvaraga paremini)
  • daily, weekly, monthly - intervallid
  • size - lubatud suurus. N: size 100k - kui logi saab 100k suuruseks, toimub rotatsioon
  • rotate number - mitu koopiat säilitatakse. N: rotate 2 - algne tühjaks, senine .1-ks, senine .1 .2-ks, .2 kustutatakse.
  • mail aadr - meilib kustutatava (väljaroteeruva) logi sellele aadressile. Vastand: nomail
  • prerotate, postrotate - skriptid, mis täidetakse vahetult enne ja peale rotatsiooni


Logide lugemine

  • otse - less
  • otsing - grep
  • algus/lõpp - head/tail
  • monitoorimine - tail -f /var/log/messages


Ajahaldus

Enamasti UTC

Käsitsi seadmine: date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

Riistvarakella sättimine: hwclock . Valikud:

  • -r, --show - näitab aega : E 18 apr 2011 11:37:29 EEST -0.437870 sekundit
  • --set ja --date=newdate - aja seadmine
  • --systohc - riistvara sätitakse tarkvara järgi
  • --hctosys - vastupidi
  • --utc, --localtime - vastavalt kumbki


NTP

stratum - erinevad kihid kellaajaedastamise hierarhias

/var/lib/ntp/ntp.drift (vahel /etc all)

NTP serveri leidmine:

  • ISP
  • distro
  • avalik NTP-de list
  • pool.ntp.org

masinas deemonipõhine, distropõhine paigaldatakse kohe automaatselt käivituvana. /etc/ntp.conf:

server clock.example.com
server ntp.pangaea.edu
server time.luna.edu

Ühekordne sünkimine: # ntpdate clock.example.com


Cron

Kataloogid /var/spool/cron /etc/cron.d, fail /etc/crontab

system jobs

user jobs


System:

02 4 * * * root run-parts /etc/cron.daily  && jooksutab kõiki /etc/cron.daily skripte iga päev kell 4.02
  • minutid (0–59)
  • tunnid (0–23)
  • kuupäev (1–31)
  • kuu (1–12)
  • nädalapäev (0–7; pühapäev on nii 0 kui 7)
  • konto (root)
  • käsk (run-parts /etc/cron.daily)


  • tärn on kõik
  • list (0,5,10) - iga väärtus
  • vahemik (5-10)
  • samm */10 minutite kohal: iga 10 minuti tagant


Intervallid on enamasti määratud /etc/cron.interval (Ubuntul; cron.hourly, cron.weekly jne) või /etc/cron.d/interval -kataloogis


Cron'iga käitamiseks mõeldud skripte tuleb põhjalikult testida - seal esinev puuk võib jama põhjustada

Kataloogid peavad kindlasti olema root only, muidu võetakse õigused üle


Kasutaja cron:

crontab [-u user] [-l | -e | -r] [file]

  • -l - kuvab
  • -e - muudab && vaikimisi vi, saab muuta EDITOR või VISUAL -keskkonnamuutujaga
  • -r - kustutab

Crontabi failist lugemine: crontab -u tbaker my-cron && kasutaja tbaker crontab loetakse failist my-cron

Failinäide:

SHELL=/bin/bash
MAILTO=tbaker
HOME=/home/tbaker
0,30 * * * * /usr/bin/fetchmail -s
0 2 * * mon /usr/local/bin/clean-adouble $HOME

Peale faili loomist tuleb anda näiteks eespooltoodud failikäsk (lihtsaim kuju: crontab failinimi)


Kasutajate cron'id asuvad kas /var/spool/cron, /var/spool/cron/tabs või /var/spool/cron/crontabs - kasutajanimega failid (/var/spool/cron/edgar)

Ligipääs Cron'ile:

  • tavaline õigustesüsteem
  • /etc/cron.allow ja/või /etc/cron.deny


anacron - vajalik süsteemides, mis pole 24/7 üleval. Käivitudes kontrollib, kas määratud tegevuste tähtaeg on üle - kui jah, käivitab

/etc/anacrontab:

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# These replace cron's entries
1       5       cron.daily       nice run-parts --report /etc/cron.daily
7       10      cron.weekly      nice run-parts --report /etc/cron.weekly
@monthly        15      cron.monthly nice run-parts --report /etc/cron.monthly

1 - periood päevades käsu käivitamiseks (iga päev, teisel kord nädalas)
5 - paus minutites anacroni käivituse ja käsu käivituse vahel (vältimaks hunniku käskudega ülelaadimist) 

Käitamine:

  • alguses skriptiga
  • cronjob - võib anda vajaliku viivituse ja tõsta koormavamad tegevused töövälisesse aega


at - lihtne viivitusega käivitus:

  • kellaaeg - HH:MM
  • noon, midnight, teatime (viimane on 16:00)
  • MMDDYY, MM/DD/YY või DD.MM.YY, month-name day või month-name day year
  • now + ajavahemik (5 minutes, 3 hours jne)

peale käsu andmist ja aja määramist tuleb sisestada käsud, lõppu Ctrl-D (at> -käsukest)

-f -parameeter - käsud loetakse failist: at -f kasud.sh noon

Eeldab atd deemoni töötamist (saab käivitada alguses skriptiga)

  • atq - näitab töösolevaid at-e
  • atrm - eemaldab töönumbri järgi (< atq)

batch - nagu at, aga käivitab protsessid siis, kui süsteemi üldkoormus langeb alla 0,8

/etc/at.allow ja /etc/at.deny - nagu cron, AGA:

  • kui MÕLEMAD puuduvad, saab ainult root kasutada (croni puhul saavad kõik)


Võrgunduse alused

NB! Vahel on piir võrguseadme ja muude seadmete vahel udune. N: rööpliides + PLIP või jadaliides/USB + PPP

Ethernet - keerupaari mõte on segamise minimeerimine. 10Base-T, 100Base-T (mbps, twisted pair)

Tänapäeval Gbit ehk 1000Base-T

Vanemad: Token Ring (IBM), LocalTalk (Apple), FDDI, HIPPI, Fibre Channel

WiFi: 11Mbps (802.11b), 54Mbps (802.11a ja 802.11g), 300Mbps (802.11n). NB! WEP/WPA/WPA2


Hub: pooldupleksside (kordamööda)

Switch: täisdupleks (korraga)

Linux toetab TCP/IP-le lisaks ka IPX/SPXi (Novell) ja AppleTalki, kuid mitte NetBEUId (MS)


Asjakohased TCP kihid (ülalt alla) - application, transport, Internet, link

MAC-aadress - ifconfig eth0 vmm

IPv6 - 8 x 4 hex-numbrit. 0000 võib ära jätta, asendades ::-ga

netmask: 192.168.29.39/24 = 192.168.29.39 maskiga 255.255.255.0


Ta b l e 8 .1 ​ IPv4 Network Classes and Private Network Ranges

IPv4 võrguklassid ja reserveeritud aadressid
Klass Aadressivahemik Reserveeritud Märkused
A 1.0.0.0–127.255.255.255 10.0.0.0–10.255.255.255 üldvõrgud
B 128.0.0.0–191.255.255.255 172.16.0.0–172.31.255.255 üldvõrgud
C 192.0.0.0–223.255.255.255 192.168.0.0–192.168.255.255 üldvõrgud
D 224.0.0.0–239.255.255.255 pole multicasting
E 240.0.0.0–255.255.255.255 pole reserveeritud


IPv6 kohalikud aadressid algavad fec, fed, fee või fef-ga.

Broadcast:

  • IP 72.24.21.201
  • Mask 255.255.0.0
  • BC 172.24.255.255

Kui mask sisaldab muud peale 0 ja 255, on keerukam, teisendatakse läbi kahendsüsteemi

IP 172.24.21.201, Mask 255.255.128.0 . Kahendkujul:

10101100 00011000 00010101 11001001
11111111 11111111 10000000 00000000

Kohtades, kus all (maskis) on 0, tuleb üles 1. Tulemus:

10101100 00011000 01111111 11111111

ehk 72.24.127.255


Hostid

Kasulik tarkvara:

  • nslookup - otsib nimeserverist. Vananenud
  • host - lihtne DNS-otsing (pmst IP)
  • dig - keerukas DNS-otsing (pikem inf)
  • whois

Kohaliku võrgu jaoks piisab /etc/hosts'ist:

127.0.0.1 localhost
192.168.7.23 apollo.luna.edu apollo


Vaikimisi otsitakse /etc/hosts'ist enne DNS'i. Vajadusel saab muuta seda /etc/nsswitch.conf'ist: keerata "hosts: files dns" paar ringi


Levinumad pordid

Levinumad pordid ja nendega seotud serverid
Port TCP/UDP Otstarve Serverinäited
20 TCP File Transfer Protocol (FTP), andmeport ProFTPd, vsftpd
21 TCP FTP ProFTPd, vsftpd
22 TCP Secure Shell (SSH) OpenSSH, Dropbear
23 TCP Telnet in.telnetd
25 TCP Simple Mail Transfer Protocol (SMTP) Sendmail, Postfix, Exim, qmail
53 TCP ja UDP Domain Name System (DNS) Berkeley Internet Name Domain (BIND ehk named), djbdns
67 UDP Dynamic Host Configuration Protocol (DHCP) Internet Software Consortium (ISC) DHCP (dhcpd)
80 TCP Hypertext Transfer Protocol (HTTP) Apache, Roxen, thttpd
110 TCP Post Office Protocol v3 (POP3) Dovecot, Qpopper, popa3d
111 TCP ja UDP Portmapper NFS, NIS, muud RPC-põhised teenused
113 TCP auth/ident identd
119 TCP Network News Transfer Protocol (NNTP) InterNetNews (INN), Diablo, Leafnode
139 TCP NetBIOS Session (Samba)
143 TCP Internet Mail Access Protocol (IMAP) Dovecot, Cyrus IMAP, UW-IMAP
161 UDP Simple Network Management Protocol (SNMP) Net-SNMP
177 UDP XDMCP XDM, KDM, GDM
389 TCP LDAP OpenLDAP
443 TCP HTTP üle SSLi (HTTPS) Apache, Roxen
445 TCP Microsoft Directory Services (DS) Samba
465 TCP SMTP üle SSLi või URL Rendezvous directory (URD) 1 Sendmail, Postfix, Exim, qmail; võrguruuterid
631 TCP Internet Printing Protocol Common Unix Printing System (CUPS)
993 TCP IMAP üle SSLi Dovecot, Cyrus IMAP, UW-IMAP
995 TCP POP3 üle SSLi Dovecot, Qpopper, popa3d
5900+ TCP Remote Framebuffer (RFB) Virtual Network Computing (VNC): OpenVNC, TightVNC
6000–6007 TCP The X Window System (X) X.org-X11, XFree86

Alla 1024 - privilegeeritud pordid (root)


/etc/services:

ssh 	22/tcp	# SSH Remote Login Protocol
ssh	22/udp	# SSH Remote Login Protocol
telnet	23/tcp
smtp	25/tcp

Võrgukonf:

kaardi draiveri laadimine modprobe'iga (tuleb teada mooduli nime; N: modprobe realtek)


DHCP

BOOTPROTO=dhcp

Ubuntus määratakse /etc/network/interfaces -failis: iface eth0 inet dhcp


Staatiline konf:

DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.29.39
NETMASK=255.255.255.0
NETWORK=192.168.29.0
BROADCAST=192.168.29.255
GATEWAY=192.168.29.1
ONBOOT=yes

Nimeserver(id) - /etc/resolv.conf:

nameserver IPnr


ifconfig N: # ifconfig eth0 up 192.168.29.39 netmask 255.255.255.0

Kui käsitsi, vajab ka ruutimist läbi lüüsi: # route add default gw 192.168.29.1

Veel üks näide ruutimisest:

# route add -net 172.20.0.0 netmask 255.255.0.0 gw 172.21.1.1

ruutimisinfo: route -n


ifup ja ifdown

/etc/hostname või /etc/HOSTNAME Fedoras /etc/sysconfig/network

ping -c nr masin - nr korda


traceroute - näitab teekonda masinates -n näitab IP-d hostname'i asemel


Diagnostika netstat'iga:

  • liides: netstat -i
  • ruutimine: netstat -r
  • NAT: netstat -M
  • programmide netikasutus: netstat -p
  • pordid: netstat
  • kõik ühendused: netstat -a


Toorpaketid: tcpdump

Skriptid, e-post ja SQL

NB! SIIT LÕPUNI ON KONSPEKT ÜSNA PINNAPEALNE - TÄPSEMALT TASUB RAAMATUST VAADATA!

env ja export

keskkonnamuutujad

aliased

BASHi skriptid algavad #!/bin/sh -reaga (shebang)

chmod


skriptinäide:

#!/bin/sh
echo -n “Enter a username: “
read name
useradd -m $name
passwd $name
mkdir -p /shared/$name
chown $name.users /shared/$name
chmod 775 /shared/$name
ln -s /shared/$name /home/$name/shared
chown $name.users /home/$name/shared


if-lause:

if [ -s /tmp/tempstuff ]
then
  echo “/tmp/tempstuff found; aborting!”
  exit
fi

if-else:

if [ conditional-expression ]
then
  commands
else
  other-commands
fi

case:

case word in
  pattern1) command(s) ;;
  pattern2) command(s) ;;
  ...
esac

for:

#!/bin/bash
for d in `ls *.wav` ; do
  aplay $d
done


while:

while [ condition ]
do
   commands
done


funktsioonid:

#/bin/bash
doit() {
cp $1 $2
}

function check() {
if [ -s $2 ]
then
    echo “Target file exists! Exiting!”
    exit
fi
}


E-post

Sendmail, Postfix, Exim, qmail


Pull mail - POP/IMAP

Fetchmail (toob ära)

meiliklient


mail [-v] [-s subject] [-c cc-addr] [-b bcc-addr] to-addr

mõnes distros on edasijõudnum klient - nail


mailq - postijärjekord

Redirect: /etc/aliases või /etc/mail/aliases

.forward -fail


SQL

Superserver: inetd, xinetd

/etc/inetd.conf rida:

ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.ftpd -l

teenus, sokkel, protokoll,

võivad ka olla /etc/inetd.conf.d/ kataloogis


Turvalisus

turvalisuse põhipoint: kõik, mida vaja pole, kinni!

TCP wrappers: tcpd-käsk ning /etc/hosts.allow ja /etc/hosts.deny

/etc/xinet.conf - jällegi kõik mittevajalik: disable!

Ebavajalikud serverid kinni - kontrolli netstat -ap

lsof - avatud failid

lsof -i

nmap -sT süsteem - avatud pordid

sudo, /etc/sudoers

/etc/security/limits.conf

ulimit-käsk


JA ONGI KOGU LUGU.