Operatsioonisüsteemi Debian GNU/Linux kasutamine

Allikas: Kuutõrvaja

Sisukord

Debian GNU/Linux

Debian GNU/Linux ehk lühidalt Debian on vaba operatsioonisüsteem, mis kasutab Linuxi tuuma ning töötab paljudel populaarsetel riistvaralistel platvormidel, sealhulgas 32 bit ja 64 bit x86 arvutid.

Debiani sobib kasutada nii serveritel kui töökohaarvutitel sh süleritel. Debianile on iseloomulik

  • korrektselt ilmuvad turvaparandused (teated ilmuvad ka bugtraqis)
  • eeskujulik paketihaldus, sh automaatne pakettide autentsuse valideerimine kontrollsummade abil (MD5sum, SHA1, SHA256)
  • rahulik stabiilsete versioonide ilmumise tsükkel, erinevalt närvilisest ja suhteliselt pikk tugi eelmisele stabiisele versioonile
  • väärikas kasutajaskond (ingl. k. community)
  • tarkvara jagatakse kompileeritud ja lähtetekstipakettide kujul

Debiani kodulehe http://www.debian.org/ tiitel ütleb, et tegemist on universaalse operatsioonisüsteemiga, mille tunnistuseks on ehk tõepoolest asjaolu, et Debiani on kasutatud mitmete teiste nn Linuxi distributsioonide aluseks.

Debian on loodud Ian Murdock'i poolt aastal 1993, kusjuures operatsioonisüsteemi nimi on tuletatud autori ja tema abikaasa Debra eesnimedest.

Operatsioonisüsteemi paigaldamise ettevalmistamine

Debiani kasutamiseks on vajalik sobiv riistvara, näiteks tõenäoliselt praktiliselt suvaline 32 bit või 64 bit x86 arvuti sobib, alatest 486 PC mudelitest kuni HP DL 585 G5 ja IBM x3250 taoliste serveriteni. Riistvara sobivuse määrab põhiliselt operatsioonisüsteemi tuum, 2009 aastal on stabiilsel Debiani versioonil 5.0 selleks Linux versioon 2.6.26.

Lisaks tuleks enne operatsioonisüsteemi paigaldamist otsutada, mida arvutiga teha soovitakse, sh võiks kujutada ette milline saab olema

  • arvuti nimi ja ip aadress
  • kõvaketaste kasutus
  • kas arvutit kasutatakse serveri või töökohana
  • kuhu arvuti füüsiliselt paigutatakse
  • kes vastutab arvuti haldamise eest (tarkvara uuendamine, süsteemi monitoorimine ja varundus/taaste)

Üks otsekohene moodus operatsioonisüsteemi paigladmiseks on kasutada Debiani peeglites (ingl. k. mirror) jagatavat CD tõmmisest valmistatud bootivat CD plaati, kuna kõige populaarsem platvorm on x86, siis märgime, et

  • 64 bit AMD ja Inteli arvutitel kasutamiseks sobib Debiani amd64 arhitektuur
  • 32 bit AMD ja Inteli arvutitel kasutamiseks sobib Debaini i386 arhitektuur

Kuivõrd reeglina AMD ja Inteli 64 bit arvutid on 32 bit-ühilduvad, siis kasutades 32 bit operatsioonisüsteemi tarkvara 64 bit riistvaral käitub arvuti nagu 32 bitine arvuti. Kuigi eelpool on mainitud nimeliselt AMD ja Intelit kehtib öeldu ka teiste tootjate x86 platvormide kohta. Järgnevas on näited toodud konkreetsuse huvides 64 bit keskkonna kohta, kuid põhimõtteliselt toimub tegevus samamoodi ka 32 bit keskkonnas toimetades.

Niisiis, kui kasutada on 64 bit x86 riistvara tuleks kopeerida esimene amd64 arhitektuuri CD tõmmis, näiteks aadressilt http://cdimage.debian.org/debian-cd/5.0.1/amd64/iso-cd/debian-501-amd64-CD-1.iso ning kirjutada CD plaadile. Plaadi kirjutamisel peab jälgima, et tõmmist ei kirjutata plaadile mitte nagu suurt faili, vaid kirjutatakse tõmmisena, vastasel korral arvuti ei boodi sellelt plaadilt.

Operatsioonisüsteemi paigaldamine

Tuleb arvestada, et operatsioonisüsteemi paigaldamisel hävivad eelnevalt kõvaketastel olnud andmed. Peale paigaldusmeedialt arvuti käivitamist käivitatakse automaatselt operatsioonisüsteemi installer, mis näeb tekstrežiimis välja selline (alternatiivina esineb installeri kasutajaliides ka graafilises vormis)

Debian-installer-1.gif

Installeri kasutamine on intuatiivne, paigaldamise tulemusena tekib iseseisvalt bootiv arvuti. Paigaldamise käigus sooritatakse järgmised otsustused ja tegevused

  • kõvaketakste kasutamine
  • võrguseadistused
  • tarkvarakomplekti valik (standard, töökoht, server)
  • juurkasutaja parool
  • paigaldatakse alglaadur (ingl. k. bootloader) GRUB

