Administracja systemami operacyjnymi Wiosna 2014

Slides:



Advertisements
Podobne prezentacje
Zastosowanie LDAP w obsłudze katalogów bibliotecznych
Advertisements

K orzystanie z ogólnodostępnej wersji internetowej.
Kamil Smitkiewicz Bezpieczeństwo w PHP.
PHP + MySQL część II.
Uwierzytelnianie i autoryzacja dostępu do portali
SIECI KOMPUTEROWE (SieKom) PIOTR MAJCHER WYŻSZA SZKOŁA ZARZĄDZANIA I MARKETINGU W SOCHACZEWIE Zarządzanie.
MS Access 2000 Tworzenie bazy danych Piotr Górczyński 2005.
Metody autoryzacji użytkowników wymaga integracji z systemem operacyjnym nie wymaga logowania mała pewność mechanizmu wymaga logowania duża pewność mechanizmu.
Obsługa serwera zdalnego przez klienta FTP
Paweł Rajba Kurs WWW – wykład 10 Paweł Rajba
Proxy WWW cache Prowadzący: mgr Marek Kopel
Longhorn - Usługi terminalowe
Uniform Resource Locators
Programowanie wizualne PW – LAB5 Wojciech Pieprzyca.
Artur Szmigiel Paweł Zarębski Kl. III i
Bezpieczeństwo danych
Systemy zarządzania treścią CMS
1 Podstawy informatyki H. P. Janecki- 2006_ Systemy Operacyjne W6.
Technologie informacyjne MCE Pudełko. Zakładanie strony internetowej Technologie informacyjne Marek Pudełko.
Konfiguracja polcenie SUDO
Bezpieczeństwo baz danych
USŁUGA FTP 1. Definicja FTP. FTP (File Transfer Protocol, ang. protokół transmisji plików) jest protokołem typu klient-serwer, który umożliwia przesyłanie.
PRACA W DOMENIE Różnice użytkowe między pracą w domenie i grupie roboczej. 1. Ekran logowania. - wciśnięcie klawiszy [Ctrl+Alt+Delete], a następnie podanie.
SIEĆ P2P 1. Definicja sieci równouprawnionej. To taka sieć, która składa się z komputerów o takim samym priorytecie ważności, a każdy z nich może pełnić.
Błażej Miśkiewicz Grupa domowa w Windows 7 Błażej Miśkiewicz MCT MCP MCSA MCTS MCITP.
MySQL – ODBC - ACCESS.
Konfiguracja kont w programie Adobe Dreamweaver
Zarządzanie użytkownikami i praca w sieci lokalnej
Adrian Bukowski Dolnośląskie Centrum Rozwoju Lokalnego.
Tworzenie nowych kont lokalnych i domenowych, oraz zarządzanie nimi
Linux - polecenia.
Użytkownicy i przywileje Sesja - przykład Błędy Komunikacja międzyskryptowa Wykład 83PD Technologie internetowe.
Prezentacja i szkolenie
Sieci komputerowe.
Sieciowe Systemy Operacyjne
SQL - Structured Query Language
Administracja serwerami sieciowymi Linux Serwer FTP
Tworzenie Aplikacji Internetowych dr Wojciech M. Gańcza 3.
Jak zacząć w MS SQL? USE master; GO IF DB_ID (Nbaza') IS NOT NULL DROP DATABASE baza; GO CREATE DATABASE baza; GO USE baza; GO.
Sieć oparta o serwer Ubuntu 12.10
Linux w sieci Konfigurowanie interfejsu sieciowego.
Komendy SQL do pracy z tabelami i bazami
Temat: Poczta elektroniczna ( )
Rozdział V: Globalne sieci komputerowe
Autor: Marta Pelczar. PHP:  Najprostszą drogą, by uruchomić serwer internetowy na własnym domowym komputerze jest skorzystanie z programu XAMPP.
Narzędzia klienta usługi archiwizacji Warsztaty „Usługa powszechnej archiwizacji” Michał Białoskórski, CI TASK Bartłomiej Balcerek, WCSS.
Umieszczenie gotowej strony w sieci
Temat 2: Instalacja Apache, PHP i bazy danych MySQL.
Toruń 28/ Shibboleth SP działa z poziomu serwera HTTP, jest niezależny od języka programowania, pozwala zintegrować dowolną aplikację ze środowiskiem.
1 SBD, L.Banachowski Zaawansowane cechy SQL Powtórzenie wyk ł adu 5.
Administracja systemami operacyjnymi Wiosna 2015 Wykład 1 Organizacja zajęć dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki
Konfiguracja VPN Serwera – Windows 7
Andrzej Majkowski 1 informatyka +. 2 Bezpieczeństwo protokołu HTTP Paweł Perekietka.
Podstawy języka skryptów
1. Logowanie z usługą Active Directory. a) logowanie do domeny Windows 2003 Server odbywa się znacznie szybciej niż w poprzednich wersjach. b) nie ma odwołania.
Serwery Aplikacji Bezpieczeństwo w Aplikacjach.NET uruchamianych pod IIS Arkadiusz Popa, WMiI, UŁ.
Prezentacja przykładowych rozwiązań realizujących autoryzację w serwisie WWW w oparciu o bazę LDAP Jerzy Szymański.
INTERNET jako „ocean informacji”
Informatyka Zakres rozszerzony Zebrał i opracował : Maciej Belcarz TEMAT : Administracja i bezpieczeństwosieci TEMAT : Administracja i bezpieczeństwosieci.
Wykład 3 Prowadzący: dr Paweł Drozda. Użytkownik bazy danych – osoba lub aplikacja, mająca dostęp do części danych zgromadzonych w bazie Uprawnienia –
Współpraca PHP i MySQL Wygodniejszym i wydajniejszym sposobem przechowywania i korzystania z danych zapisanych na serwerze jest współpraca z relacyjna.
Maciej Wierzchowski Mariusz Sołtysiak. Założenia  Autentykacja użytkownia  Autentykacja dostawcy  Zapewnienie bezpiecznego połączenia.
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
Wydział Matematyki, Informatyki i Architektury Krajobrazu
Sponsorzy: Media:. Sponsorzy: Media: MBUM 9/11/2017 Mikrotik Beer User Meeting Integracja uwierzytelniania tunelu L2TP/IPsec z Microsoft Active Directory.
PODSTAWOWE ZARZĄDZANIE KOMPUTERAMI Z SYSTEMEM WINDOWS
PROGRAMY DO KONTROLI RODZICIELSKIEJ
PROGRAMY DO KONTROLI RODZICIELSKIEJ
Technologie Informacyjne Bazy danych
Zapis prezentacji:

