Tux

o.s.Linux - teoretické kapitoly - 2.pololetí

instalace a správa software

instalace ze zdrojových textů

výhody:
budete mít nejnovější aktualizace programů
budete mít programy optimalizované na vaši stanici

postup:
1.ftp... http... wget... najděte a stáhněte si programový balík
2.tar... gunzip... bunzip2... rozbalte jej na své stanici
3.README INSTALL přečtěte si návod, co dál - nejčastěji to bude:
4../configure otestuje hw a sw na stanici a vytvoří soubor Makefile
5.make přeloží zdrojáky, sestaví programy a knihovny (časově nejdelší operace)
6.make install přeložené programy a knihovny zkopíruje na patřičná místa (musí dělat root)
7.make clean uklidí - smaže už nepotřebné produkty překladu

instalace z přeložených programových balíčků(rpm pro distribuci Fedora)

výhody:
budete mít PŘEHLED o nainstalovaných programech, jejich verzích a změnách v souborech
bude snadné zautomatizovat aktualizace programů

základní sada přepínačů nástroje rpm
-q --query
-i --install
-e --erase
-U --upgrade aktualizace + instalace
-F --freshen pouze aktualizace (nenainstalované balíčky se ignorují)
-V --verify

yum... nástroj pro správu programů
porovnává seznam programů na stanici s údaji v repozitářích, řeší závislosti mezi rpm balíčky a provádí aktualizace. Více zde.

správa uživatelů

uživatel

/etc/passwd...login_name:x:uid:gid:gecos:homedir:login_shell

/etc/shadow...login_name:zašifrované_heslo:č1:č2:č3:č4:č5:č6:rezervované_pole
č.1 ... den aktualizace hesla (od 1.1.1970)
č.2 ... minimální doba platnosti hesla
č.3 ... maximální doba platnosti hesla
č.4 ... kolik dnů varovat, že vyprší platnost hesla
č.5 ... za jak dlouho po vypršení platnosti hesla se zablokuje účet
č.6 ... den, kdy byl účet zablokován

skupina

/etc/group  ...jméno_skupiny:x:gid:seznam členů

/etc/gshadow...jméno%skupiny:zašifrované_heslo:seznam administrátorů skupiny (?):seznam členů

nástroje a implicitní hodnoty parametrů

/etc/skel/ ... vzor pro nově vytvářený domovský adresář

useradd, userdel, usermod, groupadd, groupdel, groupmod

/etc/login.defs, /etc/default/useradd

logování systémových událostí

RPM balíček sysklogd je v distibuci Fedora 8 nahrazen syslog-ng nebo rsyslog.

Systémová zpráva vždy obsahuje minimálně tyto údaje: čas, host, proces, popis události.

Logování zajišťuje démon syslogd- jeho konfigurace je v souboru /etc/syslog.conf

konfigurace:

každá konfigurační direktiva má tvar:subsystém.závažnost cíl
subsystémy: auth, authpriv, cron, daemon, kern, lpr, mail, news, syslog, user, uucp, local0 až local7, *
závažnosti: debug, info, notice, warning, err, crit, alert, emerg, none, *
cíle: /cesta/soubor, -/cesta/soubor, |fifo_roura, @remote_host, user1,user2,user3,... , *

pozn.:
logují se události od zadané závažnosti výš
cíl -/cesta/souborznamená, že při zápisu do souboru se neprovádí synctj. zápis diskových bufferů
cíl *znamená, že se pošle zpráva na konsoli všem přihlášeným uživatelům

příklady:
cron.info   /var/log/cron ... cron-démon bude zapisovat do zadaného souboru události závažnější než debug
mail.*   -/var/log/maillog... poštovní program bude úplně všechny své události zapisovat do diskových bufferů
*.notice;mail.none;cron.none   /var/log/messages... události subsystémů cronamail se zapisovat nebudou
*.emerg   * ... událost smrtelné závažnosti (např. reboot) bude oznámena všem přihlášeným uživatelům

zabezpečení sítě - obecný úvod

zabezpečení ≈ kontrola přístupu

firewall (FW) ... router do lokální sítě, na němž jsou aktivovány zabezpečovací techniky

typy útoků ... lokální, externí, "sociální inženýrství" (=> umístit firewall do kumbálu pod zámek)

demilitarizovaná zóna (DMZ) ... část sítě ležící na mezi LAN a Internetem,
způsoby připojení LAN k Internetu:

zásady při konfiguraci firewallu:
- nemá plnit jiné funkce, než pro které je určen
- běží na něm pouze nezbytné služby (ideální případ: pouze routování, filtrace, nat a proxy servery, sshd)
- má aktualizovaný software
- má jen nezbytné uživatele (tj. pouze neprivilegované účty pro správce)
- root se nemůže přilogovat vzdáleně
- ... ještě vás něco napadá ?

Způsoby zabezpečení

- paketový filtr, nat
filtrace dat na základě informací fyzické,linkové,síťové a transportní vrstvy OSI modelu
nat = Network Address Translation
program iptables

- proxy servery (= zástupné servery)
proxy server vyřídí komunikaci vnitřního klienta se serverem v Internetu
filtrace na všech vrstvách ISO modelu (např. podle jména uživatele)
každá služba má svůj proxy server (neexistuje obecná proxy pro všechny služby)
příklad: program squidje proxy služeb http,https,ftp

