Archive for the 'unix' Category
windows/unix unicode hell
Monday, February 18th, 2008Task: convert legal UTF8 into Windows native unicode (lilttle-endian, UTF-16).
Solution: UTF8ToUnicode.pl
This way you will identical file as if you opened input with Notepad and saved as “Unicode”.
Sekretów zabójcy część druga
Friday, September 14th, 2007bluszcz napisał ciekawy opis kodu linuksowego OOM killera.
Zaciekawiony tematem pokopałem trochę i okazuje się co następuje:
W jednej ze starszych wersji jądra można było go w ogóle wyłączyć.
W 2.6.x z tego co widzę nie ma takiej możliwości.
Za to można wyłączać oom killer per proces!!!
Są sobie albowiem (przynajmniej w 2.6.21 które akurat mam pod ręką) pseudopliki:
/proc/<pid>/oom_score — tu można podejrzeć aktualny badness score dla procesu,
oraz
/proc/<pid>/oom_adj - tu można sterować wysokością badness score :)
Dozwolone wartości to liczby całkowite z zakresu [-17,+15]. Wysoka wartość to większe prawdopodobieństwo zabicia.
/*
* Adjust the score by oomkilladj.
*/
if (p->oomkilladj) {
if (p->oomkilladj > 0)
points <<= p->oomkilladj;
else
points >>= -(p->oomkilladj);
}
Wartość -17 jest magiczna o tyle że blokuje w ogóle możliwość zabicia procesu przez oom killer.
if (p->oomkilladj == OOM_DISABLE)
continue;
Zatem nasz zabójca ma słaby punkt.
Stosować z umiarem!
bye KDE
Monday, March 26th, 2007Hed to jednostka szczęścia opisana przez Lema w jednym z opowiadań. Jest to bodajże ilość zadowolenia odczuwana po wyjęciu z buta trzycalowego gwoździa po przejściu 10 kilometrów.
Tak mniej więcej się czuję.
Przez prawie rok korzystałem z KDE. Trochę z ciekawości ( bo to niby takie fajne mieć wszystko zintegrowane ), częściowo z powodu jakiegoś upierdliwego problemu który powodował że na Debianie pod moim ulubionym XFCE czcionki wyglądały na rozmazane.
Dziś po kolejnym apt-get upgrade okazało się że problem czcionkowy zniknął.
Wreszcie. Co za ulga :) Myszy witajcie z powrotem!
Odzyskałem jakieś 100 MB RAM dla kompa i kilkadziesiąt sekund życia dziennie dla siebie.
Cała ta wszechstronność środowiska to (przynajmniej dla mnie) jedna wielka lipa. Pulpitu i tak nie używam, domyślny zestaw narzędzi (browser, klient poczty, komunikator) od początku był do wymiany, a w przeładowanym menu trudno mi było cokolwiek znaleźć.
Nie piszę tego po to żeby zbluzgać KDE, bo w sumie to fajny projekt. Po prostu nie dla mnie. Nie wykorzystuję 90% jego mocy, a zbędny balast mnie wkurza.
XFCE też ma wady. Jego natywny file manager jest (był?) do dupy. Ale zamieniam go na ROX’a, który rzondzi. xfdesktop i w ogóle obsługa drag’n'drop też kuleje. Ale ja i tak na dzień dobry killuję xfdesktop, ewentualnie mam pulpit roxowy który jest o niebo lepszy.
Zresztą co tu chrzanić o wyższości jednych świąt nad drugimi. Ważne, że jestem szczęśliwszy o co najmniej 1 heda.
O, nawet mam cytat:
Wprawił tedy Kontemplatorowi w brzuch znaczny zegar z pozłacaną strzałką, który wyskalował w jednostkach szczęśliwości i nazwał je hedonami lub hedami w skrócie. Za jeden hed przyjął tę ilość ekstazy, jakiej się doznaje, gdy przebędzie się cztery mile w bucie z gwoździem wystającym, a potem gwóźdź się usunie. Pomnożył drogę przez czas, podzielił przez zadziorność gwoździa, przed nawias wyprowadził współczynnik pięty zmęczonej i tak mu się udało przełożyć szczęście na układ centymetr - gram - sekunda. Tym się trochę pocieszył. Wpatrując się w poplamiony oliwą fartuch roboczy Trurla, który się krzątał przy nim, Kontemplator, zależnie od kąta nachylenia i ogólnego oświetlenia, doznawał od 11,8 do 18,9 hedów na plamę, łatę i sekundę. Na dobre się uspokoił konstruktor. Obliczył zaraz, że jeden kilohed to tyle, ile starcy doznali, podglądając Zuzannę w kąpieli, że megahed - to radość skazańca w porę odciętego od stryczka, a widząc, jak wszystko daje się doskonale wyliczyć, posłał zaraz jedną z pośledniejszych machin laboratoryjnych po Klapaucjusza.
remote integrity checker
Monday, September 18th, 2006Problem:
Chcemy monitorować zdalnego hosta, tak aby uniknąć nieautoryzowanych zmian w filesystemie.
Rozwiązaniem jest oprogramowanie typu “system integrity checker”. najbardziej znany był chyba Tripwire, w tej chwili jest tego mnóstwo ale ja wybrałem AIDE.
Aby uniknąć dodatkowego ryzyka oraz umozliwić centralizację, program skanujący oraz jego bazy sygnatur przechowujemy na dedykowanym, bezpiecznym serwerze. Na skanowane hosty kopiujemy tylko na czas skanowania plik wykonywalny (zlinkowany statycznie aby uniknąć zatrutych bibliotek).
Oczywiście takie skanowanie nie jest doskonałe. Włamywacz mógł zatruć samo jądro nadpisując funkcje stat, fopen itd tak ze ukrywają wprowadzone przez niego zmiany.
Najlepiej utworzyć wzorcową bazę w momencie instalacji monitorowanego hosta, a potem cyklicznie ją porównywać z bieżącą. Zautoryzowane zmiany można potwierdzać poprzez commit (patrz skrypt aide.sh )
Instalacja krok po kroku
- Pobieramy AIDE i instalujemy lokalnie, np.
./configure --prefix=/usr && make
su
checkinstall || make install
- Na każdym monitorowanym (zdalnym) hoście musi być zainstalowane ssh oraz sudo.
- Ustawiamy sobie bezhasłowy dostęp do zdalnego hosta za pomocą ssh (autoryzacja za pomocą kluczy)
- Poprzez visudo dodajemy następującą linię:
filip ALL = NOPASSWD: /var/tmp/aide
Uwaga: mozna zmienić ścieżkę /var/tmp/ na inną, ale ze względu na ograniczenia sudo musi być ona bezwzględna, więc niestety ./ odpada. - zakładamy lokalnie katalog aide, w którym będziemy trzymać wszystkie dane dotyczące hostów zdalnych
- umieszczamy w nim dla każdego monitorowanego hosta plik konfiguracyjny o nazwie aide_HOST.conf.
# man aide.conf(5)
database=stdin
database_out=stdout
report_url=stderr
#
/bin R
/boot R
/dev L
/etc R
/lib R
/root R
/sbin R
/usr R
- umieszczamy w nim skrypt aide.sh
- chmod +x aide.sh
- Inicjalizujemy bazę sygnatur: ./aide.sh HOST init
- dopisujemy do swojego crontaba:
0 6 * * * ( cd $HOME/aide && ./aide.sh HOST scan )
- należy upewnić się że odbieramy maile które wysyła do nas cron.