Peale paigaldamist saab arvutisse konsoolilt sisse logida ja teatatakse midagi sellist

 Linux loomaaed 2.6.26-2-xen-686 #1 SMP Wed May 16 23:50:09 UTC 2009 i686
 
 The programs included with the Debian GNU/Linux system are free software;
 the exact distribution terms for each program are described in the
 individual files in /usr/share/doc/*/copyright.
 
 Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
 permitted by applicable law.
 Last login: Sun Mar 29 23:06:53 2009 from aix.auul
 mart@loomaaed:~$

Oluline on tähale panna, et muu hulgas räägib Debian oma kasutustingimustest

  • Debian GNU/Linux süsteemis sisalduv tarkvara on vaba tarkvara
  • Debian GNU/Linux süsteemil kasutamisega ei kaasne garantiid

Paketihaldus

Paketihalduse eesmärgiks on lihtsustada tarkvara haldamist muutes tarkvara paigaldamise, eemaldamise ja turvaparanduste rakendamise ühetaoliseks ja hõlpsasti korratavaks protseduuriks. Debiani paketihaldusele on iseloomulik

  • 2009 aastal on nt AMD64 arhitektuuri Debiani stabiilses versioonis 5.0 üle 22 0000 paketi, mis tähendab, et enamiku kasutusjuhte saab rahuldada ära ametliku Debiani paketirepositooriumi tarkvara abil; tarkvara jagatakse Debiani ametlikes peeglites, http://www.debian.org/mirror/list; Debiani ametlike repositooriumide kasutamiseks ei ole vaja kuskil midagi registreerida
  • ametliku repositooriumi kasutajate jaoks on tagatud kõigi pakettide kooskõlalisus ja turvapaikade olemasolu, selliselt moodustatud süsteem on tarkvara ja tarkvara halduse seisukohast terviklik; erinevalt näiteks OpenBSD operatsioonisüsteemist, kus on olemas operatsioonisüsteemi põhiosa, mida ei halda paketihaldus ning portsud ja neile vastavad binaarsed paketid, kõik tarkvara esineb Debianis pakettide kujul
  • operatsioonisüsteemi kuuluv tarkvara on jaotatud pakettideks funktsionaalsuse alusel, reeglina vastab ühele paketile kas üks programm või programmide komplekt, põhimõtteliselt iga süsteemis esinev fail on mingi paketiga seotud
  • paketihaldussüsteem lahendab automaatselt sõltuvused, mis tähendab praktiliselt seda, et kui paigaldatav tarvkvarapakett eeldab mõne muu paketi olemasolu, siis see paigaldatakse automaatselt; ja vastupidi, tarkvara eemaldamisel on võimalik kasutajal eemaldada paketid, mis on tekkinud süsteemi sõltuvuste rahuldamiseks, kuid mida enam ei ole tarvis
  • tavaliselt ei ole vajadust ja paketihaldus ei näe eriti ette võimalust paigaldada sisuliselt sama funktsionaalsusega erinevat tarkvara, kui see tekitab konflikti, näiteks, kui süsteemi on paigaldatud postivahetusprogramm (MTA) Exim ja seejärel asutakse paigaldama postivahetusprogrammi Postfix, siis esmalt Exim eemaldatakse ning alles seejärel paigaldatakse Postfix; aga näiteks on legaalne, et samaaegselt on paigaldatud süsteemi mitmu tekstiredaktorit, nt Joe ja Vi
  • pakettidele on arvutatud kontrollsummad, mida paketihaldussüsteem kasutab vigade ja võimalike võltsingute avastamiseks
  • lisaks ametlikule repositooriumile eksisteerivad mitmed alternatiivsed repositooriumid, mida erinevad huvigrupid peavad, nende kasutamise osas peab kasutaja ise otsuse tegema
  • kasutaja võib ka lähtetekstidest tarkvara süsteemi paigaldada, kuid seejuures tuleb omal järge pidada sellise tarkvara uuendamise osas; kusjuures lähtetekstist kompileeritud tarkvara ei ole ületamatult keeruline kasutajal endal pakendada ning süsteemi lisada siiski kasutade paketihaldusvahendeid
  • lisaks kompileeritud pakettidele jagatakse reegline repositooriumides ka vastavaid lähtetekstipakette, millest saab kasutaja ise paketid kompileerida; see võib olla oluline mõne nn compile-time seadistuse kohandamise jaoks
  • tarkvara turvaparandused esinevad uute asjassepuutuvate terviklike pakettide kujul, nt erinevalt Solarisest kus nn paik muudab ühe või mitme paketi teatud faile
  • tarkvara paigaldamine toimub tavaliselt võrgust, failis /etc/apt/sources.list on näidatud repositooriumid, kust tarkvara kopeeritakse, näiteks
deb http://ftp.ee.debian.org/debian stable main non-free contrib

Debiani jaoks leidub mitmesuguseid paketihaldusvahendeid, kuid nad kõik töötavad süsteemi ühe ja sama paketihalduse suhtes. St täiesti korrektne on ühe paketihaldusvahendi abil tarkvara paigaldada, teise abil olukorda kontrollida ja kolmanda abil tarvkara eemaldada. Levinumad vahendid on

  • apt-get - käsurea utiliit, tõenäoliselt kõige universaalsem kasutada
  • dpkg - käsurea utiliit, suhteliselt madala taseme programm, tihtipeale kasutavad teised paketihaldusvahendid teda oma nn back-endina, nimetatutest ainsana ei lahenda automaatselt sõltuvusi ega kopeeri andmeid võrgust
  • dselect - pseudograafiline programm
  • aptitude - pseudograafiline (curses) programm, arendajad investeerivad sellesse suhteliselt palju, sisaldab lisafunktsionaalsust võrreldes apt-get programmiga
  • synaptic - graafiline paketihaldusvahend

Failisüsteemis asub paketihaldusse puutuv kataloogi /var/cache/apt all ning paketihaldust tuleb sooritada juurkasutaja (ingl. k. root) õigustes.

Tarkvara paigaldamiseks sobib kasutada käsurealt programmi apt-get, mis kopeerib andmeid automaatselt võrgust ning lahenendab sõltuvused, enne apt-get abil tarkvara repositooriumist kopeerimist tuleb kopeerida indeksid, kus on kirjas pakettide kirjeldused ja pakettidevahelised sõltuvused öeldes

 # apt-get update

ning seejärel näiteks populaarse tekstiredaktori Joe paigaldamiseks tuleb öelda

 # apt-get install joe

Paketihaldusvahendi dpkg abil on võimalik paigaldatud tarkvara kohta küsida, näiteks versiooni teada saamiseks

 # dpkg -l joe
 ..
 ii  joe  3.5-1.1  user friendly full screen text editor

Tarkvara eemaldamiseks sobib öelda

 # apt-get remove joe

Lisaks saab apt-cache programmiga otsida paketihalduse arhiivist märksõna alusel tarkvara, näiteks otsime ftp serveri tarkvara vsftpd

bash# apt-cache search vsftpd
ccze - A robust, modular log coloriser
fail2ban - bans IPs that cause multiple authentication errors
vsftpd - The Very Secure FTP Daemon

Ning konkreetse paketi kohta saab infot küsides, kusjuures pakett ei pea olema paigaldatud

# apt-cache show vsftpd
Package: vsftpd
Priority: extra
Section: net
Installed-Size: 424
Maintainer: Matej Vela <vela@debian.org>
Architecture: amd64
Version: 2.0.5-2
Provides: ftp-server
Depends: libc6 (>= 2.3.5-1), libcap1, libpam0g (>= 0.76), libssl0.9.8 (>= 0.9.8c-1), libwrap0,   libpam-modules, adduser, netbase 
Recommends: logrotate
Conflicts: ftp-server
Filename: pool/main/v/vsftpd/vsftpd_2.0.5-2_amd64.deb
Size: 120284
MD5sum: fe2adbe42fafa0c259cc5acde14163ff
SHA1: 609903667ea2a1a521492e1d0f08b54e4a85465b
SHA256: cfdbe918507c7340f1c28ff925d37f74e644e3b7f97d0fc4f7cde9826ecb4397
Description: The Very Secure FTP Daemon
A lightweight, efficient FTP server written from the ground up with
security in mind.
.
vsftpd supports both anonymous and non-anonymous FTP, PAM authentication,
bandwidth limiting, and the Linux sendfile() facility.
Tag: admin::file-distribution, filetransfer::ftp, implemented-in::c, interface::daemon, network::server, protocol::ftp, protocol::ssl, role::program, works-with::file

Väljundist saame muu hulgas teada

  • autori andmed - Maintainer: Matej Vela <vela@debian.org>
  • versiooni - Version: 2.0.5-2
  • sõltuvused - Depends: libc6 (>= 2.3.5-1), libcap1, libpam0g (>= 0.76), libssl0.9.8 (>= 0.9.8c-1), libwrap0, libpam-modules, adduser, netbase
  • kontrollsummad - MD5, SHA1, SHA256
  • tarkvara kirjelduse

Kui paketihaldus on mõndaaega kasutatud, siis kogunevad võrgust kopeeritud paketid kataloogi /var/cache/apt/archives ning võtavad omajagu ruumi, nende kustutamiseks sobib öelda

bash# apt-get clean

Soovides teada, millisesse paketti kuulub mõni fail, tuleb öelda

bash# dpkg -S /bin/date 
coreutils: /bin/date

Süsteemi paigaldatud paketis sisalduvate failide nimekiri esitatakse öeldes

bash# dpkg -L coreutils

Selleks, et 'apt-get upgrade' käigus uuendatavatest pakettidest erandeid teha, tuleb märkida pakett 'hold' olekusse öeldes eelnevalt, nt

 bash# echo "linux-image-2.6.18-6-amd64 hold" | dpkg --set-selections

hold olekust eemaldamiseks st insall olekusse lülitamiseks tuleb öelda

 bash# echo "linux-image-2.6.18-6-amd64 install" | dpkg --set-selections

Pakettide olekute vaatamiseks tuleb öelda

 bash# dpkg --get-selections

Süsteemi paketihaldusega paigaldatud paketist paketinimi.deb faili moodustamiseks sobib öelda

 # dpkg-repack paketinimi

Kui pakett esineb failisüsteemis .deb faili kujul, siis saab infot küsida öeldes näiteks

 # dpkg -I /var/cache/apt/archives/tcpdump_3.9.8-4_amd64.deb 
 new debian package, version 2.0.
 size 320810 bytes: control archive= 1010 bytes.
     796 bytes,    19 lines      control              
     701 bytes,    10 lines      md5sums              
 Package: tcpdump
 Version: 3.9.8-4
 Architecture: amd64
 Maintainer: Romain Francoise <rfrancoise@debian.org>
 Installed-Size: 728
 Depends: libc6 (>= 2.7-1), libpcap0.8 (>= 0.9.3-1), libssl0.9.8 (>= 0.9.8f-5)
 Section: net
 Priority: optional
 Homepage: http://www.tcpdump.org/
 Description: A powerful tool for network monitoring and data acquisition
  This program allows you to dump the traffic on a network. tcpdump
  is able to examine IPv4, ICMPv4, IPv6, ICMPv6, UDP, TCP, SNMP, AFS
  BGP, RIP, PIM, DVMRP, IGMP, SMB, OSPF, NFS and many other packet
  types.
  .
  It can be used to print out the headers of packets on a network
  interface, filter packets that match a certain expression. You can
  use this tool to track down network problems, to detect "ping attacks"
  or to monitor network activities.

Nö privaatse paketirepositooriumi pidamisel saab Packages.gz faili moodustada öeldes

 $ dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz

Programmi apt-listchanges abil saab jälgida pakettide uuendamisel toimuvaid muudatusi

 # apt-get install apt-listchanges

Programmi apt-file abil saab nt küsida, millisesse paketti fail kuulub ilma, et kõnealune pakett peaks olema süsteemi paigaldatud. Tarkvara paigaldamiseks tuleb öelda

 # apt-get install apt-file

Tarkvara kasutamiseks tuleb öelda esmalt

 # apt-file update

ja nt faili warwick_duncan-cyrus_without_system_accounts.txt sisaldava paketinime otsimiseks

 # apt-file search warwick_duncan-cyrus_without_system_accounts.txt 
 libpam-pwdfile: /usr/share/doc/libpam-pwdfile/warwick_duncan-cyrus_without_system_accounts.txt

Sõltuvustega tutvumiseks on sobiv kasutada programmi apt-rdepends, mille paigaldamiseks tuleb öelda

 # apt-get install apt-rdepends

Ja selleks, et saada teada, mis pakettidest sõltub bash shell sobib öelda

 # apt-rdepends bash
 Reading package lists... Done
 Building dependency tree       
 Reading state information... Done
 bash
   Depends: base-files (>= 2.1.12)
   Depends: debianutils (>= 2.15)
   PreDepends: libc6 (>= 2.7-1)
   PreDepends: libncurses5 (>= 5.6+20071006-3)
 base-files
   Depends: base-passwd (>= 2.0.3.4)
   PreDepends: awk
 base-passwd
   Depends: libc6 (>= 2.7-1)
 libc6
   Depends: libgcc1
 libgcc1
   Depends: gcc-4.3-base (= 4.3.2-1.1)
   Depends: libc6 (>= 2.7-1)
 gcc-4.3-base
 awk
 debianutils
   PreDepends: libc6 (>= 2.7-1)
 libncurses5
   Depends: libc6 (>= 2.7-1)

Paigaldatud paketi uuesti paigaldamiseks sobib öelda

# apt-get install paketinimi --reinstall

dpkg-statoverride programmiga saab kohendada faili (või kataloogi) omanik:grupi või loabittide väärtusi erinevaks sellest, mis neil paigaldamisel oli. Mõnel korral neid paigaldamisel omandatud väärtusi käsutatakse programmi järgmistel käivitustel, nt soketite puhul. Nimekirja failidest, millega dpkg-statoverride on tegelenud saab küsida selliselt, nt ühel juhtumil võiks olla vastuseks

# dpkg-statoverride --list
root postdrop 2555 /usr/sbin/postdrop
root postdrop 2555 /usr/sbin/postqueue
root mlocate 2755 /usr/bin/mlocate
postfix postdrop 2710 /var/spool/postfix/public
root ssl-cert 710 /etc/ssl/private
root Debian-exim 640 /etc/exim4/passwd.client

Secure Apt

Palas http://wiki.debian.org/SecureApt ja manuaalis 'man apt-secure' selgitatakse kuidas GnuPG tarkvara abil tagatakse Debiani paketihalduse turvalisus. Tänu sellisele järgnevusele on tagatud, et tarkvara saaks jõuda muutmata kujul arendaja käest kasutajani.

  • Kasutaja arvutis on olemas nn apt-võtmehoidjas (ingl. k. apt-keyring) Debiani paketihalduse arhiivide avalikud võtmed, mis on sinna paigutatud süsteemi paigaldamisel
 # file /etc/apt/trusted.gpg 
 /etc/apt/trusted.gpg: GPG key public ring

Sisuliselt kopeeritakse võtmed paketi debian-archive-keyring abil, mille sisu saab otseselt esitada öeldes

 $ gpg -k --keyring /usr/share/keyrings/debian-archive-keyring.gpg --no-default-keyring
  • apt-get update ütlemisel kopeeritakse paketihalduse arhiivist muu hulgas nende avalike võtmetega allkirjastatud Release failid (ingl.k. archive reference files) ja Packages failid (viimased ei ole allkirjastatud).
  • Release failides on kirjas Packages failide MD5, SHA1 ja SHA256 kontrollsummad.
  • Packages failis on kirjas kõige kõneksoleva arhiivi paketihalduses olevate .deb pakettide kirjeldused, sh pakettide MD5, SHA1 ja SHA256 kontrollsummad. (Sarnaselt Packages failile kasutatakse Sources faili lähtetekstipakettide jaoks).
  • Pakettide haldajad (ingl. k. maintainer) on tavaliselt Debiani arendajad (ingl. k. Debian developer, DD) kusjuures arendajaks saamisel usaldab uus arendaja oma avaliku võtme teistele arendajatele muu hulgas selleks, et nad saaksid tema pakettide autentsust kontrollida. Nt kui paketi haldaja valmistab paketi, siis signeerib ta selle oma salajase võtmega ning kõneksoleva paketi Debiani arhiivi lisamisel saavad arhiivi koostajad kontrollida paketi autentsust. Kui arhiivi koostajateni jõudnud pakett on autentne, siis arvutatakse faili MD5, SHA1 ja SHA256 kontrollsummad ning lisatakse need andmed Packages ja Sources failidesse.

Secure-Apt tehnikat oskavad kasutada apt-get, aptitude ja synaptic paketihalduse programmid.

Release faili autentsuse kontrolli näide

Konkreetse Release faili kontrollimiseks sobib viia läbi selline protseduur. Leiame find abil, millised on Release failid (kusjuures allkirjastatud fail ja vastav signatuur asuvad eraldi failides, nt *Release ja *Release.gpg, täpsemalt väljendades on tegemist 'ascii-armored detached gpg signatures'-idega)

 # $ find /var/lib/apt/lists/ -name \*Release\*
 /var/lib/apt/lists/192.168.10.199:9999_debian_dists_lenny_Release
 /var/lib/apt/lists/security.debian.org_dists_lenny_updates_Release
 /var/lib/apt/lists/security.debian.org_dists_lenny_updates_Release.gpg
 /var/lib/apt/lists/192.168.10.199:9999_debian_dists_lenny_Release.gpg

Nt esimesel Release failil on kaks signatuuri

 # cat "/var/lib/apt/lists/192.168.10.199:9999_debian_dists_lenny_Release.gpg" 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.9 (GNU/Linux)
 
 iEYEABECAAYFAkniWaMACgkQpw2vU2Bw06HU/QCeLF+wWYq601HqwIruP9hShJ3A
 X8QAnRNEncbcXZYmOKMlvE21TcCNcZQI
 =i25J
 -----END PGP SIGNATURE-----
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.9 (GNU/Linux)
 
 iEYEABECAAYFAkniXKUACgkQTScNBvQlhObeUwCfdxECD1alVTT3MbYhoJTGghLO
 RroAn1yUaIOvhLo4s33jopXhO4IIS7ss
 =+vS2
 -----END PGP SIGNATURE-----

Signatuuri kontrollimiseks, tuleb signatuurile vastav avalik võti paigutada kontrollija võtmehoidjasse. Selleks küsime apt-süsteemilt võtmete nimekirja

 # apt-key list
 /etc/apt/trusted.gpg
 --------------------
 pub   1024D/6070D3A1 2006-11-20 [expires: 2009-07-01]
 uid                  Debian Archive Automatic Signing Key (4.0/etch) <ftpmaster@debian.org>
 
 pub   1024D/ADB11277 2006-09-17
 uid                  Etch Stable Release Key <debian-release@lists.debian.org>
 
 pub   1024D/BBE55AB3 2007-03-31 [expires: 2010-03-30]
 uid                  Debian-Volatile Archive Automatic Signing Key (4.0/etch)
 sub   2048g/36CA98F3 2007-03-31 [expires: 2010-03-30]
 
 pub   1024D/F42584E6 2008-04-06 [expires: 2012-05-15]
 uid                  Lenny Stable Release Key <debian-release@lists.debian.org>
 
 pub   4096R/55BE302B 2009-01-27 [expires: 2012-12-31]
 uid                  Debian Archive Automatic Signing Key (5.0/lenny) <ftpmaster@debian.org>
 
 pub   2048R/6D849617 2009-01-24 [expires: 2013-01-23]
 uid                  Debian-Volatile Archive Automatic Signing Key (5.0/lenny)

ja expordime apt süsteemist alustuseks F42584E6 võtme

 # apt-key export F42584E6 | tee -a /tmp/F42584E6.gpg
 -----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: GnuPG v1.4.9 (GNU/Linux)
 
 mQGiBEf4yvIRBADKgBKsRcuk+JiyNvC7DIiSugcxCvzxTVZYKrGQFRbV0r4auF0f
 cvs1OdeACC92JNmaTjCxrP5ZLZk2NdmbaRvV7MgzQpzZxPcK6NQP7GHtHmMyiwpU
 1YP+R9gLGgEvwOUxR80IRQrLGi37DnaiVYtFC68a+EWRJiRebRfkkJ3xUwCgt/vF
 OCJi0sOa69HFS+dANRb7geMD/jtEB1WtKvyktiIY0OpNhMF7UIYzaF4UXqkALjDj
 mG4DOd5hEJA4yESJDwUKXQoReDtd8dGUfgXJ+X9evLMOzRwUbYpdP+asjl907Eps
 vPaGlfWiYI+vWvA7OGyPEgsPpNhNcXfRBljhLja8A3L1oPvAF5vnF9jIXNdw/0FC
 LpN4BADDCYIsd32uPDkag0kEv4KxQwLrle7Y/i8O+JRIkiqWOW+g3izNEUnKlhVj
 7iTK1fT+2gtazMVmnxpDZfODudYG79cruy33F/Xw75nar5eKstMwc7WPpp6soxnN
 Zscug6Ohb1TW62GpnUvonyxN1qnXDHe4PASVqsBEQ0eqAoBj3bQ6TGVubnkgU3Rh
 YmxlIFJlbGVhc2UgS2V5IDxkZWJpYW4tcmVsZWFzZUBsaXN0cy5kZWJpYW4ub3Jn
 PohGBBARAgAGBQJH+NeBAAoJEOVE3gebfDKNkNAAnjJQPg/hmAHsF9e6YF6twWd5
 dwJ4AJ9nwlTdir2bjC+qnE3XAAFywTOblIhGBBARAgAGBQJH+Ni7AAoJEAZ6rQTJ
 O/95iUoAmQHBvtIoDtImONHBrmn9UEg0VeH4AKCe7R9YFjsEoAcHfu/7TOhR4fab
 PohGBBARAgAGBQJH+NlXAAoJEMWvd0pYUQtaKoIAoKCL0RTXGbvaB+A5U+e+a0Sy
 /cN3AKCr5zQnmwtxBZAHT9SdCHSLMKwmxIhGBBARAgAGBQJH+N2IAAoJEFZBJvIp
 8ZvRY04AnRnRwcpwnYX3PI2YcPoFXlb937urAJ9TRdpmMnOTCUo1UbB64OAaGepx
 MohGBBARAgAGBQJH+Ok9AAoJEEk++45dZPhwxZkAoOQS7yrG1G8es+xncDWPKAMy
 RnFIAJwIFqbkbJ4p9U09Mv1ivgvDiP9W0ohmBBMRAgAmBQJH+MryAhsDBQkHuYoA
 BgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQTScNBvQlhOal1wCfR+9KG9oKTPtr
 baKcMQldlSYaGXoAn0aEsGxPl+errTOYy2ZsWLNr19Rk
 =V0lS
 -----END PGP PUBLIC KEY BLOCK-----

ning impordime kasutaja võtmehoidjasse

 $ gpg --import /tmp/F42584E6.gpg

Tundub, et selleks, et järgmine --verify käsk ei esitaks hoiatusi tuleb tõsta arhiivi võtmete usaldusväärsust

 $ gpg --edit-key F42584E6
 gpg (GnuPG) 1.4.9; Copyright (C) 2008 Free Software Foundation, Inc.
 This is free software: you are free to change and redistribute it.
 There is NO WARRANTY, to the extent permitted by law.
 
 pub  1024D/F42584E6  created: 2008-04-06  expires: 2012-05-15  usage: SC  
                      trust: unknown      validity: unknown
 [unknown] (1). Lenny Stable Release Key <debian-release@lists.debian.org>
 
 Command> trust
 pub  1024D/F42584E6  created: 2008-04-06  expires: 2012-05-15  usage: SC  
                      trust: unknown      validity: unknown
 [unknown] (1). Lenny Stable Release Key <debian-release@lists.debian.org>
 
 Please decide how far you trust this user to correctly verify other users' keys
 (by looking at passports, checking fingerprints from different sources, etc.)
 
   1 = I don't know or won't say
   2 = I do NOT trust
   3 = I trust marginally
   4 = I trust fully
   5 = I trust ultimately
   m = back to the main menu
 
 Your decision? 5
 Do you really want to set this key to ultimate trust? (y/N) y
 
 pub  1024D/F42584E6  created: 2008-04-06  expires: 2012-05-15  usage: SC  
                      trust: ultimate      validity: ultimate
 [ultimate] (1). Lenny Stable Release Key <debian-release@lists.debian.org>
 
 Command> quit

Kui sarnane export-import-trust sooritada ka 6070D3A1 võtme jaoks saab kontrollida Release faili autentsust Release.gpg signatuuri ning avalike võtmete abil

 $ gpg --verify 192.168.10.199\:9999_debian_dists_lenny_Release.gpg  192.168.10.199\:9999_debian_dists_lenny_Release
 gpg: Signature made Mon Apr 13 00:14:11 2009 EEST using DSA key ID 6070D3A1
 gpg: Good signature from "Debian Archive Automatic Signing Key (4.0/etch) <ftpmaster@debian.org>"
 gpg: Signature made Mon Apr 13 00:27:01 2009 EEST using DSA key ID F42584E6
 gpg: Good signature from "Lenny Stable Release Key <debian-release@lists.debian.org>

Lisaks on huvitav tähele panna, et Lenny arhiivi avalik võti on allkirjastatud viie kasutaja poolt

Apt-secure-1.gif

Selline pilt avaneb eeldusel, et nende kasutajate võtmed on gpg võtmehoidjasse kopeeritud nt öeldes

 $ gpg --keyserver hkp://subkeys.pgp.net --recv-keys 0xC93BFF7

Packages faili autentsuse kontrolli näide

 # cd /var/lib/apt/lists
 # sha256sum 192.168.10.199\:9999_debian_dists_lenny_main_binary-amd64_Packages
 1983c015f6c606492f126f10346ce8784d3a7f47c525699c21659d0005b344f3  192.168.10.199:9999_debian_dists_lenny_main_binary-amd64_Packages
 # grep 1983c015f6c606492f126f10346ce8784d3a7f47c525699c21659d0005b344f 192.168.10.199\:9999_debian_dists_lenny_Release
 1983c015f6c606492f126f10346ce8784d3a7f47c525699c21659d0005b344f3 24180067 main/binary-amd64/Packages

Paketi vsftpd autentsuse kontrolli näide

Otsime failist 192.168.10.199:9999_debian_dists_lenny_main_binary-amd64_Packages välja vsftpd paketi osas

 ...
 Package: vsftpd
 Priority: extra
 Section: net
 Installed-Size: 432
 Maintainer: Daniel Baumann <daniel@debian.org>
 Architecture: amd64
 Version: 2.0.7-1
 Provides: ftp-server
 Depends: libc6 (>= 2.7-1), libcap1, libpam0g (>= 0.99.7.1), libssl0.9.8 (>= 0.9.8f-5), libwrap0 (>= 7.6-4~), libpam-modules, adduser, netbase
 Recommends: logrotate
 Conflicts: ftp-server
 Filename: pool/main/v/vsftpd/vsftpd_2.0.7-1_amd64.deb
 Size: 126910
 MD5sum: a32b16e35ab08d02fc64054962766064
 SHA1: 0602ba528acef734b240107dcdc50031684ed32c
 SHA256: 1948f22aa0c0862973143971032e72357af8efcb9f557ad9e4d17d741eca9701
 ...

ja kopeerime repositooriumist arvutisse vsftpd paketi

 # apt-get install -d vsftpd
 # sha256sum /var/cache/apt/archives/vsftpd_2.0.7-1_amd64.deb 
 1948f22aa0c0862973143971032e72357af8efcb9f557ad9e4d17d741eca9701 /var/cache/apt/archives/vsftpd_2.0.7-1_amd64.deb

Community

Debian GNU/Linux osas suhtlemiseks või niisama tutvumiseks saab kasutada selliseid ressursse

Debconf

Debconf on Debiani pakettide seadistamise süsteem. Andmed pakettide kohta asuvad failides kataloogides

 /var/cache/debconf
 /var/lib/dpkg

Üheks Debconf omaduseks on talletada tarkvara paigaldamisel (ja teatud juhtumitel ka paigaldamata tarkvara kohta) tehtud valikud Debconfi andmebaasi selleks, et nt süsteemi uuendamisel neid valikud kasutada.

debconf paketis sisalduva utiliidi debconf-show abil saab küsida paketiga seoses salvestatud seadistusi, nt debconf enda kohta

 # debconf-show debconf 
   debconf-apt-progress/preparing:
 * debconf/frontend: Dialog
   debconf-apt-progress/title:
 * debconf/priority: high
   debconf-apt-progress/info:
   debconf-apt-progress/media-change:

dpkg-reconfigure programmi abil saab selle andmebaasi sisu muuta, nt määrata kui põhjalikke küsimusi tarkvara paigaldamisel kõnealususe tarkvara seadistamiseks kasutajalt küsitakse

 # dpkg-reconfigure debconf

Debconf-1.gif

Programm gkdebconf on graafiline liides Debconf süsteemile

Debconf-2.gif

2009 aastal ei ole Debconf siiski oma kõikehõlmavuselt lähedane nt Suse YaSTile.

Käsitsi pakettide kompileerimine

Puhas debiani install ei sisalda endas ei gcc'd ega make't mõlemad tuleks eraldi paigaldada

apt-get install gcc make

Operatsioonisüsteemi tarkvara uuendamine

Operatsioonisüsteemi tarkvara uuendamise käigus rakendatakse süsteemile veaparandused. Selleks peab olema /etc/apt/sources.list failis lisaks rida

deb http://security.debian.org stable/updates main non-free contrib

ning tuleb öelda

 bash# apt-get update
 bash# apt-get upgrade

Kui süsteem saab aru, et mõnda paketihalduse kontrolli all olevat faili on kasutaja muutnud, nt seadistusfaili, siis ta küsib selliselt, st põhiliselt seda, kas kopeerida üle kasutaja muudatused või säilitada; osa kasutajaid eelistab lasta üle kopeerida ja pärast varukoopia abil viia muudatused uuesti sisse

 Configuration file `/etc/xen/xend-config.sxp'
  ==> Modified (by you or by a script) since installation.
  ==> Package distributor has shipped an updated version.
    What would you like to do about it ?  Your options are:
     Y or I  : install the package maintainer's version
     N or O  : keep your currently-installed version
       D     : show the differences between the versions
       Z     : background this process to examine the situation
  The default action is to keep your current version.
 *** xend-config.sxp (Y/I/N/O/D/Z) [default=N] ? Y

Operatsioonisüsteemi versiooni uuendamine

Debiani järgmisele versioonile liikumiseks tuleb veenduda, et /etc/apt/sources.list fail sisaldab järgmisele versioonile vastavat infot ning tuleb öelda

 # apt-get update
 # apt-get dist-upgrade

Kogemus näitab, et Debiani operatsioonisüsteemi versiooni saab sellisel moel uuendada ühelt versioonilt järgmisele isegi üle võrgu, näiteks Sarge (v 3.1) -> Etch (v 4.0).

Alternatiivsete repositooriumide kasutamine

Lisaks ametlikule Debiani tarkvara repositooriumile on olemas mitmeid iseseisvaid nö mitte-ametlikku, aga väga tunnustatud repositooriume, nt Debian Backports aadressil http://www.backports.org/. Repositooriumi veebilehel asub kasutusjuhend, lühidalt tuleb sooritada sellised sammud

  • Lisada /etc/apt/sources.list faili rida
 deb http://www.backports.org/debian etch-backports main contrib non-free
  • Lisada repositooriumi võti juurkasutaja võtmehoidjasse
 # wget -O - http://backports.org/debian/archive.key | apt-key add -

Ning seejärel saab kasutada Backportsidest pakette öeldes

 # apt-get -t etch-backports install openssl-blacklist
 Reading package lists... Done
 Building dependency tree... Done
 The following NEW packages will be installed:
   openssl-blacklist
 0 upgraded, 1 newly installed, 0 to remove and 76 not upgraded.
 Inst openssl-blacklist (0.4.2~bpo40+1 Backports.org archive:etch-backports)
 Conf openssl-blacklist (0.4.2~bpo40+1 Backports.org archive:etch-backports)

Operatsioonisüsteemi varundamine ja taaste

Operatsioonisüsteemi varundamiseks sobib kasutada programmi rsync kopeerides kogu failisüsteemi va kataloogid

  • /tmp
  • /proc
  • /sys

teisele arvutile.

Süsteemi taastamiseks tuleb arvuti bootida nt RIP-Linuxi CD plaadilt, seadistada võrk, kopeerida varundatud süsteem ja paigaldada bootloader.

IP aadress

Staatilise IP aadressi saab Debianile seadistada failist

/etc/network/interfaces

Tüüpiliselt võiks see välja näna järgnev

# The loopback interface
auto lo
iface lo inet loopback

# The first network card - this entry was created during the Debian installation
# (network, broadcast and gateway are optional)
auto eth0

iface eth0 inet static
       address 192.168.1.10
       netmask 255.255.255.0
       network 192.168.1.0
       broadcast 192.168.1.255
       gateway 192.168.1.1

Arvuti nimi ja resolver

Arvutil peab oleme korrektselt seadistatud nimi ning nimesüsteemi kasutamine. Arvuti nimi on kirjas failis /etc/hostname, näiteks

 bassein

ning failis /etc/hosts on kirjas nö staatiline nimelahendus, mis töötab päri-ja pöördteisenduse jaoks, lihtsal juhul on seal sellised read (kusjuures esimest rida tuleb kasutada sõna-sõnalt)

 127.0.0.1 localhost.localdomain localhost
 192.168.1.20 bassein.loomaaed.tartu.ee bassein

Peale nende failide sisu muutmist tuleb muudatuste kehtestamiseks öelda

  bash# hostname bassein

Õnnestunud muudatuse kinnituseks ütleb arvuti nii

 bash# hostname
 bassein
 bash# hostname -f
 bassein.loomaaed.tartu.ee

Selleks, et arvuti lahendaks muid nimesid, peab olema kirjas nimeserveri aadress failis /etc/resolv.conf

 nameserver 192.168.1.254

Kusjuures, kui failis /etc/resolv.conf kasutada mitut sellist rida erinevate nimeserverite aadressidega, siis proovitakse igal nimelahendusel neid järjest läbi kuni jõutakse esimese töötavani. Vaikimisi oodatakse vastust 5 sekundit. Täiendavat infot saab resolveri manuaalist öeldes

 # man resolver

Tihtipeale kasutatakse keskkonnamuutujat PS1 prompti kujundamiseks ja mille väärtuse moodustamisel kasutatakse omakorda käsku hostname. Seetõttu muutub promptis oleva arvuti nime väärtus peale välja ja uuesti sisselogimist.

resolvconf

Lenny sisaldab lisaks nö staatilisele resolverile dünaamilist resolvconf tarkvara, asjakohane allikas on aadressil http://wiki.debian.org/NetworkConfiguration

Tarkvara paigaldamiseks tuleb öelda

 # apt-get install resolvconf

Osa olulisi faile asub kataloogis

 /etc/resolvconf

resolvconf oskab /etc/network/interfaces failist kasutada dns-nameservers parameetrit, nt selliselt

 ...
 auto eth0
 iface eth0 inet static
  address 192.168.10.199
  gateway 192.168.10.254
  netmask 255.255.255.0
  broadcast 192.168.10.255
  dns-nameservers 192.168.10.254

Kellaaeg

Arvuti kellaaeg on korrektselt juhul kohalik aeg. See sõltub ajavööndi seadistusest, mis võiks Eestis olla

 # ls -l /etc/localtime
 lrwxrwxrwx 1 root root 34 Jul 15 21:40 /etc/localtime -> /usr/share/zoneinfo/Europe/Tallinn

Vajadusel tuleks eemaldada /etc/locatime ja öelda

 # ln -s /usr/share/zoneinfo/Europe/Tallinn /etc/localtime

Seadistamiseks sobib kusjuures kasutada pigem ehk utiliiti dpkg-reconfigure öeldes

 # dpkg-reconfigure tzdata

Kellaja ühekordne seadmine toimub näiteks käsuga, eeldusel, et on paigaldatud pakett rdate

 # apt-get install rdate

ning öeldes

 # rdate ajaserver.loomaaed.tartu.ee

Kellaaja sünkronisseerimiseks sobib kasutada paketti ntp

 # apt-get install ntp

ning seadistusfailis leida üles read

 server 0.debian.pool.ntp.org
 server 1.debian.pool.ntp.org
 server 2.debian.pool.ntp.org
 server 3.debian.pool.ntp.org

ning soovi korral asendada need oma teenese pakkuja nime kasutava ühe reaga, nt

 server ajaserver.loomaaed.tartu.ee

Kulub mõni aega, nt 10 minutit kuni ntp töötamine stabiliseerub, sellest annab tunnistust, et ntptrace vastab kus arvuti asub ntp hierarhias, nt midagi sellist

 # ntptrace -n
 127.0.0.1: stratum 3, offset -0.001927, synch distance 0.038145
 192.168.30.8: stratum 2, offset -0.000066, synch distance 0.020106
 192.168.30.15: stratum 1, offset 0.000010, synch distance 0.002270, refid 'GPS'

ntp tarkvarale on populaarne alternatiiv openntpd, üks praktiline erinevus on nt selles, et ntp sisaldab ntptrace utiliiti.

Selleks, et Xen domU kellaaega mõjutaks domU sees töötav ntp server tuleb öelda

 bash# sysctl -w xen.independent_wallclock=1

või lisada faili /etc/sysctl.conf rida

 xen.independent_wallclock=1

Võrgu seadistamine seadistusfailidega

Võrguseadmete seadistamine toimub faili /etc/networks/interfaces abil. Selle faili sisu alusel kehtestatakse võrguseadistused arvuti alglaadimisel või öeldes arvuti töötamisel

 # /etc/init.d/networking restart

Failis saab kasutada sellised sektsioone

lo ja eth võrguseadme seadistamine

 auto lo
 iface lo inet loopback
 auto eth0
 iface eth0 inet static
  address 192.168.10.10
  gateway 192.168.10.254
  netmask 255.255.255.0

dummy võrguseadme seadistamine

 auto dummy0
 iface dummy0 inet static
       address 192.168.13.251
       netmask 255.255.255.0
       network 192.168.13.0
       broadcast 192.168.13.255

Kui on soov kasutada enam kui ühte dummy seadet, tuleb laadida dummy moodul sarnaselt

 # modprobe dummy numdummies=5

VLAN kasutamist tutvustatakse punktis http://kuutorvaja.eenet.ee/wiki/VLAN_kasutamine#Linux.27i_kasutamine_mode_trunk_re.C5.BEiimis

Silla kasutamine

Silla (ingl. k. bridge) kasutamine toimub paketis bridge-utils utiliitidega, paigaldamiseks tuleb öelda

# apt-get install bridge-utils

Nt tekitame silla eth1 ja tap0 seadmetega

# brctl addbr br0
# brctl addif br0 eth1
# brctl addif br0 eth2

Silla omadusi saab küsida öeldes

# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.00064f320035       yes             eth1
                                                        eth2

Silla kasutamiseks peavad olema seadmed üleval, nt silla üles tõstmiseks tuleb öelda

# brctl br0 up

Silla saab eemaldamiseks tuleb sild alla lasta, eemaldada seadmed ning lõpuks sild

# brctl br0 down
# brctl delif br0 eth1
# brctl delif br0 eth2
# brctl delbr br0

Sillale saab seadistada ka ip aadressi, nii nagu paljudele muudele võrguseadmetele

# ifconfig br0 192.168.1.200 netmask 255.255.255.0

STP (Spanning Tree Protocol) sisselülitamiseks tuleb öelda

# brctl stp br0 on

ja silla STP info esitamiseks

# brctl showstp br0
br0
 bridge id              8000.00064f320035
 designated root        8000.00064f320035
 root port                 0                    path cost                  0
 max age                  20.00                 bridge max age            20.00
 hello time                2.00                 bridge hello time          2.00
 forward delay            15.00                 bridge forward delay      15.00
 ageing time             300.01
 hello timer               1.49                 tcn timer                  0.00
 topology change timer     0.00                 gc timer                   5.49
 flags

eth1 (1)
 port id                8001                    state                  disabled
 designated root        8000.00064f320035       path cost                  4
 designated bridge      8000.00064f320035       message age timer          0.00
 designated port        8001                    forward delay timer        0.00
 designated cost           0                    hold timer                 0.00
 flags

eth2 (2)
 port id                8002                    state                forwarding
 designated root        8000.00064f320035       path cost                  4
 designated bridge      8000.00064f320035       message age timer          0.00
 designated port        8002                    forward delay timer        0.00
 designated cost           0                    hold timer                 0.48
 flags

kust on näha, et

  • antud juhtumil on silla üks komponent välja lülitatud

Sillaga seotud mac aadresside esitamiseks tuleb öelda

# brctl showmacs br0
port no mac addr                is local?       ageing timer
  2     00:06:4f:32:00:35       yes                0.00
  1     00:06:4f:63:e3:d7       yes                0.00
  2     00:0c:42:07:1a:45       no                 0.04
  2     00:16:3e:00:00:01       no                83.98
  2     00:1c:c0:38:89:07       no                22.58
  2     70:01:68:00:11:45       no               227.43
  2     70:01:68:01:02:49       no                33.48

Kasulikud lisamaterjalid

Võrgu seadistamine programmiga ip

Programm ip võimaldab Linuxi kaasaegsetes 2.4 ja 2.6 tuumades sisalduva võrguliideste toega oluliselt paindlikumalt ümber käia kui ifconfig. Näited käsudest, mida on ohutu anda töötavas masinas.

Seadme aadressid

 bash# ip address show eth1
 3: eth1:  mtu 1500 qdisc pfifo_fast qlen 1000
     link/ether 00:07:e9:0b:d3:d3 brd ff:ff:ff:ff:ff:ff
     inet 10.0.6.5/24 brd 10.0.6.255 scope global eth1
     inet 10.0.6.6/24 brd 10.0.6.255 scope global secondary eth1:1 

Seadmed

 bash# ip link show
 1: lo:  mtu 16436 qdisc noqueue 
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 2: eth0:  mtu 1500 qdisc pfifo_fast qlen 1000
     link/ether 00:07:e9:0b:d3:26 brd ff:ff:ff:ff:ff:ff

Ruuting

 bash# ip route show
 10.0.5.0/24 dev eth3  proto kernel  scope link  src 10.0.5.1 
 10.0.6.0/24 dev eth0  proto kernel  scope link  src 10.0.6.1 
 ...

Näited kästudest, mida on ehk ohutu anda töötava masina kasutuses mitte olema võrguseadme suhtes

 bash# ip addr add 100.100.100.4/16 dev eth4
 bash# ip addr del 100.100.100.4/16 dev eth4

nn ifconfig'i aliased

Osade teadlaste arvates on see tänapäeval täiesti igand rääkida ethx:x aliastest. Et lihtsalt saab seadmele omistada mitu aadressi ja kogu lugu. Kui aga on juhtunud selline õnnetu lugu, et seadmel on nt eth0:1 aadress, siis saab seda eemaldada lihtsalt sedasi

 bash# ip addr del 195.80.96.214 dev eth0 
 bash# ip route add 192.168.10/24 dev eth0

Source pakettide kasutamine

Litsentsitingumuste tõttu jaotatakse Debiani paketihalduses vaid Pine lähtekoodi, mille kasutaja saab ise kompileerida, Kompileerimiseks tuleb öelda

 # apt-get build-dep pine
 # mkdir /usr/src/pine
 # chown mart:mart /usr/src/pine
 # su - mart
 $ cd /usr/src/pine
 $ apt-get source pine
 $ cd pine-4.64
 $ dpkg-buildpackage -rfakeroot

Tulemusena tekib mitu paketti .deb failide kujul, pine'i võiks saada paigaldada öeldes

 # dpkg -i /usr/src/pine/pine_4.64-3_i386.deb

32 bit tarkvara kasutamine 64 bit keskkonnas

Tavaliselt operatsioonisüsteemiga pakendatud 64 bit tuumad toetavad 32 bit programmide kasutamist. St näiteks töötab 64 bit tuumaga nö läbi ja lõhki 32 bit operatsioonisüsteemi eksemplar, mis on ehk algselt 32 bit tuumaga paigaldatud.

Läbi ja lõhki 64 bit tuuma ja operatsioonisüsteemi eksemplaris saab ilma pikemata kasutada staatilisi 32 bit programme, kuid kui nad on dünaamiliselt lingitud, st vastu 32 bit teeke, siis need teegid tuleb paigaldada eraldi öeldes

 # apt-get install ia32-libs

Üks võimalus 32 bit tarkvara süsteemi saada on tekitada kuhugi kataloogi 32 bit chroot keskkond, nt debootsrap abil.

Java kasutamine

Java ehk JVM (Java Virtual Machine) tarkvara kasutamiseks on Debianis mitmeid võimalusi. Kui on kavatsus jääda paketihaldusest paigaldatud tarkvara kasutamise juurde, siis tõenäoliselt on otstarbekas lasta paketihaldusel töötada ja kasutada Debiani Java pakette. Kui aga kasutatakse mingit eraldiseisvat tarkvara, nt Tomcat, GlassFish vms Java rakendusserverit, siis on ehk otstarbekas kasutada http://java.sun.com/ veebikohast kopeeritud Javat.

Java kasutamine paketihaldusest

Debiani Lenny paketihalduses on olemas sellised Java kompilaatorit sisaldavad Java implementatsioonid

 $ aptitude search "?provides(java-compiler)"
 p   gcj             - The GNU Java compiler                                                   
 p   gcj-4.2         - The GNU compiler for Java(TM)                                           
 p   gcj-4.3         - The GNU compiler for Java(TM)                                           
 p   jikes-classpath - clean room standard Java libraries - wrapper for jikes                  
 p   jikes-kaffe     - Wrapper for jikes using Kaffe classes                                   
 p   kaffe-jthreads  - A green threads enabled version of the Kaffe VM                         
 p   kaffe-pthreads  - A POSIX threads enabled version of the Kaffe VM                         
 p   sun-java5-jdk   - Sun Java(TM) Development Kit (JDK) 5.0                                  
 p   sun-java6-jdk   - Sun Java(TM) Development Kit (JDK) 6

Tarkvara paigaldatakse nagu ikka Debiani pakett ning kasutatakse nagu ikka Javat.

Sun Java kasutamine

Sun on Java autor ja üks oluline edasiarendaja, kuid on ka teisi Java implementatsioone. Sun Java saab kasutaja kopeerida aadressilt http://java.sun.com/ kus saab tutvuda ka Java kasutustingimustega.

Sun jagab Javat üsna erinevates pakendustes, kusjuures erinevus on kolmel nö teljel

  • millisele funktsionaalsusele on orieteeritud - SE (Standard Edition), EE (Enterprise Edition), ME (Micro Edition)
  • kas tegu on arendusvahendi või nö kasutusvahendiga - nt SDK (Software development kit) vs JRE (Java Runtime Environment), viimane sisaldub esimeses
  • versiooninumber

Erinevad versioonid 2009 suve seisuga

  • 1.3 - vana versioon, mida kasutavad ehk vaid mõned nö riistvaras javat sisaldavad seadmed
  • 1.4 - mõned nö legacy rakendustega Tomcat rakendusserverid võiksid seda veel kasutada
  • 5 (vahel nimetatakse 1.5) - täiesti veel kasutuses, mõnda rakendust soovitatakse kasutada sellel versioonil
  • 6 (vahel nimetatakse 1.6) - viimane stabiilne versioon

Tundub, et juhtumil kui ei ole teada millist Javat kasutada, siis on sobiv valida SE SDK versioon 1.6, mille saab kopeerida http://java.sun.com/ veebikohast liikudes

 Downloads -> Java SE -> Java SE Development Kit (JDK 6 Update 16) -> Download

ning täpsustada platvorm, nt

  • Linux64 - 64 bit Linux
  • Linux - 32 bit Linux

Seejärel valida nimekirjast .bin

 File Description              Name                            Size
 Java SE Development Kit 6u16  jdk-6u16-linux-x64-rpm.bin 	74.04 MB
 Java SE Development Kit 6u16  jdk-6u16-linux-x64.bin          78.08 MB

Kasutamiseks tuleb otsustada, millises kataloogis JVM asuma hakkab, olgu see nt /usr/local/java6, selleks tuleb minna juurkasutajana kataloogi /usr/local

 # cd /usr/local
 # sh jdk-6u16-linux-x64.bin
 vastata küsimustele jaatavalt
 # ln -s /usr/local/tekkinud-katalooginimi /usr/local/java6

Java kasutamiseks tuleb seada ja kui peetakse vajalikuks, lisada teele

 $ export JAVA_HOME=/usr/local/java6
 $ export PATH=/usr/local/java6/bin:$PATH

Seejärel saab nt küsida Java versiooni öeldes

 $ /usr/local/java6/bin/java -version
 java version "1.6.0_16"
 Java(TM) SE Runtime Environment (build 1.6.0_16-b01)
 Java HotSpot(TM) 64-Bit Server VM (build 11.3-b02, mixed mode)

Iceweaseli Java lisa

Iceweaseli ehk Firefox 3.x versiooniga java kasutamiseks on i386 keskkonnas olemas plugin

 # apt-get install sun-java5-plugin

või

 # apt-get install sun-java6-plugin

Lokaat

Lokaatide kasutamiseks tuleb paigalda pakett locales

 # apt-get install locales

ning edasiseks seadistamiseks saab öelda, asjakohased seadistusfailid on iseenesest /etc/environment ning /etc/default/locale

 # dpkg-reconfigure locales

Süsteemi vaikelokaat võiks olla ehk C serverite puhul, aga see on kasutaja otsustada kuidas ta paremaks peab.

Lokaatide nimekirja esitamiseks tuleb öelda, nt selline võiks olla üsna tüüpiline tulemus

 # locale -a
 C
 POSIX
 et_EE.utf8

X Window System

  • X abil saab käivitada X terminalil võrgus asuvast XDMCP serverilt desktopi
 $ X -query 192.168.10.10 :0

Xnest

  • Xnest programmi abil saab avada aknas XDMCP serverilt desktopi, öeldes
 $ Xnest -query 192.168.10.11

X11vnc

  • x11vnc abil saab esitada võrku füüsilisel X serveril asuvat pilti nii, et selle poole saab VNC kliendiga pöörduda
 $ x11vnc -display :0

Vaikimisi ei ole nii tekitatud VNC serveri parooliga kaitstud, parooli tekitamiseks tuleb öelda

 $ mkdir ~/.vnc
 $ x11vnc -storepasswd parool ~/.vnc/x11paroolifail

Sel juhul tuleb VNC serveri käivitamiseks öelda

 $ x11vnc rfbauth ~/.vnc/x11paroolifail -display :0

VNC kliendiga pöördumine toimub endiselt tavalisel moel, aga seejuures küsitakse parooli.

XDMCP server

Sellise nö desktop teenuse server ettevalmistamiseks, mille poole üle XDMCP protokolli saaks 'X -query' abil pöörduda sobib öelda

# apt-get install xdm wmaker

Seejärel tuleb XDM server seadistada

  • kommenteerida failis /etc/X11/xdm-config välja viimane rida
! SECURITY: do not listen for XDMCP or Chooser requests
! Comment out this line if you want to manage X terminals with xdm
! DisplayManager.requestPort:   0
  • määrata failis /etc/X11/xdm/Xservers, millised X serverid töötavad
  • määrata failis /etc/X11/Xaccess, milliseid kliente teenindatakse

XDMCP osalised vahetavad andmeid üle 177/udp pordi.

CD plaadi kirjutamine

Niisama plaadile kirjutamiseks tuleb esmalt moodustada failidest tõmmis öeldes näiteks

 # genisoimage -o ../tommis.iso .

ning seejärel kopeerida tõmmis plaadile öeldes

 # cdrecord -v speed=10 dev=/dev/cdrom tommis.iso

Kui tegu on RW plaadiga, siis ennem järgmist kirjutamist tuleb plaat puhastada käsuga

 # cdrecord -v dev=/dev/cdrom blank=fast

Klaviatuuriasetus konsoolil

Klaviatuuriasetuse muutmiseks tuleb öelda

 # dpkg-reconfigure console-data

ning valida sobiv asetus. NB! Ka mac'i asetus on olemas.

OpenSSL probleem

2008 aasta kevadel ilmnes, et Debiani arendajad olid OpenSSL tarkvara pakendamisel tekitanud avalike võtmete genereerimist puudutavas osas vea, mille tõttu osa varasemalt Debian Etch abil tekitatud võtmeid ja sertifikaate on ärakasutatavad. Kas konkreetne sertifikaat on haavatav saab kontrollida programmiga openssl-vulnkey. Esmalt tuleb paigaldada Backportsidest pakett openssl-blacklist ning öelda

 # cat sertifikaat.pem | openssl-vulnkey -
 COMPROMISED: b3409bf40c63d0d8fc3e1625e9cac2076e20d1e7 -

Helikaardi kastumine

Kui helikaart on arvutisse füüsiliselt paigaldatud, siis vajadusel saab SoX tarkvara utiliitide abil kontrollida, kas heli salvestamine mikrofoni abil ja heli taasesitamine töötavad.

Sox tarkvara paigaldamiseks tuleb öelda

 # apt-get install sox

Salvestamiseks sobib öelda

 # rec -t .wav /tmp/failinimi.wav

Taasesitamiseks sobib öelda

 # play /tmp/failinimi.wav

Lisaks on asjakohane kasutada mikserit, nt aumix või alsamixer, just mikrofoni sisselülitamiseks, käivitades xtermi aknas võiks paista selline pilt

Alsamixer-1.gif

VLC tarkvara kasutamine

VLC http://www.videolan.org/ tarkvara võimaldab muu hulgas striimida meediat ning sellist striimi esitamiseks kasutada.

Tarkvara paigaldamiseks tuleb öelda

 # atp-get install vlc

Kuna striimimine kasutab multicasti peab olema see võrguseadmel sisselülitatud, vaikimisi tavaliselt on. Kusjuures, välja lülitamiseks sobib öelda

 # ifconfig eth0 -multicast

ja sisse lülitatakse

 # ifconfig eth0 multicast

VLC programmi graafilise kasutajaliidese käivitamiseks tuleb seejärel öelda

 $ vlc

Meedia striimimiseks multiedastuse aadressile 228.0.1.141 käsurealt sobib öelda nt

 $ vlc -vvv pala.mp3 --sout udp:228.0.1.141 --ttl 12 --loop

ning striimi kasutamiseks sobib öelda

 $ vlc -vvv rtp://@228.0.1.141

Elioni Digi-TV vaatamine

Elioni Digi-TV programmide edasitamiseks kasutatakse samuti multiedastust ja nõnda saab VLC abil arvutiga saateid vaadata. Selleks tuleb

  • ühendada muidu televiisori juures olevasse nn amino karpi minev etherneti kaabel arvutiga
  • küsida dhclient programmiga arvuti võrguseadmele aadress, nt
 # dhclient eth0
  • Käivitada vlc, nt Eesti Televisooni vaatamiseks öeldes
 $ vlc -vvv udp://@239.3.1.1

Vlc-etv-1.gif

Täpsemad kasutusjuhendid asuvad nt aadressil http://wiki.hinnavaatlus.ee/index.php/Elioni_DigiTV

Digifotokaamera kasutamine

Tänapäeval on levinud nn digitaalsed fotokaamerad, mida saab ühendada arvutiga USB liidese abil selleks, et kopeerida arvutisse fotoaparaadi flash diskile salvestatud pildid. Üks populaarne tarkvara, mis võimaldab suhelda fotokaameraga on gphoto2 http://gphoto.sourceforge.net/.

Tarkvara paigaldamiseks tuleb öelda

 # apt-get install gphoto2

Graafiline nö pealisehitus gphoto2 tarkvarale on gtkam, mille paigaldamiseks tuleb öelda

 # apt-get install gtkam

Piltide kopeerimiseks tuleb kaamera ühendada arvutiga ning lülitada piltide kopeerimise režiimile, operatsioonisüsteem peaks seejärel USB seadme ära tundma

 # lsusb
 ...
 Bus 001 Device 006: ID 04a9:309a Canon, Inc. PowerShot A80
 Bus 001 Device 001: ID 0000:0000

Peale gtkam programmi käivitamist peaks gtkam suutma avastada kaamera ning esitama sarnase kasutajaliidese

Gtkam-1.gif

gphoto2 programmi abil saab kaamerat otsekohesemalt juhtida, aga eeldusel, et gtkam või mõni muu programm seda ei kasuta. Nt saab küsida kaamera kohta kokkuvõtet öeldes

 # gphoto2 --summary
 Camera summary:                                                                
 Model: Canon PowerShot A80
   device version: 01.0001
   serial number:  (null)
 Vendor extension ID: 0x0000000b
 Vendor extension description: (null)
 ...

või kopeerida kõik failid kaamerast failisüsteemi käesolevasse kataloogi

 # gphoto2 --get-all-files
 Downloading 'IMG_3601.JPG' from folder '/store_00010001/DCIM/236CANON'...
 Saving file as IMG_3601.JPG
 Downloading 'IMG_3602.JPG' from folder '/store_00010001/DCIM/236CANON'...
 Saving file as IMG_3602.JPG      
 ..

Root-over-NFS Debian Lenniga

Debian v. 5.0 alglaadimiseks juhul, kui juurfailisüsteem tuleb üle võrgu NFS serverilt tuleb teha võrreldes nt varasemate Debiani versioonidega mõned täiendavad sammud

  • Tuleb hoolitseda, et selles arvutis, kus valimistatakse root-over-nfs arvuti juurfailisüsteemi ette ei oleks udev seadistusfailis /etc/udev/rules.d/70-persistent-net.rules sobimatuid sissekandeid (nt võib see fail olla tühi, kuid tuleb arvestada, et pärast juurfailisüsteemi ettevalmistamist oleks taastatud endine seis).
  • Tuleb hoolitseda, et ramdisk kasutaks nfs serverit. Selleks tuleb selles arvutis, kus valmistatakse root-over-nfs arvuti juurfailisüsteemi ette kasutada failis /etc/initramfs-tools/initramfs.conf rida
 BOOT=nfs

ning ehitada uus ramdisk öeldes nt

 # update-initramfs -k 2.6.26-1-686 -c

Ning seejärel jällegi taastada endine initramfs.conf seis.

Muus osas sobib järgida palas http://kuutorvaja.eenet.ee/wiki/NFS-Root_arvuti_tekitamine toodud nõuandeid.

Iptables kasutamine

Iptables http://www.netfilter.org/ on Linuxi paketifilter.

Näited

Source NAT

 # iptables -t nat -A POSTROUTING -s 192.168.2.38 -d 10.12.0.0/16 -j SNAT --to 10.100.9.104

Destination NAT lokaalselt genereeritud pakettidele

 # iptables -t nat -A OUTPUT -d 10.10.10.10 -j DNAT --to 192.168.10.100

või protokolli ja pordi täpsusega

 # iptables -t nat -A OUTPUT -p tcp -d 192.168.107.133 --dport 80 -j DNAT --to 10.12.7.12:15555

nn peegeldamine

# iptables -t nat -A PREROUTING -p tcp -s 192.168.96.138 -d 10.12.7.11 --dport 4443 -j DNAT --to 10.12.7.31:443
# iptables -t nat -A POSTROUTING -p tcp -s 192.168.96.138 -d 10.12.7.31 --dport 443 -j SNAT --to 10.12.7.11
# sysctl -w net.ipv4.ip_forward=1

mitme pordi esitamiseks

# iptables -A INPUT -p tcp -m state --state NEW -s 10.100.4.0/24 -m multiport --dports 22,5901 -j ACCEPT

Reeglite laadimine

Selleks, et alglaadimisel kehtestuksid reeglid sobib kasutada kahte faili

  • if-pre-up.d skripti - /etc/network/if-pre-up.d/iptables skript, mis laadib iptables-restore programmiga reeglifailist reeglid
  • /etc/iptables.rules - iptablesi reeglifail

Nt alustuseks võiks töötada selline komplekt

# cat /etc/iptables.rules
*filter

# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT

# Accepts all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allows all outbound traffic
# You could modify this to only allow certain traffic
-A OUTPUT -j ACCEPT

# Allows HTTP and HTTPS connections from anywhere (the normal ports for websites)
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 443 -j ACCEPT

# Allow ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

# log iptables denied calls (access via 'dmesg' command)
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

# Reject all other inbound - default deny unless explicitly allowed policy:
-A INPUT -j DROP
-A FORWARD -j DROP

COMMIT

*nat
-A OUTPUT -d 127.0.0.1/32 -p tcp -m tcp --dport 5432 -j DNAT --to-destination 127.0.0.1:5433
COMMIT

kus

  • filter sektsioonis on näidatud, milline liiklus sisse või välja käia võib
  • nat sektsioonis on näidatud, milline liiklus ümber suunataks

ja

 # cat /etc/network/if-pre-up.d/iptables 
 #!/bin/bash
 /sbin/iptables-restore < /etc/iptables.rules

LOG logimine

Ülaltoodud näites logitakse kerneli abil

# log iptables denied calls (access via 'dmesg' command)
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

Kusjuures iptables logi paistab selline /var/log/syslog failis ja dmesg väljundis

Sep 30 14:38:26 arvuti kernel: iptables denied: IN=eth0 OUT= \
  MAC=00:1c:c0:e3:b3:90:00:17:42:02:0b:8a:08:00 SRC=192.168.0.1 DST=192.168.0.70 LEN=60 \ 
  TOS=0x10 PREC=0x00 TTL=64 ID=49175 DF PROTO=TCP SPT=54942 DPT=111 WINDOW=5840 RES=0x00 SYN URGP=0

Kuna LOG risutab dmesg väljundit ei ole ta kuigi hea lahendus.

ULOG logimine

ULOG logib kasutajamaale, reeglina on vaja selliselt logitud andmete salvetamiseks kasutada eraldi programmi, nt ulogd

# apt-get install ulogd

Sarnase tulemuse saab reaga

-A INPUT -m limit --limit 5/min -j ULOG --ulog-prefix "iptables denied: "

ulogd tööd juhib seadistusfail /etc/ulogd.conf kusjuures vaikimisi salvestatakse logi faili /var/log/ulog/syslogemu.log.

SSH kasutamine

Kui Debian on juhtumisi paigaldatud Networkless siis puudub vaikimisi openssh-server, selle paigaldamiseks tuleb öelda käsk

# apt-get install openssh-server

Mille järel starditakse server ka automaatselt, kasutaja mureks on vaid sisse logida.

Kui Debian Lenny ssh kliendiga sisselogimine teistesse süsteemidesse on muutunud rahulikuks (nt vana RedHat 4 ES või Solaris 10 ssh serverid oma default väärtustega) ning -v võtmega käivitatud klient ütleb muu seas

 debug1: Authentications that can continue: gssapi-keyex,\
   gssapi-with-mic,publickey,password,keyboard-interactive
 debug1: Next authentication method: gssapi-keyex
 debug1: No valid Key exchange context
 debug1: Next authentication method: gssapi-with-mic
 debug1: Unspecified GSS failure.  Minor code may provide more information
 No credentials cache found
 
 debug1: Unspecified GSS failure.  Minor code may provide more information
 No credentials cache found

siis aitab kliendi seadistusfailis, nt /etc/ssh/ssh_config kasutada selliselt seadistatud parameetrit

 GSSAPIAuthentication no

MySQL andmebaasi kasutamine

Debian 5.0 Lenny sisaldab MySQL andmebaasi v 5.0 tuge.

Tarkvara paigaldamine

Tarkvara paigaldamiseks tuleb öelda, kusjuures küsitakse MySQL serveri juurkasutaja parooli

 # apt-get install mysql-server

Mysql-1.gif

Andmebaasi käivitab skript

 # /etc/init.d/mysql start|stop|reload|...

ja andmebaasi tööd kontrollib seadistusfail /etc/mysql/my.cnf, kusjuures see juhib nii serverit kui klienti (kui serveris vahel kasutatakse klienti).

Andmefailid asuvad kataloogis /var/lib/mysql.

Andmebaasi haldamine

UTF-8 toega andmebaasi moodustamiseks sobib öelda

 $ mysql -u root -pparool -h hostname
 Welcome to the MySQL monitor.  Commands end with ; or \g.
 Your MySQL connection id is 31
 Server version: 5.0.51a-24 (Debian)
 
 Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
 mysql> create database baasinimi character set utf8 collate utf8_general_ci;

Kasutaja lisamiseks, kellel on ligipääs moodustatud baasile sobib öelda

 mysql> grant all privileges on baasinimi.* to 'kasutajanimi'@'%' identified by 'parool';
 mysql> grant all privileges on baasinimi.* to 'kasutajanimi'@'localhost' indentified by 'parool';

Tulemuse vaatamiseks tuleb öelda

 mysql> show grants for 'baasinimi'@'%';
 +---------------------------------------------------------------------------------------------------------+
 | Grants for baasinimi@%                                                                                   |
 +---------------------------------------------------------------------------------------------------------+
 | GRANT USAGE ON *.* TO 'kasutajanimi'@'%' IDENTIFIED BY PASSWORD '*3510076A4409150F90B46A3194793344089E3F55' | 
 | GRANT ALL PRIVILEGES ON `baasinimi`.* TO 'kasutajanimi'@'%'                                                  | 
 +---------------------------------------------------------------------------------------------------------+
 2 rows in set (0.00 sec)

Ligipääsuõiguste eemaldamiseks sobib öelda

 mysql> revoke all on baasinimi.* from 'kasutajanimi'@'localhost';

Kasutaja eemaldamiseks sobib öelda

 mysql> drop user 'kasutajanimi'@'localhost';

Baasi kustutamiseks tuleb öelda

 myslq> drop database baasinimi;

Kasutaja kustutamiseks tuleb öelda

 mysql> drop user kasutajanimi;

MySQL andmebaasi kasutamisel ei ole vajalik erinevalt paljudest teistest baasidest, nt PostgreSQL teha regulaarselt vacuumi.

Andmete SQL kihis kopeerimine

Andmete SQL kihis kopeerimine võib olla vajalik

  • varundamisel
  • arhiveerimisel
  • andmete migreerimisel erinevate MySQL serverite vahel

Koopia tegemiseks võib olla sobiv öelda

 $ mysqldump --opt -u kasutajanimi -pparool -h localhost baasinimi > baasinimi-20090813.sql

ja koopia kasutamiseks, st baasi sisse lugemisest, esmalt tuleb moodustada tühi andmebaas

 $ mysql -u kasutajanimi -h localhost -pparool baasinimi < baasinimi-20090813.sql

Apache veebiserveri kasutamine

Olgu eesmärgiks seada tööle selline veebiserveri

Veebiserveri paigaldamiseks tuleb öelda

 # apt-get install apache2

Security

Üldiselt ollakse arvamusel, et mida vähem veebiserver oma versiooni ja distributsiooni kohta ise räägib seda parem, selleks tuleb failis /etc/apache2/conf.d/security kasutada rida

 ServerTokens Prod

PHP5 kasutamine

PHP5 kasutamiseks tuleb lisada paketid, php5-pgsql on vajalik, et PHP5 saaks kasutada PostgreSQL andmebaasi

 # apt-get install php5 php5-pgsql
  • /etc/cron.d/php5 - kustutab automaatselt vanu sessioone, nb! see tegevus võib paista teatud juhtumitel anomaaliana
  • /etc/php5/apache2/php.ini - PHP5 seadistusfail

php.ini seadistamisel tuleb lähtuda vajadustest, aga kui vajadusi ei ole sõnastada, ja on lihtsalt tarvis nö töötavat ja pigem turvalist keskkonda, siis Debian Lenny PHP5 puhul võiks kasutada selliseid parameetrite väärtusi algpunktina, ja katsuda siiski vajadused välja selgitada

 disable_functions = dl, exec, passthru, proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, system
 expose_php = Off
 register_globals = Off
 magic_quotes_gpc = Off
 safe_mode = Off
 display_errors = Off
 log_errors = On

Apache veebiserverit saab PHP skripte kasutama seadistada selliselt, et skriptid ei saa pöörduda väljapoole etteantud kataloogi, nt sellest, et skripti seest lugeda /etc/passwd faili sisu include direktiiviga. Lisaks on kasulik error_log direktiiv kõnealuse ressurssiga seotud PHP vigade logimiseks.

open_basedir ja error_log direktiivide kasutamine võiks toimuda nt selliselt

 ...
 <Directory /srv/www.tartu.loomaaed.ee/html>
   php_admin_value open_basedir "/tmp:/srv/www.tartu.loomaaed.ee"
   php_admin_value error_log "/var/log/apache2/www.tartu.loomaaed.ee-php-error.log"
 
   Options None
   AllowOverRide None
   Order Allow,Deny
   Allow from All
 </Directory>

PHP PEAR kasutamine

PEAR (PHP Extension and Application Repository) http://pear.php.net/ on vaba tarkvaraline korduvkasutatavate PHP moodulite repositoorium. PEAR abil süsteemi paigaldatud moodulite nimekirja näitab

# pear list

PHP OCI8 ja PDO Oracle tarkvara kompileerimine ja paigaldamine

Olgu konkreetselt eesmärgiks php5-cli käsurea utiliidiga käivitada php skripti, mis saaks kasutada andmeid Oracle andmebaasist. Selleks on levinud kasutada kahte teeki, st ühte või teist

  • OCI8
  • PDO-OCI

Kasutamine eeldab Oracle poolt jagatava oracle-xe-client Debiani paketi kasutamist, mis esineb 2010 aastal vaid i386 arhitektuuri jaoks. Üks võimalus seda kasutada on tekitada esmalt nt debootstrap abil amd64 arvutisse 32 bit chroot keskkond ning edasi seal keskkonnas toimetada

# mkdir /srv/lenny-32
# debootstrap --arch=i386 lenny /srv/lenny-32 http://ftp.aso.ee/debian
# mount -t proc /proc /srv/lenny-32/proc
# chroot /srv/lenny-32
  • Lisada /etc/apt/sources.list faili juurde
deb http://oss.oracle.com/debian unstable main non-free
  • Lisada Oracle repositooriumi võti
# wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle  -O- |  apt-key add -
  • Paigaldada oracle-xe-client tarkvara
# apt-get update
# apt-get install oracle-xe-client
  • Paigaldada php5 kompileerimiseks vajalikud sõltuvused ka fakeroot pakett
# apt-get build-dep php5
# apt-get install fakeroot
  • Kopeerida php5 lähteteksti pakett
# mkdir /usr/src/oracle-php
# cd /usr/src/oracle-php
# apt-get source php5
  • Kohendada php5 paketi kompileerimise seadistusfaile, esmalt kirjeldada keskkonnamuutuja ORACLE_CLIENT, mille väärtust edaspidi kasutatakse
# ORACLE_CLIENT=$(find /usr/lib/oracle/xe/app/oracle/product/ -name 'client' | sort --reverse | head --lines=1)
  • Lisada debian/modulelist faili lõppu oci8 ja pdo-oci moodulitele vastavad read
oci8 OCI8
pdo-oci PDO_OCI
  • Lisada debian/rules faili vastavad -with-* read, nt --with-mysql järele
...
--with-mysql=shared,/usr \
--with-oci8=shared,/usr/lib/oracle/xe/app/oracle/product/10.2.0/client \
--with-pdo-oci=shared,/usr/lib/oracle/xe/app/oracle/product/10.2.0/client \
  • Lisada debian/control faili vastavad sektsioonid
Package: php5-oci8
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, ${php:Depends}, php5-common (= ${Source-Version}), oracle-xe-client
Description: OCI8 module for php5
 This package provides a module for OCI8 using Oracle 10g Express client.
 .
 PHP5 is an HTML-embedded scripting language. Much of its syntax is borrowed
 from C, Java and Perl with a couple of unique PHP-specific features thrown
 in. The goal of the language is to allow web developers to write
 dynamically generated pages quickly.

ja

Package: php5-pdo-oci
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, ${php:Depends}, php5-common (= ${Source-Version}), oracle-xe-client
Description: PDO OCI module for php5
 This package provides an Oracle OCI driver using Oracle 10g Express client. 
 .
 PHP5 is an HTML-embedded scripting language. Much of its syntax is borrowed
 from C, Java and Perl with a couple of unique PHP-specific features thrown
 in. The goal of the language is to allow web developers to write
 dynamically generated pages quickly.
  • Lisa debian/control faili php5 paketile sõltuvus oracle-xe-client paketist, lisades rea Build-Depends lõppu komaga eraldades
oracle-xe-client
  • Moodustada sobiva sisuga debian/shlibs.local
libclntsh 10.1 oracle-xe-client(>= 10.2.0.1-1.2)
  • php5 kompileerimiseks sobib öelda
# LD_LIBRARY_PATH="${ORACLE_CLIENT}/lib" dpkg-buildpackage -rfakeroot

Tulemusena tekib hulka php5 moodulite .deb pakette, sh

php5-oci8_5.2.6.dfsg.1-1+lenny8_i386.deb
php5-pdo-oci_5.2.6.dfsg.1-1+lenny8_i386.deb

Pakendamise vea tõttu tuleb kopeerida pdo-oci teek käsitsi

# cp /usr/src/oracle-php/php5-5.2.6.dfsg.1/apache2-build/modules/pdo_oci.so /usr/lib/php5/20060613+lfs/pdo-oci.so

Kasulikud lisamaterjalid

Süsteemi ettevalmistamine PHP OCI8 tarkvara kasutamiseks

Valmistada ette tnsnames.ora fail, nt kataloog /etc/oracle

# cat /etc/oracle/tnsnames.ora
LOOM=
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = LOOMAAED)
    )
  )

PHP OCI8 tarkvara kasutamine

Testiks sobib kasutada sellist skripti

<?php
  $conn = oci_connect('kasutajanimi', 'parool', 'TEST');

  if (!$conn) {
    trigger_error("Could not connect to database", E_USER_ERROR);
  }
?>

php5-cli abi käivitamiseks

$ export TNS_ADMIN=/etc/oracle
$ export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/client
$ export LD_LIBRARY_PATH=/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib
$ php5 skript.php

PHP PDO-OCI teegi kasutamine

Testiks sobib kasutada sellist skripti

<?php
  try {
    $dbh = new PDO('oci:dbname=LOOM', 'kasutajanimi', 'parool');
  }
  catch (PDOException $e) {
    trigger_error("Could not connect to database: ". $e->getMessage(), E_USER_ERROR);
  }
?>

Üle chrooti kasutamiseks sobib öelda

# chroot /srv/lenny-32 /root/test-pdo-oci.php.sh

kus

# cat /srv/lenny-32/root/test-pdo-oci.php.sh
#!/bin/bash
export TNS_ADMIN=/etc/oracle
export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/client
export LD_LIBRARY_PATH=/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib
php5 /root/test-pdo-oci.php

SSL komponendi käivitamine

Veebiserverile https toe seadistamiseks tuleb öelda

 # bash:/etc/apache2/mods-enabled# ln -s ../mods-available/ssl.load  
 # bash:/etc/apache2/mods-enabled# ln -s ../mods-available/ssl.conf 

ehk

 # a2enmod ssl
 Enabling module ssl.
 See /usr/share/doc/apache2.2-common/README.Debian.gz on how to configure SSL \
   and create self-signed certificates.
 Run '/etc/init.d/apache2 restart' to activate new configuration!

ning Virtuaalhosti lisada SSL seisukohast olulised read

 SSLEngine on
 SSLCipherSuite HIGH:MEDIUM
 SSLCertificateFile /etc/apache2/serdid/www.loomaaed.tartu.ee-cert.pem
 SSLCertificateKeyFile /etc/apache2/serdid/www.loomaaed.tartu.ee-key.pem
 SSLCertificateChainFile /etc/apache2/serdid/tla-ca-chain.pem

Sertifikaadipäringu tekitamine võiks toimuda nt selliselt, sertifikaadipäringu alusel väljastab SK sertifikaate oma JUUR-SK -> KLASS3-SK sertifikaatide suhtes

 $ openssl req -nodes -new -newkey rsa:1024 > www.loomaaed.tartu.ee.csr
 ...
 Country Name (2 letter code) [AU]:EE
 State or Province Name (full name) [Some-State]:Harju
 Locality Name (eg, city) []:Tallinn
 Organization Name (eg, company) [Internet Widgits Pty Ltd]: Tartu Loomaaed
 Organizational Unit Name (eg, section) []:
 Common Name (eg, YOUR name) []:www.loomaaed.tartu.ee
 Email Address []:

SNI kasutamine

SNI http://en.wikipedia.org/wiki/Server_Name_Indication tehnika võimaldab samal soketil st ip aadressil ja pordil töötava veebiserveriga pakkuda erinevatel domeeninimedel https:// teenust. Selleks sobib kasutada serverina nt Debian Squeeze Apache veebiseverit ja kliendina Debian Squeeze Iceweasel brauserit. Seadistamiseks tuleb lihtsamal juhul lihtsalt seadistada https:// virtual hostid sarnaselt nö tavaliste http:// virtual hostidega.

HTTP Proxy käivitamine

Selleks, et veebiserveris saaks kasutada ProxyPass ja ProxyPassReverse direktiive, tuleb lülitada käima sellised moodulid

 # cd /etc/apache2/mods-enabled
 # ln -s ../mods-available/proxy.conf 
 # ln -s ../mods-available/proxy.load 
 # ln -s ../mods-available/proxy_http.load 
 # ln -s ../mods-available/proxy_connect.load

Kasutamine toimub nt selliselt

 ProxyPass /images http://web.loomaaed.tartu.ee:7778/images
 ProxyPassReverse /images http://web.loomaaed.tartu.ee:7778/images

Proximist saab kasutada ka Rewrite direktiiviga, nt selliselt nö ilusate urlide tegemise eesmärgil

RewriteEngine On
RewriteRule ^(/eng.*) /portal/!portal.clean_url?$1 [QSA,P]

Kui mingil põhjusel peab proxima vastu https'i, siis selliselt

SSLEngine on
SSLProxyEngine on
SSLProxyVerify none
...
RewriteEngine On
RewriteRule ^(/eng.*) /portal/!portal.clean_url?$1 [QSA,P]

BasicAuth tekstifailist

 <Directory /srv/www/salajanekataloog>
         AuthType Basic
         AuthName "FILE-Auth"
         AuthBasicProvider file
         AuthUserFile /etc/apache2/htpasswd.salajanekataloog
         Require valid-user
         Order Allow,Deny
         Allow from All
 </Directory>

BasicAuth LDAP kataloogist

Apache mod_authnz_ldap ja mod_ldap moodulite abil saab autentida veebiserveri failisüsteemi kataloogi kasutajaid vastu LDAP kataloogi. Moodulite sisselülitamiseks tuleb öelda

 # a2enmod authnz_ldap
 # a2enmod ldap

Seadistus sobib kasutada nt sellist sektsiooni

 <Directory /srv/www/salajanekataloog>
   AuthType Basic
   AuthName "LDAP-Auth"
   AuthBasicProvider ldap
   AuthzLDAPAuthoritative on
   AuthLDAPURL "ldaps://ldap.loomaaed.tartu.ee/dc=loomaaed,dc=tartu,dc=ee?uid?sub?(objectClass=*)"
   Require valid-user
   Order Allow,Deny
   Allow from All
 </Directory>

Kui LDAP serveriga toimub suhtlemine üle turvalise kanali, tuleb kasutada veebiserveris LDAP kliendi seadistusfaili /etc/ldap/ldap.conf nii nagu palas OpenLDAP_kasutamine_Debianiga#LDAP_kliendi_seadistamine õpetatakse.

BasicAuth PostgreSQL andmebaasist

Paigaldada pakett libapache2-mod-auth-pgsql http://www.giuseppetanzilli.it/mod_auth_pgsql2/

 # apt-get install libapache2-mod-auth-pgsql

ning kasutada nt sellist Location sektsiooni

 <Location /pg-auth>
     Order Allow,Deny
     Allow from All
     AuthName "PG-Auth"
     AuthType basic
     Auth_PG_host baas.loomaaed.tartu.ee
     Auth_PG_port 5432
     Auth_PG_user kasutajanimi
     Auth_PG_pwd parool
     Auth_PG_database baasinimi
     Auth_PG_pwd_table skeeminimi.tabelinimi
     Auth_PG_uid_field vali1
     Auth_PG_pwd_field vali2
     Auth_PG_encrypted off
   <LIMIT GET POST>
     require valid-user
   </LIMIT>
 </Location>

ajp13 proxy kasutamine

ajp13 protokolli abil saab nö generic Apache veebiserveri taga Tomcat rakendusserverit pidada. Tarkvara paigaldamiseks tuleb öelda

 # apt-get install libapache2-mod-jk

Tarkvara kastumiseks tuleb failis /etc/apache2/apache2.conf kasutada nt

 JkWorkersFile   /etc/libapache2-mod-jk/workers.properties
 JkLogFile       /var/log/apache2/mod_jk.log
 JkLogLevel      debug

ning failis /etc/libapache2-mod-jk/workers.properties kirjeldada nn tööline (ingl. k. worker), nt selliselt

 worker.list=ajp13_worker
 
 worker.ajp13_worker.port=8009
 worker.ajp13_worker.host=localhost
 worker.ajp13_worker.type=ajp13

Veebiserveri seadistusfailis, nt VirtualHost sektsioonis kasutada rida

 ...
 ServerName www.loomaaed.tartu.ee
 JkMount /java-ressurss* ajp13_worker
 JkMount /tapselt-see-uri ajp13_worker

et vahendada java teenust aadressil http://www.loomaaed.tartu.ee/java-ressurss ning /tapselt-see-uri.

Kui mingil põhjusel on Tomcatiga suhtlemine ajp13 protokolli abil raskendatud, siis võttes arvesse asjaolu, et Tomcat sisaldab endas ka HTTP serverit (st nö tavalist veebiserverit), on võimalik vahendada läbi Apache Tomcati http protokolli kasutades. Selleks sobib kasutada nt direktiive

 ProxyPass /java-ressurss http://tomcat.loomaaed.tartu.ee/java-ressurss
 ProxyPassReverse /java-ressurss http://tomcat.loomaaed.tartu.ee/java-ressurss

Selleks, et ajp annaks https:// Apache taga töötavale Tomcatile üle kasutaja sertifikaadi PEM kujul ning nii, et seda saaks java programmist kasutada a la

 request.getAttribute("SSL_CLIENT_CERT");

peab kasutama lisaks Apache seadistusfailis parameetrit

 JkEnvVar SSL_CLIENT_CERT

ajp13 proxy kasutamine koormusjaotuseks

Selleks, et ajp13 abil vahendada kasutajad kahele Tomcat'ile sobib kasutada sellist /etc/libapache2-mod-jk/workers.properties faili sisu

 worker.list=ajp13_worker  
 
 worker.tomcat1a.port=8009   
 worker.tomcat1a.host=10.0.7.241   
 worker.tomcat1a.type=ajp13   
 worker.tomcat1a.lbfactor=1   
 worker.tomcat1a.connect_timeout=1000   
 worker.tomcat1a.jvm_route=tomcat1a      
 
 worker.tomcat1b.port=8009   
 worker.tomcat1b.host=10.0.7.242   
 worker.tomcat1b.type=ajp13   
 worker.tomcat1b.lbfactor=2   
 worker.tomcat1a.connect_timeout=1000   
 worker.tomcat1b.jvm_route=tomcat1b      
 
 worker.ajp13_worker.type=lb
 worker.ajp13_worker.sticky_session=1
 worker.ajp13_worker.sticky_session_force=false
 worker.ajp13_worker.method=Request
 worker.ajp13_worker.balance_workers=tomcat1a,tomcat1b

RewriteRule kasutamine

RewriteRule abil saab juhendada veebiserverit, millistel tingimustel ta vastab brauserile päringu vastuse asemel Location päise rida sisaldava vastusega. Kasutamiseks tuleb moodustada link

 # cd /etc/apache2/mods-enabled
 # ln -s ../mods-available/rewrite.load

ning nt http://www.loomaaed.tartu.ee seadistusfailis kasutada ridu

 RewriteEngine On
 RewriteRule ^/veebikoht http://web.loomaaed.tartu.ee/ [L,R=301]

Tulemusena esitatakse brauserile päringu

 GET /veebikoht
 Host: www.loomaaed.tartu.ee
 ...

peale vastus, st Location ja HTTP kood on just olulised

 HTTP/1.1 301 Moved Permanently
 Date: Mon, 18 May 2009 11:49:18 GMT
 Server: Apache
 Location: http://web.loomaaed.tartu.ee/
 Content-Length: 424
 Content-Type: text/html; charset=iso-8859-1
 Keep-Alive: timeout=15, max=100
 Connection: Keep-Alive

Skriptile töötluse edasiandmiseks sobib kasutada sellist reeglit

RewriteRule ^(.*) "/srv/www/cgi-bin/skript.pl$1" [T=application/x-httpd-cgi]

kus

  • skript.pl kutsutakse välja igasuguste uride puhul, seejuures skript näeb keskkonnamuutujat PATH_INFO, mille väärtuseks on esitatud päringu uri osa
  • sellise konstruktsiooni töötamiseks on oluline, et skript.pl ning $1 on peale teisendusi eraldatud / märgiga, vastasel korral otsib veebiserver failisüsteemist faili skript.pluri

RewriteCond kasutamine

RewriteCond võimaldab kasutada RewriteRule'i tingimuslikult, nt järgmine konstruksioon suunab http://www.loomaaed.tartu.org/ ja http://www.loomaaed.tartu.net/ poole pöördujad http://www.loomaaed.tartu.ee/ peale

ServerName www.loomaaed.tartu.ee
ServerAlias www.loomaaed.tartu.org
ServerAlias www.loomaaed.tartu.net
...

RewriteEngine On

RewriteCond %{SERVER_NAME} www.loomaaed.tartu.org
RewriteRule ^/(.*) http://www.loomaaed.tartu.ee/ [R,L]

RewriteCond %{SERVER_NAME} www.loomaaed.tartu.net
RewriteRule ^/(.*) http://www.loomaaed.tartu.ee/ [R,L]

Veebiserveri vastuste pakkimine

Kui klient esitab päringuga kaasa päise

 accept-encoding: gzip,deflate

siis see tähendab, et brauser oskab vastu võtta gzip'iga pakitud vastuseid. Selleks, et server vastuseid pakkida oskaks peab olema sisse lülitatud mod_deflate moodul http://httpd.apache.org/docs/2.2/mod/mod_deflate.html ja vaikimisi on see sisse lülitatud. Globaalseks väljalülitamiseks tuleb moodul välja lülitada

 # cd /etc/apache2/mods-enabled
 # rm deflate.conf deflate.load

Location ja LocationMatch direktiivide kasutamine

Location direktiive vaatab Apache läbi järjekorras ja töötab URI'ga viimati klappinud Location. Nt sellise järgnevusega saab piirata külastajate ligipääsu va näidatud ip aadressidelt pöördujad

 <Location />
   Order Allow,Deny
   Allow from 192.168
 </Location>
 
 <Location /veahaldus>
   Order Allow,Deny
   Allow from All
 </Location>
 
 ErrorDocument 403 /hooldus/index.html
 
 <Location /hooldus>
   Order Allow,Deny
   Allow from All
 </Location>
  • kõik külastajad saavad ligi /veahaldus ning /hooldus aadressidel olevatele ressurssidele
  • ainult 192.168/16 võrgust pöörduvad kasutajad saavad ligi kõigile ressurssidele

LocationMatch direktiiviga saab kontrollida aadressi vastu regulaaravaldist, nt

 <LocationMatch "/(web|image|html)/">
   Order Allow,Deny
   Allow from 192.168.2 10.0.5.5
 </LocationMatch>

lubab ligipääsu /web/, /image/ ja /html/ sõnesid sisaldavatele aadressidele vaid ip aaressidelt 192.168.2.0/24 ja 10.0.5.5.

Directory direktiivi kasutamine

Directory direktiivi abil saab piirata ressurssile ligipääsu tema asukohale failisüsteemis järgi. Nt selleks, et piirata kõigile '.svn' ja 'CVS' kataloogidele ligipääsu, sobib kasutada selliseid sektsioone

 <Directory ~ ".*\.svn">
           Order allow,deny
           Deny from all
           Satisfy All
 </Directory>
   
 <Directory ~ ".*\/CVS">  
           Order allow,deny
           Deny from all
           Satisfy All
 </Directory>

Virtuaalhostide kasutamine

Ühe Apache veebiserveri installatsiooni saab seadistada nii, et ta teenindab erinevatele domeeninimedele ehk veebikohtadele esitatud HTTP päringuid. Seejuures saab erinevate veebikohtade juures kasutada erinevaid veebiserveri tööd kontrollivaid seadistusi, nt

  • dokumendijuurikas - kataloog, mis vastab veebikohale veebiserveri failisüsteemis
  • kasutajate ligipääsupiirangud - nt ligipääsupiirang kliendi ip aadressi või kasutajanime ja parooli alusel; või id kaardi alusel
  • veebiserver funktsionaalsed omadused - CGI skriptide kasutamise võimalus
  • https veebikohtade puhul erinevaid veebiserveri sertifikaate

Nii käima seatud veebiserveri kohta öeldake, et veebiserver töötab virtuaalses režiimis.

Virtuaalhostide pidamiseks on olulised sellised seadistusfailid

  • /etc/apache2/ports.conf - millistel võrgusoketitel (portidel) veebiserver kliente teenindab
# cat /etc/apache2/ports.conf
NameVirtualHost 192.168.1.151:80
Listen 192.168.1.151:80
  • /etc/apache2/sites-available ja sites-enabled - virtuaalhostide seadistusfailid; erinevatele veebikohtadele vastavaid seadistused esitatakse tavaliselt kataloogis /etc/apache2/sites-available ja /etc/apache2/sites-enabled erinevates failides, kusjuures esimeses kataloogis on virtuaalhostide failid ise ning viimases lingid neile failidele. Reaalselt on kasutajatele kättesaadavad vaid need virtuaalhostid, millele on tehtud lingid.

Suhtliselt lihtne virtuaalhosti seadisfail on sellise sisuga

# cat /etc/apache/sites-available/www.loomaaed.tartu.ee.conf
<VirtualHost 192.168.1.4:80>
  ServerName www.loomaaed.tartu.ee
  ServerAdmin webmaster@loomaad.tartu.ee
  DocumentRoot /srv/www.loomaaed.tartu.ee/www_i5u7yhGbdVy4/html
  ErrorLog     /var/log/apache2/www.loomaaed.tartu.ee-error.log
  LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
  CustomLog /var/log/apache2/www.loomaaed.tartu.ee-access.log combined

<Directory /srv/www.loomaaed.tartu.ee/www_i5u7yhGbdVy4/html>  
  Options None
  AllowOverRide None
  Order Allow,Deny
  Allow from All
</Directory>

</VirtualHost>

ja

# cd /etc/apache2/sites-enabled
# ls -l 
# www.loomaaed.tartu.ee.conf -> ../sites-available/www.loomaaed.tartu.ee.conf

kus

  • ServerName - virtuaalhosti domeeninimi, mida kasutaja virtuaalhosti poole brauseris kasutab
  • ServerAdmin - ...
  • DocumentRoot - dokumendijuurikas
  • ErrorLog - ...
  • LogFormat - ...
  • CustomLog - ...
  • Directory - ...

Veebikülastajate lähte-aadresside teisendamine RPAF mooduliga

Kui veebiserveri ees kasutatakse nn kiirendavat proxy't, nt Squidi, siis paistavad veebiserveri logis läbi Squidi tehtud päringud olevat lähtunud Squidist ip aadressilt. Statistilist analüüsi saab küll teha ehk ka Squidi abil samuti, aga nt vigade otsimisel on otsekohesem kui veebiserveri logis esinevad külastajate õiged ip aadressid (mis üldiselt võivad olla ka mõned muud proxy'd, mida külastajad on otsustanud kasutada).

RPAF mooduli kasutamise tulemusena paistab veebiserverile päring lähtuvat kliendi ip aadressilt, st kliendi aadress esitatakse veebiserveri logis ja praktiliselt kõikjal, kus päringu lähte ip aadress veebiserveris mõju avaldada võiks. RPAF moodul saavutab sellise tulemuse Squidi poolt lisatava X-Forwarded-For päise kasutamisel, milles Squid ütleb kaasa tema poole pöördunud ip aadressi.

RPAF mooduli kasutamiseks tuleb veebiserverisse moodul paigaldada öeldes

 # apt-get install libapache2-mod-rpaf

Peale paigaldamist moodul võetakse kasutusele, mooduli seadistusfail on vaikimisi sisuga

 # cat /etc/apache2/mods-enabled/rpaf.conf
 RPAFenable On
 RPAFsethostname On
 RPAFproxy_ips 127.0.0.1

Lisades RPAFproxy järele Squidi proxy aadressi, esitatakse Apache logis veebikülastajate brauserite nö tegelikke aadresse. Arusaadavalt turvakaalutlustel tuleks olla tähelepanelik, milliseid Squid'e usaldatakse, oluline võiks see olla nt kui mõne veebiserveri ressursi kasutamist kontrollitakse ip aadressi põhiselt (kuigi siinkohal tasuks kaaluda hoopiski ligipääsu piiramist Squidi vahenditega).

Proxy mooduli kasutamine koormusjaotuseks

Proxy http://httpd.apache.org/docs/2.2/mod/mod_proxy.html moodulit saab kasutada nt selliselt koormusjaotuseks

<Location /balancer-manager>
  SetHandler balancer-manager
  Order Allow,Deny
  Allow from 172.19
</Location>

ProxyPass /balancer-manager !
ProxyPass / balancer://mycluster/
#  ProxyPassReverse / http://10.0.13.146:80  
#  ProxyPassReverse / http://10.0.13.147:80

<Proxy balancer://mycluster>
  BalancerMember http://10.0.13.146:80
  BalancerMember http://10.0.13.147:80
</Proxy>

Päringute ja päringu vastuste päiste ümberkirjutamine

headers

Selleks, et kasutaja esitatud veebiserveri päringus ja päringu vastuses muuda HTTP päiseid sobib kasutada Apache mod_headers moodulit, sisselülitamiseks öelda http://httpd.apache.org/docs/2.2/mod/mod_headers.html

# a2enmod headers

Sisenenud päringute päiste muutmiseks sobib kasutada RequestHeader direktiivi, nt

RequestHeader set Ssl-Client-S-Dn   %{SSL_CLIENT_S_DN}e
RequestHeader set Ssl-Client-Verify %{SSL_CLIENT_VERIFY}e

Väljuvate päringute päiste muutmiseks sobib kasutada Header direktiivi, nt

<Location /loomaaed>
  Header set Cache-Control "no-store, no-cache, must-revalidate, max-age=0"
  Header set Pragma "no-cache"
</Location>
expire

http://httpd.apache.org/docs/2.2/mod/mod_expires.html

# a2enmod expires
<Directory /srv/www/html/static>
  ExpiresActive On
  ExpiresByType text/html A20
  ExpiresDefault A20
</Directory>

PHP abil kirja saatmine SMTP relee kaudu

PHP Pear mooduli Net_SMTP http://pear.php.net/package/Net_SMTP/ abil saab saata SMTP relee kaudu kirju välja, tarkvara paigaldamiseks tuleb öelda

# apt-get intall php-mail

Näiteks selline skript saadab kirja välja

<?

require 'Net/SMTP.php';

$host = '192.168.1.250';
$from = 'mart@loomaaed.tartu.ee';
$rcpt = array('priit@loomaaed.tartu.ee');
$subj = "Subject: Teade, mis on tähtis\n";
$body = "Kirja sisu osa";

/* Create a new Net_SMTP object. */
if (! ($smtp = new Net_SMTP($host))) {
   die("Unable to instantiate Net_SMTP object\n");
}

