log69 blogja

Ubuntu + Tomoyo bug jelentve

Előzmények itt.

Küldtem report-ot a Tomoyo bug-ról, amit találtam Ubuntu 11.04 beta alatt. Mivel security bug-nak jelöltem meg, ezért a hibajelentés egyelőre nem lenne publikus, csak bejelentkezett és feliratkozott felhasználók láthatnák, de mivel beta rendszerről van szó, és mivel a boot folyamat is megáll, ezért publikussá tettem.

Bug report itt.

Remélem mielőbb javítják és áttolják Debian-ból a 2.3-as tomoyo-tools-ot.

Ubuntu 11.04 beta + Tomoyo tools 2.2 --> kernel panic

Beteszem ide is, fórum téma itt.

Lényeg hogy tesztelni szeretném Tomoyo 2.3-at Ubuntu 11.04 beta alatt. A gyári tomoyo engedélyezés alapból nem működik a fórum témában leírtjaim miatt.

Egyelőre Debian-os 2.3-as csomagokkal megy, most még az access deny üzeneteket nem találom a syslog-ban. Habár hozott létre /var/log/tomoyo mappát ennél külön, az viszont üres.

Most a 2.3-as hivatalos doksit nyálazom..

tomld egyéb

Kezd jó formába kerülni a kód.

A szabály átalakításoknál szerettem volna megúszni, hogy az összes szabályt össze kelljen hasonlítani önmagával az egységesítéshez és hogy kivegyem az egyformákat a wildcard-ok miatt. Sajnos nem úsztam meg és ezért az egyik belső ciklus négyzetesre emelte az iterációk számát.

Ezzel sikerült kb. tízszeresre lassítanom a fő rutint. Viszont utána addig optimalizáltam, amíg ötödére sikerült levennem az időt.

Jelenleg egyetlen futtatással tökéletes és végleges formába kerülnek a szabályok. Ez volt eredetileg is a cél. Most végre meg van és elfogadható futásidővel: a saját desktop-omon 54 domain 2067 szabállyal 2.15 sec. Ez szerveren töredéke.

tomld - egy kis helyzet jelentés

Előzmény.

Mostanra teljes funkcionalitásúnak tartom tomld-t. Minden általam eltervezett funckiót megvalósítottam és mostantól masszív tesztelésre és hiba javításra szeretném fordítani a figyelmet.

Sikeresnek mondhatom tomld beállítását néhány számítógépes környezetemben, ahol a szabályrendszer egyszerű és kényelmes kialakítása után megfelelőnek bizonyultak a szabályok manuális ellenőrzéssel is, a folyamatok és alkalmazások pedig működni tudtak több hozzáférés megtagadás előfordulása nélkül.

Mostantól kisebb strukturális változások várhatók.
--

tomld #4

Előzmények: itt, itt és itt.

Új verzió: v0.17

Több kényelmi dolgot is beletettem, főként a rekurzív kapcsoló érdekes. Ez arra jó, hogy megmondjuk neki hogy az ez alatti mappákat csillagozza ki. Pl. samba megosztásnál fontos.

Tehát -R /home/user/.mozilla megadásával, ennél a mappánál:

/home/user/.mozilla/firefox/03542674/\*

ezt kapjuk:

/home/user/.mozilla/\*/\*/\*

Fontos működési változás még, hogy a fájl létrehozásánál, ugyanarra a szabályra megadom a törlés + írás/olvasást is. Ez rendszeresen visszatért az access deny log-ban, mert általában a program csak bezáráskor töröl fájlokat, illetve később olvassa azt amit létrehoz, meg egyébként is ha már létrehozhatta, akkor megváltoztathatja a tartalmát.

tomld #3

Előzmények itt és itt.

Csináltam két videót. Egyik a használatról, másik a hozzáférés megtagadás bemutatásáról. Remélem magától értetődő a használat és működés az eddigi dokumentációim alapján. Ha valaki úgy dönt hogy kipróbálja, akkor hasznos lenne a visszajelzés arról is többek között, hogy mi nem egyértelmű a leírásból.

usage demo (1280x800 px 5 fps 7:09 min .ogv 15 MB)
access demo (1280x800 px 5 fps 1:34 min .ogv 3.9 MB)

tomld #2

Előzmények itt.