- tcp wrapper (doslova obálkovač tcp)
knihovní funkce, které povolují/zakazují spojení na základě souborů/etc/hosts.{allow,deny}
server musí být přeložen s podporou knihovnylibwrap.so
ověříte si příkazem ldd /cesta/server

- konfigurace konkrétní služby
např. služba ssh má nastavení zapsáno v souboru /etc/ssh/sshd_config

schéma iptables

syntaxe příkazu iptables

iptables -t tabulka příkaz pravidlo volby -j cíl

-t tabulka... nepovinné, implicitně se dosadí tabulka filter

volby
-vnebo--verbose... ve výpisech pravidel budou i statistiky přenesených dat
-nnebo--numeric... nebudou se překládat ip adresy a čísla portů
-cnebo--set-counters... nastaví počítadla přenesených dat
--line-numbers... ve výpisech označí pravidla pořadovým číslem

příkaz
-Anebo--append řetěz pravidlo... přidá nové pravidlo na konec řetězu
-Inebo--insert řetěz [číslo] pravidlo... vloží nové pravidlo před (implicitně první)
-Dnebo--delete řetěz [pravidlo|číslo]... smaže pravidlo (implicitně první)
-Rnebo--replace řetěz číslo pravidlo... nahradí pravidlo novým
-Lnebo--list [řetěz]... vypíše seznam pravidel
-Fnebo--flush [řetěz]... vymaže všechna pravidla
-Znebo--zero [řetěz]... vynuluje počítadla paketů a bytů
-Pnebo--policy řetěz cíl... nastaví implicitní cíl - nelze pro uživatelský řetěz
-Nnebo--new řetěz... vytvoří nový (uživatelský) řetěz
-Xnebo--delete-chain řetěz... smaže uživatelský řetěz
-Enebo--rename-chain jm1 jm2... přejmenuje uživatelský řetěz

pravidlo
-inebo--in-interface [!] rozhraní... vstupní rozhraní
-onebo--out-interface [!] rozhraní... výstupní rozhraní
--mac-source [!] xx:xx:xx:xx:xx:xx
-snebo--source [!] ip-adresa[/maska]
-dnebo--destination [!] ip-adresa[/maska]
[!] -fnebo--fragment... druhý a další fragment rozsekaného ip paketu
--ttl -eq|-lt|-gt číslo
-pnebo--protocol [!] protokol... protokol vyšší vrstvy (např. tcp,udp,icmp,all)
při-p tcp
--sport [!] port[:port]... zdrojový port (porty)
--dport [!] port[:port]... cílový port (porty)
--tcp-flags [!] zkoumané nastavené... možné hodnoty SYN,ACK,FIN,RST,PSH,URG,ALL,NONE
[!] --syn... stejné jako --tcp-flags SYN,RST,ACK SYN
při-p udp
--sport [!] port[:port]... zdrojový port (porty)
--dport [!] port[:port]... cílový port (porty)
při-p icmp
--icmp-type [!] typ... jména icmp zpráv - viz.iptables -p icmp -h

cíl
ACCEPT ... akceptuje paket, ukončí testy v dané tabulce (v jiné tabulce se testovat bude)
REJECT [--reject-with icmp_zpráva] ... paket zahodí + vysílací stanici pošle zprávu - impl.icmp-port-unreachable
DROP ... paket zahodí (filter/INPUT,FORWARD,OUTPUT)

SNAT --to-source ip_adresa[:port] ... změní zdrojovou ip adresu (nat/POSTROUTING)
DNAT --to-destination ip_adresa[:port] ... změní cílovou ip (nat/PREROUTING,OUTPUT)
MASQUERADE [--to-port port] ... změní zdrojovou ip na tu, která byla rozhraní dynamicky přidělena
REDIRECT [--to-port port] ... přesměruje data lokálnímu procesu

TTL --ttl-set|--ttl-dec|--ttl-inc číslo ... změní pole TTL v ip hlavičce
MARK --set-mark číslo ... označí paket (lokální platnost, pro pokročilejší směrovací techniky)
TOS --set-tos číslo ... vyplní pole TOS v ip hlavičce - informace je přenositelná (tabulka mangle)

RETURN ... ukončí testy v uživatelském řetězu a vrátí se do volajícího (nadřazeného) řetězu
LOG --log-level závažnost --log-prefix "řetězec" [...] ... loguje pakety prostřednictvím syslogd, vhodné při ladění

iptables - connection tracking (vyhodnocení stavu spojení)

iptablesvyhodnocují stav spojení v rámci řetězůPREROUTINGneboOUTPUT. V těchto řetězech lze vytvořit podmínku -m state --state STAV. Stav spojení se vyhodnotí i pro udpkomunikaci, i pro icmp zprávy. V těchto případech považují jako součást stejného navázaného spojení taková data, která přijdou v určitém časovém intervalu (do 180s). iptablesrozlišují tyto stavy:

NEW ... první tcp segment spojení, první udp datagram nebo např. icmp echo žádost

ESTABLISHED ... druhý a další tcp segment, udp datagram nebo icmp echo odpověď

RELATED ... icmp zpráva oznamující neúspěšný pokus navázat spojení; první tcp segment ftp-data spojení vyvolaného ftp příkazem

INVALID ... nelogická icmp zpráva; neidentifikovatelný stav - taková data je nejlepší zahodit