/* Connect to the SMTP server. */
if (PEAR::isError($e = $smtp->connect())) {
  die($e->getMessage() . "\n");
}

/* Send the 'MAIL FROM:' SMTP command. */
if (PEAR::isError($smtp->mailFrom($from))) {
  die("Unable to set sender to <$from>\n");
}
 
/* Address the message to each of the recipients. */
foreach ($rcpt as $to) {
  if (PEAR::isError($res = $smtp->rcptTo($to))) {
    die("Unable to add recipient <$to>: " . $res->getMessage() . "\n");
   }
}

/* Set the body of the message. */
if (PEAR::isError($smtp->data("From: Mart Kask <mart@loomaaed.tartu.ee>\r\n" . "To: Priit Kask <priit@loomaaed.tartu.ee>\r\n" . $subj . "\r\n" . $body))) {
  die("Unable to send data\n");
}

/* Disconnect from the SMTP server. */
$smtp->disconnect();

?>

Logimine

CustomLog http://httpd.apache.org/docs/2.2/mod/mod_log_config.html direktiiviga saab täpsustada, mida veebiserverile esitatud päringutega seoses logitakse, nt näidata, et logitakse päringu teenindamiseks kulunud aega

CustomLog /var/log/apache2/loomaaed.tartu.ee-ssl-access.log "%h %l %u %t \"%r\" %>s %b %T/%D"

