(Pluggable Authentication Modules). Wyjaśnienie technologii.



Podobne dokumenty
Systemy Operacyjne: Pluggable Authentication Modules

Wykorzystanie systemu PAM w GNU/Linuksie

auth required pam_env.so auth required pam_unix.so try_first_pass likeauth nullok

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Samba serwer plików i drukarek. Rafał Szcześniak <mimir@samba.org> The Samba Team. Prosze pytać w każdej chwili

Artykuł jest skierowany przede wszystkim

UNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Zawartość. 1. Doładowanie konta na stronie gsmservice.pl

Sieciowa instalacja Sekafi 3 SQL

Graficzny terminal sieciowy ABA-X3. część druga. Podstawowa konfiguracja terminala

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

Programowanie w Sieci Internet Python - c. d. Kraków, 28 listopada 2014 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Spis treści. O autorze 13 Przedmowa 15 Wprowadzenie 17

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Jednolite zarządzanie użytkownikami systemów Windows i Linux

Instalacja i konfiguracja serwera SSH.

2. Informacje o mechanizmie limitów

SoftVig Systemy Informatyczne Sp. z o.o. Szczecin , ul. Cyfrowa 4

Instrukcja konfiguracji funkcji skanowania

Gatesms.eu Mobilne Rozwiązania dla biznesu

Laboratorium Ericsson HIS NAE SR-16

Zarządzanie Infrastrukturą IT. Jak ręcznie utworzyć instancję EAUDYTORINSTANCE na SQL Serwerze

Praca zdalna z poziomu systemu Linux

Serwery LDAP w środowisku produktów w Oracle

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład VII

Podręcznik Integracji

Użytkownicy I. Użytkownik. Głównym celem istnienia użytkowników i grup w systemie jest utrzymanie porządku i separacja uprawnień.

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Wykaz zmian w programie WinAdmin Replikator

- udostępnić anonimowym użytkownikowi Internetu pliki przez serwer FTP,

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Praca w sieci z serwerem

Jednym z najważniejszych zagadnień, z którym może się zetknąć twórca

Bezpieczeństwo systemów komputerowych

Instrukcja instalacji Control Expert 3.0

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Instytut Fizyki

Kontrola dostępu w ASP.NET

INSTRUKCJA OBSŁUGI DLA SIECI

Finanse VULCAN. Jednostki dodaje i konfiguruje administrator główny platformy (w aplikacji Zarządzanie platformą).

KONFIGURACJA TERMINALA GPON ONT HG8245

Zawartość. 1. Rejestracja na stronie promosms.pl

PowerShell Remoting. Jerzy Mikołajczak. Nowoczesne technologie bliżej nas Poznań,

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

Microsoft Exchange Server 2013

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Projektowani Systemów Inf.

Praktyczne wykorzystanie mechanizmów zabezpieczeń w aplikacjach chmurowych na przykładzie MS Azure

Aplikacje www laboratorium

Przesłanki powstania książki... xvi Dla kogo przeznaczona jest ta książka?... xvi Co znajdziemy wewnątrz książki?... xvii

Enova.Loyalty Program lojalnościowy

Biuletyn techniczny. CDN OPT!MA 12.0 Drukarki fiskalne w usługach terminalowych. Copyright 2007 COMARCH SA

Integracja komunikatora opartego o protokół XMPP z dużym portalem internetowym

4. Podstawowa konfiguracja

DLA DREAMBOX & FLASHWIZARD

Jak skonfigurować bezpieczną sieć bezprzewodową w oparciu o serwer RADIUS i urządzenia ZyXEL wspierające standard 802.1x?

Instrukcja logowania do systemu Rejestru Unii dla nowych użytkowników

Tomasz Greszata - Koszalin

Wdrożenie modułu płatności eservice dla systemu PrestaShop

JPK Jednolity Plik Kontrolny.

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym SoteShop 7 (plugin dostępny w wersji ecommerce)

E-commerce. Genialnie proste tworzenie serwisów w PHP i MySQL.

