|
wersja 0.1 |
|
Spis treści |
1. Krótki wstęp 2. Ściągamy potrzebny soft 3. Instalacja 4. Już ? Posłowie |
| 1. Krótki wstęp |
Dokument ten opisuje jak zainstalować PAM (Pluggable Authentication Module) na Slacku. Na swoich Linuxach nie korzystam z tego i jest mi z tym dobrze... Któregoś razu musiałem autoryzować userów w oparciu o LDAP i PAM stał się niezbędny. Większość Linuxów posiada PAM (np. RedHat, Mandrake). Slack tego nie ma (nawet w planach). A ponieważ w Necie znalazłem niewiele - postanowiłem napisać toto żeby następnym razem nie pieprzyć się w składanie kilku dokumentów do kupy i eksperymenty. Jeśli to czytasz - masz Slacka i musisz na nim zainstalować PAM. Co więcej - wiesz do czego jest on Tobie potrzebny. PAM to nie zabawka i można nieźle namieszać. Ten dokument opisuje instalację PAM. Konfiguracja poszczególnych serwerów czy modułów to już nie moja brocha - jest na ten temat wystarczająca dokumentacja w Sieci. Nie jestem dzisiaj w nastroju do pisania więc wybacz - ograniczę się do konkretów. |
| 2. Ściągamy potrzebny soft |
Przygotuj się na pobranie 2,5 mega. Ściągamy ostatnie wersje kodów źródłowych. W nawiasach podaję wersje z których korzystałem w czasie instalacji PAM na Slacku 9.1: Linux-PAM (0.77) util-linux (2.11z) shadow (4.0.3) Nie muszę pisać jest to wszystko dość ryzykowne - można spaprać sobie cały system. Najlepiej dorwij jakiegoś peceta, zainstaluj sobie na nim tą samą wersję Linuxa jaką masz na serwerze docelowym, po instalacji PAM odpowiednio skonfiguruj odpowiednie serwery, testuj, testuj, testuj, zrób backup i dopiero bierz się za sedno sprawy. Powodzenia. |
| 3. Instalacja |
Najpierw zabieramy się za Linux-PAM. Żadnych rewelacji, po rozpakowaniu softu "klasyka": ./configure make make install Utworzonych zostało kilka katalogów (/lib/security, /usr/include/security, /etc/security). Mamy więc biblioteki i pliki nagłówkowe, moduły PAM oraz przykładowe konfigi dla nich. Wszystko co potrzebne już jest - tylko, że nie działa (zupełnie jak pod Windows). Jedziemy dalej: util-linux. Przy okazji uaktualnimy sobie trochę softu :) Wrzuć do jakiegoś edytora plik MCONFIG i ustaw jedną z pierwszych linijek na HAVE_PAM=yes. Potem standardowo: ./configure make make install Na koniec zostawiliśmy sobie shadow. Po rozpakowaniu jedziemy: ./configure --with-libpam make make install Lepiej, żeby teraz nie siadł prąd. Potrzebujemy plik konfiguracyjny /etc/pam.conf. Przykładowy dołączony jest w kodzie "Linux-PAM", w katalogu "conf". Możesz go skopiować i zacząć zabawę. W tym momencie powinieneś zacząć szukać w Necie czegoś na temat konfiguracji PAM, czegoś na temat modułów. Ponieważ cała ta zabawa może trochę się przeciągnąć, poniżej załączam pam.conf, który powinien być o.k. dla podstawowego systemu. Możesz go pobrać stąd i zapisać jako /etc/pam.conf. A tutaj plik żywcem dla "klikaczy kopiująco - wklejających": # ---------------------------------------------------------------------------# # /etc/pam.conf by Henryk Liniowski (http://linio.terramail.pl) # # ---------------------------------------------------------------------------# chfn auth required pam_unix.so chfn account required pam_unix.so chfn password required pam_unix.so shadow md5 use_authtok # chsh auth required pam_unix.so chsh account required pam_unix.so chsh password required pam_unix.so shadow md5 use_authtok # login auth requisite pam_securetty.so login auth required pam_unix.so login auth required pam_nologin.so login account requisite pam_time.so login account required pam_unix.so login password required pam_unix.so shadow md5 use_authtok login session required pam_unix.so login session required pam_limits.so # passwd password required pam_unix.so shadow md5 # # su auth required pam_wheel.so su auth sufficient pam_rootok.so su auth required pam_unix.so su account required pam_unix.so su session required pam_unix.so su password required pam_unix.so shadow md5 use_authtok # sshd auth required pam_unix.so shadow nodelay use_first_pass sshd auth required pam_nologin.so sshd auth required pam_shells.so sshd account required pam_unix.so sshd account requisite pam_time.so sshd password required pam_unix.so shadow use_authtok sshd session required pam_unix.so sshd session required pam_limits.so # shadow auth sufficient pam_rootok.so shadow account required pam_permit.so shadow password required pam_permit.so shadow session required pam_deny.so # useradd auth required pam_rootok.so useradd account required pam_permit.so useradd password required pam_permit.so useradd session required pam_deny.so # userdel auth required pam_rootok.so userdel account required pam_permit.so userdel password required pam_permit.so userdel session required pam_deny.so # usermod auth required pam_rootok.so usermod account required pam_permit.so usermod password required pam_permit.so usermod session required pam_deny.so # groupadd auth required pam_rootok.so groupadd account required pam_permit.so groupadd password required pam_permit.so groupadd session required pam_deny.so # groupdel auth required pam_rootok.so groupdel account required pam_permit.so groupdel password required pam_permit.so groupdel session required pam_deny.so # groupmod auth required pam_rootok.so groupmod account required pam_permit.so groupmod password required pam_permit.so groupmod session required pam_deny.so # newusers auth required pam_rootok.so newusers account required pam_permit.so newusers password required pam_permit.so newusers session required pam_deny.so # chpasswd auth required pam_rootok.so chpasswd account required pam_permit.so chpasswd password required pam_permit.so chpasswd session required pam_deny.so # chage auth sufficient pam_rootok.so chage auth required pam_unix.so chage account required pam_unix.so chage password required pam_permit.so chage session required pam_deny.so # other auth required pam_deny.so other auth required pam_warn.so other account required pam_deny.so other password required pam_deny.so other password required pam_warn.so other session required pam_deny.so Teraz, powinieneś spróbować zalogować się na jakiegoś użytkownika a w logach zobaczyć ".... login(pam_unix) .... session opened ....". Jeśli nie możesz zalogować się na nikogo - nie rebootuj komputera tylko sprawdź wszystko po kolei raz jeszcze. Ponieważ nie używam X-ów, nie wiem czy będzie możliwe zalogowanie się do kompa w okienkach. Jeśli nie - wyczaj co dopisać do pam.conf żeby było to możliwe i podeślij mi info. |
| 4. Już ? |
Co by tu dużo pisać... Wyczajenie o co chodzi z PAM jest chyba tylko kwestią czasu. Nie jest to raczej zbyt ciekawe ale może być praktyczne. Jeśli znajdziesz w moim pam.conf jakiegoś buga - napisz. Nie miałem zbyt wielu okazji się tym bawić więc może coś ciekawego pominąłem. Ważna uwaga na koniec: od tej pory jeśli chcesz kompilować soft (np. ftp czy pop3) i używać PAM będziesz musiał do configure dorzucić opcję dotyczącą PAM. Najlepiej wyczaić ją tak: "./configure --help |grep [pP][aA][mM]". Takie opcje znajdują się w OpenSSH, Proftpd i większości POPów. |
| Posłowie |
Jest to pierwsza wersja tego dokumentu i zawiera pewnie jakieś błędy/niedoróbki/potknięcia itp. Będę bardzo wdzięczny za wszelkie uwagi, komentarze, poprawki, wyrazy wdzięczności. Z góry przepraszam za powyższe i mam nadzieję, że będziecie mnie informować w których miejscach coś nie gra. Jako (częściowe) wytłumaczenie przedstawiam fakt, że większość tej pracy powstawała w późnych godzinach nocnych. Ostatnia wersja tego dokumentu znajduje się pod niżej wymienionym adresem. Kontakt ze mną: linio@terramail.pl Wesprzyj finansowo autora - kliknij tutaj |
|
=============================== Henryk Liniowski, Poznań 2004 http://linio.terramail.pl =============================== |