Administracja systemami operacyjnymi Wiosna 2014 Wykład 4 Autoryzacja w aplikacjach WWW dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki http://wbieniec.kis.p.lodz.pl/pwsz

Cele autoryzacji na stronach WWW Ograniczenie dostępu do pewnych stron – tylko dla grupy uprawnionych użytkowników Rejestracja ruchu użytkowników Dostosowanie zawartości strony do preferencji użytkownika

Metody uwierzytelnia na stronach WWW Podstawowa metoda uwierzytelniania w przy użyciu plików .htaccess Rozszerzona metoda uwierzytelniania przy użyciu plików .htaccess Uwierzytelnianie z modułem mod_auth_mysql Uwierzytelnianie podstawowe w PHP Uwierzytelnianie z użyciem PHP, MySQL i mechanizmu sesji Uwierzytelnianie z użyciem SSL IIS – Integrated Windows Authentication Uwierzytelnianie z wykorzystaniem bazy LDAP

Uwierzytelnianie przez .htaccess Serwer Apache ma wbudowane funkcje kontroli dostępu. Najczęściej wykorzystywana jest kontrola na podstawie adresu IP klienta oraz według autentykacji podstawowej protokołu HTTP Wymagania konfiguracji serwera APACHE: LoadModule auth_module/mod_auth.so AllowOverride All AccessFileName .htaccess

Uwierzytelnianie przez .htaccess Uwierzytelnianie można wprowadzić poprzez: dokonanie zmian w plikach konfiguracyjnych Apache dokonanie zmian w pliku htaccess lub httpd (pliki te będą znajdowały się w chronionym katalogu) Korzystanie z pliku .htaccess jest mniej efektywne od wykorzystania standardowych plików konfiguracyjnych, ponieważ jest on odczytywany za każdym żądaniem pliku z katalogu zawierającego plik .htaccess. Jednak jeżeli witryna jest umieszczona na dzierżawionym serwerze, nie mamy dostępu do jego plików konfiguracyjnych.

