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í.