Kicsit alakítottam a dokumentáción az oldalon, plusz hozzáadtam egy folyamat ábrát is (ábra nélkül).

Ami a legfontosabb, változtattam a működési struktúrán. Lényeg, hogy kilépésnél _nem_ minden domain vált át kikényszerítő (enforcing) módba, hanem csak a régiek, és persze azok, amelyek még nem ebben a módban vannak.

Ezt azért így csináltam, mert az eredeti elképzelésem szerint addig futtatjuk a progimat, amíg úgy nem döntünk, hogy minden szabály rendelkezésre állhat. Ez azért nem jó, mert akkor folyamatosan futni kell a progimnak, és ez persze felesleges erőforrás kidobás, másrészt (ami a legfontosabb), hogy ha nem fut, attól még a Tomoyo modul gyűjtögeti szépen a szabályokat.

tomld (tomoyo learning daemon)

Fejlesztek egy biztonsági eszközt, mely tomld névre hallgat. A Linux kernel Tomoyo biztonsági moduljának kiegészítő megoldásaként hoztam létre.

A szoftver célja az egyszerűen alkalmazható teljesen automatikus védelem hálózati támadással szemben, mely a folyamatokat saját szabályrendszerük által felállított közegbe zárja. Ezt a Tomoyo által megvalósított ACL-ek alapján működő MAC (Mandatory Access Control) használatával éri el.

További információ:
http://log69.com
http://log69.com/tomld.html

A kód minősége eléggé alfa, sok tesztelés van hátra. Napi szinten változtatom a működési struktúrát. Csütörtökön tervezem beüzemelni egyik éles szerveremen is. Szívesen vennék tesztelést, kritikát, megjegyzéseket, hülyén fogalmazott angol vagy magyar szöveges javításokat.

X res mem

Nem igazán leak-el az X most Squeeze-en ahogy nézem, nemúgy mint Lenny-n. 14 nap uptime után a notimon 156M virt, és 38M rezidens memória foglaltsága van.

Ez Lenny-n durván magasabb volt és folyamatosan nőtt (emlékeim szerint 500M körül is volt már a res).

Debian (linux) fejlesztések

Bemásolom a levlistán a DPL-től (Stefano Zacchiroli) ma érkezett levél egy részletét, a [6]-os számú link-en található egy videó.

Érdekesnek találom, többek között szó van a rendszeren található fájlok és app-ok meta adatainak kibővítéséről (kb. 13. perctől), amely egy szélesebb információs adatbázist jelentene (xapian db-ben tárolnák), és különböző objektumok is hordoznának plusz tag infókat, úgy mint ikonok, alkalmazások stb. És a kereshetőség lenne a lényeg, és kulcsszavakkal lehetne szűkíteni az elérhető objektumokat. Említésre került olyan lehetőség is, mint felhasználók - akiknek ismeretlen a rendszer - kulcsszavakkal gyorsan rátalálnának a megfelelő alkalmazásokra - nem vesznének el a számtalan alternatíva között, illetve a rendszerenként különböző menükialakításban.

Debian squeeze + recoll (full text search)

Nem jól megy a recoll Squeeze alatt. "strace recollindex" parancsot futtatva látszik hogy az alábbi fájl típusokkal gyűlik meg a baja:

.abw .doc .lyx .rtf .std .xls

az .rtf formátum text-be konvertálásához telepítve van az unrtf csomag, de nem találja meg. .doc-hoz is van antiword illetve .xls-hez xls2csv, de ua. sikerült megoldanom linkek létrehozásával az alábbi módon:

ln -s /usr/share/recoll/filters/rclrtf ~/.recoll/unrtf
ln -s /usr/share/recoll/filters/rcldoc ~/.recoll/antiword
ln -s /usr/share/recoll/filters/rclxls ~/.recoll/xls2csv

dd sync

Hibrid .iso fájlokat dd-vel tolok ki pendrive-ra így:


time (pv file.iso | dd bs=1M of=/dev/sdb 2>/dev/null; echo "sync..."; sync)

Se így, se "dd if=file.iso | pv -s "$SIZE" | dd of=/dev/sdX" megoldással nem jól mutatja a folyamat jelzőt, mert nem szinkronban írja ki az adatokat a pendrive-ra, hanem késleltetett írással, ami nem is lenne baj, lévén nyomok neki egy sync parancsot a végén, csak ami megfigyelhető, hogy ezzel 124s a teljes másolás 5.5 MB/s sebességgel (itt a sebesség egy visszaosztott átlag).