TRX API opis funkcji interfejsu

PANEL ADMINISTRACYJNY SPRZEDAWCY SZYBKI START

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http.

Dokumentacja panelu Klienta

Monitorowanie i zarządzanie urządzeniami sieciowymi przy pomocy narzędzi Net-SNMP

POLITYKA PRYWATNOŚCI SERWIS:

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Shoper (plugin dostępny w wersji ecommerce)

Silent setup SAS Enterprise Guide (v 3.x)

KOŁO NAUKOWE INFORMATYKÓW SYSTEMY KONTROLI WERSJI CZ.1 16 XII 2009 OPRACOWAŁ: PRZEMYSŁAW PARDEL

Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX

Wdrożenie modułu płatności eservice. dla systemu PrestaShop

Programowanie Komponentowe WebAPI

Współpraca z platformą Emp@tia. dokumentacja techniczna

Modelowanie i analiza systemów informatycznych Spis treści

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3

Specyfikacja interfejsów usług Jednolitego Pliku Kontrolnego

Serwery autentykacji w sieciach komputerowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

MEDIS_EWUS_AUTOMAT SYSTEM KS MEDIS: AUTOMAT EWUŚ Wydanie: 1.0 Data wydania: Marzec 2013 Strona/stron: 1/5

Dokumentacja techniczna API systemu SimPay.pl

Dodawanie nowego abonenta VOIP na serwerze Platan Libra

Projektowanie i implementacja infrastruktury serwerów

Fiery Remote Scan. Łączenie z serwerami Fiery servers. Łączenie z serwerem Fiery server przy pierwszym użyciu

Od Wydawcy Krzywe eliptyczne w kryptografii Wykorzystanie pakietu SAGE... 9

Spis treści. Od Wydawcy

Ustawienia personalne

Instrukcja instalacji środowiska testowego systemu Uczelnia XP

Dokumentacja SMS przez FTP

Bezpieczeństwo aplikacji internetowych. Rozwój napędzany potrzebą WALLF Web Gateway. Leszek Miś, RHCA,RHCSS,Sec+ Linux Polska Sp. z o.o.

Projekt wymagań bezpieczeństwa wobec statycznych bezpośrednich 1-fazowych i 3- fazowych liczników energii elektrycznej:

Instrukcja pozyskania identyfikatora - UID

INTERNET - Wrocław Usługi bezpieczeństwa w rozproszonych strukturach obliczeniowych typu grid

VPN Virtual Private Network. Użycie certyfikatów niekwalifikowanych w sieciach VPN. wersja 1.1 UNIZETO TECHNOLOGIES SA

Dokumentacja panelu Klienta

Transkrypt:

Bezpieczeństwo systemów komputerowych. Temat seminarium: Moduły PAM (Pluggable Authentication Modules). Wyjaśnienie technologii Autor: Bartosz Hetmański Moduły PAM (Pluggable Authentication Modules). Wyjaśnienie technologii. 1

Plan prezentacji Co to jest PAM? architektura cel implementacji PAM Konfiguracja pliki konfiguracyjne funkcje grupowanie modułów mapowanie haseł domyślna polityka Podsumowanie 2

Co to jest PAM? Dynamiczne moduły uwierzytelniające ang. Pluggable Authentication Modules (PAM) to zestaw bibliotek współdzielonych, które umożliwiają administratorowi systemu wybór spobu w jaki aplikacje uwierzytelniają urzytkowników [7] 3

Sytuacja przed PAM Każdy program we własnym kodzie implementuje uwierzytelnianie 4

Wady starego podejścia wszystkie aspekty związane z usługami dostępu do systemu (uwierzytelnianie, zarządzanie kontem, sesją i hasłami) zaszyte w kodzie aplikacji kłopot z integracją wielu usług uwierzytelniających oraz dodawaniem nowych różne aplikacje mogą mieć różne wymagania co do uwierzytelniania 5

Architektura PAM 6

