LPIC-1 - Kaku konspekt 2011, 4. osa
JÄTKUU... LPIC-1 - Kaku konspekt 3
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
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
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.