kus

  •  %T - päringu tegemiseks kulunud aeg sekundites
  •  %D - päringu tegemiseks kulunud aeg mikrosekundites

Seejuures tuleb arvestada, et päringu tegemiseks kulunud aeg sõltub nii päringu esitajast kui vastajast.

FastCGI

FastCGI saab töötada kolmes režiimis

  • dünaamiline (ingl. k. dynamic) - protsessi käivitab vajadusel veebiserver ise
  • staatiline (ingl. k. static) - etteantud hulk protsesse käivitatakse veebiserveri käivitamisel
  • väline (ingl. k. external) - protsess töötab eraldi veebiserverist, veebiserveri suhtleb sellega nt üle tcp/ip

FastCGI http://www.fastcgi.com/ tarkvara paigaldamiseks tuleb öelda

# apt-get install libapache2-mod-fastcgi libfcgi-perl
Dünaamiline

FastCGI kasutamiseks peab veebiserver sisaldama nt sellist seadistust

<Directory /srv/www/fcgi>
  Options ExecCGI
  AddHandler fastcgi-script .fcgi
</Directory>

Nn HelloWorld FastCGI skript on selline

$ cat /srv/www/fcgi/fcgi.fcgi
#!/usr/bin/perl
use FCGI;

while( FCGI::accept() >= 0 )
  {
    print( "Content-Type: text/plain\n\n" );
    print( "Hello World\n" );
  }