Architektura PAM podstawowy komponent interfejs programisty biblioteki uwierzytelniającej (PAM API) aplikacja żądająca uwierzytelnienia korzysta z API PAM PAM API ładuje odpowiedni moduł, zgodnie z ustawieniami w pliku konfiguracyjnym żądanie klienta jest przekazywane do tego modułu który przeprowadza specyficzne dla niego operacje rezultat jest przekazywany z powrotem aplikacji 7

Cele które przyświecały twórcom PAM administrator systemu powinien mieć możliwość wyboru domyślnego mechanizmu uwierzytelniania dla danej maszyny (od prostych haseł poprzez biometrię do kart elektronicznych) mechanizmy uwierzytelniania powinny mieć możliwość konfiguracji z uwzględnieniem potrzeb poszczególnych aplikacji (np. hasła jednorazowe dla dostępu zdalnego, tradycyjne hasła dla lokalnego logowania) możliwość stosowania jednocześnie wielu protokołów uwierzytelniania, konfigurowane zależnie od aplikacji umożliwienie uwierzytelniania wszystkimi sposobami bez potrzeby ponownego podawania hasła (wygoda użytkownika) interfejs programisty nie ulega zmianie, gdy zamieniane są wewnętrzne mechanizmy sprawdzania tożsamości (nie trzeba posiadać źródeł programów aby zmienić schemat uwierzytelniania) 8

Konfiguracja Pliki konfiguracyjne łączą aplikacje (usługi) i moduły PAM które dokonują uwierzytelniania. Położenie plików konfiguracyjnych Solaris: Linux: /etc/pam.conf /etc/pam.d/<app_name> Położenie modułów: Solaris: /usr/lib/security Linux: /lib/security Właścicielem modułu musi być root Inaczej moduł nie zadziała 9

Format pliku konfiguracyjnego Linux: auth required /usr/lib/security/pam_unix.so.1 debug (module type) (control flag) (module path) (options) Solaris: login auth required pam_unix.so.1 debug (service name) (module type) (control flag) (module path) (options) Moduł może znajdować się w dowolnym katalogu, podajemy wtedy ścieżkę bezwzględną. Ścieżki względne moduł będzie poszukiwany w katalogu domyślnym 10

Funkcje Zarządzanie: uwierzytelnianiem: potwierdzenie tożsamości podmiotu kontem (account management): sprawdzenie, czy użytkownik powinien otrzymać dostęp do konta, może implementować wygasanie konta, ograniczenia godzin w których możliwy jest dostęp do konta sesją (session management): funkcje do zarządzania sesją i rozliczeń, np. ustanawianie limitów na zasoby, ustalanie czasu trwania sesji hasłem (password management): zmiana, sprawdzanie poprawności (czy podobne do poprzedniego itp. cracklib) 11

Grupowanie modułów (stacking) Pozwala zrealizować uwierzytelnianie za pomocą wielu mechanizmów (modułów). Linux: /etc/pam.d/su auth sufficient pam_wheel.so trust auth required pam_wheel.so deny group=nosu auth sufficient pam_rootok.so Poprzez umieszczenie odpowiednich wpisów można sprawić, ze będzie wywołanych wiele mechanizmów uwierzytelniających w odpowiedniej kolejności. Jeżeli któryś z procesów uwierzytelniania się nie powiedzie, control_flag decyduje który błąd zwrócić do użytkownika. 12

Grupowanie modułów znaczenie flag kontrolnych required: ustawiane gdy poprawne uwierzytelnienie dla tego modułu jest konieczne. kod błędu jest zwracany aplikacji po wykonaniu wszystkich innych modułów z danego stosu. Aby funkcja się powiodła, wszystkie moduły w stosie, oznaczone jako required muszą zakończyć swoje zadania sukcesem. requisite: poprawne uwierzytelnienie dla tak oznaczonego modułu jest konieczne. W przypadku porażki kod błędu jest przekazywany aplikacji od razu, kolejne moduły nie są wykonywane. optional: użytkownik może uzyskać dostęp, nawet jak tak oznaczony moduł zakończy się niepowodzeniem. sufficient: używany w przypadku, gdy powodzenie tego modułu wystarczało do zakończenia uwierzytelniania sukcesem. Wszystkie moduły po tak oznaczonym module, w przypadku sukcesu, s± pomijane (nawet required i requisite). W przypadku niepowodzenia moduły sufficient traktowane s± jak optional. 13

