Operatsioonisüsteemi Debian GNU/Linux kasutamine
Sisukord
- 1 Debian GNU/Linux
- 2 Operatsioonisüsteemi paigaldamise ettevalmistamine
- 3 Operatsioonisüsteemi paigaldamine
- 4 Paketihaldus
- 5 Secure Apt
- 6 Community
- 7 Debconf
- 8 Käsitsi pakettide kompileerimine
- 9 Operatsioonisüsteemi tarkvara uuendamine
- 10 Operatsioonisüsteemi versiooni uuendamine
- 11 Alternatiivsete repositooriumide kasutamine
- 12 Operatsioonisüsteemi varundamine ja taaste
- 13 IP aadress
- 14 Arvuti nimi ja resolver
- 15 Kellaaeg
- 16 Võrgu seadistamine seadistusfailidega
- 17 Silla kasutamine
- 18 Võrgu seadistamine programmiga ip
- 19 Source pakettide kasutamine
- 20 32 bit tarkvara kasutamine 64 bit keskkonnas
- 21 Java kasutamine
- 22 Lokaat
- 23 X Window System
- 24 CD plaadi kirjutamine
- 25 Klaviatuuriasetus konsoolil
- 26 OpenSSL probleem
- 27 Helikaardi kastumine
- 28 VLC tarkvara kasutamine
- 29 Digifotokaamera kasutamine
- 30 Root-over-NFS Debian Lenniga
- 31 Iptables kasutamine
- 32 SSH kasutamine
- 33 MySQL andmebaasi kasutamine
- 34 Apache veebiserveri kasutamine
- 34.1 Security
- 34.2 PHP5 kasutamine
- 34.3 PHP PEAR kasutamine
- 34.4 PHP OCI8 ja PDO Oracle tarkvara kompileerimine ja paigaldamine
- 34.5 Süsteemi ettevalmistamine PHP OCI8 tarkvara kasutamiseks
- 34.6 PHP OCI8 tarkvara kasutamine
- 34.7 PHP PDO-OCI teegi kasutamine
- 34.8 SSL komponendi käivitamine
- 34.9 SNI kasutamine
- 34.10 HTTP Proxy käivitamine
- 34.11 BasicAuth tekstifailist
- 34.12 BasicAuth LDAP kataloogist
- 34.13 BasicAuth PostgreSQL andmebaasist
- 34.14 ajp13 proxy kasutamine
- 34.15 ajp13 proxy kasutamine koormusjaotuseks
- 34.16 RewriteRule kasutamine
- 34.17 RewriteCond kasutamine
- 34.18 Veebiserveri vastuste pakkimine
- 34.19 Location ja LocationMatch direktiivide kasutamine
- 34.20 Directory direktiivi kasutamine
- 34.21 Virtuaalhostide kasutamine
- 34.22 Veebikülastajate lähte-aadresside teisendamine RPAF mooduliga
- 34.23 Proxy mooduli kasutamine koormusjaotuseks
- 34.24 Päringute ja päringu vastuste päiste ümberkirjutamine
- 34.25 PHP abil kirja saatmine SMTP relee kaudu
- 34.26 Logimine
- 34.27 FastCGI
- 34.28 Re-negotiation probleem
- 35 Etch -> Lenny uuendamine
- 36 Veebikaamera kasutamine
- 37 Mälukaartide kasutamine
- 38 Squid v. 3 kasutamine
- 39 locate andmebaas
- 40 Operatsioonisüsteemi paigaldamine võrgust
- 41 CVS tarkvara kasutamine
- 42 Riistvara omadustega tegelevad utiliidid
- 43 Debootstrap programmi kasutamine
- 44 Autofs
- 45 Süsteemi ressursikasutuse jälgimine
- 46 Matrox P690 videokaardi kasutamine
- 47 apt-cacher-ng kasutamine
- 48 debmirror kasutamine
- 49 lsattr ja chattr programmide kasutamine
- 50 Extended Attributes ja ACL
- 51 UCARP kasutamine
- 52 FUSE
- 53 SysRq
- 54 tmpfs
- 55 makejail abil chroot keskkonna moodustamine
- 56 Peale crashi Debiani käima-aitamine
- 57 Stunnel4 kasutamine
- 58 Samba kasutamine Debian Lennyga
- 59 Terminalihaldusprogrammi Screen kasutamine
- 60 IEEE 802.1X kasutamine
- 61 Bittorrent
- 62 Amule
- 63 Debiani peegel
- 64 Debian Sarge kasutamine
- 65 Debian Live
- 66 Skype kasutamine
- 67 Alternatives süsteem
- 68 PulseAudio kasutamine
- 69 Core dump
- 70 Remote Desktop Protocol server
- 71 Huawei netipulga kasutamine
- 72 ffmpeg kasutamine
- 73 Märkused
- 74 PCMCIA seadmete kasutamine
- 75 ExpressCard seadmete kasutamine
- 76 Rsyslog kasutamine
- 77 syslog-ng kasutamine logiserverina
- 78 Failisüsteem
- 79 Pidgin
- 80 lm-sensors
- 81 GPT kasutamine
- 82 BackupPC varundustarkvara kasutamine
- 83 atftp kasutamine
- 84 strace programmi kasutamine
- 85 Kasulikud lisamaterjalid
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)
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
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
- Veebikoht - http://www.debian.org/
- Wiki - http://wiki.debian.org/
- Postiloendid asuvad aadressil http://lists.debian.org/
- Uudised - http://www.debian.org/News/project/
- Turvaparandusi puudutavad teadaanded - http://www.debian.org/security/
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
Programm gkdebconf on graafiline liides Debconf süsteemile
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
- http://en.wikipedia.org/wiki/Bridging_(networking)
- http://tldp.org/HOWTO/BRIDGE-STP-HOWTO/index.html
- http://en.wikipedia.org/wiki/Spanning_tree_protocol
- http://en.wikipedia.org/wiki/LAN_switching
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
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
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
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
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
- php ja ssl tugi
- kuulab portidel 80 ja 443, st http://loomaaed.tartu.ee/ ja https://loomaaed.tartu.ee/
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
- http://otn.oracle.com/tech/php/pdf/underground-php-oracle-manual.pdf
- http://howto.landure.fr/gnu-linux/debian-4-0-etch-en/install-oci8-and-mssql-extensions-for-php5-on-debian-4-0-etch
- http://wiki.oracle.com/page/PHP+Oracle+FAQ
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
- http://www.educatedguesswork.org/2009/11/understanding_the_tls_renegoti.html
- http://lukenotricks.blogspot.com/2009/11/tls-renegotiation-attack-for-impatient.html
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
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
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
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)
- failisüsteemide sünkroniseerimine - Alt-SysRq-s
- failisüsteemide read-only remountimine - Alt-SysRq-u
- 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
- http://en.wikipedia.org/wiki/IEEE_802.1X
- http://www.cesnet.cz/doc/techzpravy/2007/802.1x-wired-authentication/
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
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
- andmed.iso - lähtematerjal, mida asutakse välja jagama
- http://torrent.loomaaed.tartu.ee:80/announce - trackeri aadress
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
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
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
- http://www.ffnn.nl/pages/articles/linux/gdb-gnu-debugger-intro.php
- http://www.network-theory.co.uk/articles/gccdebug.html
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
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
- http://www.ibm.com/developerworks/linux/library/l-4kb-sector-disks/
- http://www.johannes-bauer.com/linux/wdc/?menuid=3
- http://grub.enbug.org/BIOS_Boot_Partition
- http://wiki.archlinux.org/index.php/User:Skodabenz/GPT
- http://jamie.mayfirst.org/posts/2010/two-tb-disks/
- http://www.wensley.org.uk/gpt
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
- http://www.debian.org/security/
- http://www.debian-administration.org/
- http://wiki.debian.org/
- http://www.debian.org/distrib/packages
- http://debian.org/doc/maint-guide
- http://www.debianadmin.com/
- http://debian.catsanddogs.com/
- http://debconf9.debconf.org/ - sisaldab videosalvestusi Debiani arendajate esinemistest DebConfidel
- http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/lenny/current/
- http://debian-live.alioth.debian.org/
- http://www.emdebian.org/