FastCGI kasutamisega kaasneb veebiserveris töötav protsess

# ps aux | grep www-data | grep perl
www-data 13742  0.0  0.5  19328  2812 ?        S    23:23   0:00 /usr/bin/perl /srv/www/fcgi/fcgi.fcgi


Lisaks saab veebiserveri seadistusfaili nn põhiosas juhtida FastCGI tööd nt selliselt

FastCgiConfig -initial-env PATH \
  -appConnTimeout 600 -idle-timeout 60 \
  -init-start-delay 0 -maxClassProcesses 100 -maxProcesses 200 -min-server-life 60 \
  -minProcesses 0 -startDelay 1 -autoUpdate

kus

  • TODO
Staatiline

Parameetri FastCGIServer abil saab käivitada etteantud hulga FastCGI protsesse, nt

FastCgiServer /srv/www/fcgi/fcgi.fcgi -processes 10 -initial-env FCGI=on 

kus

  • FCGI=on - fcgi skript näeb lisaks sellist keskkonnamuutujat näidatud väärtusega

Kui veebiserveri muu seadistusega kaasneb kõnealuse skript kasutamine, siis see toimub FastCGI'na, nt selline RewriteRule

RewriteEngine On
RewriteRule ^/stat/(.*) "/srv/www-static/stat.fcgi/$1" [T=application/x-httpd-cgi]

kus

  • /srv/www-static/stat.fcgi on iseenesest samasugune kui dünaamilisel juhtumil
Väline

Veebiserverist eraldi protsessi kasutamise üheks eeliseks on süsteemi suurem skaleeritavus, FastCGI toega teenus ei pea töötama veebiserveriga samas arvutis. Kas samas arvutis või võrgus tuleb käivitada protsess, nt sellise skripti abil

$ cat /srv/www-fcgi-external/ext.fcgi
use FCGI;
my $socket = FCGI::OpenSocket( ":8080", 5 );
my $request = FCGI::Request( \*STDIN, \*STDOUT, \*STDERR,
  \%ENV, $socket );
    
my $count;
while( $request->Accept() >= 0 ) {
  print "Content-type: text/html\n\n";
  print ++$count;
}

FCGI::CloseSocket( $socket );

Veebiserveri seadistusfailis tuleb näidata parameeter

FastCgiExternalServer /srv/www/ext.fcgi -host 127.0.0.1:8080

kus

  • /srv/www on muus osas seotud FastCGI kasutamisega, nt Directory direktiivi abil
  • 127.0.0.1:8080 on ext.fcgi sees kasutatud soketi aadress

Protsessi käivitamiseks sobib öelda nt

$ perl /srv/www-fcgi-external/ext.fcgi

Tulemusena esitatakse aadressil http://fcgi.loomaaed.tartu.ee/ext.fcgi igale brauseri pöördumisele vastuseks ühe võrra suurem arv.

Re-negotiation probleem

TODO

Kasulikud lisamaterjalid

Etch -> Lenny uuendamine

Kui sources.list failis lenny kasutamise järel apt-get update ütleb vea

 W: There is no public key available for the following key IDs:
 4D270D06F42584E6
 W: You may want to run apt-get update to correct these problems

siis aitab paigaldada debian-archive-keyring pakett

 # apt-get install debian-archive-keyring

Kui kasutusel on uuemad bnx2 draiveriga käivad võrgukaardid, siis tuleb jälgida, et oleks paigaldatud pakett firmware-bnx2

 # apt-get install firmware-bnx2

Veebikaamera kasutamine

Veebikaamera on väike videokaamera, mis tavaliselt ühendatakse arvutiga USB abil ning teda sobib kasutada nt Skype programmi juures enda visuaalseks reaalajas esitlemiseks.

Veebikaamera kasutamise ettevalmistamisel peab peale kaamera arvutiga ühendamist ilmuma USB seadmete nimekirja uus seade, midagi sellist

 # lsusb
 ..
 Bus 001 Device 003: ID 046d:092e Logitech, Inc. QuickCam Chat

Selle spca5xx chipsetiga Logitechi QuickCam Chat veebikaamera kasutamiseks tuleb paigaldada Lennile vastav draiver valides sobiva, st oma tuuma platvormile sobiva tuumamooduli, nt

 # apt-get install gspca-modules-2.6-686

Lisaks peab see kasutaja, kelle alt Skype programm töötab kuuluma video gruppi, vajadusel tuleb redigeeerida /etc/group faili

 # grep video /etc/group
 video:x:44:kasutajanimi

Kui kasutaja määrati gruppi kuuluma, siis tuleb korraks süsteemist logida välja ja tagasi sisse, et gruppikuuluvus kehtestuks. Valides seejärel Skype programmi Options peaks olema kaamera kasutamise võimalus olemas

Veebikaamera-1.gif

Veebikaamerat oskavad kasutada lisaks mitmed muud programmid, nt gqcam.

Mälukaartide kasutamine

Nn mälukäärte esineb külluses, need mis ühendatakse arvutile külge USB liidese kaudu, kas otse või nö lugeja abil paistavad operatsioonisüsteemile tavaliselt SCSI seadmena. Seega, kasutamiseks tavaliselt piisab teha kindlaks dmesg väljundi lõpust millise nimega /dev/sdx seade on juurde tekkinud ning monteerida seejärel ta külge, nt

 # mount /dev/sdc1 /mnt/malukaart

Squid v. 3 kasutamine

Lenny paketihaldusest saab paigaldada Squid v. 3 tarkvara öeldes

 # apt-get install squid3

Kasutamine kiirendina

Squid3 kiirendina kasutamiseks sobib kasutada sellist seadistusfaili

 cache_dir ufs /var/spool/squid3 768 16 256
 http_port 10.0.6.249:80 defaultsite=www.siseministeerium.ee vhost
 icp_port 0
 
 cache_peer 10.0.6.95 parent 80 0 no-query originserver name=www100695 login=PASS
 acl sites_www_100695 dstdomain src "/etc/squid3/sites_www100695.txt"
 cache_peer_access www100695 allow sites_www_100695
 
 cache_peer 10.0.6.96 parent 80 0 no-query originserver name=www100696 login=PASS
 acl sites_www_100696 dstdomain src "/etc/squid3/sites_www100696.txt"
 cache_peer_access www100696 allow sites_www_100696
 
 acl all src 0.0.0.0/0.0.0.0
 acl localhost src 127.0.0.1/255.255.255.255 10.0.0.0/255.255.255.0
 acl Safe_ports port 80          # http
 
 http_access deny !Safe_ports
 http_access allow all
 
 access_log /var/log/squid3/access.log squid
 emulate_httpd_log       on

locate andmebaas

Vaikimisi moodustab Debian updatedb programmi käivitamisel cron'ist nn locate andmebaasi, milles sisaduvad süsteemis leiduvate failid nimed. Seda andmebaasi saab kasutada nt selliselt

 # locate .bash_history
 /root/.bash_history
 /srv/backup/500g-vint/home/mart/.bash_history

locate andmebaas võib osutuda mitmel juhul ebasoovitavaks

  • andmebaasi salvestatakse andmed, mis seal ei peaks sisalduma; nt kui veebiserveri kasutajana saab käivitada programme, siis annab see baas ilmselt soovimatut lisainfot kasutajale ühe või teise faili olemasolust ja asukohast failisüsteemis
  • locale andmebaasi moodustatakse väga suure mahuga andmetest iga päev uuesti ning see raiskab ilmselt ressurssi

updatedb programm käivitatakse skripti

 /etc/cron.daily/mlocate

abil ning updatedb tööd saab kontrollida seadistusfaili abil, eriti, milliseid katalooge andmebaasi koostamisel kasutatakse

 /etc/updatedb.conf

Operatsioonisüsteemi paigaldamine võrgust

Operatsioonisüsteemi võrgust paigaldamine eeldab arusaadavalt paigaldamise ajal võrguühenduse olemasolu, soovitavalt nö hea ühenduse olemasolu. Debian Lenny operatsioonisüsteemi saab paigaldada võrgust kolmel viisil

  • business card CD tõmmis (ca 40 MB) - sisaldab tuuma ja installerit
  • minimaalse sisu CD tõmmis (ca 180 MB) - sisaldab tuuma, installerit ning minimaalset hulka pakette
  • TFTP serverilt paigaldamine - tuuma ja ramdisk booditakse TFTP serverilt

Vaatamata sellele kui palju kasutati kohalikku abi, st lokaalset meediat või TFTP serverit toimub süsteemi mahukama osa moodustava tarkvara kopeerimine paigaldamise ajal võrgust.

Võrgust paigaldamine võiks eriti sobida üle IBM IMM ja HP iLO liideste tarvkara paigaldamisel.

Paigaldamine TFTP serverilt

Üks võimalus Debiani paigaldada on täiesti ilma lokaalse meediate st võrgust, kuid eeldusel, et arvuti omab PXE võimelist võrgukaarti.

Selleks tuleb kopeerida aadressilt tftp serveris kasutamiseks ettevalmistatud kataloogi sisu

 # wget -np -r http://ftp.nl.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/debian-installer/i386/

ning paigutada lokaalvõrgus asuvasse tftp serverisse, nt kataloogi /tftpbood

 # find /tftpboot
 /tftpboot 
 /tftpboot/debian-installer
 /tftpboot/debian-installer/i386
 /tftpboot/debian-installer/i386/boot-screens
 /tftpboot/debian-installer/i386/boot-screens/exithelp.cfg
 /tftpboot/debian-installer/i386/boot-screens/adtxt.cfg
 /tftpboot/debian-installer/i386/boot-screens/index.html
 /tftpboot/debian-installer/i386/boot-screens/f1.txt
 /tftpboot/debian-installer/i386/boot-screens/f10.txt
 /tftpboot/debian-installer/i386/boot-screens/f2.txt
 /tftpboot/debian-installer/i386/boot-screens/f3.txt
 /tftpboot/debian-installer/i386/boot-screens/f4.txt
 /tftpboot/debian-installer/i386/boot-screens/f5.txt
 /tftpboot/debian-installer/i386/boot-screens/f6.txt
 /tftpboot/debian-installer/i386/boot-screens/f7.txt
 /tftpboot/debian-installer/i386/boot-screens/f8.txt
 /tftpboot/debian-installer/i386/boot-screens/f9.txt
 /tftpboot/debian-installer/i386/boot-screens/syslinux.cfg
 /tftpboot/debian-installer/i386/boot-screens/menu.cfg
 /tftpboot/debian-installer/i386/boot-screens/prompt.cfg
 /tftpboot/debian-installer/i386/boot-screens/splash.png
 /tftpboot/debian-installer/i386/boot-screens/stdmenu.cfg
 /tftpboot/debian-installer/i386/boot-screens/vesamenu.c32
 /tftpboot/debian-installer/i386/boot-screens/txt.cfg
 /tftpboot/debian-installer/i386/index.html
 /tftpboot/debian-installer/i386/initrd.gz
 /tftpboot/debian-installer/i386/linux
 /tftpboot/pxelinux.0
 /tftpboot/pxelinux.cfg
 /tftpboot/pxelinux.cfg/index.html
 /tftpboot/pxelinux.cfg/default

Lisaks tuleb valmistada ette sobivalt dchp server, nt sellise host kirjeldusega, next-server 192.168.1.254 on tftpd server

 host fuji.auul {
   hardware ethernet 00:17:42:02:0b:8a;
   fixed-address 192.168.1.142;
   option broadcast-address 192.168.1.255;
   option routers 192.168.1.254;
   filename "pxelinux.0";
   next-server 192.168.1.254;
   option domain-name-servers 192.168.1.254;
 }

Tulemusena peab installeeritav arvuti saama dhcp serverilt omale võrguseaded, alglaadima tftp serverilt operatsioonisüsteemi ning käivitama installeri. Edasine paigaldamine toimub tavapärasel viisil, kusjuures installer küsib Debiani peegel-serveri asukohta, millelt kopeeritakse tarkvara.

CVS tarkvara kasutamine

CVS tarkvara saab kasutada mitmel moel, antud juhul on tegemist selliste asjaoludega

  • CVS töötab nn pserver rezhiimis, mis tähendab, et teenus kuulab 2401 pordil ja liiklus on krüptimata
  • CVS liiklust tuleb täiendavate CVS väliste vahenditega turvata, nt OpenVPN või Stunnel
  • CVS tarkvara tegeleb ise oma kasutajatega, st operatsioonisüsteemi kasutajatest eraldi
  • saab kasutada mitmeid hoidlaid (ingl. k. repository)
  • failisüsteemi kasutamine hoidla operatsioonisüsteemi seisukohalt toimub iga hoidla puhul hoidlale vastava kasutajaga (mitte hoidlat kasutava cvs kasutajana)

Antud juhul kasutatakse mitmeid Debiani haldajate poolt nn vanilla CVS tarkvarale juurde lisatud täiendusi, mille kasutamist on kirjeldatud failis /usr/share/doc/cvs/README.Debian.gz.

Paigaldamiseks tuleb öelda

 # apt-get install cvs

ning valida kas kasutatakse pserverit või mitte, antud juhul kasutatakse ja seejuures tuleb järgnevalt määrata, millistes kataloogides asuvad repositooriumid, nt

 /srv/cvs-loomaaed
 /srv/cvs-propaganda

CVS tarkvara juhivad serveri poolel sellised seadistusfaili

  • CVS p-serveri seadistusfailis /etc/cvs-pserver.conf sisalduvad muu seas repositooriumide asukohad failisüsteemis ning kasutate paroolifail
 CVS_PSERV_REPOS="/data/cvs-loomaaed:/data/cvs-propaganda"
 CVS_PSERV_LIMIT_MEM=hard
 CVS_PSERV_LIMIT_DATA=hard
 CVS_PSERV_LIMIT_CORE=0
 CVS_PSERV_LIMIT_CPU=hard
 CVS_EXT_PASSWD_FILE=/etc/cvs-passwd
  • inetd või xinetd kasutamisel vastavalt seadistusfailis /etc/inetd.conf peab sisalduma rida
 cvspserver      stream  tcp     nowait  root    /usr/sbin/tcpd  /usr/sbin/cvs-pserver

või fail /etc/xinetd.d/cvs sisuga

 service cvspserver
 {
       disable         = no
       socket_type     = stream
       protocol        = tcp
       wait            = no
       user            = root
       server          = /usr/sbin/cvs-pserver
 }
  • repostitooriumide failide omanikud ja efektiivsed kasutajad failis on kirjeldatud /etc/cvs-repouids
 /srv/cvs-loomaaed:cvs-loomaaed
 /srv/cvs-propaganda:cvs-propaganda

