<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>my personal page &#187; centos</title>
	<atom:link href="http://konrad.bechler.pl/category/linux/centos/feed/" rel="self" type="application/rss+xml" />
	<link>http://konrad.bechler.pl</link>
	<description>Tutaj powinno być coś mądrego, ale nie przychodzi mi nic do głowy...</description>
	<lastBuildDate>Wed, 01 Feb 2012 13:28:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Zepsuty YUM</title>
		<link>http://konrad.bechler.pl/2012/01/zepsuty-yum/</link>
		<comments>http://konrad.bechler.pl/2012/01/zepsuty-yum/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 13:45:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[centos]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[pliki blokad]]></category>
		<category><![CDATA[rpm]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://konrad.bechler.pl/?p=493</guid>
		<description><![CDATA[Tym razem &#8222;case study&#8221; z nie-do-końca działającego systemu. Mamy mało krytyczny serwer, świadczący pewne usługi dla użytkowników. Dopóki działa i robi swoje, nikt się do niego nie dotyka. Ale ostatnio zachciało mi się przejrzeć listę systemów i porobić trochę aktualizacji. Byłem dość mocno zdziwiony, jak po zalogowaniu i wpisaniu &#8222;yum clean all&#8221;, program zawisł. Dosłownie [...]]]></description>
			<content:encoded><![CDATA[<p>Tym razem &#8222;case study&#8221; z nie-do-końca działającego systemu.</p>
<p>Mamy mało krytyczny serwer, świadczący pewne usługi dla użytkowników. Dopóki działa i robi swoje, nikt się do niego nie dotyka. Ale ostatnio zachciało mi się przejrzeć listę systemów i porobić trochę aktualizacji. Byłem dość mocno zdziwiony, jak po zalogowaniu i wpisaniu &#8222;yum clean all&#8221;, program zawisł. Dosłownie &#8211; nie reagował na nic, poza &#8222;kill -9&#8243;. Zacząłem przeglądać logi, porównałem konfigurację, wyłączyłem wszystkie pluginy &#8211; nadal nic. Następnym krokiem byłoby przeinstalowanie pakietu, ale w tym wypadku było to mało realne (no bo przecież do instalacji potrzebny jest właśnie YUM, który nie działa).<br />
Poszedłem więc odrobinę inną drogą i ściągnąłem sobie ręcznie nową wersję bezpośrednio z repozytorium CentOSa (wget jest jednym z bardziej przydatnych narzędzi w ratowaniu systemu). &#8222;rpm -U yum&#8230;&#8221; i&#8230;. wisi!<br />
Okazało się, że uszkodzeniu uległa baza pakietów (a dokładniej, pliki blokad) RPMa. Wystarczyło je usunąć:<br />
<code>rm -f /var/lib/rpm/__db*</code>żeby wszystko wróciło do normy. Warto zapamiętać ;-)</p>
]]></content:encoded>
			<wfw:commentRss>http://konrad.bechler.pl/2012/01/zepsuty-yum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Szyfrowanie w Linuksie</title>
		<link>http://konrad.bechler.pl/2012/01/szyfrowanie-w-linuksie/</link>
		<comments>http://konrad.bechler.pl/2012/01/szyfrowanie-w-linuksie/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 08:44:31 +0000</pubDate>
		<dc:creator>konrad</dc:creator>
				<category><![CDATA[centos]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[luks]]></category>

		<guid isPermaLink="false">http://konrad.bechler.pl/?p=484</guid>
		<description><![CDATA[Jest sobie zdalne centrum danych, w którym umiejscowione są krytyczne dla działania firmy systemy. A skoro są krytyczne, to robimy z nich backupy, dość często nawet i wyjątkowo regularnie. Niestety, kopie zapasowe są na tyle duże, że problematyczne jest kopiowanie ich przez istniejące łącza, a rozbudowa tych ostatnich tylko dla naszej wygody byłaby zdecydowanym przerostem [...]]]></description>
			<content:encoded><![CDATA[<p>Jest sobie zdalne centrum danych, w którym umiejscowione są krytyczne dla działania firmy systemy. A skoro są krytyczne, to robimy z nich backupy, dość często nawet i wyjątkowo regularnie. Niestety, kopie zapasowe są na tyle duże, że problematyczne jest kopiowanie ich przez istniejące łącza, a rozbudowa tych ostatnich tylko dla naszej wygody byłaby zdecydowanym przerostem formy nad treścią (co wcale nie oznacza, że nie robimy backupu &#8222;off site&#8221;, bo byłoby to dużym niedopatrzeniem i zaburzyło procedury <a href="http://pl.wikipedia.org/wiki/Disaster_Recovery">DR</a>).<br />
Potrzebą techniczną jest posiadanie kopii niektórych baz danych, żeby można było w nich grzebać, psuć i niszczyć, a żeby żaden z klientów nie był z tego powodu smutny. Najprostszym rozwiązaniem jest podpięcie dysku USB do maszyny robiącej kopie bezpieczeństwa i przywiezienie takiego dysku (razem z zawartością oczywiście) do biura, gdzie będzie można się nad tym wszystkim znęcać.<br />
Potrzebą biznesową jest za to konieczność zabezpieczenia przewożonych danych w taki sposób, aby potencjalnemu złodziejowi odechciało się walki z tymi zabezpieczeniami. Osobiście uważam to za bardzo rozsądny wymóg, którego warto przestrzegać i który (w skrajnych przypadkach) może w drastyczny sposób ograniczyć straty firmy.</p>
<p>Systemem wykonującym kopie bezpieczeństwa dla wspomnianych przeze mnie systemów jest Linux (konkretnie CentOS w wersji 5). Po przejrzeniu informacji dostępnych w <a href="http://pl.wikipedia.org/wiki/Internet">Internecie</a> okazało się, że metod szyfrowania systemów plików nie ma wcale tak dużo. Pierwszym kandydatem był TrueCrypt, którego z powodzeniem używam w wielu innych miejscach (zarówno zawodowo, jak i prywatnie), jednak &#8211; z niewiadomych mi przyczyn &#8211; był mało stabilny i potrafił wywalić całą maszynę. Znalazłem nawet informację, że problem faktycznie występuje i że zostanie to kiedyś poprawione. Ale potrzebowałem czegoś &#8222;na już&#8221;, więc zacząłem szukać dalej. Ostatecznie padło na <a href="http://code.google.com/p/cryptsetup/">LUKS</a>a. Nie będę się specjalnie rozpisywał, co można za pomocą tego oprogramowania zrobić, bo jest to ładnie opisane na stronie domowej. Ograniczę się jedynie do krótkiej ściągawki, jak wykonać podstawowe czynności.</p>
<p>Załóżmy, że dysk, który chcemy &#8222;zaLUKSować&#8221; to /dev/sdd1. Podstawowym narzędziem, jakiego będziemy używać to &#8222;cryptsetup&#8221;.</p>
<p>Sprawdzanie, czy dane urządzenie nie jest już przypadkiem zaszyfrowane:<br />
<code>cryptsetup isLuks /dev/sdd1 2&gt;&gt;/dev/null &amp;&amp; echo TAK || echo NIE</code><br />
Jeżeli poprzednie polecenie dało wynik negatywny (czyli nie jest jeszcze zaszyfrowane), to możemy je &#8222;sformatować&#8221;:<br />
<code>cryptsetup luksFormat /dev/sdd1</code><br />
Teraz warto sprawdzić, czy operacja się faktycznie udała i podejrzeć nagłówek LUKSa:<br />
<code>cryptsetup luksDump /dev/sdd1</code><br />
Nastepnym krokiem jest &#8222;otworzenie&#8221; zaszyfrowanego urządzenia:<br />
<code>cryptsetup luksOpen /dev/sdd1 bkp</code>Po tej operacji powinno nam się w systemie pojawić nowe urządzenie blokowe, do którego możemy uzyskać dostęp poprzez /dev/mapper/bkp.<br />
<br />
Po zamontowaniu możemy sobie obejrzeć jego &#8222;stan&#8221;:<br />
<code>dmsetup info bkp</code><br />
Jeżeli wszystko się zgadza (a przynajmniej nie ma żadnych rażących błędów), przystępujemy do tworzenia systemu plików:<br />
<code>mke2fs -j /dev/mapper/bkp<br />
</code><br />
Na koniec wystarczy zamontować system plików w systemie:<br />
<code>mount /dev/mapper/bkp /mnt/usb</code>&#8230;i cieszyć możliwością ukrywania naszych ściśle tajnych danych przed światem.</p>
<p>Po zakończeniu zabawy należy oczywiście odpowiednio wszystko pozamykać:<br />
<code>sync<br />
umount /mnt/usb<br />
cryptsetup luksClose bkp</code></p>
]]></content:encoded>
			<wfw:commentRss>http://konrad.bechler.pl/2012/01/szyfrowanie-w-linuksie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Identyfikacja podatności</title>
		<link>http://konrad.bechler.pl/2011/08/openvas-nessus-retina-vulnerability/</link>
		<comments>http://konrad.bechler.pl/2011/08/openvas-nessus-retina-vulnerability/#comments</comments>
		<pubDate>Wed, 03 Aug 2011 20:58:31 +0000</pubDate>
		<dc:creator>konrad</dc:creator>
				<category><![CDATA[centos]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://konrad.bechler.pl/?p=431</guid>
		<description><![CDATA[Praca &#8222;informatyka&#8221; nie składa się wyłącznie z klikania i pisania na klawiaturze. Czasami trzeba wyjrzeć zza monitora i zmierzyć się ze światem. A na świecie (przynajmniej tym mnie otaczającym) żyją ludzie zwani audytorami. W szczególności często spotykaną przeze mnie odmianą tych ostatnich są audytorzy z zakresu szeroko rozumianego IT. Są i mnie męczą. Czemu właściwie [...]]]></description>
			<content:encoded><![CDATA[<p>Praca &#8222;informatyka&#8221; nie składa się wyłącznie z klikania i pisania na klawiaturze. Czasami trzeba wyjrzeć zza monitora i zmierzyć się ze światem. A na świecie (przynajmniej tym mnie otaczającym) żyją ludzie zwani audytorami. W szczególności często spotykaną przeze mnie odmianą tych ostatnich są audytorzy z zakresu szeroko rozumianego IT. Są i mnie męczą. Czemu właściwie nie ma się co specjalnie dziwić &#8211; w końcu ktoś im za to męczenie mojej skromnej osoby płaci. A dlaczego mnie męczą? Ano dlatego, że chcą informacji. Niekoniecznie zależy im na tym, żeby te informacje były w 100% zgodne z rzeczywistością, ale muszą coś do swoich sprawozdań wpisać. I tu zaczyna się lekki kłopot. O ile o strukturze swojej sieci, procedurach dostępu do danych, mechanizmach tworzenia kopii zapasowych mogę powiedzieć dużo, to z raportami testów identyfikacji podatności (ang. <em>vulnerability scan</em>) do tej pory było u mnie dość kiepsko. No bo niby audyty są bardzo ważne i  wszyscy o tym doskonale wiedzą, ale jakoś nikt nie chciał wydać worka pieniędzy na oprogramowanie do przeprowadzania odpowiednich skanów. Tak było do tej pory&#8230;</p>
<p>Ponieważ kilka dni temu zostałem po raz kolejny wymęczony (tym razem za pomocą ankiety) przez audyt, postanowiłem przyjrzeć się sytuacji na rynku skanerów bezpieczeństwa i spróbować coś u siebie w firmie wdrożyć. Do tej pory najlepiej pracowało mi się z <a href="http://www.tenable.com/products/nessus">Nessus</a>em i od niego zacząłem. Program wygląda naprawdę fajnie (z ciekawości przetestowałem sobie nawet bezpłatną wersję &#8222;dla domu&#8221;) i jest jednym z najbardziej popularnych skanerów. Ma tylko jedną wadę &#8211; cena usługi <a href="https://store.tenable.com/?main_page=index&amp;cPath=1">ProfessionalFeed</a> wynosi 1.200 USD rocznie. I nawet pomimo tego, że według mnie Nessus wart jest tych pieniędzy, to jestem dziwnie spokojny, że nie byłoby łatwo przeforsować takiego wydatku. Kolejnym strzałem była <a href="http://www.eeye.com/Products/Retina/Network-Security-Scanner">Retina</a>. Produkt równie dojrzały i uznany, co Nessus, to i cena dość podobna. Co dalej? Kiedyś był SATAN, ale znalazłem tylko coś, co nazywało się <a href="http://www-arc.com/sara/">SARA</a> i nie jest już rozwijane. Kolejną witryną, jaką odwiedziłem była strona domowa projektu <a href="http://www.saintcorporation.com/index.html">SAINT</a>. Niestety, w tym przypadku nie znalazłem nawet konkretnej ceny interesującego mnie produktu. Na tym etapie działania wiedziałem, że mam do wybory trzy produkty, z czego jeden znam, lubię i jest prawdopodobnie najtańszy. Ale to jeszcze nie koniec&#8230;</p>
<p><img src="http://www.openvas.org/pix/OpenVAS-logo.png" alt="OpenVAS logo" class="alignleft size-full" />Nie wiem skąd się tam wziąłem, ale w pewnym momencie moim oczom ukazała się strona domowa projektu <a href="http://www.openvas.org/">OpenVAS</a>. O ile udało mi się zorientować, jest to fork Nessusa, który rozpowszechniany jest na licencji GNU. Składa się z kilku współpracujących ze sobą modułów i zestawu testów, które stanowią o sile tego rozwiązania. Co ciekawe, same testy (Network Vulnerability Tests) napisane są w języku NASL opracowanym dla Nessua &#8211; kolejna rzecz, która mi się spodobała. Postanowiłem zainstalować OpenVASa na jakiejś maszynie i zobaczyć, ile to cudo jest warte. W CentOSie 5.6 instalacja przebiegła bez problemu i po niedługim czasie miałem gotowe rozwiązanie do skanowania swoich zasobów&#8230;</p>
<p>Na razie jestem z odkrycia bardzo zadowolony i w wolnych chwilach staram się tego w jakiś sensowny sposób użyć. Pomimo pewnej &#8222;toporności&#8221; interfejsu (używam Greenbone Security Assistant), wydaje mi się, że zaprzyjaźnię się z OpenVASem na dłużej. Ciekawe tylko, co powiedzą audytorzy, jak zobaczą raporty utworzone w jakimś abstrakcyjnym systemie, który nie jest &#8222;ogólnie uznany przez środowisko&#8221; :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://konrad.bechler.pl/2011/08/openvas-nessus-retina-vulnerability/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lokalne repozytorium dla YUMa</title>
		<link>http://konrad.bechler.pl/2010/11/lokalne-repozytorium-dla-yuma/</link>
		<comments>http://konrad.bechler.pl/2010/11/lokalne-repozytorium-dla-yuma/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 14:07:29 +0000</pubDate>
		<dc:creator>konrad</dc:creator>
				<category><![CDATA[centos]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://konrad.bechler.pl/?p=320</guid>
		<description><![CDATA[Infrastruktura serwerowa w mojej firmie w pewnym momencie zaczęła dość intensywnie rosnąć. W dodatku, wobec wszędobylskich portali i web-serwisów, znaczna część tych systemów działa pod kontrolą CentOSa (Apache wydaje mi się odrobinę bezpieczniejszy i mniej wymagający, niż IIS). Wszystko to wymaga okresowych &#8222;przeglądów&#8221; i instalowania aktualizacji (w moim przypadku głównie ze względu na bezpieczeństwo). Niby [...]]]></description>
			<content:encoded><![CDATA[<p>Infrastruktura serwerowa w mojej firmie w pewnym momencie zaczęła dość intensywnie rosnąć. W dodatku, wobec wszędobylskich portali i web-serwisów, znaczna część tych systemów działa pod kontrolą CentOSa (Apache wydaje mi się odrobinę bezpieczniejszy i mniej wymagający, niż IIS). Wszystko to wymaga okresowych &#8222;przeglądów&#8221; i instalowania aktualizacji (w moim przypadku głównie ze względu na bezpieczeństwo). Niby nie jest to jakoś specjalnie skomplikowane &#8211; wystarczy zalogować się na taką maszynę, uruchomić YUMa, pobrać nowe wersje pakietów i klepnąć &#8222;OK&#8221;. No właśnie, ale czy te wszystkie aktualizacje trzeba za każdym razem pobierać z Sieci? Otóż nie, i zmiana takiego stanu rzeczy nie jest nawet taka bardzo skomplikowana.</p>
<p>Można, na przykład, skorzystać z <a href="http://wiki.centos.org/HowTos/CreateLocalMirror">takiej</a> instrukcji, ale dla mnie jest ona odrobinę za bardzo skomplikowana, poza tym nie przepadam za rsync&#8217;iem.</p>
<p>Alternatywny proces tworzenia własnego repozytorium pakietów w moim przypadku wyglądał tak:</p>
<p><strong>Po pierwsze</strong> &#8211; w katalogu <strong>/mnt/md3</strong> (bo akurat tutaj miałem trochę miejsca)  utworzyłem odpowiednią strukturę katalogów:<br />
<code><strong>[kbechler@sv ~]# <span style="color: #ff0000">tree /mnt/md3/mirror/centos/5.5 -L 2</span></strong><br />
/mnt/md3/mirror/centos/5.5<br />
|-- addons<br />
|   |-- i386<br />
|   `-- x86_64<br />
|-- centosplus<br />
|   |-- i386<br />
|   `-- x86_64<br />
|-- contrib<br />
|   |-- i386<br />
|   `-- x86_64<br />
|-- extras<br />
|   |-- i386<br />
|   `-- x86_64<br />
|-- os<br />
|   |-- i386<br />
|   `-- x86_64<br />
`-- updates<br />
     |-- i386<br />
     `-- x86_64</code></p>
<p><strong>Po drugie</strong> &#8211; napisałem sobie prosty plik, o taki:</p>
<p><code><br />
<strong>[kbechler@sv ~]$ <span style="color: #ff0000">cat /mnt/md3/mirror/centos55.lftp</strong></span><br />
open http://ftp-stud.fht-esslingen.de/pub/Mirrors/centos/5.5<br />
lcd /home/www/html/centos/5.5<br />
echo CENTOS_OS<br />
mirror -e --verbose=3 --parallel=10 os/x86_64 os/x86_64<br />
mirror -e --verbose=3 --parallel=10 os/i386 os/i386<br />
echo CENTOS_ADDONS<br />
mirror -e --verbose=3 --parallel=10 addons/x86_64 addons/x86_64<br />
mirror -e --verbose=3 --parallel=10 addons/i386 addons/i386<br />
echo CENTOS_EXTRAS<br />
mirror -e --verbose=3 --parallel=10 extras/x86_64 extras/x86_64<br />
mirror -e --verbose=3 --parallel=10 extras/i386 extras/i386<br />
echo CENTOS_UPDATES<br />
mirror -e --verbose=3 --parallel=10 updates/x86_64 updates/x86_64<br />
mirror -e --verbose=3 --parallel=10 updates/i386 updates/i386<br />
echo CENTOS_CENTOSPLUS<br />
mirror -e --verbose=3 --parallel=10 centosplus/x86_64 centosplus/x86_64<br />
mirror -e --verbose=3 --parallel=10 centosplus/i386 centosplus/i386<br />
echo CENTOS_CONTRIB<br />
mirror -e --verbose=3 --parallel=10 contrib/x86_64 contrib/x86_64<br />
mirror -e --verbose=3 --parallel=10 contrib/i386 contrib/i386<br />
exit</code></p>
<p><strong>Po trzecie</strong> &#8211; w katalogu /etc/cron.daily utworzyłem skrypt, który wywołuje polecenie:</p>
<p><code>lftp -f /mnt/md3/mirror/centos55.lftp &gt; /var/log/mirror_centos55.log </code></p>
<p><strong>Po czwarte</strong> &#8211; skonfigurowałem Apache&#8217;a na ten maszynie tak, aby link &#8222;<strong>http://sv/centos</strong>&#8221; wskazywał na katalog <strong>/mnt/md5/mirror/centos</strong>.</p>
<p><strong>Po piąte</strong> &#8211; poczekałem, aż skrypt z crona zrobi swoje i na lokalnym serwerze będę miał aktualną kopię wszystkich pakietów. Tutaj drobna uwaga: przy wolnym łączu do internetu trzeba albo sprytnie napisać skrypt do synchronizacji, albo uruchomić tą ostatnią &#8222;z palca&#8221;, a skrypt dopisać do crona po jej zakończeniu. W innym wypadku możemy się natknąć na race-condition, w którym kolejne wywołania &#8222;zazębią&#8221; się ze sobą (o ile pierwsza synchronizacja nie zakończy się w ciągu 24h).</p>
<p><strong>Po szóste</strong> (i ostatnie)  &#8211; poprosiłem wszystkie moje systemy, aby pobierały aktualizacje z nowo utworzonego repozytorium. Polegało to na tym, że wywaliłem standardową zawartość katalogu <strong>/etc/yum.repos.d</strong> i wrzuciłem tam poniższy plik:</p>
<p><code><strong>[kbechler@sv ~]$ <span style="color: #ff0000">cat /etc/yum.repos.d/centos.repo</span></strong><br />
[base]<br />
name=CentOS-$releasever - Base<br />
baseurl=http://sv/centos/$releasever/os/$basearch/<br />
gpgcheck=1<br />
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5<br />
[updates]<br />
name=CentOS-$releasever - Updates<br />
baseurl=http://sv/centos/$releasever/updates/$basearch/<br />
gpgcheck=1<br />
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5<br />
[addons]<br />
name=CentOS-$releasever - Addons<br />
baseurl=http://sv/centos/$releasever/addons/$basearch/<br />
gpgcheck=1<br />
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5<br />
[extras]<br />
name=CentOS-$releasever - Extras<br />
baseurl=http://sv/centos/$releasever/extras/$basearch/<br />
gpgcheck=1<br />
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5<br />
#additional packages that extend functionality of existing packages<br />
[centosplus]<br />
name=CentOS-$releasever - Plus<br />
baseurl=http://sv/centos/$releasever/centosplus/$basearch/<br />
gpgcheck=1<br />
enabled=0<br />
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5<br />
#contrib - packages by Centos Users<br />
[contrib]<br />
name=CentOS-$releasever - Contrib<br />
baseurl=http://sv/centos/$releasever/contrib/$basearch/<br />
gpgcheck=1<br />
enabled=0<br />
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5</code></p>
<p>I to tyle &#8211; od momentu wykonania tego powyżej, wszystkie moje maszyny instalują i aktualizują pakiety z lokalnego repozytorium. Dzięki temu zaoszczędziłem odrobinę ruchu (co akurat nie jest w moim przypadku specjalnie ważne), oraz uprościłem konfigurację samej sieci &#8211; większość z tych maszyn nie &#8222;wystaje&#8221; na zewnątrz i konfiguracja NATa stała się zbędna.</p>
]]></content:encoded>
			<wfw:commentRss>http://konrad.bechler.pl/2010/11/lokalne-repozytorium-dla-yuma/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalacja SAP RFCSDK w CentOSie</title>
		<link>http://konrad.bechler.pl/2010/09/instalacja-sap-rfcsdk-w-centosie/</link>
		<comments>http://konrad.bechler.pl/2010/09/instalacja-sap-rfcsdk-w-centosie/#comments</comments>
		<pubDate>Tue, 14 Sep 2010 08:35:03 +0000</pubDate>
		<dc:creator>konrad</dc:creator>
				<category><![CDATA[centos]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[sap]]></category>

		<guid isPermaLink="false">http://konrad.bechler.pl/?p=281</guid>
		<description><![CDATA[Paczkę z potrzebnymi binarkami możemy pobrać spod adresu http://service.sap.com/swdc. Niestety, żeby się tam dostać trzeba mieć konto dostępowe. Na początek kilka słów o tym, jak znaleźć odpowiedni pakiet. W przypadku SAPa nic nie jest oczywiste, więc nawet z pobieraniem oprogramowania można mieć pewne problemy. Przede wszystkim musimy określić, jaka właściwie wersja będzie nam potrzebna. Z [...]]]></description>
			<content:encoded><![CDATA[<p>Paczkę z potrzebnymi binarkami możemy pobrać spod adresu <a href="http://service.sap.com/swdc">http://service.sap.com/swdc</a>. Niestety, żeby się tam dostać trzeba mieć konto dostępowe.</p>
<p>Na początek kilka słów o tym, jak znaleźć odpowiedni pakiet. W przypadku <a href="http://www.sap.com">SAP</a>a nic nie jest oczywiste, więc nawet z pobieraniem oprogramowania można mieć pewne problemy. Przede wszystkim musimy określić, jaka właściwie wersja będzie nam potrzebna. Z pomocą przychodzi notka o numerze 825494. Ponieważ aktualnie mam zamiar to instalować na CentOSie 5.4 w wersji 32-bitowej, potrzebuję RFCSDK w wersji 6.40 lub 7.00 (przynajmniej tak wynika ze wspomnianej noty). Teraz zaglądamy do noty numer 413708. Mamy tu ładnie opisane gdzie, co i w jakiej kolejności kliknąć, żeby dojść do miejsca z którego możemy sobie pożądane rzeczy pobrać. Oczywiście z rzeczywistością ma to niewiele wspólnego :-) Jak już znajdziemy to, co nas interesuje, to możemy kliknąć &#8222;download&#8221; i przy odrobinie szczęścia po chwili będziemy posiadaczami wymarzonego pakietu.</p>
<p>Następnym krokiem jest rozpakowanie pliku, który pobraliśmy. Potrzebne jest do tego narzędzie SAPCAR. Do pobrania z serwisu SAP. Tutaj jest trochę łatwiej. Przebijamy się przez menu, aby dojść do miejsca &#8222;Search for Support Packages and Patches&#8221; i w polu &#8222;Search&#8221; wpisujemy &#8222;SAPCAR&#8221;. Klikamy na odpowiednią wersję, wybieramy platformę i pobieramy pakiet. Co ciekawe, wersja dla Linuksa także ma rozszerzenie .exe, ale jest to najzwyklejsza binarka w formacie <a href="http://en.wikipedia.org/wiki/Executable_and_Linkable_Format">ELF</a>.</p>
<p>Dobra, mamy dwa upragnione pliki i coś z nimi teraz trzeba zrobić. Na początek zmieńmy atrybuty sapcara:<br />
<code>chmod 755 ./SAPCAR_0-10003688.exe</code><br />
Tutaj drobna uwaga: Jeżeli próba uruchomienia tego ostatniego spowoduje wywalenie błędu <code>"./SAPCAR_0-10003688.exe: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory"</code> to oznacza, że musimy doinstalować pakiet zgodności o nazwie &#8222;<strong>compat-libstdc++-33</strong>&#8222;.</p>
<p>Rozpakowujemy archiwum z instalką RFCSDK:<br />
<code>./SAPCAR_0-10003688.exe -xvf ./RFC_25-10004432.SAR</code></p>
<p>W wyniku dostajemy katalog rfcsdk, który trzeba gdzieś skopiować. Na przykład do /usr/sap.<br />
Żeby to wszystko chciało działać, musimy jeszcze utworzyć plik <strong>sap.conf</strong> w katalogu <strong>/etc/ld.so.conf.d</strong> i wpisać do niego dwie linijki:<br />
<code>/usr/sap/rfcsdk/lib<br />
/usr/sap/lib<br />
</code></p>
<p>Wywołanie <strong>sapinfo</strong> powinno dać w wyniku mniej-więcej coś takiego:</p>
<p><code>[kbechler@sv bin]$ /usr/sap/rfcsdk/bin/sapinfo -v<br />
This RFC library belongs to the SAP R/3 Release *** 700,0,239  ***<br />
Versions of SAP internal libraries:<br />
  dptr:    2<br />
  ni  :   38<br />
  cpic:    3<br />
  rfc :    3<br />
Compiled by compiler version:<br />
  3.3.3 (SuSE Linux)<br />
[kbechler@sv bin]$</code></p>
<p>Ale po co to wszystko? Ano po to, żeby móc monitorować systemy SAP za pomocą <a href="http://www.nagios.org/">Nagios</a>a i <a href="http://exchange.nagios.org/directory/Plugins/Business-Management-and-Logic/SAP/Check-SAP-Availability-and-Response-Time/details">tego</a> skryptu(1).</p>
<p>Skrypt wywołuje się mniej-więcej tak:</p>
<p><code>[kbechler@sv /]# /usr/lib/nagios/plugins/check_sap_rfcping.pl -a 192.168.0.1 -s 10 -w 50 -c 200<br />
RFCPING OK - No Problems found, AvgRTT=1 ms (SAPF001_SF1_10)<br />
[kbechler@sv /]#<br />
</code></p>
<p><em><strong>Konfiguracja Nagiosa:</strong></em></p>
<p>do pliku &#8216;<strong>commands.cfg</strong>&#8216; dodałem wpis:</p>
<p><code>define command{<br />
    command_name check_sap_rfcping<br />
    command_line $USER1$/check_sap_rfcping.pl -a $HOSTADDRESS$ -s $ARG1$ -w 50 -c 200<br />
    }<br />
</code></p>
<p>Potem zdefiniowałem serwis, który będzie monitorował PINGa:<br />
<code>define service{<br />
        use                     generic-service<br />
        host_name               sap_sandbox1<br />
        service_description     SAP RFC PING<br />
        check_command           check_sap_rfcping!10!-w 100 -c 300<br />
        }<br />
</code></p>
<p>I to w zasadzie wszystko. Ruszyło za pierwszym razem (co w IT zdarza się niekoniecznie zawsze ;-))</p>
<p>(1) Żeby skrypt działał, musimy jeszcze pobawić się trochę w linkowanie katalogów: <code>'ln -s /usr/sap /usr/local/sap'</code></p>
]]></content:encoded>
			<wfw:commentRss>http://konrad.bechler.pl/2010/09/instalacja-sap-rfcsdk-w-centosie/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CentOS, Firefox i Java</title>
		<link>http://konrad.bechler.pl/2010/07/centos-firefox-i-java/</link>
		<comments>http://konrad.bechler.pl/2010/07/centos-firefox-i-java/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 20:15:43 +0000</pubDate>
		<dc:creator>konrad</dc:creator>
				<category><![CDATA[centos]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[rpm]]></category>

		<guid isPermaLink="false">http://konrad.bechler.pl/?p=271</guid>
		<description><![CDATA[Jakoś tak się składało, że przez naprawdę długi czas Linux stanowił dla mnie niemalże wyłącznie platformę serwerową, gdzie konsola była w zupełności wystarczająca. Wobec takiego stanu rzeczy, cały rozwój tego systemu związany ze środowiskiem graficznym mnie, delikatnie pisząc, ominął. Obecnie zacząłem trochę &#8216;eksperymentować&#8217; z graficznym Linuksem i natykam się na dziwne &#8211; jak dla mnie [...]]]></description>
			<content:encoded><![CDATA[<p>Jakoś tak się składało, że przez naprawdę długi czas Linux stanowił dla mnie niemalże wyłącznie platformę serwerową, gdzie konsola była w zupełności wystarczająca. Wobec takiego stanu rzeczy, cały rozwój tego systemu związany ze środowiskiem graficznym mnie, delikatnie pisząc, ominął. Obecnie zacząłem trochę &#8216;eksperymentować&#8217; z graficznym Linuksem i natykam się na dziwne &#8211; jak dla mnie &#8211; problemy. Przykładowo&#8230;</p>
<p>Jak zmusić Firefoksa pod CentOSem do współdziałania z Javą? Okazuje się to nie być aż tak trywialnym zadaniem, jak by się wydawało (czyli kliknąć, potwierdzić i mieć). Zainstalowałem sobie dość standardowego CentOSa, wyposażonego w pełnowartościowy system graficzny kontrolowany przez GNOMEa. Okazało się, że Firefox jako taki był sam z siebie. Ale nie bardzo, <a href="http://pl.wikipedia.org/wiki/OOTB">OOTB</a>, wspierał Javę.</p>
<p>Po pierwsze pobrałem najnowszą wersję <a href="http://java.com/pl/download/linux_manual.jsp?locale=pl&amp;host=java.com">JRE</a> w wersji &#8222;Linux RPM&#8221;. Co ciekawe, plik, który udało mi się sciągnąć okazał się &#8222;prawie&#8221; RPMem. Niby w środku RPM, ale dodatkowo opakowany kawałkiem skryptu BASH:<br />
<code>[root@h7-centos ~]# file ./jre-6u20-linux-i586-rpm.bin<br />
./jre-6u20-linux-i586-rpm.bin: Bourne shell script text executable<br />
</code><br />
Po uruchomieniu &#8222;instalatora&#8221; najpierw wyświetliło licencję, potem się samo rozpakowało a na koniec powiedziało &#8222;Done.&#8221; :-)</p>
<p>Problem w tym, że wprawdzie Java się niby zainstalowała, ale Firefox jakby nie załapał, że powinien z niej w jakikolwiek sposób skorzystać i w dalszym ciągu marudził, że nie rozumie. Nic to, nie zrażony pierwszym niepowodzeniem, zacząłem szukać, jak to wszystko zmusić do współdziałania. Może cała procedura (nota bene składająca się z jednego polecenia :-)) nie jest jakoś porażająco skomplikowana, ale tak zupełnie oczywista dla mnie na początku też nie była.</p>
<p>Po krótkich poszukiwania okazało się, że Firefox szuka swoich pluginów w dwóch katalogach:<br />
- globalnym, który wpływa na zachowanie przeglądarkidla wszystkich użytkowników korzystających z danego systemu: <strong>/usr/lib/mozilla/plugins</strong>,<br />
- lokalnym użytkownika: <strong>~/.mozilla/plugins</strong>.</p>
<p>Aby pożenić Firefoksa ze świeżo zainstalowaną przeze mnie Javą, musiałem utworzyć dowiązanie symboliczne (w katalogu, w którym FF szuka pluginów) do odpowiedniej binarki Javy. Wyglądało to tak:<br />
<code>[root@h7-centos ~]# <strong>cd /usr/lib/mozilla/plugins</strong><br />
[root@h7-centos plugins]# <strong>ln -s /usr/java/default/lib/i386/libnpjp2.so ./</strong><br />
[root@h7-centos plugins]# <strong>ls -la libnpj*</strong><br />
lrwxrwxrwx 1 root root 38 lip  2 22:06 libnpjp2.so -&gt; /usr/java/default/lib/i386/libnpjp2.so<br />
[root@h7-centos plugins]#<br />
</code><br />
Po restarcie Firefoksa, program nagle zaczął rozumieć Javę i chyba ją nawet trochę polubił :-)</p>
<p>P.S. Dokładnie tak samo należy postąpić z niedziałającym Flashem, linkując do znanego nam już katalogu plik <strong>/usr/lib/flash-plugin/libflashplayer.so</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://konrad.bechler.pl/2010/07/centos-firefox-i-java/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Wyłączyć wyłączanie</title>
		<link>http://konrad.bechler.pl/2010/07/wylaczyc-wylaczanie/</link>
		<comments>http://konrad.bechler.pl/2010/07/wylaczyc-wylaczanie/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 08:24:04 +0000</pubDate>
		<dc:creator>konrad</dc:creator>
				<category><![CDATA[centos]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://konrad.bechler.pl/?p=259</guid>
		<description><![CDATA[Właśnie konfiguruję serwer terminali oparty o CentOSa i GNOME. Wszystko wygląda całkiem nieźle, ale natknąłem się na pewien niewielki problem: jak pozbawić użytkowników korzystających z tego terminala możliwości wyłączania/restartowania całego systemu? Zostawienie tej opcji włączonej może skutkować dość nieprzyjemnymi objawami w postaci nagłych i niespodziewanych restartów całego serwera, a ja nie lubię się denerwować. Okazuje [...]]]></description>
			<content:encoded><![CDATA[<p>Właśnie konfiguruję serwer terminali oparty o CentOSa i GNOME. Wszystko wygląda całkiem nieźle, ale natknąłem się na pewien niewielki problem: jak pozbawić użytkowników korzystających z tego terminala możliwości wyłączania/restartowania całego systemu? Zostawienie tej opcji włączonej może skutkować dość nieprzyjemnymi objawami w postaci nagłych i niespodziewanych restartów całego serwera, a ja nie lubię się denerwować.</p>
<p>Okazuje się, że jest kilka metod, którymi zły użytkownik może się posłużyć i powinniśmy zneutralizować je wszystkie. Ale po kolei:</p>
<p>1) Ikonki &#8222;Uruchom ponownie&#8221; oraz &#8222;Wyłącz&#8221; widoczne na ekranie logowania (<a href="http://pl.wikipedia.org/wiki/GDM">GDM</a>).</p>
<p>To akurat wyłącza się wyjątkowo prosto:<br />
W sekcji <strong>[greeter]</strong> pliku <code>/etc/gdm/custom.conf</code> musimy dopisać linijkę<br />
<code>SystemMenu=false</code> i zrestartować X&#8217;y. Koniec.</p>
<p>Po takim zabiegu ikony służące do denerwowania administratora znikną z ekranu powitalnego raz na zawsze (albo do ponownego włączenia).</p>
<p>2) <a href="http://library.gnome.org/users/user-guide/2.27/desktop-menu.html.en">Menu systemowe GNOME</a>.</p>
<p>Uruchamiamy <a href="http://en.wikipedia.org/wiki/Gconf-editor">gconf-editor</a> (jeżeli nie mamy go w systemie, to trzeba sobie doinstalować: <em>yum install gconf-editor</em>), i w gałęzi <strong>/apps/panel/global</strong> zaznaczamy opcję &#8222;<strong>disable_log_out</strong>&#8222;. Nazwa jest trochę myląca, bo samej możliwości wylogowania z systemu nie wyłącza, ale robi to, co mi potrzebne a ja nie muszę chyba wszystkiego rozumieć :-)</p>
<p>3) Zablokowanie możliwości wywołania &#8222;poweroff&#8221; lub &#8222;reboot&#8221; z terminala.</p>
<p>Domyślnie CentOS (zamiast kombinować z flagą <a href="http://pl.wikipedia.org/wiki/Setuid">SUID</a>) dość intensywnie korzysta z programu consolehelper(*) i właśnie w jego konfiguracji będziemy grzebać. Wszystkie programy, które mogą być uruchamiane przez zwykłych użytkowników z prawami roota zdefiniowane są w dwóch katalogach:<br />
<code>/etc/security/console.apps</code> oraz <code>/etc/pam.d</code></p>
<p>Aby wyłączyć (brutalnie, ale skutecznie) użytkownikom możliwość denerwowania innych, należy z pierwszego z podanych katalogów (czyli <strong>/etc/security/console.apps</strong>) usunąć pliki &#8222;<strong>reboot</strong>&#8222;, &#8222;<strong>halt</strong>&#8221; oraz &#8222;<strong>poweroff</strong>&#8222;. Warto jeszcze usunąć dowiązania symboliczne do samego consolehelpera z katalogu <strong>/usr/bin</strong> (bez usuwania linków użytkownikom, zamiast &#8222;nie ma takiego pliku&#8230;&#8221; wyświetlać się będzie okienko &#8222;Nieznany błąd&#8221;, co wygląda mało profesjonalnie :-)).</p>
<p>I to chyba wszystko. Po krótkich staraniach nie udało mi się zdalnie wyłączyć systemu nie posiadając uprawnień roota :-)</p>
<p>(*) Trochę więcej o programie consolehelper można poczytać sobie <a href="http://www.redhat.com/docs/manuals/linux/RHL-7.1-Manual/ref-guide/s1-access-privileges-console-access.html">tutaj</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://konrad.bechler.pl/2010/07/wylaczyc-wylaczanie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bezpieczny FTP?</title>
		<link>http://konrad.bechler.pl/2010/02/bezpieczny-ftp/</link>
		<comments>http://konrad.bechler.pl/2010/02/bezpieczny-ftp/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 12:20:29 +0000</pubDate>
		<dc:creator>konrad</dc:creator>
				<category><![CDATA[centos]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://konrad.bechler.pl/?p=147</guid>
		<description><![CDATA[Protokół FTP powstał w roku 1971 jako mechanizm umożliwiający wymianę plików. Pierwotnie stosowany był w sieci ARPANET. Ponieważ miały do niej dostęp tylko wybrane jednostki &#8211; nikt nie wysilał się nad zabezpieczeniem przekazywanych danych. W chwili obecnej protokoły które przesyłają hasła w postaci jawnej (czyli nie zaszyfrowanej w żaden sposób) są &#8211; przynajmniej dla mnie [...]]]></description>
			<content:encoded><![CDATA[<p>Protokół <a href="http://pl.wikipedia.org/wiki/File_Transfer_Protocol">FTP</a> powstał w roku 1971 jako mechanizm umożliwiający wymianę plików. Pierwotnie stosowany był w sieci <a href="http://en.wikipedia.org/wiki/ARPANET">ARPANET</a>. Ponieważ miały do niej dostęp tylko wybrane jednostki &#8211; nikt nie wysilał się nad zabezpieczeniem przekazywanych danych. W chwili obecnej protokoły które przesyłają hasła w postaci jawnej (czyli nie zaszyfrowanej w żaden sposób) są &#8211; przynajmniej dla mnie &#8211; wyjątkowo mało użyteczne. Niestety, poza FTP nie znalazłem żadnej wystarczająco mało skomplikowanej metody na przesyłanie plików do zdalnych sieci. Jest coś takiego, jak <a href="http://pl.wikipedia.org/wiki/SFTP">SFTP</a>, <span style="text-decoration: line-through">ale połączenie go z chrootem nie jest takie zupełnie trywialne</span>(*). Poza tym każdy użytkownik, korzystający z SFTP musi mieć konto systemowe na serwerze, co nie zawsze jest pożądane/wygodne/możliwe.</p>
<p>Szczęśliwie istnieje &#8222;bezpieczna&#8221; odmiana FTPa: <a href="http://en.wikipedia.org/wiki/FTPS">FTPS</a>, która dodaje wsparcie dla TLS/SSL. W dodatku skonfigurowanie czegoś takiego nie jest zbytnio skomplikowane. W najprostszym przypadku (<a href="http://vsftpd.beasts.org/">vsftpd</a> działający na <a href="http://centos.org/">CentOS</a>ie) wystarczy wygenerować certyfikat typu self-signed:<br />
<code>[kbechler@flame ~]$ <strong>openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pem</strong><br />
Generating a 2048 bit RSA private key<br />
.................................................................................................+++<br />
....................................+++<br />
unable to write 'random state'<br />
writing new private key to 'vsftpd.pem'<br />
-----<br />
You are about to be asked to enter information that will be incorporated<br />
into your certificate request.<br />
What you are about to enter is what is called a Distinguished Name or a DN.<br />
There are quite a few fields but you can leave some blank<br />
For some fields there will be a default value,<br />
If you enter '.', the field will be left blank.<br />
-----<br />
Country Name (2 letter code) [PL]:<br />
Locality Name (eg, city) []:<br />
Organization Name (eg, company) []:<br />
Organizational Unit Name (eg, section) []:<br />
Given name []:<br />
Surname []:<br />
Common Name (eg, your name or your server's hostname) []:<br />
Email Address []:<br />
[kbechler@flame ~]$ <strong>sudo mv ./vsftpd.pem /etc/vsftpd</strong><br />
</code></p>
<p>Dopisać poniższe trzy linijki do pliku konfiguracyjnego serwera (<strong>/etc/vsftpd/vsftpd.conf</strong>):<br />
<code>ssl_enable=YES<br />
rsa_cert_file=/etc/vsftpd/vsftpd.pem<br />
force_local_data_ssl=NO</code></p>
<p>i zrestartować usługę:<br />
<code>[kbechler@flame ~]$ <strong>sudo /etc/init.d/vsftpd restart</strong><br />
Shutting down vsftpd:                                      [  OK  ]<br />
Starting vsftpd for vsftpd:                                [  OK  ]<br />
</code></p>
<p>Potrzebujemy jeszcze klienta, który wspiera FTPS. Na szczęście <a href="http://www.ghisler.ch/board/viewtopic.php?t=12105&amp;start=0&amp;postdays=0&amp;postorder=asc&amp;highlight=">ładnie poproszony</a> <a href="http://www.ghisler.com">Total Commander</a> coś takiego potrafi :-)</p>
<p>Różnicę widać od razu:<br />
<a href="http://konrad.bechler.pl/wp-content/uploads/2010/02/screen_wireshark_ftp.jpg" rel="lightbox[147]"><img src="http://konrad.bechler.pl/wp-content/uploads/2010/02/screen_wireshark_ftp-300x108.jpg" alt="" width="300" height="108" class="aligncenter size-medium wp-image-151" /></a></p>
<p>Niestety, taka konfiguracja nieco nas ogranicza. Serwer vsftpd nie pozwala na logowanie użytkowników bez użycia SSLa, co powoduje, że nie da się do naszego serwera podłączyć używając np. klienta FTP wbudowanego w Windows. Można to zmienić dodając parametr &#8222;<strong>force_local_logins_ssl=NO</strong>&#8221; do konfiguracji serwera, ale&#8230; ponieważ ludzie są z natury leniwi, to nie będzie im się chciało niczego zmieniać w i dalszym ciągu będą korzystać z połączenia nieszyfrowanego&#8230; niestety, na ten problem lekarstwa nie znam :-(</p>
<p>(*) Od wersji 4.8 (<a href="http://www.openssh.org/txt/release-4.8">ChangeLog</a>) istnieje w OpenSSH parametr <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=sshd_config&amp;sektion=5">ChrootDirectory</a>, który w prosty sposób coś takiego umożliwia.</p>
]]></content:encoded>
			<wfw:commentRss>http://konrad.bechler.pl/2010/02/bezpieczny-ftp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>check_update</title>
		<link>http://konrad.bechler.pl/2010/02/check_update/</link>
		<comments>http://konrad.bechler.pl/2010/02/check_update/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 19:30:50 +0000</pubDate>
		<dc:creator>konrad</dc:creator>
				<category><![CDATA[centos]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://konrad.bechler.pl/?p=119</guid>
		<description><![CDATA[Jakiś czas temu musiałem napisać prosty skrypt robiący &#8222;spis z natury&#8221; pakietów na linuksowych serwerach. Chodziło o coś, co wypluje w każdej linijce: nazwę hosta, nazwę pakietu, wersję pakietu zainstalowanego, najnowszą wersję pakietu, która została wydana i można ją zainstalować. Skrypt powstał w BASHu i wygląda tak: #!/bin/bash IFS=$'\n' for l in `yum -d 0 [...]]]></description>
			<content:encoded><![CDATA[<p>Jakiś czas temu musiałem napisać prosty skrypt robiący &#8222;spis z natury&#8221; pakietów na linuksowych serwerach. Chodziło o coś, co wypluje w każdej linijce:</p>
<ul>
<li>nazwę hosta,</li>
<li>nazwę pakietu,</li>
<li>wersję pakietu zainstalowanego,</li>
<li>najnowszą wersję pakietu, która została wydana i można ją zainstalować.</li>
</ul>
<p>Skrypt powstał w <a href="http://pl.wikipedia.org/wiki/Bash">BASH</a>u i wygląda tak:<br />
<code>#!/bin/bash<br />
IFS=$'\n'<br />
for l in `yum -d 0 check-update | grep -v "^$"`; do<br />
  pakiet=`echo ${l} | cut -d ' ' -f 1`<br />
  ver1=`yum list ${pakiet} | grep -A 1 "^Installed Packages"  | grep -v "^Installed Packages" | awk '{print $2}'`<br />
  ver2=`echo ${l} | awk '{print $2}'`<br />
  s=`hostname`; while [ ${#s} -lt 30 ]; do s="${s} "; done<br />
  s="${s} pakiet: ${pakiet}";  while [ ${#s} -lt 70 ]; do s="${s} "; done<br />
  s="${s} aktualna wersja: ${ver1}";  while [ ${#s} -lt 120 ]; do s="${s} "; done<br />
  s="${s} nowa wersja: ${ver2}"<br />
  echo "${s}"<br />
done<br />
</code><br />
Nie jest może zbyt wyrafinowany i zdecydowanie nie jest najszybszy, ale robi to, co do niego należy i nie jest zbytnio skomplikowany.</p>
<p>Po co? Bo fajnie jest wiedzieć, co się u moich &#8222;podopiecznych&#8221; dzieje i jak bardzo ten stan odbiega od tzw. &#8222;nówki sztuki&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://konrad.bechler.pl/2010/02/check_update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS</title>
		<link>http://konrad.bechler.pl/2010/02/dlaczego-centos/</link>
		<comments>http://konrad.bechler.pl/2010/02/dlaczego-centos/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 12:42:04 +0000</pubDate>
		<dc:creator>konrad</dc:creator>
				<category><![CDATA[centos]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://konrad.bechler.pl/?p=26</guid>
		<description><![CDATA[Na początku znajomości z Linuksem, przez bardzo krótki czas, używałem RedHata. Wszystko niby działało, ale jakoś się nie polubiliśmy. Był, jak dla mnie, za bardzo rozbudowany, za bardzo niezrozumiały i stanowczo za bardzo obcy. Po przejrzeniu dostępnych wtedy dystrybucji zdobyłem Slackware&#8217;a. I został ze mną na wiele lat. Uważam, że jest to naprawdę świetna dystrybucji [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://centos.org"><img class="alignright size-full wp-image-25" src="http://konrad.bechler.pl/wp-content/uploads/2010/02/centos_logo.png" alt="" /></a>Na początku znajomości z Linuksem, przez bardzo krótki czas, używałem RedHata. Wszystko niby działało, ale jakoś się nie polubiliśmy. Był, jak dla mnie, za bardzo rozbudowany, za bardzo niezrozumiały i stanowczo za bardzo obcy. Po przejrzeniu dostępnych wtedy dystrybucji zdobyłem <a href="http://www.slackware.com">Slackware&#8217;a</a>. I został ze mną na wiele lat. Uważam, że jest to naprawdę świetna dystrybucji i podziwiam Patricka za to, co udało mu się osiągnąć.</p>
<p>Jednak Linux, jako system operacyjny w firmie, powinien posiadać kilka cech, których Slack&#8217;owi brakuje. Większość (jeżeli nie wszyscy) producentów oprogramowania dla firm wspiera tylko kilka konkretnych dystrybucji. Najczęściej lista taka zawiera trzy lub cztery pozycje, produkowane przez &#8222;dużych&#8221; i nie zawraca sobie głowy niczym, co powstaje w przysłowiowym &#8216;garażu&#8217;. No, może poza produktami Apple&#8217;a, ale Oni mają odrobinę większy garaż :-)</p>
<p>Dlaczego akurat CentOS? Bo jest to w zasadzie RedHat dostępny za darmo. Nie kojarzę programu napisanego dla Linuksa, który na liście wspieranych dystrybucji nie miałby RH. A CentOS to prawie to samo (i w tym wypadku nie robi aż tak dużej różnicy). Kompilowany jest z tych samych źródeł, więc jego pakiety są binarnie zgodne z tymi z Red Hata. A to oznacza, że możemy mieć całkiem niezłą i stabilną dystrybucję Linuksa klasy Enterprise bez płacenia.</p>
<p>Oczywiście, korzystając z CentOSa, nie mamy możliwości skorzystania z pomocy technicznej Red Hata ani kilku innych rzeczy, oferowanych przed producenta czerwonego kapelusza. Ale jeżeli są nam rzeczywiście potrzebne, to cena zakupu RH nie powinna być dla nas żadnym problemem.</p>
<p>Z drugiej strony, w CentOSie nie ma wszystkich możliwych programów w ich najnowszych wersjach. Jest to jednak cena, którą musimy zapłacić za naprawdę stabilne środowisko.</p>
<p>Od ponad roku używam na swoich maszynach wyłącznie opisywanej tu dystrybucji i, jak do tej pory, sprawuje się świetnie. Aktualizowanie systemu jest bezproblemowe. Nie zdarzają się właściwie problemy z niepoprawnych działaniem czegokolwiek po wykonaniu aktualizacji nawet tych bardziej wrażliwych części systemu. Co oczywiście nie oznacza, że na maszynach produkcyjnych możemy sobie tak po prostu zrobić update w dowolnej chwili! Takie rzeczy powinny być przemyślane bardzo dokładnie &#8211; tak na wszelki wypadek.</p>
<p>Właśnie, skoro przy bezpieczeństwie systemów jesteśmy&#8230;</p>
<p>Ludzie dzielą się na dwie grupy. Na tych, którzy robią backupy i na tych, którzy dopiero będą je robić. A Ty? Do której grupy należysz? :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://konrad.bechler.pl/2010/02/dlaczego-centos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

