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