Okienko logowania Mozilla Firefox Internet Explorer Odmowa żądania

Ograniczenia dostępu do katalogu wyłącznie do wybranych adresów IP Order Allow,Deny Allow from localhost Allow from 192.168.0.0/24 Allow from p.lodz.pl .htaccess Powoduje ograniczenie dostępu do katalogu tylko lokalnej maszynie (127.0.0.1) oraz sieci wewnętrznej (np. 192.168.0.0/24) i domeny p.lodz.pl Opcja Order definiuje kolejność sprawdzania dyrektyw Allow i Deny. Allow,Deny komputery są domyślnie blokowane, a dyrektywy Deny są ważniejsze od Allow (tzn. Deny może zablokować maszynę z Allow). Natomiast dla Deny,Allow komputery domyślnie otrzymują dostęp, a Allow jest ważniejszy od Deny.

Tworzenie pliku z hasłami $ htpasswd -c hasla.txt user1 New password: haslo Re-type new password: haslo Adding password for user user1 $ htpasswd hasla user2 New password: haslo2 Re-type new password: haslo2 Adding password for user user2 hasla.txt user1:WvzodahMR9USk user2:YzASzTGEo2VMA

Plik .htaccess Dyrektywa AuthName określa tekst monitu AuthName "Tajny zasób" AuthType Basic AuthUserFile /home/student1/hasla.txt Require user user1 <Files tajne.php tajne2.php> AuthName "Tajny zasób" AuthType Basic AuthUserFile /home/student1/hasla.txt Require valid-user </Files> Dyrektywa AuthName określa tekst monitu Dyrektywa Require określa użytkowników, którzy będą mieli dostęp do podanej witryny Dyrektywa AuthUserFile zawiera ścieżkę do pliku z hasłami użytkowników

Tworzenie grup użytkowników Można wymienić wielu użytkowników w jednej dyrektywie Require user. Jednak w przypadku, gdy listy użytkowników za bardzo się rozrastają, warto użyć grup. Plik grup składa się z wierszy, które zawierają nazwę grupy, znak dwukropka i kolejno wymienione nazwy członków. grupy.txt userzy: user1 user2 .htaccess AuthName "Strefa chroniona" AuthType Basic AuthUserFile /home/student1/hasla.txt AuthGroupFile /home/student1/grupy.txt Require group userzy

Przykład zastosowania grup grupy.txt admins: przemek editors: kamil monika przemek webmasters: tomasz dorota wojtek przemek hasla.txt przemek:$apr1$ZU5.....$thDVsGbxOaIBMk1zAfjhr1 kamil:$apr1$fW5.....$t.dcYgk9gL/WM/XCdn3cA0 monika:$apr1$GX5.....$75/kolJSLGvLRL9su7K.h1 tomasz:$apr1$gC......$vsroOme7EtQhztYhBAAR81 dorota:$apr1$XD......$cj64qfBdE03fgbJlestSs/ wojtek:$apr1$sE......$ajKjhCQuYz/duYjDJV6Vu. grupa: editors grupa: webmasters grupa: admins

Cechy autoryzacji podstawowej w Apache Wystarcza tylko jako proste uwierzytelnienie Zapisywanie dodatkowych danych wymaga wprowadzenia dodatkowego systemu zapisu Małe możliwości zarządzania użytkownikami Konieczny dostęp do konfiguracji serwera – zależność od serwera Wykorzystanie interfejsu przeglądarki Wylogowanie następuje poprzez zamknięcie przeglądarki Identyfikator i hasło są przesyłane w postaci jawnego tekstu

Rozszerzona metoda uwierzytelniania (digest access authentication) Wykorzystuje się w niej funkcje haszujące (MD5, SHA1), dzięki czemu identyfikatory i hasła przesyłane są do serwera w postaci zakodowanej, a nie jawnej. Większość popularnych przeglądarek internetowych obsługuje metodę rozszerzoną, potrafi haszować dane autentykacyjne. Wymagania konfiguracyjne serwera: Sprawdzić czy jest zainstalowany moduł: mod_auth_digest.so Tworzenie pliku haseł: Program htdigest [nazwa użytkownika]:[nazwa zasobu]:[zahaszowane hasło]