Ha viszont beadom a dd-nek a sync kapcsolót (oflag=sync), akkor csak 84s az írás 7.7 MB/s sebesség mellett, és ráadásul a folyamat jelző is mindvégig a megfelelő sebességet mutatja, a pv parancs hátralévő ideje is pontos, az sync parancs sem szükséges a végén a szinkron írás miatt, valamint a pendrive-ot is egyből ki lehet húzni.


time (pv file.iso | dd bs=1M oflag=sync of=/dev/sdb 2>/dev/null)

Random text generálás

Szükségem volt egy olyan eljárásra, ahol a shell script-jeimből kimenetet tudok tolni egy fájlba, de visszatérően mindig ugyan abba és script-enként különbözőbe, meg még véletlen szerűen kell hogy hasson, plusz a fájl név is csak ascii karakterekből állhat.

Eddig ezzel álltam elő:

LOG="$0".$(echo -n "$0" | md5sum | base64 | dd bs=1 count=8 2>/dev/null).log

Ha a script név script.sh, akkor a kimenet:

script.sh.OGU2YWZk.log

Tud valaki egyszerűbbet? (pl. od paranccsal bűvészkedés akár)

Kieg.: úgyis fogalmazhatnék, hogy véletlenszerűnek ható byte sorozat előállítása érdekelne, ahol adott bemenettől függ a kimenet, tehát reprodukálható a minta, de nem úgy mint a hash parancsok kimenete, ahol minden karakternél a 8 bitből a felső 4 nulla, hanem sűrű bináris kimenet kellene néha.

udisks --dump

Nézegetem udisks-et, hasznos a dump parancsa, egy az egyben kitol minden storage infót, nem kell root jog sem.

Csak sda-hoz ez megfelel a "udisks --show-info /dev/sda" parancsnak.

Sajna már 4 szektor hibám is van ahogy látom. Úgy rémlik ezt már az "fsck.ext3 -fccCv /dev/sda1" parancs eredménye is dobta, amikor live rendszerről ellenőriztem talán fél éve a merevlemezt hibás blokkok után kutatva.

Egy rész az infóból (a reallocated-sector-count sort pirosban emeli ki):


    ATA SMART:                 Updated at Mon 17 Jan 2011 10:24:35 PM CET
      overall assessment:      Disk has a few bad sectors
===============================================================================
 Attribute       Current|Worst|Threshold  Status   Value       Type     Updates
===============================================================================
 raw-read-error-rate         100|100| 50   good    0           Pre-fail Online
 spin-up-time                100|100|  1   good    1.7 secs    Pre-fail Online
 reallocated-sector-count    100|100| 50   good    4 sectors   Pre-fail Online 
 power-on-hours               76| 76|  0    n/a    2081732400000 Old-age  Online
 power-cycle-count           100|100|  0    n/a    4377        Old-age  Online
 g-sense-error-rate          100|100|  0    n/a    592         Old-age  Online
 power-off-retract-count     100|100|  0    n/a    70          Old-age  Online
 load-cycle-count             70| 70|  0    n/a    303523      Old-age  Online
 temperature-celsius-2       100|100|  0    n/a    40C / 104F  Old-age  Online
 udma-crc-error-count        100|100|  0    n/a    54989125    Old-age  Online
 multi-zone-error-rate       100|100|  0    n/a    116303588   Old-age  Online
 head-flying-hours            84| 84|  0    n/a    1402120800000 Old-age  Online
 attribute-241               100|100|  0    n/a    0           Old-age  Online
 attribute-242               100|100|  0    n/a    0           Old-age  Online

X selection

Sokszor másolok terminál és GUI alkalmazások közt a vágólapon keresztül. Ugye az X-nek 3 típusú kijelölése van: primary, secondary és clipboard.

GUI alkalmazásokban az utóbbiból akar beilleszteni, viszont terminálban az elsőbe teszi a kijelölést. Amit nem szeretek, az az egér középső gomb használatának kényszere ennek beillesztésére. Most ezt úgy küszöböltem ki, hogy xbindkeys-be csináltam egy shortcut-ot a "ctrl+shift+v" billentyűre, amelynél átmásolom a primary selection tartalmát a clipboard-ba.