Repositooriumide initsialiseerimiseks tuleb öelda

 # su - cvs-loomaaed
 $ cvs -d /srv/cvs-loomaaed init
 # su - cvs-propaganda
 $ cvs -d /srv/cvs-propaganda init

Paroolifaili /etc/cvs-passwd formaat on selline

 /data/cvs-loomaaed
 mart:CHHLHZezIWZZQ
 priit:KbHgWDSglIOH.
 /data/cvs-propaganda
 mart:CHHLHZezIWZZQ
 priit:KbHgWDSglIOH.

Projektid tuleb alguses hoidlasse importida vastavate kasutajatega

 # su - cvs-loomaaed
 $ cd /data/tmp/portaal-arendus
 cvs-loomaaed$ cvs -d /data/cvs-loomaaed import -m "Loomaaia portaali arendus algab" portaal-arendus vt rt
 # su - cvs-propaganada
 $ cd /data/tmp/portaal-propaganda
 cvs-propaganda$ cvs -d /data/cvs-propaganda import -m "Loomaaia propaganda algab" propaganada vt rt

Moodulite kirjeldamine

CVS all olevast projektist saab kopeerida ka üksikuid katalooge öeldes

 $ cvs co projektinimi/katalooginimi

Kasutamine Linuxi CVS kliendiga

 $ export CVSROOT=:pserver:kasutajanimi@cvs.loomaaed.tartu.ee:/data/cvs-loomaaed
 $ cvs login
 $ cvs co portaal-arendus
 $ cvs logout

Kasutamine Windowsi TortoiseCVS kliendiga

Tortoisecvs-1.gif


Riistvara omadustega tegelevad utiliidid

  • lshw - esitab suhteliselt põhjaliku väljundi arvutisüsteemi riistvaralistest komponentidest, nt sellise
 # apt-get install lshw
  • ethtool
 # apt-get install ethtool

Debootstrap programmi kasutamine

debootstrap programmiga saab näidatud kataloogi moodustada operatsioonisteemi juurfailisüsteemi

 # debootstrap lenny /srv/lenny-chroot http://ftp.aso.ee/debian

Nt sobib seda kasutada töötava operatsioonisüsteemi sees olles multiboot arvuti moodustamiseks. Sel juhul tuleb Debian Lenny puhul lisaks tähele panna selliseid asjaolusid peale seda kui debootstrap on töö lõpetanud

  • moodustada /etc/fstab sisu
  • seadistada /etc/network/interfaces ja /etc/hosts
  • kopeerida /lib/modules alla tuuma moodulid
  • paigaldada udev, lvm2, vlan, firmware-bnx2, bridge-utils ja openssh-server tarkvara (ja muu oluline)
  • kirjutada /etc/shadow faili juurkasutajale parool (konsoolilt saab küll login: root järel enterit öeldes sisse ka ilma paroolita)
  • kopeerida tuum ja iniramfs /boot kataloogi
  • paigaldada alglaadur (nt grub-install abil)
  • seadistada ajavöönd, /etc/localtime link

Kui selliselt moodustatud keskkonda chrootida, siis üldiselt peaks olema eelnevalt ühendatud külge sellised failisüsteemid, eeldusel, et keskkond asub kataloogis /target

/dev/sda1 on /target/boot type ext3 (rw,noatime,errors=continue,data=ordered)
proc on /target/proc type proc (rw)
sysfs on /target/sys type sysfs (rw)
udev on /target/dev type tmpfs (rw,size=10240k,mode=755)
devpts on /target/dev/pts type devpts (rw,mode=600)

öeldes

# mount -t proc /proc /srv/lenny-32/proc
# mount -t devpts devpts /srv/lenny-32/dev/pts

debootstrap abil saab tekitada ka teisele arhitektuurile vastav failisüsteem, nt öeldes amd64 keskkonnas

# debootstrap --arch=i386 lenny /srv/lenny-32 http://ftp.aso.ee/debian

Uuemal ajal soovitatakse kasutada tarkvara multistrap.

Autofs

Selleks, et failisüsteem monteeritaks külge automaatselt vastava ühenduspunkti poole pöördumisel, sobib kasutada tarkvara autofs. Tarkvara paigaldamiseks tuleb öelda

 # apt-get install autofs

Tarkvara kasutamiseks tuleb näidata seadistusfailis /etc/auto.master nn map failide asukohad, nt

 # cat /etc/auto.master
 /var/autofs     /etc/auto.misc --timeout=60

kusjuures map failis /etc/auto.misc on kirjeldatud konkreetsed ressursid, nt

 # cat /etc/auto.misc   
 cd             -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
 removable      -fstype=ext3,ro            :/dev/mapper/mpath3

Kui nüüd öelda muidu tühjas kataloogis /var/autofs 'ls -l', siis ühendatakse failisüsteem külge ning seejärel täidetakse ls käsk, nt

 # cd /var/autofs/removable
 drwx------ 2 root root 16384 Apr 11 14:13 lost+found

Ühendatud failisüsteemide parameetreid näeb nii

 # mount | grep autofs
 automount(pid7544) on /var/autofs type autofs (rw,fd=4,pgrp=7544,minproto=2,maxproto=4)
 /dev/mapper/mpath3 on /var/autofs/removable type ext3 (ro)

Autofs olekut näeb öeldes

 # /etc/init.d/autofs status
 Configured Mount Points:
 ------------------------
 /usr/sbin/automount --timeout=300 /home file /etc/auto.home 
 
 Active Mount Points:
 --------------------
 /usr/sbin/automount --pid-file=/var/run/autofs/_home.pid --timeout=300 /home file /etc/auto.home

NFS ressursi ühendamine

Nt kasutajate kodukataloogide üle NFS ühendamiseks tuleb kirjeldada nt selline /etc/auto.home fail

 # cat /etc/auto.home 
 kernel    -ro,soft,intr       192.168.10.249:/data/export

Süsteemi ressursikasutuse jälgimine

Pakett sysstat http://pagesperso-orange.fr/sebastien.godard/ sisaldab süsteemi ressurssikasutuse jälgimiseks vajalikke vahendeid, nii reaalajas kui taustal andmete kogumiseks

  • reaalajas - iostat, pidstat, mpstat
  • taustal - sa1, sa2, sar

Tarvara käivitamist juhivad seadistusfailid

 /etc/cron.d/sysstat
 /etc/cron.daily/sysstat
 /etc/default/sysstat

Taustal töötava sysstat töö tulemusena kogutakse andmed ja salvestatakse binaarses formaadis kataloogi /var/log/sysstat. Kogutud andmeid saab esitada nt selliselt

 # sar -A -f /var/log/sysstat/sa22  | less

Eraldi mainimist vajab programm pidstat, mille abil saab jälgida üksiku protsessiga seotud ressursikasutust, nt plokkseadme IO'd

 $ pidstat -d -p 15585 2
 Linux 2.6.26-1-xen-amd64 (moraal.auul)  04/22/09        _x86_64_
 
 20:13:28          PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
 20:13:30        15585      0.00    236.82      0.00  wget
 20:13:32        15585      0.00    238.00      0.00  wget
 20:13:34        15585      0.00    236.82      0.00  wget
 20:13:36        15585      0.00    238.00      0.00  wget

Kõigi kasutaja postgres protsesside io'd saab uurida nt selliselt

 $ pidstat -d -p ALL 2 | grep postgres

Matrox P690 videokaardi kasutamine

Matrox http://www.matrox.com/ valmistab suhteliselt eeskujulikke videokaarte. P690 mudeli kasutamiseks sobib kasutada aadressil http://www.matrox.com/graphics/en/products/graphics_cards/p_series/p690pci/ kopeeritud draiverit. Lisaks asub nö community-forum aadressil http://forum.tuxx-home.at/ ning sealsed entusiastid avaldavad oma parandustega draivereid.

Paigaldamine

 # CC=/usr/bin/gcc-4.1 sh mtxdriver-installer-x86_32-cvs-20090511.run
 ..
 Please, enter the directory to extract the files [/root/] /usr/src/mtx
 Creating directory /usr/src/mtx/matroxdriver-x86_32-cvs-20090511
 Verifying archive integrity... All good.
 Uncompressing Matrox Parhelia Driver.
 ..
 ========================================
  Matrox Linux Driver Install Script   
 ========================================
 
 Installation package v1.4.7
 
 Refreshing ld database
 Installing mtx_drv.so ...
 Installing v4l_drv.so ...
 Messages are being logged in file /tmp/make.log,
 this might take some time.
 
 Compiling mtx.ko ... done
 
 Installing mtx.ko ...
 Backing up libGL
 Installing 32bits OpenGL library file to /usr/lib
 Installing libGL.so.1.3.0 ...
 Installing the GLX library file to /usr/lib/xorg/modules/extensions

 Installing libglx.so ...
 Installing the gl.h header file to /usr/include/GL 

 Installing gl.h ...
 Installing the glext.h header file to /usr/include/GL 
 
 Installing glext.h ...
 Installing the glx.h header file to /usr/include/GL

 Installing glx.h ...
 Updating library cache

 Installing documentation
 
 cp: cannot stat `v4l': No such file or directory
 Installing powerdesk
 
 Installing mtxcards ...
 Installing mtxwizard ...
 Installing matroxconfig ...
 Installing libmtxcfg.so ...

 Do you wish to let the installer setup your X config file  (y/n)? y 
 
 Trying to configure your X config file (/etc/X11/xorg.conf)
 
 Installation finished

Tulemusena on

  • moodustatud nö vaikimisi /etc/X11/xorg.conf seadistusfail
  • seadistusutiliit /usr/bin/matroxconfig
  • kataloogi /usr/share/matrox on paigutatud teeke ja tekste
  • kompileeritud ja paigaldatud tuuma moodul mtx.ko, mis on link /usr/share/matrox kataloogi failile
 # find /lib/modules/2.6.26-2-686 -name mtx.ko -ls
 721274    0 lrwxrwxrwx   1 root     root           32 Aug  8 17:44 \
   /lib/modules/2.6.26-2-686/kernel/drivers/video/mtx.ko -> /usr/share/matrox/current/mtx.ko

Süsteemi on lisatud/asendatud sellised failid

 /usr/bin
 /usr/bin/mtxwizard
 /usr/bin/matroxconfig
 /usr/share
 /usr/share/mtxwizard
 /usr/share/mtxwizard/mtxcards
 /usr/share/matrox
 /usr/share/matrox/samples
 /usr/share/matrox/samples/XF86Config.QID_Quad_Hybrid
 /usr/share/matrox/samples/XF86Config.QID_Quad_Merge
 /usr/share/matrox/samples/XF86Config.triple
 /usr/share/matrox/samples/XF86Config.QID_Triple_Hybrid_1
 /usr/share/matrox/samples/XF86Config.T221-Merged
 /usr/share/matrox/samples/XF86Config.merged
 /usr/share/matrox/samples/XF86Config.dual
 /usr/share/matrox/samples/XF86Config.QID_Triple_Hybrid_2
 /usr/share/matrox/samples/XF86Config.single
 /usr/share/matrox/samples/XF86Config.triple_merged
 /usr/share/matrox/samples/XF86Config.T221-Xinerama
 /usr/share/matrox/current
 /usr/share/matrox/current/gl.h
 /usr/share/matrox/current/libmtxcfg.so
 /usr/share/matrox/current/mtxcards
 /usr/share/matrox/current/mtx_drv.so
 /usr/share/matrox/current/glx.h
 /usr/share/matrox/current/glext.h
 /usr/share/matrox/current/mtx.ko
 /usr/share/matrox/current/v4l_drv.so
 /usr/share/matrox/current/mtxwizard
 /usr/share/matrox/current/libGL.so.1.3.0
 /usr/share/matrox/current/matroxconfig
 /usr/share/matrox/current/libglx.so
 /usr/share/matrox/backup
 /usr/share/matrox/docs
 /usr/share/matrox/docs/readme.txt
 /usr/share/matrox/docs/readme-advanced.txt
 /usr/lib
 /usr/lib/libGL.so.1.3.0
 /usr/lib/libGL.so
 /usr/lib/xorg/modules/extensions
 /usr/lib/xorg/modules/extensions/libmtxcfg.so
 /usr/lib/xorg/modules/extensions/libglx.so
 /usr/lib/xorg/modules/drivers
 /usr/lib/xorg/modules/drivers/mtx_drv.so
 /usr/lib/xorg/modules/drivers/v4l_drv.so
 /usr/lib/libGL.so.1
 /usr/src/mtx
 /usr/src/mtx/log
 /usr/include/GL
 /usr/include/GL/gl.h
 /usr/include/GL/glx.h
 /usr/include/GL/glext.h

Tuuma laadimisel öeldakse

 # modprobe mtx
 mtx: module license 'Copyright (c) 2002, 2004, Matrox Graphics Inc.' taints kernel.
 [mtx] MTX driver v1.4.7
 [mtx] Allocated a MTX agp driver structure
 ACPI: PCI Interrupt 0000:03:00.0[A] -> GSI 21 (level, low) -> IRQ 21
 [mtx] 0x2539(sub:0xffffffff) board found at 03:00.0

Seadistamine

Komplekt sisaldab ka graafilist haldusutiliiti matroxconfig, mille abil saab genereerida sobiva X serveri seadistusfaili /etc/X11/xorg.conf, nt sellise Fail:Xorg.conf.patch

Matroxconfig-1.gif

Käivitamisel öeldakse dmesg'i

 [mtx] Registers at 0xe8000000, size: 8K, flags: 131588, knl_addr: 0xf8bb8000
 [mtx] Framebuffer at 0xe0000000, size: 128M, flags: 135692, knl_addr: 0x00000000, write-combining: YES
 [mtx] Busmastering flags:
 [mtx]   Board type detected: PCI
 [mtx]   Chipset 0x2539:0x102b was detected
 [mtx]   AGP chipset was detected
 [mtx]   PCI transfers available for read write
 [mtx] Parhelia patches applied: PowerM Cap66Mhz CompBypass 
 [mtx] Registers at 0xe8000000, size: 8K, flags: 131588, knl_addr: 0xf8bb8000
 [mtx] Framebuffer at 0xe0000000, size: 128M, flags: 135692, knl_addr: 0x00000000, write-combining: YES
 [mtx] Busmastering flags:
 [mtx]   Board type detected: PCI
 [mtx]   Chipset 0x2539:0x102b was detected
 [mtx]   AGP chipset was detected
 [mtx]   PCI transfers available for read write
 [mtx] Parhelia patches applied: PowerM Cap66Mhz CompBypass

X log võiks olla nt selline http://kuutorvaja.eenet.ee/mw-1.9.3/images/e/e1/Xorg.mtx-p690.patch

Kui töökohaarvuti vahetada säilitades videokaardi ja monitorid, siis tõenäoliselt piisab xorg.conf failis asendada seadme sektsioonides PCI BusID väärtus sobivaga

 Section "Device"
         # generated by mtx wizard
         Identifier  "mtxwizard_device_1"
         Driver      "mtx"
         BusID       "PCI:3:0:0"
         Screen      1
 EndSection

kusjuures õige saab teha kindlaks lspci utiliidiga

 # lspci | grep Matrox
 03:00.0 VGA compatible controller: Matrox Graphics, Inc. Millennium P690 (rev 01)

apt-cacher-ng kasutamine

Kui ühe suhteliselt rahuliku ühenduse taga kasutatakse nt mitut sama versiooniga ja samal platvormil töötavat Debiani operatsioonisüsteemi eksemplari, siis on kasu atp-cacher-ng http://www.unix-ag.uni-kl.de/~bloch/acng/ tarkvarast. apt-cacher-ng töötab sisuliselt vahendajana (ingl. k. proxy, cache) paketihaldusega seotud andmete kopeerimise juures.

Tarkvara paigaldamiseks tuleb öelda ühes arvutis

 # apt-get install apt-cacher-ng

ning seadistusfailis /etc/apt-proxy/apt-proxy-v2.conf peavad nt Debain Lenny'ga seoses esinema sektsioonid

 address = 192.168.10.199
 port = 9999 
 ...
 
 [debian]
   backends = http://ftp.ee.debian.org/debian
   min_refresh_delay = 1d
 

Nii tööle seatud apt-proxy't saab kasutada näidatest klientide arvutite /etc/apt/sources.list failides debiani peegili asemel apt-proxy aadressi, nt

 deb     http://192.168.10.199:9999/debian/     lenny main contrib non-free
 deb-src http://192.168.10.199:9999/debian/     lenny main contrib non-free

Tarkvara paigaldamine toimub klientides tavalisel viisil.

Kopeeritud andmeid hoiab apt-proxy kataloogis /var/cache/apt-proxy. 2009 aasta suvel tundub kahjuks, et apt-proxy käitub suhteliselt ebastabiilselt, nt jääb vahel apt-proxy't kasutav klient ootama päiseid http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=460338

debmirror kasutamine

 # apt-get install debmirror
 # cp /usr/share/doc/debmirror/debmirror.conf /etc
 # ln -s /root/.gnupg/pubring.gpg /root/.gnupg/trustedkeys.gpg
 # debmirror -v -p /tmp/dm
 Mirroring to /tmp/dm from http://ftp.ee.debian.org//debian/
 Arches: amd64
 Dists: lenny
 Sections: main,main/debian-installer,contrib,non-free
 Including source.
 Will clean up AFTER mirroring.
 Pdiff mode: use.
 Attempting to get lock, this might take 2 minutes before it fails.
 Get Release files.
 [0%] Getting: dists/lenny/Release... ok
 [0%] Getting: dists/lenny/Release.gpg... ok
 gpgv: Signature made Mon Apr 13 00:14:11 2009 EEST using DSA key ID 6070D3A1
 gpgv: Good signature from "Debian Archive Automatic Signing Key (4.0/etch) <ftpmaster@debian.org>"
 gpgv: Signature made Mon Apr 13 00:27:01 2009 EEST using DSA key ID F42584E6
 gpgv: Good signature from "Lenny Stable Release Key <debian-release@lists.debian.org>"
 Get Packages and Sources files and other miscellany.
 dists/lenny/main/binary-amd64/Packages.gz needs fetch
 [  0%] Getting: dists/lenny/main/binary-amd64/Packages.gz... ok
 dists/lenny/main/binary-amd64/Release needs fetch
 [ 67%] Getting: dists/lenny/main/binary-amd64/Release... ok
 dists/lenny/main/source/Sources.gz needs fetch
 ...

lsattr ja chattr programmide kasutamine

chattr programmi abil saab ext2 ja ext3 failisüsteemis seadistada failidele täiendavad omadusi. Näiteks, märkida faili immutable'ks

# chattr +i failinimi

Tulemusena ei saa seda faili ka kustutada juurkasutaja

# rm failinimi
rm: cannot remove `failinimi': Operation not permitted

Atribuutide väärtusi saab küsida öeldes

# lsattr failinimi
----i-------------- failinimi

immutable biti saab eemaldada öeldes

# chattr -i failinimi

Extended Attributes ja ACL

Levinud nn POSIX failisüsteemides on lisaks tavalistele nö chmod ja chown atribuutidele võimalik kasutada Extended Attributes'isisid (ingl. k. laiendatud atribuutide hulk, EA) ja Access Control List'isid (ligipääsu kontrolli nimekiri, ACL). Mõlemad andmed esinevad loogilises mõttes faili metaandmete juures, kusjuures tehniliselt on acl üks ea erijuht. EA ja ACL kasutamisel tuleb arvestada, et failisüsteemi kasutamise efektiivsus väheneb, kuna arvutil tuleb teha lisatööd.

Access Control List

Kasutamiseks tuleb paigaldada pakett acl öeldes

 # apt-get install acl

ning ühendada nt ext3 failisüsteem külge acl võtmega, nt nii

 # mount -o acl /dev/system/voluuminimi /mnt/voluuminimi

Kasutamiseks sobib öelda nt

 # setfacl -m user:nobody:rwx /mnt/voluuminimi/fail-1.txt

ACL sobib tuleb öelda

 # getfacl /mnt/voluuminimi/fail-1.txt
 # file: /mnt/voluuminimi/fail-1.txt
 # owner: root
 # group: root
 user::rwx
 user:nobody:rwx
 group::r-x
 mask::rwx
 other::r-x

Nt leiavad ACL'id kasutamist Samba juures.

Extended Attributes

Kasutamiseks tuleb paigaldada pakett attr öeldes

 # apt-get install attr

ning ühendada nt ext3 failisüsteem külge user_xattr võtmega, nt nii, antud juhul koos acl'idega

 # mount -o user_xattr,acl /dev/system/voluuminimi /mnt/voluuminimi

Kasutamiseks tuleb öelda

 # echo "faili sisu" > /mnt/voluuminimi/fail-1.txt
 # setfattr -n user.atribuudinimi -v atribuudi-vaartus /mnt/voluuminimi/fail-1.txt

attribuutide lugemiseks sobib öelda

 # getfattr /mnt/voluuminimi/fail-1.txt
 # file: /mnt/voluuminimi/fail-1.txt
 user.atribuudinimi="atribuudi-vaartus"

Küsides kõiki faili atribuute käsuga on nähe ka muu seas system.* mille all on acl'id

 # getfattr -m - -d /mnt/voluuminimi/fail-1.txt
 getfattr: Removing leading '/' from absolute path names
 # file: /mnt/voluuminimi/fail-1.txt
 system.posix_acl_access=0sAgAAAAEABwD/////AgAHAP7/AAAEAAUA/////xAABwD/////IAAFAP////8=
 user.atribuudinimi="atribuudi-vaartus"

UCARP kasutamine

Sellest saab lugeda eraldi palas Kõrgkäideldavus UCARP abil.

FUSE

Kui tavaliselt toimub failisüsteemidega tegelemine, nt külgeühendamine, privilegeeritud kasujana ning nn kernel-space'is, siis FUSE (Filesystem in Userspace) http://fuse.sourceforge.net/ tehnika võimaldab seda teha tavakasutajana user-space'is. Linuxi tuum sisaldab FUSE tuge ning paketihalduses on rohkesti FUSE funktsionaalsust kasutavat tarkvara. Üldkasutatavad FUSE utiliidid on paketis fuse-utils.

curlftpfs

curlftpfs abil saab nö külge monteerida ftp serverist ressurssi, tarkvara paigaldamiseks tuleb öelda

 # apt-get install curlftpfs

Kasutmise peab kasutaja kuuluma gruppi fuse, ressursi külgeühendamine toimub öeldes

 $ curlftpfs ftp://ftp.ee.debian.ee /tmp/ftp.ee.debian.org

ja lahtiühendamiseks

 $ fusermount -u /tmp/ftp.ee.debian.org

Kasutamine toimub nii nagu tavalise kohaliku failisüsteemi kasutamine.

SSHFS

sshfs abil saab nö külge monteerida serverist, kuhu on ssh ligipääs, ressurssi, tarkvara paigaldamiseks tuleb öelda

 # apt-get install sshfs

Kasutamise peab kuuluma gruppi fuse, külgeühendamiseks sobib öelda

 $ sshfs mart@loomaaed.tartu.ee:/katalooginimi-ssh-serveris /katalooginimi-kohalikus-arvutis

Lahtiühendamiseks

 $ fusermount -u /katalooginimi-kohalikus-arvutis

SysRq

Kui Linuxi tuum hangub, siis enamikul juhtudel on ta võimeline aru saama talle nö otse saadetud signaalidest. Lenny paketihalduse tuumaga saab vaikimisi SysRq'd kasutada, väljalülitamiseks tuleb parameetrile kernel.sysrq omistada väärtus null

 # sysctl -w kernel.sysrq=0