Rozszerzona metoda uwierzytelniania Format pliku .htaccess AuthDigestFile /home/wojtek/plik_hasel.txt AuthName "tajny_zasob" AuthType Digest Wszystkie inne właściwości tej metody uwierzytelniania są identyczne jak w przypadku metody podstawowej.

Uwierzytelnianie z modułem mod_auth_mysql Metoda podstawowa i rozszerzona: Baza danych Identyfikatory i hasła są przechowywane w plikach tekstowych Identyfikatory i hasła są przechowywane w bazie co daje: -możliwość zarządzania kontami; -umożliwienie jednoczesnego dostępu do haseł Doinstalować libapache2-mod-auth-mysql -przyspieszenie procesu uwierzytelniania -większe bezpieczeństwo dzięki dodatkowej warstwie separującej

Konfiguracja .htaccess lub httpd.conf AuthName "Test" AuthType Basic AuthUserFile /dev/null AuthBasicAuthoritative off Auth_MySQL on Auth_MySQL_Authoritative on Auth_MySQL_DB auth Auth_MySQL_Host localhost Auth_MySQL_User rola1 Auth_MySQL_Password bardzo_tajne_haslo Auth_MySQL_Password_Table auth_table Auth_MySQL_Username_Field user Auth_MySQL_Password_Field pass Auth_MySQL_Empty_Passwords off Auth_MySQL_Encryption_Types MySQL require valid-user Dostęp do bazy mysql Nazwy: - bazy, - tabeli z hasłami - opis kolumn tabeli Rodzaj haszowania hasła http://modauthmysql.sourceforge.net/CONFIGURE

Baza danych mysql> CREATE DATABASE auth; mysql> use auth; mysql> CREATE TABLE `auth`.`auth_table` ( `user` VARCHAR( 30 ) NOT NULL , `pass` VARCHAR( 50 ) NOT NULL , `user_group` CHAR( 10 ) NOT NULL , PRIMARY KEY ( `user` ) ) ENGINE = MYISAM ; mysql> GRANT all privileges ON auth.auth_table TO rola1 IDENTIFIED BY 'bardzo_tajne_haslo'; mysql> insert into auth.auth_table values('wojtek', PASSWORD('wojtek'),'grupa');

Uwierzytelnianie podstawowe w PHP Pozwala szczegółowo kontrolować dostęp do zasobów Możliwość walidacji danych Możliwość monitorowania czynności podejmowanych przez użytkownika Jeśli brak jest dostępu do konfiguracji serwera jest to jedyne możliwe rozwiązanie Niezależność od platformy serwerowej i przenośność

Skrypt uwierzytelniający <?php $user = $_SERVER['PHP_AUTH_USER']; //pobr. id przesł. przez przegl. $password = $_SERVER['PHP_AUTH_PW']; // pobranie hasła // porównanie id i haseł - otrzymanych od użytkownika i // przechowywanych po stronie serwera (tutaj: hard code) if ($user != "przemek" || $password != "haslo1") // jeśli niepopr. { // wysłanie żądania uwierzytelnienia header('WWW-Authenticate: Basic realm="Chronione zasoby"'); header('HTTP/1.0 401 Unauthorized'); echo "<H4>[ Błąd 401! ]</H4>"; echo "<H3>Dostęp do zasobów wymaga uwierzytelnienia!</H3>"; } else {// uwierzytelnienie przebiegło poprawnie echo "<H4>[ Uwierzytelnienie przebiegło poprawnie ]</H4>"; echo "Właściwa część chronionej strony"; }?>

Uwierzytelnianie z użyciem PHP, MySQL i mechanizmu sesji Dostarczana funkcjonalność pozwala zapewnić bezpieczeństwo na bardzo wysokim poziomie. Umożliwia pełną identyfikację użytkownika i jego żądań w serwisie WWW. Kontrola sesji znacznie ułatwia uwierzytelnianie użytkowników – loginy i hasła przesyłane są przez użytkownika tylko jeden raz. Może być stosowana do śledzenia działań użytkowników czy zapamiętywania ich preferencji. Umożliwia realizację procesu wylogowania. Wygląd i działanie monitu logowania zależy nie od przeglądarki, ale od aplikacji WWW.

