Archive for the 'Operating Systems' Category

Kerberos described

poniedziałek, maj 26th, 2008 by Paweł Rutkowski

While having chit-chap with one of my friends about restricting access for certain user in distributed enviroment he pointed out Kerberos. I’ve always find Kerberos protocol hard to present, but my friend came with great page describing it in very nice way. It’s pretty high level, story based overview, with explenation why such mechanisms were implemented in that protocol. If you would like to better understand Kerberos protocol - please Read it here.

G33 on Gigabyte…

sobota, kwiecień 19th, 2008 by Paweł Rutkowski

Small update on previous note. I’ve putted GIGABYTE GA-G33M-S2 IG33 S775, 4GB RAM with additional Intel PRO/1000 ethernet on production. It’s running pretty stable on FreeBSD 7-PRERELEASE (i know i should update it), without any slowdowns with 3 jails running and OpenBGPd with 4 peers on it. But there always have to be a “but”.

(more…)

Intel G33 performance problems

poniedziałek, luty 4th, 2008 by Paweł Rutkowski

Foreword

I’m thinking about switch blog language to english. I think all audience interested in topics mentioned on my blog already is “english-enabled” and maybe there is even more who doesn’t speak polish. This entry is first try to switch, since there is only little information about Intel G33 boards performance stuff - and i want to warn everyone who may want to buy that board.

Long story short…

With a little retrospect - Intel motherboard G33 (DG33BU) is not able to handle 4GB or more in real world - specification says it’s handling 8GB.

Hardware i’ve used:

  • Motherboard Intel G33 (DG33BU)
  • 4GB RAM 667
  • Intel Core2Duo CPU 4400 @ 2.00GHz BUS: 1333MHz
  • 2 x WD Caviar 320GB SATA (WDC WD3200YS)

(more…)

Wykład na FreeCON 2007

piątek, marzec 16th, 2007 by Paweł Rutkowski

21-22 kwietnia 2007 odbędzie się konferencja FreeCON. Będę miał przyjemność opowiedzieć na niej o hostingu aplikacji RoR i jak to wygląda w porównaniu do PHP. Jak zwykle materiały z konferencji pojawią się w dziale prezentacje. Zapraszam.

Wykład na MeetBSD - BGP - Praktyczny poradnik migracyjny

niedziela, listopad 26th, 2006 by Paweł Rutkowski

W weekend miała miejsce kolejna edycja konferencji MeetBSD poświęconej systemom z rodziny *BSD. Dzięki zaproszeniu organizatorów miałem szansę poprowadzić wykład pod tytułem “BGP - praktyczny poradnik migracyjny”.

Podczas wykładu poruszyłem następujące kwestie:

  • co to jest BGP i kiedy jest on używany
  • kiedy rozważyć zmianę jednego łącza na kilka innych z użyciem BGP
  • Jak się przygotować do zmiany i jakie formalności należy załatwić
  • Konfiguracja OpenBGPd

Jak zwykle po konferencji, prezentacje możecie sciągnąć tutaj

Jakie problemy stwarzają Access Control List (ACL) w systemach operacyjnych ?

niedziela, maj 7th, 2006 by Paweł Rutkowski

ACL - co to jest

W systemach uniksowych / linuksowych prawa dostępu do pliku czy katalogu są podzielone na 3 kategorie:

  • Właściciel pliku/katalogu
  • Grupa
  • Pozostali

Każdej z tych kategorii można przypisać tylko 3 prawa dostępu:

  • odczyt
  • zapis
  • wykonywanie

Jak widać system ten jest prosty - wręcz bardzo prosty. Pomimo tego że takie było założenie, aby prawa dostępu były proste (co ułatwiało audyt, czyli sprawdzenie ich poprawności), obecnie w wielu sytuacjach są one nie wystarczające, lub też znacznie komplikujące życie.

Zalety ACL

Naszczęście zauważono iż taki system w niektórych zastosowaniach jest niewystarczający i powstał standart POSIX.1e określający mechanizm ACL - Access Control List. Pozwala on na przypisanie wielu użytkowników lub grup do danego pliku/katalogu i określenie odzielnych uprawnień dla każego z nich. Dzięki temu administrator czy użytkownik nie są ograniczeni do trzech podstawowych kategorii. Pozwala to na lepsze zarządzanie uprawnieniami.

Weźmy przykładowo taki plik:

-rw-r-----  1 userblog  groupblog  976 May  7 17:39 plik

Jego właścicielem jest użytkownik userblog, przypisana do niego grupa to groupblog, rozmiar pliku wynosi 976 bajtów i został utworzony 7 maja o 17:39. Uprawnienia dla właściciela pliku (rw-) pozwalają na jego odczyt i zapis, zaś grupa (r–) może tylko odczytać ten plik. Pozostali użytkownicy (—) nie mają żadnych praw do niego.

Gdyby użytkownik userblog chciał nadać prawa użytkownikowi alfa do odczytu i zapisu a użytkownikowi beta do odczytu i wykonywania a cały czas uniemożliwić innym użykownikom dostęp do pliku - było by to nie możliwe. W przypadku nadania odpowiednich ACL listing tego pliku się odrobine zmieni:

-rw-r-----+  1 userblog  groupblog  976 May  7 17:39 plik

Zwróć uwagę na plus pojawiający się po uprawnieniach - oznacza on że plik ma zdefiniowaną ACL. Oto jak ona wygląda:

#file:plik
#owner:userblog
#group:groupblog
user::rw-
user:alfa:rw-
user:beta:r-x
group::r--
other::---

Jak widać pojawiły się wpisy dotyczące nowych użytkowników. Gdyby nie ACL taki problem byłby nie do obejścia.

Access Control List niosą ze sobą jednak pewne problemy.

Problemy związane z wykorzystaniem ACL

Pierwszym i podstawowym problemem związanym z Access Listami jest backup. Nie wszystkie narzędzia kopiują je poprawnie - chociażby podstawowy GNU tar. Powoduje to iż dane zarchiwizowane narzędziem które nie sprawdza ACL po odzyskaniu nie będą ich zawierać. Może to skutecznie utrudnić życie administratorom systemów, jeżeli będą chcieli je odzyskać “empirycznie”. Jeżeli chodzi o narzędzia które obsługują ACL to polecam: Rdiff-backup, dump, star (S tar)

Drugim problemem jest wcześniej wspomniany audyt uprawnień. Access Control List pozwalają na praktycznie dowolne definiowanie list dostępu. Ponieważ nie są one wyświetlane w standardowym listingu katalogu, łatwo je pominąć co może prowadzić do ujawnienia danych. Dodatkowo standart POSIX.1e wspiera tzn dziedziczenie uprawnień czyli ich przejmowanie z nadrzędnych katalogów, co może utrudnić ich sprawdzenie.

Trzeci problem to sposób pisania oprogramowania. Wielu programistów zamiast spróbować zapisać plik, najpierw sprawdza uprawnienia ręcznie. Stwarza to sytuację w której plik może być udostępniony do zapisu poprzez Access Liste natomiast jego natywne uprawnienia na to nie pozwalają. Jeżeli programista ręcznie sprawdza (po prawach uniksowych) czy plik można zapisać okaże się że nie, podczas gdy fizycznie jest to możliwe. O ile w przypadku własnych programów łatwo można je przerobić o tyle aplikacje zewnętrzne mogą wymagać dużych patchy.

Czwartym problemem jest dostępność obsługi ACLi. O ile są one dostępne na Linuksie, FreeBSD czy Solarisie to w innych systemach może ona nie być wprowadzona. Trzeba to wziąć pod uwagę projektując systemy multiplatformowe.

Wnioski

Osobiście testowałem ACL na FreeBSD 5.x oraz FreeBSD 6.x (na systemie plików UFS2 ). Znacznie on uprościł implementacje kilku funkcji, ponieważ mogliśmy udostępnić zapis czy odczyt różnych plików bez uciekania się do trików z sudo czy natywnymi modułami kernela modyfikującymi kontrolę dostępu (jednym z takich modułów jest dazuko).

Jedyny problem jaki się pojawił to archiwizacja - gdyby nie jeden z administratorów który ucześniczył w projekcie nie zapytał:

Czy jesteś pewien że dodatkowe atrybuty filesystemu lądują w zwykłym tarze ?

to pewnie do dziś byśmy spokojnie spali w przeświadczeniu że kopia zapasowa danych jest kompletna.

Jest to napewno mechanizm który warto poznać. Czy używać ? Moim zdaniem tak, jednak należy się nauczyć zwracać uwagę na “+” przy listowaniu katalogu i sprawdzić czy Twoje narzędzia do archiwizacji danych obsługują ACLe.