Witam zainteresowanych tematem beta-testerów :) Nazwa IAT wzięła się od Integrated Administrator Tool(s), gdyż w przyszłości chcę, aby był to zestaw elastycznych skryptów, które każdy administrator mógłby dopasować do swoich potrzeb.

UWAGA: SKRYPTY W TEJ FAZIE NIE SĄ ZALECANE DLA POCZĄTKUJĄCYCH. JEŚLI NIE ZNASZ PERLA, PODSTAW PHP ORAZ LINUXA, RACZEJ NIE CZYTAJ DALEJ. CHYBA ŻE LUBISZ RYZYKOWAĆ ;-)

Zanim zaczniemy zabawę ze skryptami, trochę wprowadzenia od strony technicznej, żeby było wiadomo na czym stoimy:

1) skrypty były opracowywane dla systemu Linux (dystrybucja Slackware), więc część poleceń/ścieżek może się nieznacznie różnić. Docelowo howto będzie miało charakter uniwersalny, ale póki co jest on pod kątem wspomnianej dystrybucji.

2) wymagania (co nie znaczy, że inne wersje podanego oprogramowania nie zadziałają, przytaczam po prostu te elementy, na których IAT został uruchomiony i sprawdzony):

- sudo 1.6.6

- apache 2

- perl 5.8.4

- GNU awk 3.1.3

II. WSTĘPNA KONFIGURACJA

Założenia:

Serwer apache uruchomiony jest jako user: nobody group: zarzad.

Grupa zarzad ma GID=105

Serwer www nasłuchuje na porcie 222

Uruchomiony jest php jako moduł (Polecam stronę http://www10.brinkster.com/ssruprai/comphp.asp jednak proszę pamiętać, że apache kompilujemy zgodnie z opcjami podanymi poniżej)

Jeśli chcesz przyjąć inne wartości, pamiętaj o tym w dalszej części tekstu.

1) dodajemy uprzywilejowaną grupę, która będzie mogła wykonywać główny skrypt z uprawnieniami roota bez konieczności podawania hasła (w moim przypadku grupę nazwałem "zarzad"):

root@localhost# groupadd zarzad

(postępujemy wg. wyświetlanych wskazówek, i notujemy GID nowo stworzonej grupy.


root@localhost# visudo

Do pliku dodajemy linię (zakładam, że każdy zna edytor vi, jeśli nie - trzeba będzie dopisać instrukcję krok-po-kroku) PLIKU /etc/sudoers NIE WOLNO edytować innym programem niż visudo!!!!

%zarzad ALL=(ALL) NOPASSWD: /etc/users/odpalaj

po czym zapisujemy zmiany i opuszczamy visudo.

Teraz pozostaje dodać użytkownika nobody do grupy zarząd. Ja to zrobiłem przez edycję /etc/groups, ale chyba jest do tego gotowe polecenie ;-)

Problem uprzywilejowanej grupy rozwiązany, teraz przechodzimy do kompilacji apache'a.

2) Kompilacja apache'a

Apache'a kompilujemy z zestawem opcji (wartości zaznaczone na czerwono są odpowiednie dla mojego przypadku, więc mogą być różne w zależności od konfiguracji.):

root@localhost#./configure --enable-so --enable-suexec --with-suexec-caller=nobody --with-suexec-uidmin=99 --with-suexec-gidmin=105 --with-suexec-docroot=/

FIXME: nie pamiętam, czemu --with-suexec-uidmin=99, skoro nobody ma 98. Ale może to wina tego, że jest już późno w nocy i patrzę nie na te wartości co trzeba ;-)

Po czym tradycyjnie make i make install.

3) Uruchamianie.

Prawa dostępu:

/etc/users/ - 755

/etc/users/users i /etc/users/stowplaneta_users - 666

/etc/users/firewall.pl +x

/etc/users/odpalaj +x

Tak się jeszcze zastanawiam, co by tu napisać. Na pewno czeka Was modyfikacja przykładowych planszy, które załączyłem jako przykłady. Pewnie sporo pracy będzie przy modyfikacji źródeł. Zasada jest prosta, każdy plik musicie dokładnie oglądnąć i dopasować go do swojej konfiguracji. W przyszłości będzie to prostsze, gdyż będzie dostępnych tylko kilka opcji konfiguracyjnych w jednym pliku.

W załączeniu przesyłam również konfigurację mojego apacza. Jest to standardowy plik konfiguracyjny, wzbogacony o php, grupę zarzad oraz o sekcję Virtual Host (to ważne!!!, poza VH nie można wykonywać suexec!).

Dodatkowo pamiętajcie, aby w swoich firewallach (u mnie /etc/rc.d/rc.firewall) w odpowiednim momencie dopisać linię uruchamiającą skrypt /etc/users/firewall.pl która doda indywidualne regułki dla każdego użytkownika. Ważne jest też, aby w skryptach (np w firewallu właściwym) nie używać funkcji "echo", gdyż jej wyniki pokazują się w przeglądarce użytkownika.

Na koniec jeszcze prośba: nie zmieniajcie struktury plików, tylko dane w nich zawarte. Chcę zachować spójność, żeby np. nie było takiej sytuacji, że każdy zaczyna rozwijać skrypty tylko dla siebie. Zaproponujcie rozwiązania, a wprowadzimy je wspólnie, tak żeby wszyscy mieli dostęp do najnowszych dodatków.

Zasada jest taka: potestujcie, posprawdzajcie, zmiany zgłaszajcie na forum lub na adres kapa[at]GLUPISMAPpf.pl (oczywiscie bez GLUPISPAM)

TODO:

- może jakiś ogólny, dobry i łatwy firewall do wykorzystania na serwer

- przygotowanie kilku najpopularniejszych plansz, żeby użytkownik tylko wstawiał 0,1,2,3 lub 4 w liście użytkowników

- dopisanie tworzenia pliku /etc/ethers i /etc/hosts

- zaproponuj coś! :)

Plik do sciągnięcia znajduje się
IATv0.1beta.rar : Download Plik został ściągnięty 1503 razy (41.60 kB)

Życzę miłej zabawy!

Łukasz Kłapa