Skrypt uwierzytelniający index.php <? session_start(); $msg = "Użytkownik niezalogowany.<br>Proszę się zalogować."; if(!empty($_POST['login']) && !empty($_POST['password'])) { /* ewentualna walidacja pól formularza */ $db = @mysql_connect('localhost', $_POST['login'], $_POST['password']); if (!$db) $msg = "Niepoprawny login lub hasło!"; else {// selekcja bazy danych @mysql_select_db('auth2', $db) or die("Baza danych niedostępna."); // ustawienie zmiennej sesji dla użytkownika $_SESSION["id_".$_POST['login']] = $_POST['password']; // przekierowanie użytkownika do chronionej strony header("Location: authuser.php?id=".$_POST['login']); } ?>

Skrypt uwierzytelniający authuser.php <? session_start(); if(isset($_SESSION["id_".$_GET['id']])) $usname = "Użytkownik zalogowany jako [".$_GET['id']."]"; else { header("Refresh: 3; URL=index.php"); die("Musisz najpierw się zalogować!<br> Za chwilę zostaniesz przekierowany na stronę logowania..."); } ?> Aby wylogować się z serwisu wystarczy jedynie usunąć odpowiednią zmienną sesji z użyciem funkcji unset().

Autoryzacja przez PHPlib http://phplib.sourceforge.net/ http://doc.async.com.br/phplib/documentation.html PHP Base Library – zestaw klas stanowiących elastyczną implementację obsługi : – sesji – autoryzacji – komunikacji z bazą danych MySQL PostgreSQL mSQL Oracle, Sybase Microsoft SQL Server ODBC

PHPlib – klasy bazowe - DB_Sql - Page Management - CT_Sql - CT_Split_Sql - CT_Shm - CT_Dbm - CT_Ldap - Session - Auth - Perm User

Autoryzacja PHPlib – cechy autoryzacja sesji przez uwierzytelnienie użytkownika po stronie klienta możliwość cofnięcia autoryzacji – wylogowania – koniec czasu ważności sesji zastosowanie bazy danych użycie formularzy logowania html przeprowadzanie dla wybranej strony WWW zintegrowanie ze schematem sprawdzania uprawnień użytkowników

Autoryzacja PHPlib – przygotowanie klas Połączenie z bazą danych, ustawienie parametrów interfejsu class MySqlDB extends DB_Sql { var $Host = "localhost"; var $Database = "auth_users"; var $User = "student"; var $Password = "pass"; }

PHPLib – przygotowanie klas class MySqlCt extends CT_Sql { var $classname = "MySqlCt"; var $database_table = "active_sessions"; var $database_class = "MySqlDB"; } klasa określająca parametry kontenera mysql> CREATE TABLE active_sessions ( sid varchar(32) not null, name varchar(32) not null, val text, changed varchar(14) not null, PRIMARY KEY (name, sid), KEY changed (changed) ); standardowa postać tabeli wymaganej przez mechanizm obsługi sesji w PHPlib

PHPLib – przygotowanie klas Klasa określająca parametry sesji class MySqlSession extends Session { var $classname = "MySqlSession"; var $mode = "cookie"; var $lifetime = 0; var $that_class = "MySqlCt"; var $allowcache_expire = 0; var $allowcache = "no"; }

PHPLib – przygotowanie klas Klasa definiująca parametry oraz sposób przeprowadzenia autoryzacji class MyAuth extends Auth { var $classname = "MyAuth"; var $lifetime = 20; function auth_loginform() { // wyświetlenie formularza logowania include( "./logform.inc" ); } function auth_validatelogin() { global $name, $password; $objDB = new MySqlDB; $query = sprintf("select id from users where (nick='%s') and (pass='%s')",$name,$password); $objDB->query( $query ); if ( $objDB->num_rows() > 0 ) return $name; else return false; }//koniec klasy  

Szkielet strony chronionej przez mechanizm autoryzacji PHPlib <? page_open( array( "sess" => "MySqlSession" "auth" => "MyAuth" ) ); ?> Chroniona zawartość strony page_close();

Schemat przeprowadzania autoryzacji wylogowanie, w dowolnej chwili przez wywołanie : $auth->logout();