xclip -o -selection primary | xclip -i -selection clipboard

Debian Live custom

Live-build oldalon állítgatok össze magamnak rescue CD-t. Ezeket a beállításokat használom az alábbi plusz csomagokkal:

Standard options
--binary-image: iso-hybrid
--distribution: squeeze
--packages-lists: xfce
--tasks:
--packages: csomag nevek

Jó lenne megosztani, hogy ki milyen hasznos csomagot használ még rescue témához.

Szerk.: közben szétszedtem a csomag neveket nagyjából fajtánként, hogy jobban átlátható legyen. Számomra kb. fontossági sorrendben, hogy egyszerűbb legyen szelektálni belőle.

rendszer: dstat tcpdump netcat iptraf iftop netdiag pktstat iperf htop psmisc parted lsof acpi powertop mdadm hdparm john
adat: rsync rdiff-backup smbclient smbfs duplicity clamav lbzip2 pigz zip unzip testdisk burn cdw
egyéb: gnupg openssh-client openssh-server screen bc less ne elinks wget wput lftp wcalc at convmv mc aria2
desktop: xfce4 xorg wicd iceweasel epdfview ristretto vlc xfburn openoffice.org-writer openoffice.org-calc

Debian Live XFCE daily

Megnéztem az aktuális napi snapshot-ját az XFCE live verziónak. Nagyon jó.

A boot a régebbi verziókhoz képest iszonyat gyors, nem kavar a modul betöltésekkel meg a boot script-ekkel össze vissza, hanem ahogy látom már az upstart dolgozik az esemény vezérelt init rendszerrel. A "csendes" boot üzenetek szépen egymás alá íródnak, azt már jön is az X..

A téma a pizsamás tejutas csillagos.. sebaj.

Az összeválogatott futó szolgáltatások nagyon jók, NM sincs hanem wicd van, juhéj. Jó hogy legalább Firefox a böngésző.

Peak memory usage of a process

Olyan megoldás után kutattam, amely kiírja egy folyamat vagy futtatott parancs által felhasznált memória maximumát az élettartama alatt.

grep -i vmpeak /proc/$PID/status

parancs is megmondja, de ha egy script-ből futtatok sok mindent, akkor már ez nem segít.

Ez egy bach script, amely 0.1 másodpercenként kiolvassa a process group-ban lévő összes folyamat rezidens memória használatát, és összeadja, és a maximum-ot tárolja csak. KB-ban írja ki az értéket.

Az eszközt Jaeho Shin írta. Működik Linux, Unix és *BSD rendszeren is elvileg. Linkek:
http://efreedom.com/Question/1-774556/Peak-Memory-Usage-Linux-Unix-Proc…
https://gist.github.com/526585

Debian - Fő tárolón kívűlről telepített csomagok listázása

Régebben írtam egy script-et, ami azokat a csomag neveket dobja, amelyek nem a hivatalos fő tárolóból lettek telepítve. Viszont az nem hozta azokat a neveket, amelyek egyformán szerepelnek a fő és a külső tárolóban is.

Most átírtam úgy, hogy nem csak csomag névre diff-el, hanem a mellette lévő verzió számra is. Így már tökéletesen hozza a külsős csomag neveket, akár dpkg-vel lett manuálisan feltéve, akár külső apt tárolóból.

szer.: Ubuntu-hoz is jó ugye, csak a REPO változókat kell átírni, és azt beadni a cat-nek.

pastebin

Debian Squeeze news

Most jött a hírlevél, hogy nem csak a live, hanem már a telepítő is elérhető hybrid image formában.

szerk.: további dolgok amit még kihámoztam:

Robert Millan reported on his personal blog [47] about ZFS integration
into the Debian Installer for kFreeBSD. Aside from a patch for GNU
Parted, all other patches needed for a ZFS root filesystem have been
accepted and made it into Debian "Squeeze". Robert also made available a
slightly modified version of the Debian Installer Imagefor downloading
[48].

47 : http://robertmh.wordpress.com/2010/10/13/about-zfs-in-squeeze/
48 : http://people.debian.org/~rmh/zfs/

illetve a sid-be került új csomagok közül:
- autojump -- shell extension to jump to frequently used directories
- postfix-cluebringer -- anti-spam plugin for Postfix