/Solaris/ Grupowanie modułów przykład Service Module_type Control_flag Module_path Options login auth required pam_kerb_auth.so debug login auth required pam_unix_auth.so use_mapped_pass login auth optional pam_rsa_auth.so try_first_pass uwierzytelnianie kerberos oraz unix musi się zakończyć się powodzeniem uwierzytelnianie opcjonalne RSA może się nie powieść 14

Mapowanie haseł Wiele mechanizmów uwierzytelniania dostępnych na danej maszynie. Użytkownik musi pamiętać wiele haseł? Standard przewiduje wykorzystanie mapowania haseł pozwala posiadać różne hasła dla każdego z mechanizmów master password używane do ochrony pozostałych haseł (secondary passwords) 15

Parametry mapowania haseł Podajemy jako parametr modułu. Parametry: use_first_pass użyj tego samego hasła jakie zostało uzyskane w pierwszym module; nie pytaj o hasło ponownie jeżeli nie możesz uwierzytelnić za jego pomocą try_first_pass jak wyżej, z tym, że w przypadku niepowodzenia zapytaj o hasło ponownie use_mapped_pass użyj mapowania haseł aby uzyskać bieżące hasło dla tego modułu; nie pytaj o hasło użytkownika gdy uwierzytelnianie się nie powiedzie try_mapped_pass - jak poprzednie, z wyjątkiem, że zostanie wysłane zapytanie o hasło w przypadku niepowodzenia hasła uzyskanego za pomocą mapowania 16

Domyślna polityka Konfiguracja other W przypadku, gdy nie ma pliku konfiguracyjnego dla danego serwisu wykonywane są domyślnie akcje z serwisu oznaczonego jako other. domyślna zawartość pliku /etc/pam.d/other (Linux) auth required pam_unix.so account required pam_unix.so password required pam_unix.so session required pam_unix.so zalecana auth required pam_deny.so auth required pam_warn.so account required pam_deny.so account required pam_warn.so password required pam_deny.so password required pam_warn.so session required pam_deny.so session required pam_warn.so 17

Podsumowanie: Zalety: Elastyczność Łatwo wprowadzać zmiany, dodawać nowe mechanizmy uwierzytelniające, poprawiać usterki (nie trzeba zmieniać wszystkich programów, tylko wadliwy moduł) Standard RFC-86.0 przenośność 18

Podsumowanie: Wady: Błąd w jednym module rzutuje na wszystkie aplikacje z niego korzystające, zaufanie do dostawców modułów Trudność w administracji, błędy konfiguracji przenosz ą si ę od razu na wszystkie aplikacje korzystające z danej usługi uwierzytelniającej 19

Literatura [1] Solaris PAM Documentation, wwws.sun.com/software/solaris/pam/ [2] V.Samar, C.Lai, Making Login Services Independent of Authentication Technologies, SunSoft, Inc. http://wwws.sun.com/software/solaris/pam/pam.external.pdf [3] J.Rauch, FOCUS on Sun and Linux: Pluggable Authentication Modules, Part I, http://www.securityfocus.com/infocus/1389, may 2000 [4] Linux-PAM, www.kernel.org/pub/linux/libs/pam/ [5] N.Matthew, R.Stones, Zaawansowane programowanie w systemie Linux, Helion 2000 [6] D.E.Smorgrav, Pluggable Authentication Modules, http://www.freebsd.org/doc/en_us.iso8859-1/articles/pam/, 2001 Networks Associates Technology, Inc. [7] A.G.Morgan, The Linux-PAM System Administrators' Guide, www.kernel.org/pub/linux/libs/pam/linux-pam-html/pam.html 20

Dziękuję za uwagę 21