Füüsiliselt konsoolilt

Füüsiliselt konsoolilt saab sisestada erinevaid kombinatsioone (kui SysRq klahv pole tähistatud, siis tavaliselt toimib sellena PrintScreen)

  1. failisüsteemide sünkroniseerimine - Alt-SysRq-s
  2. failisüsteemide read-only remountimine - Alt-SysRq-u
  3. arvuti reboot - Alt-SysRq-b

Iga tegevuse kohta antakse terminalile ka vastav teade.

Käsurealt

Kui aga arvutis ollakse eemal ning mingil põhjusel on siiski võimalik talle käske anda, kuigi ta käitub piisavalt juhtimatult, et selleks ettenähtud vahenditega rebooti teha, nt 'shutdown -r now', siis saab samasid tegevusi esile kutsuda selliselt

bash# echo s > /proc/sysrq-trigger
bash# echo u > /proc/sysrq-trigger
bash# echo b > /proc/sysrq-trigger

Ammendav loetelu võimalikest sisenditest on kirjas tuuma lähtetekstide kataloogis vist failis Documentation/kernel-parameters.txt.

Xen konsoolilt

Xeni konsoolilt saab saata SysRq signaale valides

 Ctrl+O ja täht

h väljastab nimekirja toetatud signaalidest

 SysRq : HELP : loglevel0-8 reBoot tErm Full kIll saK aLlcpus\
   showMem Nice powerOff showPc show-all-timers(Q) unRaw Sync showTasks \
   Unmount shoW-blocked-tasks 

Serial konsoolilt

Serial konsoolilt saab tuumale SysRq signaali saata valides Break + täht.


tmpfs

tmpfs võimaldab kasutada arvuti virtuaalmälu st RAM + swap ressursse failisüsteemina. Kasutamine toimub selliselt

 # mkdir /mnt/tmpfs
 # mount tmpfs /mnt/tmpfs -t tmpfs

Kuna failisüsteem asub mälus, siis ta töötab kiiresti

 # dd if=/dev/zero of=/mnt/tmpfs/1G bs=1M count=1024
 1024+0 records in
 1024+0 records out
 1073741824 bytes (1.1 GB) copied, 0.981817 s, 1.1 GB/s

Traditsiooniline tmpfs ühenduspunkt tmpfs jaoks on /dev/shm mis on ka vaikimisi Debian Lenny puhul kasutuses

 # df -h
 Filesystem               Size  Used Avail Use% Mounted on
 /dev/mapper/system-root  4.0G  3.6G  236M  94% /
 tmpfs                    3.9G     0  3.9G   0% /lib/init/rw
 udev                      10M   60K   10M   1% /dev
 tmpfs                    3.9G  4.0K  3.9G   1% /dev/shm
 /dev/sda1                107M   82M   20M  81% /boot

Süsteemi poolt vaikimisi kasutatavate tmpfs failisüsteemides on nt selline sisu

 # find /dev/shm -ls
 5812    0 drwxrwxrwt   3 root     root           60 Jul 19 08:25 /dev/shm/
 5964    0 drwxr-xr-x   2 root     root           60 Jul 19 08:25 /dev/shm/network
 6019    4 -rw-r--r--   1 root     root           16 Jul 19 08:25 /dev/shm/network/ifstate

ja

 # find /lib/init/rw
 /lib/init/rw
 /lib/init/rw/sendsigs.omit.d
 /lib/init/rw/sendsigs.omit.d/portmap
 /lib/init/rw/.ramfs

Lisaks on /dev failisüsteem udev kasutamisel tmpfs peal, üldiselt sobib konkreetse süsteemi puhul küsida

 # mount | grep tmpfs

makejail abil chroot keskkonna moodustamine

Makejail programm abil saab moodustada chroot keskkonda. Programmi tööd juhib seadistusfail, nt /root/makejail-bash.py, kus on antud juhul näidatud

  • kuhu kataloogi moodustada chroot keskkond
  • lisada sinna /bin/bash shell ning vastavad teegid lisada (antud juhul kasutatakse AMD64 platvormi)
# cat /root/makejail-bash.py
chroot="/home/mart"
forceCopy=["/lib64/ld-linux-x86-64.so.2", "/bin/bash","/lib/ld-linux-x86-64.so.2"]

moodustame kataloogi /home/mart

bash# mkdir /home/mart

ning moodustame sinna alla chroot keskkonna

bash# makejail /root/makejail-bash.py
Loading configuration file /root/makejail.py
  Defining chroot = '/home/mart'
  Defining forceCopy = ['/bin/bash']
Chroot directory is /home/mart
Initializing list of running processes
  Executing : ps -e
Creating temp dir /tmp/makejail_logs
Adding files matching '/bin/bash'
  Checking path '/bin/bash'
     Dir '/home/mart/bin' missing
     Checking path '/bin'
        Making dir /home/mart/bin
 ..
  Creating 'lib/libncurses.so.5' as a symlink to 'libncurses.so.5.5' (pwd=/home/mart/lib)
  Executing : file /lib/libncurses.so.5
Sleeping for 2.00 seconds

Tulemusena tekib selline failistruktuur

bash# cd /home
bash# find mart -ls
507962    4 drwxr-xr-x   4 root     root         4096 Sep  9 15:12 mart
507963    4 drwxr-xr-x   2 root     root         4096 Sep  9 15:12 mart/lib
507968 1260 -rwxr-xr-x   1 root     root      1286104 May 15 13:19 mart/lib/libc-2.3.6.so
507972    0 lrwxrwxrwx   1 root     root           17 Sep  9 15:12 mart/lib/libncurses.so.5 -> libncurses.so.5.5
507973  100 -rwxr-xr-x   1 root     root        97928 May 15 13:19 mart/lib/ld-2.3.6.so
507967  368 -rw-r--r--   1 root     root       369728 Oct 19  2006 mart/lib/libncurses.so.5.5
507974    0 lrwxrwxrwx   1 root     root           11 Sep  9 15:12 mart/lib/ld-linux-x86-64.so.2 -> ld-2.3.6.so
507970   12 -rw-r--r--   1 root     root        10392 May 15 13:19 mart/lib/libdl-2.3.6.so
507971    0 lrwxrwxrwx   1 root     root           14 Sep  9 15:12 mart/lib/libdl.so.2 -> libdl-2.3.6.so
507969    0 lrwxrwxrwx   1 root     root           13 Sep  9 15:12 mart/lib/libc.so.6 -> libc-2.3.6.so
507964    0 lrwxrwxrwx   1 root     root            4 Sep  9 15:12 mart/lib64 -> /lib
507965    4 drwxr-xr-x   2 root     root         4096 Sep  9 15:12 mart/bin
507966  756 -rwxr-xr-x   1 root     root       769368 Dec 11  2006 mart/bin/bash

Selleks, et veenduda kas kasutaja chroot keskkonna tekitamine õnnestus tuleb öelda, mille vastuseks saab shelli (ja siis öelda exit)

bash# chroot /home/mart
bash# 

Nt sobib makejaili kasutada OpenSSH kasutajate chrootimisel.

Peale crashi Debiani käima-aitamine

Kui Debiani süsteem on crashinud, nt voolu kadumise tõttu, siis enamasti ext3 failisüsteem korrigeerib ennast ise, aga mõned rakendused on segaduses.

Skype

Skype teatab vahel, et 'Another Skype instance may exist', sel puhul ei pruugi aitada lock failide eemaldamine

 $ rm .Skype/shared.lck .Skype/martkask/config.lck

aga võib aitada selline järgnevus

  • käivitada Skype -dhpath võtmega ja logida korra sisse ning sulgeda programm (Quit), st nii, et protsess skype kaob
 $ skype --dbpath=/home/mart/skype-tmp
  • selleks, et chat history jms säiliks, kopeerida vana sisuga üle kontole vastava kastaloogi sisu
 $ rsync -avH /home/mart/.Skype/martkask/ /home/mart/skype-tmp/martkask
 $ mv /home/mart/.Skype /home/mart/.Skype-20090811-mittetootav
 $ mv /home/mart/skype-tmp /home/mart/.Skype
  • katsuda kasutada Skype'i edasi tavapärasel moel

Icedove

Programm ütleb käivitamisel, et '...', aitab kustutada failid

 $ rm /home/mart/.mozilla-thunderbird/r4t56nog.default/.parentlock
 $ rm /home/mart/.mozilla-thunderbird/r4t56nog.default/lock

ja proovida tavalisel moel edasi kasutada. Kontod jms seadistused peaksid nõnda säilima.

Iceweasel

Kui Iceweaseli kataloog .mozilla on ühendatud üle NFS'i siis on peale süsteemi crashi Iceweasel üsna katki. St *\lock\* failide eemaldamine näib mitte aitavat jne, väidetavalt on asi NFS ja Iceweaseli koostöös, tundub, et aitab korra .mozilla kataloog kokku ja lahti pakkida

 $ tar cf .mozilla.tar .mozilla
 $ rm -rf .mozilla
 $ tar xf .morilla.tar
 $ rm .mozilla.tar

Stunnel4 kasutamine

Stunnel http://www.stunnel.org/ tarkvara võimaldab ühendada kokku krüptimist iseenesest mitte toetavat klienti ja krüptitud teenust, või vastupidi. Või korraldada krüptimist mitte toetava kliendi ja serveri vahel siiski krüptitud andmevahetust.

Paigaldamiseks tuleb öelda

 # apt-get install stunnel4

Stunnel4 kliendi kasutamine krüptitud teenuse poole pöördumisel

Seadistusfaili /etc/stunnel/stunnel.conf sobib kirjutada

 sslVersion = SSLv3
 chroot = /var/lib/stunnel4/
 setuid = stunnel4
 setgid = stunnel4
 pid = /stunnel4.pid
 
 socket = l:TCP_NODELAY=1
 socket = r:TCP_NODELAY=1
 
 output = /var/log/stunnel4/stunnel.log
 
 client = yes
 
 [smtps]
 accept  = 127.0.0.1:46525
 connect = smtps.loomaaed.tartu.ee:465

tulemusena saab pöörduda smtp kliendiga krüptimata localhost:46525 porti, mida vahendatakse smtps.loomaaed.tartu.ee 465 krüptitud pordiga.

Samba kasutamine Debian Lennyga

Serveri tarkvara paigaldamiseks tuleb öelda

 # apt-get install samba samba-doc

Paigaldamisel installer küsib selliseid andmeid

  • workgroup
  • kas kasutada WINS seadeid DHCP serverist (vaikimisi no)

Paigaldamise tulemusena on lisandunud süsteemi sellised olulised failid ja kataloogid

  • /etc/samba - seadistusfailid
  • /var/lib/samba - mitmesugused Samba tööd puudutavad andmed, nt kasutajate paroolifail
  • /etc/init.d/samba - käivitusskript
  • /etc/default/samba

Kasutajate haldamine

Sõltumata sellest, millist andmebaasi kasutatakse kasutajate jaoks (tekstifail, ldap jt) saab kasutada kasutajate haldamiseks (konto eemaldamine, lisamine, muutmine, esitamine, importimine) utiliiti pdbedit. Nt kasutajate nimekirja esitamiseks sobib öelda

 # pdbedit -L

Kasutaja parooli muutmine

 # smbpasswd mart
 New SMB password:
 Retype new SMB password:

Seadistusfaili ettevalmistamine

Olgu eesmärgiks tekitada selline failiserver

  • pakub võimalikult nö vaikselt oma teenust, st ei ole domeenikontroller ja eksitab võimalikult vähe muid arvuteid samas subnetis
  • võimaldab oma samba kasutajanime ja parooli teadval kasutajal ressurssi kasutada
  • üle samba tekitatud kataloogide ja failide kasutaja:grupp on mart:portaal ning loabitid vastavalt 0775 ja 0664

Selliste omadustega Samba käivitab nt selline seadistusfail /etc/samba/smb.conf

[global]
  workgroup = LOOMAAED
  server string = %h server
  wins support = no
  dns proxy = no
  log file = /var/log/samba/log.%m
  max log size = 1000
  syslog = 0
  panic action = /usr/share/samba/panic-action %d
  security = user
  encrypt passwords = true
  passdb backend = tdbsam
  obey pam restrictions = yes
  unix password sync = no
  pam password change = yes
  domain logons = no
  load printers = no

[www]
  comment = www
  path = /data/www
  writeable = yes
  browseable = yes
  force user = mart
  force group = portaal
  force directory mode  = 0775
  force create mode = 0664

Samba käivitamine

Samba käivitatakse õeldes

 # /etc/init.d/samba start

Samba kuulab neljal pordil

 Proto  Recv-Q  Send-Q  Local Address    Foreign Address   State      PID/Program name
 tcp6   0       0       :::139           :::*              LISTEN     6854/smbd       
 tcp6   0       0       :::445           :::*              LISTEN     6854/smbd       
 udp    0       0       0.0.0.0:137      0.0.0.0:*                    6852/nmbd       
 udp    0       0       0.0.0.0:138      0.0.0.0:*                    6852/nmbd

Samba kasutamine

Linuxi arvutist sobib väljajagatud ressursi poole pöördumiseks öelda

 $ smbclient //localhost/www "parool" -U mart
 Domain=[LOOMAAED] OS=[Unix] Server=[Samba 3.2.5]
 smb: \>

Rekursiivseks kopeerimiseks sobib öelda

 smb: \> prompt
 smb: \> recurse
 smb: \> mget *

Failisüsteemi külge monteerimiseks sobib öelda nt

 # mount //10.0.5.71/share -o username=kasutajanimi,password=password /mnt/samba-ressurss

Kasutaja autentimine Kerberosega

Kerberose kasutaja autentimiseks peab olema kasutada Kerberose infrastruktuur, nt selline nagu kirjeldatud tekstis MIT Kerberose kasutamine Debianiga. Samba serveris peab leiduma sarnane keytab fail

# kadmin -p priit/admin -q "addprinc -randkey cifs/samba.loomaaed"
# kadmin -p priit/admin -q "ktadd -k /etc/samba/krb5.keytab -e rc4-hmac:normal cifs/samba.loomaaed"

ning seadistusfaili /etc/samba/smb.conf global sektsioonis on vajalik kasutada selliseid ridu

security = ADS
realm = LOOMAAED
kerberos method = dedicated keytab
dedicated keytab file = /etc/samba/krb5.keytab

Kasutamiseks sobib oma TGT piletit omaval kasutajal öelda

$ smbclient //samba.loomaaed/samba -U priit -k
Domain=[LOOMAAED] OS=[Unix] Server=[Samba 3.4.8]
smb: \>

Kasulikud lisamaterjalid

Terminalihaldusprogrammi Screen kasutamine

screen tarkvara peab olema paigaldatud kaughallatavasse arvutisse

 # apt-get install screen
  • screen käivitamiseks logida eemal olevasse arvutisse sisse ja öelda
$ screen
  • Ctrl-a, c - tekita uus aken
  • Ctrl-a, n - liigu järgmisse aknasse
  • Ctrl-a, d - lase screenist lahti
  • esita nimekiri arvutis olevatest kasutaja screenidest
$ screen -ls
There is a screen on:
        2807.pts-5.pg2a     (Detached)
1 Socket in /var/run/screen/S-postgres.
  • ühendu näidatud screeniga
$ screen -r 2807.pts-5.pg2a

Süsteemis töötavate screenidele vastavaid protsesse näeb öeldes

# ps aux | grep SCREEN

Mitmekasutajarežiimis screen kasutamiseks saavad järgmised kasutajad ühenduda külge öeldes

$ screen -x

Screen logimiseks on -L võti, logi kirjutatakse faili screenlogN.log, või ^a-H.

IEEE 802.1X kasutamine

TODO

Bittorrent

Bittorrent on levinud P2P (peer-to-peer, ingl. k. osaliselt-osalisele) andmevahetusprotokoll, millele on iseloomulik, et suhtlemine leiab olulises osas aset otse osaliste endi vahel. Andmevahetusprotokoll on orienteeritud pigem suuremamahulisema andmevahetuse jaoks ning kopeeritud andmeid reeglina ei saa kasutada nö reaalajas kopeerimise käigus, vaid peale kopeerimise lõppu sobiva rakendusega. Nt kui tegu on video-materjaliga, siis saab seda videot asuda vaatama peale kopeerimise lõppu, mitte aga kopeerimise ajal.

Bittorrenti kliendi kasutamine andmete kopeerimiseks

Andmete kopeerimiseks võrgust kohalikku arvutisse on vaja teada huvipakkuva ressursi nö aadressi, mis esineb .torrent faili kujul. Nt jagatakse aadressilt http://www.debian.org/CD/torrent-cd/ edasi liikudes Debian operatsioonisüsteemi .torrent faile

 http://cdimage.debian.org/debian-cd/5.0.3/amd64/bt-cd/debian-503-amd64-CD-1.iso.torrent

Debian Linux sisaldab mitmeid bittorrent kliente (nt rtorrent, qbittorrent, bittorrent, bittornado jt), mis võivad erineda kõigi või mõne aspekti poolest järgnevatest

  • millises mahus on bittorrent protokoll toetatud
  • kas programmil on graafiline, pseudo-graafiline (nn curses) või käsurea kasutajaliides

Konkreetselt qbittorrent kasutajaliides näeb välja nt selline

Bittorrent-1.gif

kust on näha

  • kopeeritakse faili debian-503-amd64-CD-1.iso
  • DL Speed on allalaadimise kiirus ja UP Speed üleslaadimise kiirus
  • Seeds/Leechs näitab kui paljudelt osalistelt kasutaja kopeerib ja kui paljud temalt edasi kopeerivad
  • sakil Search saab vaikimisi qbittorrenti klienti seadistatud trackereid kasutada otsinguks ja otsingu tulemustena leitud .torrenteid kopeerida

Kopeerimise alustamiseks tuleb valida nupp BT ning kopeerida sinna .torrent faili aadress, nt

 http://cdimage.debian.org/debian-cd/5.0.3/amd64/bt-cd/debian-503-amd64-CD-1.iso.torrent

Bittorrent kliendi kasutamine andmete jagamiseks

Bittorrentiga on algajal kasutajal oluliselt lihtsam kopeerida andmeid endale kui pakkuda välja oma andmeid teistele kasutajatele.

.torrenti moodustamiseks sobib öelda (programmid on paketist bittorrent) eeldusel, et on olemas fail andmed.iso

 $ btmakemetafile.bittorrent andmed.iso http://torrent.loomaaed.tartu.ee:80/announce

kus

Käsu tulemusena moodustatakse vastav .torrent fail

 andmed.iso.torrent

ning seejärel saab seda välja jagada nt nii

 $ btdownloadcurses.bittorrent andmed.iso.torrent

Kohaliku trackeri kasutamine

bittorrent pakett sisaldab bittorrent tracker programmi bttrack. Trackeri käivitamiseks sobib öelda lihtsamal juhul

 # bttrack --dfile dfail.log

mille tulemusena käivitub pordil 80 spetsiaalne http server, mis on valmis võtma vastu bittorrent klientide poolt infot andmete väljajagamise kohta ja teenindama bittorrenti kliente, kes soovivad andmeid endale kopeerida.

Selliselt käivitatud trackerit saab kasutada nt organisatsiooni siseselt, iseasi kas sellisel kasutusel erilist praktilist väärtust on.

Amule

TODO

Debiani peegel

Debiani peeglid (ingl. k. mirror) http://www.debian.org/mirror/ on ftp/http/rsync serverid, mille sisu hoitakse automaatselt sünkroonis ja mida kasutatakse põhilise Debiani tarkvara jagamise vahendina.

ftpsync

ftpsync http://ftp-master.debian.org/ftpsync.tar.gz skript on 2009 aasta lõpul soovitatav vahend Debiani mirrori pidamisel. Nn push-peegli kasutamisel toimub selline tegevuste järgnevus

  • moodustada kasutaja debian, kodukataloogida /home/debian
  • pakkida kasutaja debian alla ftpsync.tar.gz arhiiv lahti, moodustuvad kataloogid /home/debian/bin, /home/debian/etc jt
  • teha etc/ftpsync.conf failis vajalikud muudatused, nt sellised
 MIRRORNAME="ftp.loomaaed.tartu.ee
 TO="/srv/ftp/debian/"
 RSYNC_PATH="debian"
 RSYNC_HOST=ftp.ee.domainname.org
 MAILTO="mart@loomaaed.tartu.ee"
 ERRORSONLY="false"
 FULLLOGS="true"
  • lisada ~/.ssh/authorized_keys faili push-sync tegemiseks vajalik upstream ssh kasutaja võti
 no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="~/bin/ftpsync",from="192.168.10.100" ssh-rsa AAAAB3 .. NE4gRJpRgBl/gJ5kkM= mirror@dommainname.org

ftp

http

http protokolliga teenuse pakkumiseks, sobib kasutada nt sellist Apache virtual host seadistust

 <VirtualHost 10.0.6.9:80>
   ServerName ftp.loomaaed.tartu.ee
   DocumentRoot /srv/ftp
   ErrorLog /var/log/apache2/ftp.loomaaed.tartu.ee-error.log
   LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
   CustomLog "/var/log/apache2/ftp.loomaaed.tartu.ee-access.log" combined
 
 <Directory /srv/ftp>
   AllowOverRide None
   Options  Indexes SymlinksIfOwnerMatch
   IndexOptions  NameWidth=* +SuppressDescription
   DirectoryIndex  NODIRECTORYINDEX
   Order Allow,Deny
   Allow from All
 </Directory>
 
 </VirtualHost>

rsync

rsync serveri pidamiseks sobib kasutada nt sellist seadistusfaili /etc/rsyncd.conf

 [debian]
   comment = Debian archive
   path = /srv/ftp/debian
   read only = yes
   list = yes
   max connections = 20
   log file = /var/log/ftpdata/debian-rsyncd.log
   transfer logging = yes

Debian Sarge kasutamine

2009 aastaks Debian Sarge v. 3.1 küll nö ajalugu selles mõttes, et talle ei anta enam välja nt turvaparandusi, kuid operatsioonisüsteem on iseenesest kättesaadav ja kasutatav.

 deb http://archive.debian.org/debian sarge main contrib non-free
 deb-src http://archive.debian.org/debian sarge main contrib non-free

Tundub, et Sarges on olemas alglaadur grub ja lvm tarkvara, kuid lvm köidet juurfailisüsteemi jaoks kasutada on keerukas. initramfs moodustamiseks sobib öelda nt

 # mkinitrd -k -o /boot/initrd.img-2.6.8-4-686-test 2.6.8-4-686

kus

  • -k - jätta initramfs moodustamiseks kasutatud failisüsteemi sisu alles /tmp kataloogi

VMware ESX guestina kasutamiseks tuleb paigaldada

 # apt-get build-dep kernel-image-2.6-686
 # apt-get install kernel-headers-2.6-686

VMware guestile tuleb seadistada mitte LSI vaid BusLogic SCSI kettakontroller.

Kui Debian Sarge guest moodustatakse olemasoleva Debian Sarge eksemplari ning RIPLinux abil, siis tasub tähele panna, et 2009 aasta RIPLinux mke2fs utiliidi abil moodustatud ext3 failisüsteem ei ole Debian Sarge mount jaoks kasutatav. Aitab nt moodustada ajutine chroot kopeeritavast Debian Sargest ja seal sees töötades moodustada Sarge mke2fs abil failisüsteem.

Debian Live

