Syntax highlighting of Archiv/Administrace Unixu

{{Předmět|Administrace Unixu|Leo Galamboš|SWI106}}

== Odkazy ==
*[http://kocour.ms.mff.cuni.cz/~galambos/swi106/ Stránka předmětu]
*[http://urtax.ms.mff.cuni.cz/~mikulas/VI.TXT Ovládání editoru VI]
*[http://deja-vix.sk/sysadmin Príručka systémového administrátora]
Přihlašování do administrace
*[https://potemkin.ms.mff.cuni.cz/vm/gsxmgr Potemkin]
*[https://bogatyr.ms.mff.cuni.cz/vm/gsxmgr Bogatyr]
*[https://gromoboj.ms.mff.cuni.cz/vm/gsxmgr Gromoboj]

== Přednášky==
* jednou za 2 týdny 

==Cvičení==
* [[OpenBSD]]
* [[Gentoo]]
Pozor: některé postupy uvedené dále jsou také jen pro OpenBSD, takže by měly být přesunuty na stránku [[OpenBSD]].

===1. cvičení ===
*přihlášení na VMware a vytvoření strojů (rozhraní na adrese <nowiki>https://</nowiki>''server''.ms.mff.cuni.cz/vm/gsxmgr)
Je potreba nainštalovať si VPC (Virtual PC). Galamboš odporúča [[OpenBSD]], ja som si zvolil [[Gentoo]].
*instalace OpenBSD (celkem bez problémů až na chybu ''broken mbr'' - při vytváření oblasti je nutné zapsat MBR kód (příkaz ''u'' v fdisku)

===2. cvičení ===
* zprovoznění routování a BINDu

==Tipy a triky==
* VMware klient v linux labu potřebuje mít nastavenou proměnnou ''DISPLAY'', proto spusťte klienta takto:
 DISPLAY=localhost:0 vmware-server-console
* SSH tunel do [[Rotunda (lab)|ms labu]]:
** na virtuálním stroji pusťte:
 ssh -R 3000:localhost:22 ''login''@u1-1.ms.mff.cuni.cz cat -
** na zadaném počítači (u1-1.…) se připojíte ke stroji na VMwaru pomocí:
 ssh -p 3000 root@localhost
* když se Vám konzola bude zdát málo barevná (ls, vim, ...), tak si nastavte stejný terminál i na u1-1.… (např. <tt>TERM=wsvt25</tt>)
* Barevný ls (nutno nainstalovat colorls)
 colorls -GCF
* Nastaveni bash jako defaultni shell pro uzivatele root (bash je ale nutne nejdriv nainstalovat)
 usermod -s `which bash` root


==Skriptik na RCS==
* "/usr/local/bin/bash" pripadne zmente na `which bash`
* ked si ho pomenujete edit, tak sa pouziva nasledovne
** edit subor.txt (checkoutne RCS, varuje pred prepisanim, po edite commitne a lockne subor)
** edit (po zavreti editoru si vypyta meno suboru a potom ho commitne)

 #! /usr/local/bin/bash
 
 # create missing RCS directory
 if [ ! -d "RCS" ]; then
   mkdir "RCS"
 fi 
 
 if [ $# -gt 0 ]; then
   # if exists
   if [ -f "$1" ]; then
     # check out last version
     if ! co -l "$1"; then
       # take under version controll
       ci -l "-t${1}" "$1"
     fi
   fi
   # open in editor
   $EDITOR "$1"
   # check in (commit) after edit
   ci -u "$1"
 else
   # open editor
   $EDITOR
   # read the filename
   read -p "Filename : " filename
   # if not empty commit
   if [ -n "$filename" ]; then
     ci -u "-t${filename}" "$filename"
   fi
 fi

==Postfix==
* Instalace
 mount /dev/cd0a /mnt
 cd /mnt/3.9/packages/i386
 pkg_add postfix-2.2.8p1
* You still need to edit myorigin/mydestination/mynetworks parameter settings in /etc/postfix/main.cf.
* BTW: Check your /etc/aliases file and be sure to set up aliases that send mail for root and postmaster to a real person, then run /usr/local/sbin/newaliases.
 cp /etc/mail/aliases /etc/aliases
alebo
 cp /etc/postfix/aliases /etc/aliases

 newaliases
* Urobit
 echo 'syslogd_flags="-a /var/spool/postfix/dev/log"' >> /etc/rc.conf.local
a restartovat syslogd.
* Prepisat sendmail postfixom
 /usr/local/sbin/postfix-enable
* Vyhodit sendmailove vyprazdnovanie fronty
 crontab -e
zakomentovat alebo zmazat riadky
 # sendmail clientmqueue runner
 */30   *       *       *       *       /usr/sbin/sendmail -L sm-msp-queue -Ac -q

===Zadani ukolu===
# smazat (DISCARD) zpravy, ktere obsahuji .exe
# odmitat (REJECT) emaily od cronu
# odmitat sifrovane emaily
# odmitnout email, kdyz neobsahuje subject

==Firewall==
* sit by mela vypadat nejak tak, jako dole na obrazku. Vedle jsou uvedene veci, ktere se maji ve firewallu na danych strojich maji povolit.
    *50            A(lfa)  - keep state
     |             B(eta)  - IN, keep state
     D             G(amma) - YP,DNS,NFS,portmap,SMTP
     |             D(elta) - NAT, RDR
 G--*20   *21      D'(pro ty, co se nudi) - RDR + table + spamd
   /   \ /   \
  G     B     A

* pravidla se nastavuji (pro OBSD) v souboru /etc/pf.conf

===Alfa===
* pro Alfu by nastavovani probihalo takto:

* do pf.conf:
 set skip on lo
 scrub in
 # dovnitr nepustime nic
 block in log 
 # ven pustime vse, zachovame stav, aby nam mohli odpovidat
 # u TCP se drzi stav, u UDP casove okno, u ICMP take neco
 pass out log on pcn0 keep state

* Flushneme nastaveni firewallu, povolime firewall
 pfctl -F all -f /etc/pf.conf
 pfctl -e

* Pro zobrazeni statistik a podobnych veci:
 pfctl -s rules
 pfctl -s stat
 pfctl -s nat ...
 pfctl -s states  # tabulka stavu

* Reload pravidel, ktery potom obnovi stavy
 pfctl -F rules -f /etc/pf.conf 

* Zobrazeni logu:
 tcpdump -e -ttt -n -r /var/log/pflog | more

* Pro nahozeni firewallu pri startu nastavime v /etc/rc.conf.local
 pf=YES
 pf_logd_flags=""

===Beta:===
 pass out all
 pass in on pcn0 from any to pcn1:network
 pass in on pcn1 from pcn1:network to !(pcn1:network)
 # vzdy lze pripsat za "to" "keep state", ztratime tim ale trochu vykonu

===Gamma (tady si nejsem moc jisty, brat s rezervou):===
 block all

* podivat se do pflog(u), co beha po siti a to, co se nam libi, povolit v pf.conf, potom flush
 pfctl -F rules -F states -f /etc/pf.conf

* netstat:
<pre>
 netstat -an

 SMTP tcp from * to ctv:25
 DNS(M) tcp,udp 
        from *(:53) to ctverecek:53
        from S:53   to ctverecek:53
 DNS(S) udp
        from * to ctverecek:53
 Portmap (tcp/udp)?
        from * to ctverecek:111 
                block all
        from *:
</pre>

==Sledovani site==
pri instalovani mrtg je potreba mit par X-kovych veci, staci rozbalit do / baliky xbase a xfont z CD.

= Zkoušky =
== 30.1.2007 ==
Galambos na zacatku nakresil maly schematko: 
 1 
 | 
 * ----2 
 | 
 3 
 | 
 * 
 | 
 4 

Takze * jsou huby, cislicka kompy, uloha byla nasledujici: 
* na 1 zprovoznit master DNS nejake domeny 
* na 2 oddelegovat nejakou subdomenu 
* na 3 zprovoznit sekundar k oddelegovane subdomene 
* na 4 yp/nfs server s exportem map uzivatelu, bez uzivatele root 
* 1,2,3 meli byt klienti yp, pripadne si neco mountit pres to nfs 
* "oplechovat" komp 4 co nejlip to jde 

Bylo na to neco malo pres dve hodiny.  
Hodi se mit ty kompy uz nejak pripravene a +/- rozchozene ( routovani , dns, ... ) a nestavet to na "zelene louce". Na druhou stranu pokud mate pripravenou sit k zapoctu tak je dobre to odevzdat pred zkouskou ( a ziskat zapocet ) abyste ji potom v prubehu zkousky mohli "narychlo" a bez obav predelat.

== 5. 6. 2007 ==
Takže zadanie bolo asi takéto:

[[Image:UnixAdminExam.png]]


Napísať skript, ktorý na servri (S) založí uživateľa, tento uživateľ sa bude môcť na klientovi C''N'' prihlásiť a poslať mail inému uživateľovi, vytvorenom pomocou toho istého scriptu.<br>


Obnáša to rozchodiť na stroji S SMTP server, mať DNS pre doménu na ktorú sa budú posielať maily, rozbehať NFS a samozrejme napísať ten skript.


Ještě důležitá drobnost: Postfix se měl nakonfigurovat tak, aby ukládal doručované e-maily lokálním uživatelům ve formátu '''Maildir''' (tedy 1 e-mail = 1 soubor). A na klientovi se měl rozběhat e-mailový klient, který umí s Maildir pracovat (např. '''pine''', na Gentoo to umí automaticky, na BSD je snad potřeba nějaký patch; v každém případě je také třeba drobně konfiguraci pine upravit).

Tudíž klient nepracoval s maily přes POP3 či něco podobného, ale přímo jako se soubory v domovském adresáři uživatele (který byl samozřejmě nasdílen přes NFS).


Cíl: Zkouška byla úspěšná, pokud Leo viděl, že jeden uživatel pošle druhému přes e-mailového klienta zprávu (nikoliv přes telnet) a ten druhý tomu prvnímu zase odpoví.

== 24. 1. 2008 ==

Schéma:

  1: DNS master pro zónu xxx ------------------ 2: DNS master pro zónu xx.xxx, SMTP server - příjemce
               |
               |
               |
     3: YP master, mail HUB
               |
               |
               |
    4: YP klient, SMTP klient

Na stroji 1 se měl zprovoznit master pro zónu xxx (nebo libovolnou naši zónu), na stroj 2 se měl kus této zóny oddelegovat (např. jako xx.xxx).

Na stroji 2 se měl definovat MX záznam v této oddelegované zóně (třeba y.xx.xxx) s IP adresou stroje 2; stroj 2 měl tedy sloužit jako příjemce pošty.

Na stroji 3 se měl zprovoznit mail HUB, který by veškerou poštu od stroje 4 přijímal a doručoval SMTP serveru. Zároveň se měl na stroji 3 zprovoznit YP server exportující seznam hesel.

Stroj 4 se pak měl nakonfigurovat jako YP klient (tak, aby se na stroji 4 mohl nalogovat uživatel, jehož heslo bylo definované na stroji 3). Stroj 4 měl zároveň sloužit jako mailový klient (mělo jít postlat mail na troj 2 přes HUB).


Jako třešničku na dortu jsme měli napsat skript (umístit jej na stroj 3), který založí nového uživatele se vším všudy (tj. založí uživatele, nechá toho, kdo skript pustí, zadat heslo, exportuje mapu hesel).