Debian Live projekt http://debian-live.alioth.debian.org/ tegeleb selliste vahendite ettevalmistamisega, millega kasutaja saab moodustada oma vajaduste rahuldamiseks sobivaid operatsioonisüsteemi tõmmiseid. Live keskkonnale on iseloomulik, et operatsioonisüsteem laaditakse mingilt nö mitte-kõvakettalt, vaid nt CD/DVD plaadilt, USB pulgalt või võrgust ning et sellise keskkonna kasutamine ei mõjuta arvuti lokaalse kõvaketta olekut.

live-helper

Tarkvara paigaldamiseks sobib öelda

 # apt-get install live-helper

Tarkvara kasutamist on kirjeldatud aadressil http://live.debian.net/manual/html/index.html.

Nt alglaadiva usb pulga tõmmise ettevalmistamiseks sobib kasutada

 # mkdir /usr/src/live
 # cd /usr/src/live
 # ld_config
 # ld_build -b usb-hdd

Tulemusena tekib fail binary.img mida saab kopeerida nt Windows Vista keskkonnas USB pulgale programmiga http://unetbootin.sourceforge.net/.

Tulemuse katsetamiseks sobib qemu, sedasi

 # qemu -hda binary.img

live-magic

Tarkvara paigaldamiseks sobib öelda

 # apt-get install live-magic

Debian Live Magic programmi käivitamiseks tuleb öelda juurkasutajana

 # live-magic

ning avaneb järgnev pilt

Debian-live-1.gif

kus tuleb valida, millist Live keskkonda ettevalmistama asutakse.

Skype kasutamine

Skype vestlusaknas saab teksti parandada nn Sed süntaksit kasutades

 mart: priiti, ei ole võimalik
 
 ,-------------------------------,
 | s/priiti/Priit/               |
 |_______________________________|

http://share.skype.com/sites/linux/2009/09/some_explanations.html

Alternatives süsteem

 # apt-get install galternatives

PulseAudio kasutamine

http://pulseaudio.org/

Core dump

Core dumpidega katsetamiseks on vajalik kompilaator ja debugger, nt GCC ning GDB, vajaliku komplekti saab paigaldada nt öeldes

# apt-get build-dep linux-image-2.6-amd64
# apt-get install gdb
  • Katkise programmi tekitamine
$ cat programm.c
int a (int *p);

int
main (void)
{
  int *p = 0;   /* null pointer */
  return a (p);
}

int
a (int *p)
{
  int y = *p;
  return y;
}

ja kompileerida nn debugging sümbolitega

$ gcc -Wall -g programm.c
  • Programm käivitamine selliselt, et salvestatakse core dump'i, -c järel olev aru näitab core maksimaalset suurust kBaitides
$ ulimit -c 1024
$ ./a.out
Segmentation fault (core dumped)

Tulemusena tekib käesolevasse kataloogi

$ file core 
core: ELF 64-bit LSB core file x86-64, version 1 (SYSV), SVR4-style, from './a.out'
  • Core faili analüüsimine gnu debuggeriga
$ gdb a.out core
Reading symbols from /home/priit/core/a.out...done.

warning: Can't read pathname for load map: Input/output error.
Reading symbols from /lib/libc.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Core was generated by `./a.out'.
Program terminated with signal 11, Segmentation fault.
#0  0x00000000004004be in a (p=0x0) at a.c:13
13        int y = *p;
(gdb) print p
$1 = (int *) 0x0
(gdb) backtrace
#0  0x00000000004004be in a (p=0x0) at a.c:13
#1  0x00000000004004b0 in main () at a.c:7
(gdb) Ctrl+D

Lisamaterjalid

Remote Desktop Protocol server

Remote Desktop Protocol (RDP) server http://xrdp.sourceforge.net/ tarkvara paigaldamiseks sobib öelda

# apt-get install xrdp

Kasutamiseks sobib rdesktop või tsclient tarkvara

# apt-get install tsclient

2010 suve seisuga on XRDP sisuliselt kasutav X11 ja VNC lüüsina. XRDP eelisteks on

  • töötab suhteliselt kiiresti
  • võimaldab turvalist andmevahetust

XRDP puudusteks on

  • ei võimalda hiirega kopeerida XRDP akna ja muude aknahalduri akende vahel

Huawei netipulga kasutamine

2010 aastal on populaarne kasutada mobiilse internetiühenduse teenust Huawei USB netipulga abil. Sellist tüüpi netipulgad on sisuliselt GSM modemid, mis ühendatakse arvutiga USB kaudu ning mille kasutamiseks peab seadmesse olema paigaldatud mobiilside operaatori kehtiv SIM-kaart (Subscriber Identity Module). Selline netipulk ei ole kuidagi seotud wifiga ning seda saab kasutada asudes mobiilside operaatori levialas. Netipulga kasutamiseks peab olema arvutisse paigaldatud PPP kliendi tarkvara, nt wvdial ja arvuti oskama kasutada USB-serial seadmeid.

Kasulikud lisamaterjalid

Riistvara

Näiteks olgu kasutada Huawei E620 USB Modem seade ning teenusepakkuja EMT andmesideteenus.

# lsusb
...
Bus 002 Device 003: ID 12d1:1001 Huawei Technologies Co., Ltd. E620 USB Modem

Tarkvara

Netipulga kasutamiseks piisab Debian Lenny paketihalduse tarkvarast, st vajalikest tuuma moodulitest ning wvdial programmist, mille paigaldamiseks sobib öelda

# apt-get install wvdial

Seadistamine ja käivitamine

Esmalt tuleb laadida maha usb-storage, option ja usbserial tuuma moodulid

# rmmmod usb-storage
# rmmod option
# rmmod usbserial

ning laadida usbserial sobivate parameetritega, vastavalt käesolevale lsusb väljundile, nt

# modprobe usbserial vendor=0x12d1 product=0x1001

Tulemusena on kasutada USB-serial seadmed

# ls -l /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0 Apr 27 23:46 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 1 Apr 27 23:15 /dev/ttyUSB1
crw-rw---- 1 root dialout 188, 2 Apr 27 23:15 /dev/ttyUSB2
crw-rw---- 1 root dialout 188, 3 Apr 27 23:15 /dev/ttyUSB3

wvdial tarkvara tööd juhib seadistusfail /etc/wvdial.conf

# cat /etc/wvdial.conf
[Dialer Defaults]
Phone = *99***1#
Username = username
Password = password
Stupid Mode = 1
Dial Command = ATDT

[Dialer hsdpa]
Modem = /dev/ttyUSB0
Baud = 460800
Init2 = ATZ
Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ISDN = 0
Modem Type = Analog Modem

kus

  • Phone - väärtus sõltub teenusepakkujast

Käivitamiseks sobib öelda juurkasutajana

# wvdial hsdpa
--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Modem initialized.
--> Sending: ATDT*99***1#
--> Waiting for carrier.
ATDT*99***1#
CONNECT
--> Carrier detected.  Starting PPP immediately.
--> Starting pppd at Tue Apr 27 23:41:55 2010
--> Pid of pppd: 7879
--> Using interface ppp0
--> pppd: @« @« x« 
--> pppd: @« @« x« 
--> pppd: @« @« x« 
--> pppd: @« @« x« 
--> pppd: @« @« x« 
--> pppd: @« @« x« 
--> pppd: @« @« x« 
--> local  IP address 192.168.3.91
--> pppd: @« @« x« 
--> remote IP address 10.64.64.64
--> pppd: @« @« x« 
--> primary   DNS address 192.168.32.116
--> pppd: @« @« x« 
--> secondary DNS address 192.168.32.115
--> pppd: @« @« x« 

Tulemusena tekib süsteemi juurde PPP seade, nt

# ifconfig ppp0
ppp0      Link encap:Point-to-Point Protocol  
          inet addr:192.168.3.91  P-t-P:10.64.64.64  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:7 errors:3 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:118 (118.0 B)  TX bytes:157 (157.0 B)

Netipulga kasutamine

Peale PPP lingi tekkimist piisab liiklus ruutida üle selle lingi ning saab kasutada võrku, nt

# route add -net 172.23.0.0 netmask 255.255.0.0 gw 192.168.3.91

Lisaks nö sihipärasele mobiilsele töökohale andmeside tekitamisele on võimalikud nt sellised kasutusalad

  • ühendada võrku arvuteid, mida muul viisil võib olla tülikas ühendada
  • ühendada arvutile külge alternatiivne andmesidekanal (nt monitooringuarvutist teadete saatmiseks)

Kasutamisel tuleb arvestada, et läbi lisandunud seadme on võimalik lisaks välja pöördumisele ka sisse pöörduda, seepärast tasub kaaluda seoses netipulgaga paketifiltri kasutamist.

ffmpeg kasutamine

ffmpeg tarkvara abil saab ekraanil toimuvat nö videona salvestada

$ ffmpeg -f x11grab -s 720x480 -r 23.976 -i :0.0 /tmp/file.mpg

QuickTime andmete teisendamine

$ ffmpeg -i video-in.mov -vcodec mpeg4 video-out.avi

QuickTime teisendamine Digital Video formaati

$ ffmpeg -i fail.mov -s pal -r pal -aspect 4:3 -ar 48000 -ac 2 fail.dv

Taasesitamine nö ressursisäästlikult

$ mplayer -vo xv -vfm ffmpeg -lavdopts lowres=1:fast:skiploopfilter=1 video-out.avi

Kasulikud lisamaterjalid

Märkused

  • Selleks, et vaikimisi ei seataks pakettidele DF (don't fragment), sobib öelda
# sysctl -w net.ipv4.ip_no_pmtu_disc=1

PCMCIA seadmete kasutamine

# apt-get install pcmciautils

ExpressCard seadmete kasutamine

Reeglina paistavad ExpressCard http://en.wikipedia.org/wiki/ExpressCard seadmed operatsioonisüsteemile USB seadmetena.

Rsyslog kasutamine

Rsyslog http://www.rsyslog.com/ v. 3.18 on Debian Lenny operatsioonisüsteemis vaikimisi logimise tarkvara. Kui tarkvara mingil põhjusel süsteemis ei ole, nt süsteem moodustati Debian Etch -> Lenny uuendamisel, siis saab Rsyslogi paigaldada öeldes

# apt-get install rsyslog rsyslog-doc

Rsyslogil on sellised omadused

  • tcp/udp tugi
  • oskab kasutada sql andmebaasi (nt PostgreSQL, Oracle, MySQL)
  • failisüsteemi puhverdamine (nt juhtumil kui andmebaasi ei saa mingil põhjusel kirjutada)
  • RELP protokolli tugi

Tarkvara juhib seadistusfail /etc/rsyslogd.conf, mis on süntaksiliselt tagasiühilduv seni Debianis kasutuses olnud Syslog tarkvara seadistusfailiga.

Logiserveri kasutamine

Reeglina soovitatakse seadistada arvutid logima võrgus töötavasse logiserverisse, nt turvalisuse ja logitöötluse kaalutlustel

   _____   logiserver
  |     |  :514/tcp
  |_____|  :514/udp
     |
     |
    -|---------|----------|----....---|--
               |          |           |
             __|__      __|__       __|__
            |     |    |     |     |     |
            |_____|    |_____|     |_____|
        
              smtp       www         dns

kus

  • logiseveri kuulab ühedusi oma 514/tcp ja 514/udp soketitel
  • smtp, www ja dns arvutid logivad oma andmed logiserverisse

Rsyslogi käivitamisel tuleb arvestada, kas protsess töötab logiseverina või logiserveri kliendina.

  • Logiserveris tuleb öelda, et teenindatakse kliente
# provides UDP syslog reception
$ModLoad imudp 
$UDPServerRun 514 

# provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
  • Logiserveri kliendis on oluline näidata logiserveri asukoht (kusjuures @192.168.1.247 kopeerib logi üle UDP), praktiliselt piisab järgnev rida lisada vaikimisi toodud seadistusfaili lõppu, tulemusena logitakse endiselt ja lisaks võrku
*.*     @@192.168.1.247

Logimine PostgreSQL andmebaasi

Mõnel juhtumil, nt LogAnalyzer http://loganalyzer.adiscon.com/ tarkvara kasutamisel võib olla asjakohane logida andmebaasi, selleks tuleb paigadalda PostgreSQL andmebaasi puhul rsyslog-pgsql pakett

# apt-get install rsyslog-pgsql

Baasi logimisel kasutatakse kahte tabelit, tõenäoliselt on mõistlik moodustada eraldi andmebaas ja tekitada tabelid

$ psql -h 127.0.0.1 -U rsyslog rsyslog < /usr/share/dbconfig-common/data/rsyslog-pgsql/install/pgsql

Ligipääs andmebaasile tuleb näidata /etc/rsyslog.d/pgsql.conf failis, nt

$ModLoad ompgsql
*.* :ompgsql:ip,baasinimi, kasutajanimi, parool;

Muudatuste kehtestamiseks tuleb teha Rsyslogile stop ja start

# /etc/init.d/rsyslog stop ... start

Kui mingil juhtumil ei peaks andmebaas töötama, siis Rsyslog võimaldab logi kohalikus arvutis puhverdada ning see kopeeritakse andmebaasi järgmisel võimalusel, selleks sobib kasutada seadistusfailis

$WorkDirectory /var/spool/rsyslog # default location for work (spool) files
$ActionQueueType LinkedList # use asynchronous processing
$ActionQueueFileName dbq    # set file name, also enables disk mode
$ActionResumeRetryCount -1  # infinite retries on insert failure

ning moodustada kataloog /var/spool/rsyslog

# mkdir /var/spool/rsyslog

LogAnalyzeri kasutamine

LogAnalyzer http://loganalyzer.adiscon.com/ on veebipõhine PHP rakendus, mis võimaldab töötada andmebaasi salvestatud logiga. Lisaks nö vanilla Apache veebiserverile peavad olema paigaldatud php5-gd ja php5-pgsql paketid

# apt-get install php5-gd php5-pgsql

Tarkvara tuleb lahti pakkida veebiserveri dokumendijuurika alla, rakendus asub src alamkataloogis. Rakenduse seadistamine, sh andmebaasi ligipääsu kirjeldamine toimub veebiliideses (andmed salvestatakse faili config.php).

LogAnalyzeri kasutajaliides näeb välja selline

Rsyslog-1.gif

kus

  • üleval ääres olevate linkide abil saab liikuda otsingu, statistika jt sektsioonide vahel
  • üleval keskel on filter, antud juhul kuvatakse kõigi logiserverit kasutavate arvutite viimase tunni sissekandeid
  • sissekanded esitatakse ridadena, antud juhtumil on näha, et arvuti 192.168.1.210 on tegelenud dhcp'ga
  • veebilehele on määratud kord minutis automaatne värskendus

Kuna logis võivad esineda tundlikud andmed, nt kasutaja sisestas oma kasutaja nime asemele kogemata parooli, siis ei peaks logile saama juurde kõrvalised tegelased.

Märkused

  • OpenBSD baaskomplekti syslogd oskab ainult UDP protokolli, kui seda arvestada, siis saab logida sealt Rsyslogi.
  • Tundub, et igasuguste Rsyslogi seadistusfaili tehtud muudatuste kehtestamiseks tuleb öelda Rsyslogile stop ja start.

syslog-ng kasutamine logiserverina

syslog-ng http://www.balabit.com/network-security/syslog-ng/ sobib kasutada logiserveris ja tal on sellised omadused

  • TODO

Debian Lenny sisaldab syslog-ng versioon 2.0, paigaldamiseks tuleb öelda

# apt-get install syslog-ng

Tarkvara tööd juhib seadistusfail /etc/syslog-ng/syslog-ng.conf

Failisüsteem

Debiani failisüsteemiga on seotud operatsioonisüsteemi seisukohalt sellised üldised asjaolud

  • /proc ja /sys kataloogid on nö vaated töötavale linuxi tuumale

Named ja unnamed pipe

Pipe on FIFO ja selle instrumendi abil saavad programmid omavahel andmeid vahetada, nt named pipe puhul sobib ühes aknas öelda

$ mkfifo /tmp/fifonimi
$ cat < /tmp/fifonimi

ja teises aknas öelda

$ cal > /tmp/fifonimi

siis tulemusena esitatakse esimeses aknas cal käsu väljund.

Osutub, et pipe ei ole alati vajalik moodustada mkfifo käsu abil, sobib ka nii, sellisel juhul on tegu anonüümse pipe'iga

$ cal | cat

Pidgin

Pidgin (nö vana nimega Gaim) http://www.pidgin.im/ on mitmeid protokolle toetav instant messaging tarkvara. Kuna Debiani paketihalduse Pidgin tõrgub vahel, siis üks otsekohene alternatiiv on kasutada lähtetekstist kompileeritud Pidgini

$ ./configure --prefix=/opt/pidgin --disable-vv --disable-idn --disable-nm
$ make
$ make install

lm-sensors

lm-sensors http://www.lm-sensors.org/ tarkvara paigaldamiseks sobib öelda

# apt-get install lm-sensors

Esmalt tuleb teha kindlaks olemasolev riistvara ning laadida vastavad moodulid

# sensors-detect

Kasutamiseks öelda nt

# sensors -A | grep  Core
Core 0:      +47.0 C  (high = +76.0 C, crit = +100.0 C)  
Core 1:      +51.0 C  (high = +76.0 C, crit = +100.0 C)  
Core 2:      +41.0 C  (high = +76.0 C, crit = +100.0 C)  
Core 3:      +41.0 C  (high = +76.0 C, crit = +100.0 C)

kus

  • Core N - protsessori tuuma temperatuur

GPT kasutamine

GPT (GUID Partition Table) http://en.wikipedia.org/wiki/GUID_Partition_Table on seotud järgmiste probleemide lahendamisega

  • operatsioonisüsteemis soovitakse kasutada suuremat partitsiooni kui 2TB
  • arvuti riistvara ei kasuta nn PC-BIOS'i vaid nt UEFI't (Unified Extensible Firmware Interface)
  • kasutatakse 4096 B plokisuurusega kõvaketast

GPT partitsioonide haldamine

GPT partitsioonide haldamiseks sobib 2010 aasta suvel kasutada nt programme parted ja gdisk, esmalt tuleb moodustada plokkseadmele label öeldes

# parted /dev/sdc
(parted) mklabel gpt
Warning: The existing disk label on /dev/sdc will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? Yes

TODO

Kui kasutada fdisk programmi GPT partitsioonitabelit kasutava plokkseadmega, siis paistab tulemus selline

# fdisk -uc /dev/sda -l
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.
... 
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1    10485759     5242879+  ee  GPT

GRUB2 alglaaduri kasutamine GPT ja PC-BIOS riistvaraga

Kui UEFI riistavara töötab GRUB2 alglaaduri ja GPT partitsioneeritud kõvakettaga nö otseselt, siis PC-BIOS arvuti puhul tuleb kasutada seejuures mõnda täiendavat võtet. Üldiselt toimub PC-BIOS riistvaral töötava süsteemi alglaadimine selliselt

  • kõvakettale on moodustatud kolm GPT partitsiooni
(parted) p                                                                

Number  Start     End          Size         File system  Name      Flags
 1      2048s     4095s        2048s                     biosboot  bios_grub
 2      4096s     1052671s     1048576s                  boot
 3      1052672s  3905974271s  3904921600s               system
  • alglaadimisel loetakse üks alglaaduri aste esimeselt partitsioonilt
  • järgmised astmed ning operatsioonisüsteemi tuum ja initramfs loetakse boot partitsioonilt
  • operatsioonisüsteemi juurfailisüsteem asub kolmandal partitsioonil või sellel paiknevalt loogiliselt seadmelt, nt LVM köitelt
GPT partitsioonide moodustamine
(parted) unit s
(parted) mkpart biosboot 2048 4095
(parted) set 1 bios_grub on                                               
(parted) mkpart boot 4096 1052671                                         
(parted) mkpart system 1052672 3907026943
(parted) set 3 lvm on

kus

  • tuleb jälgida, et partitsioonide suurused saavad sobivad, kaks esimest võiksid olla suhtliselt universaalselt sobivad
Failisüsteemide ettevalmistamine

GPT pealt töötava süsteemi saab ettevalmistada nt ühendades vastav plokkseade külge mõnele olemasolevale töötavale süsteemile. Seejärel moodustada seadmele GPT partitsioonitabel, failisüsteemid ning kopeerida sinna töötav süsteem üle, nt rsync abil.

GRUB2 seadistamine ja paigaldamine

GRUB2 seadistamiseks sobib kasutada nt sellist /etc/grub.d/40_custom faili

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

echo "Debian GPT" >&2
menuentry "Debian GPT" {
insmod part_gpt
insmod ext2
set root=(hd0,gpt2)
linux /vmlinuz-2.6.32-2-amd64 root=/dev/mapper/system-root ro
initrd /initrd.img-2.6.26-2-amd64
}

kus

  • insmod part_gpt - grub2 laadib omale GTP partitsioonitabeli tundmise tarkuse
  • (hd0,gpt2) - näitab millisel GPT partitsioonil asub /boot failisüsteem

Eeldusel, et failisüsteemid on monteeritud öelda

# grub-install --recheck --no-floppy --root-directory=/mnt/root /dev/sda
Installation finished. No error reported.

Tulemusena peaks arvuti käivituma.

4096 B plokisuurusega kõvaketaste kasutamine

2010 aasta suvel on 4k plokisuurusega kõvaketaste kasutamine pisut ebaselge, tundub, et üldiselt peaks utiliidid sellega automaatselt hiljem või varem hakkama saama. Hetkel näib ohutu nö käsitsi arvestada, et partitsiooni algus satuksid arvudega 8 ja 512 jaguvatele kohtadele, nt kasutades GPT partitsioonitabelit selliselt

(parted) unit s                                                           
(parted) mkpart system 2048 327679999
(parted) mkpart pgdata 327680000 164863999

kus

  • unit s - edasi esitatakse partitsiooni algus ja lõpp sektori numbrina
  • system - partitsiooni nimi kasutajale tähendust omaval kujul
  • 2048 - partitsiooni algussektor
  • 327679999 - partitsiooni lõpp sektor, arvestusega, et 327679999 + 1 jagub arvudega 8 ja 512

Paritsioonitüüpide näitamiseks öelda

(parted) set 1 lvm on
(parted) set 2 lvm on

Tulemuseks on

(parted) p                                                                
Model: ATA WDC WD2003FYYS-0 (scsi)
Disk /dev/sdc: 3907029168s
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start       End         Size        File system  Name  Flags
 1      2048s       327679999s  327677952s               system   lvm
 2      327680000s  328703999s  1024000s                 pgdata   lvm

Kui selliselt ettevalmistatud plokkseadmel kasutada failisüsteemi või nt mdadm, lvm või cryptsetup lahendusi, siis väidetavalt neile sobib 4k plokisuuris hästi.

Kasulikud lisamaterjalid

BackupPC varundustarkvara kasutamine

BackupPC http://backuppc.sourceforge.net/ tarkvara paigaldamiseks sobib öelda

# apt-get intall backuppc

mille järel pakutakse võimalust seadistada veebiserver ning teatatakse haldusliidese ligipääs

For that purpose, a web user named 'backuppc' with 'GDXmoogT' as password has been created. You can change this password by
running 'htpasswd /etc/backuppc/htpasswd backuppc'.

Varundatud andmed tekitatakse arvutite nimelistesse kataloogidesse kataloogi /var/lib/backuppc/pc alla.

atftp kasutamine

Server

# apt-get install atftpd

Klient

# apt-get install atftp

strace programmi kasutamine

Nö failisüsteemi tcpdump kasutamiseks sobib esmalt vaadata nt veebiseveri protsesside numbrid ja seejärel öelda

$ strace -p 19282 -p 19283 -p 19284 -p 19285 -p 19286 -p 19368 -p 20015 -p 29774 -p 29775 -f -e trace=open

kus

  • -f - järgib forkisid
  • -e määratleb, et jälgitakse failiavamisi

Kasulikud lisamaterjalid