Sieci Komputerowe. Laboratorium 5 - usługi sieciowe cz. 1 Maciej Szymański 28 kwietnia 2014



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

Aplikacje WWW - laboratorium

Aplikacje internetowe - laboratorium

Usługi sieciowe systemu Linux

Instalacja i konfiguracja serwera SSH.

Baza danych do przechowywania użytkowników

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki

Referat z przedmiotu Technologie Internetowe SPIS TREŚCI

Internetowe bazy danych

Bezpieczeństwo systemów informatycznych

Aplikacje WWW - laboratorium

ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP

SSH. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Laboratorium 1 Wprowadzenie do PHP

Podstawy programowania (PHP/Java)

Aplikacje WWW - laboratorium

System operacyjny Linux

Rys. 1. Widok uruchomienia polecenia apt-get install build-essential. Rys. 2. Widok uruchomienia polecenia apt-get install apache2

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Protokoły zdalnego logowania Telnet i SSH

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

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

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

Wykład 5: PHP: praca z bazą danych MySQL

INSTALACJA I KONFIGURACJA SERWERA PHP.

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Zajęcia 11 wykorzystanie MySQL w PHP

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

Aplikacje WWW - laboratorium

Wykład 6: PHP: praca z bazą danych MySQL, cz.2

Zdalne logowanie do serwerów

Projektowanie aplikacji w modelu MVC opartej o framework CodeIgniter

Aplikacje internetowe

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Programowanie internetowe

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Wykład 4. Metody uwierzytelniania - Bezpieczeństwo (3) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Uwierzytelnianie użytkowników sieci bezprzewodowej z wykorzystaniem serwera Radius (Windows 2008)

Aplikacje www laboratorium

Tomasz Greszata - Koszalin

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

Lab3 - Zastosowania protokołów przesyłania plików

System kontroli dostępu ACCO NET Instrukcja instalacji

INSTRUKCJA INSTALACJI SYSTEMU

Technologie informacyjne lab. 4

Instrukcja obsługi programu CMS Dla rejestratorów HANBANG

Rejestracja i Logowania - PHP/MySQL

Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

System. Instalacja bazy danych MySQL. Autor : Piotr Zielonka tel Piotrków Tryb., sierpień 2018r.

Zarządzanie systemami informatycznymi. Bezpieczeństwo przesyłu danych

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Instalacja (GM) AMXBans #1.5.1/ #1.6.1 na serwerze gry/stronie WWW. Wymagania

Podstawowe wykorzystanie Hibernate

Laboratorium 6 Tworzenie bloga w Zend Framework

PROFESJONALNE SYSTEMY BEZPIECZEŃSTWA

Komunikacja z bazą danych psql

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

Zajęcia 13 wykorzystanie MySQL w PHP cz. 2

Administracja bazami danych

Bazy danych i usługi sieciowe

DESlock+ szybki start

Tomasz Greszata - Koszalin

Bezpieczeństwo usług oraz informacje o certyfikatach

# ip addr add dev eth1 $ sudo ip addr add dev eth1 Uwaga: Ustawienia te zostaną utracone po restarcie systemu

ZiMSK. Konsola, TELNET, SSH 1

PHP + MySQL w laboratorium (1)

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

Wszystkie parametry pracy serwera konfigurujemy w poszczególnych zakładkach aplikacji, podzielonych wg zakresu funkcjonalnego.

Gerard Frankowski, Zespół Bezpieczeństwa PCSS. Nowoczesne technologie bliżej nas Poznań,

MVC w praktyce tworzymy system artykułów. cz. 2

Bazy danych. dr Radosław Matusik. radmat

Laboratorium nr 6 VPN i PKI

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

Stos TCP/IP. Warstwa aplikacji cz.2

Instrukcja obsługi serwera FTP v

MAMP: Można to pobrać i zainstalować z XAMPP: Można go pobrać i zainstalować z

Dokumentacja smsapi wersja 1.4

Przykładowa integracja systemu Transferuj.pl

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

Tworzenie maszyny wirtualnej

Wprowadzenie do Internetu Zajęcia 5

Sprawozdanie. (notatki) Sieci komputerowe i bazy danych. Laboratorium nr.3 Temat: Zastosowanie protokołów przesyłania plików

4. Podstawowa konfiguracja

Dokonaj instalacji IIS opublikuj stronę internetową z pierwszych zajęć. Ukaże się kreator konfigurowania serwera i klikamy przycisk Dalej-->.

Instrukcja instalacji usługi Sygnity Service

Win Admin Monitor Instrukcja Obsługi

Dokumentacja interfejsu HTTPD. Platforma BSMS.PL Instrukcja podłączenia po przez http

Aplikacje WWW - laboratorium

Bazy Danych i Usługi Sieciowe

Wybrane działy Informatyki Stosowanej

Sprzeg podstawowy do baz danych w PHP Mateusz Sowa, 2007

Sieciowa instalacja Sekafi 3 SQL

T: Zabezpieczenie dostępu do komputera.

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

Instalacja MySQL.

Bazy danych i strony WWW

E.14 Bazy Danych cz. 19 SQL i PHP współpraca przez stronę internetową

INSTRUKCJA KONFIGURACJI KLIENTA POCZTOWEGO

Transkrypt:

Sieci Komputerowe Laboratorium 5 - usługi sieciowe cz. 1 Maciej Szymański 28 kwietnia 2014 1. SSH SSH (Secure Shell) jest protokołem umożliwiającym zdalną pracę terminalową oraz transfer plików. Zapewnia on poufność transmisji (poprzez szyfrowanie), integralność (kontrola poprawności) i autoryzację (np. poprzez hasło lub certyfikat). SSH jest odporny na podsłuchiwanie i przejmowanie połączeń, natomiast nie gwarantuje bezpieczeństwa w przypadku prób łamania hasła, ataków na poziomie protokołów IP i TCP oraz statystyczną analizę ruchu. Schemat działania protokołu przebiega następująco: klient otwiera połączenie (TCP, domyślnie na porcie 22) wykonując polecenie ssh login@host (opcja -v pozwala zapoznać się z komunikatami wysyłanymi podczas transmisji) ustalenie numeru wersji protokołu (istnieją dwie główne wersję, różniące się przede wszystkim wykorzystywanymi algorytmami kryptograficzmymi) następuje identyfikacja serwera (np. poprzez algorytm RSA), wysyła on do klienta swój klucz, a także listę obsługiwanych metod autoryzacji oraz parametry sesji klient wybiera szyfr i przesyła zaszyfrowany klucz sesji na podstawie wymienionego na tym etapie klucza oraz hash a obliczane są klucze szyfrujące oraz podpisujące, są one zmieniane co pewien czas (np. co 1 GB przesłanych danych) serwer przesyła potwierdzenie zaszyfrowane na podstawie klucza otrzymanego od klienta połączenie w tym momencie zostaje zestawione, serwer jest zautoryzowany następnym etapem jest autoryzacja klienta, na podstawie np. hasła lub klucza publicznego (a) Ćwiczenie: Należy wyszukać i zainstalować klient i serwer SSH (pakiety openssh-server i opensshclient) (b) Ćwiczenie: Proszę zalogować się z konta na maszynie wirtualnej na konto na maszynie głównej. Spróbować uruchomić aplikację graficzną. (c) Ćwiczenie: Konfiguracja serwera ssh: plik /etc/ssh/sshd_config Proszę umożliwić zdalne uruchamianie aplikacji graficznych i uniemożliwić logowanie jako root (opcje X11forwarding i PermitRootLogin) (d) Ćwiczenie: Proszę ponownie zalogować się z konta na maszynie wirtualnej na konto na maszynie głównej (z opcją pozwalającą na zaufany X11forwarding) i spróbować uruchomić aplikację graficzną. (e) Ćwiczenie: Konfiguracja klienta ssh: plik /etc/ssh/ssh_config Proszę umożliwić, aby klient mógł automatycznie dodawać hosty do pliku ~/.ssh/known_hosts (opcja StrictHostKeyChecking) (f) Ćwiczenie: Konfiguracja logowania przy użyciu klucza (tak aby użytkownik user1 na komputerze host1 mógł się zalogować na konto użytkownika user2 na komputerze host2 przez ssh bez podawania hasła) stworzyć pliki id_rsa i id_rsa.pub w katalogu ~/.ssh/ za pomocą polecenia ssh-keygen -t rsa (na koncie użytkownika user1 na komputerze host1) plik ~/.ssh/id_rsa jest kluczem prywatnym, zatem nie należy go nikomu udostępniać plik ~/.ssh/id_rsa.pub kopiujemy (za pomocą polecenia scp - - składnia scp path/file user2@host2:path) na konto użytkownika user2 na komputerze host2 i dodajemy go do pliku ~/.ssh/authorized_keys2 1

folder ~/.ssh/ musi mieć tylko prawa odczytu i zapisu dla właścicela, a plik ~/.ssh/authorized_keys2 dodatkowo prawa odczytu dla innych W razie problemów proszę uruchomić ssh w trybie verbose. 2. WWW (APACHE) + PHP + MySQL Apache jest to jeden z najpopularniejszych serwerów HTTP. PHP to jeden z najpopularniejszych języków programowania używany do tworzenia stron WWW. MySQL to system zarządzania bazami danych za pomocą języka SQL. Schemat działania powyższego zestawu oprogramowania przebiega następująco: uruchamiając przeglądarkę i wpisując adres szukanego serwisu WWW, przeglądarka nawiązuje połączenie z serwerem na którym są uruchomione usługi umożliwiające dostęp do strony żądanie otrzymane od przeglądarki jest przechwytywane przez serwer Apache, który przetwarzając je uruchamia kod strony napisany w języku PHP PHP komunikuje się z bazą danych, pobiera dane, przetwarza je i zamienia na kod HTML, który zwraca serwerowi Apache serwer Apache wysyła kod HTML razem z obrazami umieszczonymi na stronie i stylami do przeglądarki, która wyświetla stronę (a) Ćwiczenie: Należy wyszukać i zainstalować serwer WWW (apache2), moduł PHP (libapache2- mod-php5) oraz serwer SQL (mysql-server libapache2-mod-auth-mysql php5-mysql) Test działania poprzez otwarcie w przeglądarce strony http://localhost/ (b) Ćwiczenie: Utworzyć skrypt PHP i zapisać go jako /var/www/phpinfo.php <?php phpinfo(); Test działania poprzez otwarcie w przeglądarce strony http://localhost/phpinfo.php (c) Ćwiczenie: Proszę skonfigurować serwer tak, aby wykorzystywał on protokół SSL, zapewniający poufność transmisji danych oraz uwierzytelnienie serwera utworzyć linki symboliczne w /etc/apache2/mods-enabled: ln -s../mods-available/ssl.load ln -s../mods-available/ssl.conf utworzyć link symboliczny w /etc/apache2/sites-enabled: ln -s../sites-available/default-ssl zrestartować serwer WWW sudo /etc/init.d/apache2 restart test: https://localhost/ (d) Ćwiczenie: Proszę stworzyć wirtualny serwer WWW utworzyć katalog serwera wirtualnego i plik index.html w nim mkdir /var/www/moja-strona dodać do pliku w /etc/apache2/sites-enabled/000-default: <VirtualHost *:80> DocumentRoot /var/www/moja-strona ServerName moja-strona </VirtualHost> zrestartować serwer WWW sudo /etc/init.d/apache2 restart dodać do pliku w /etc/hosts: 127.0.1.1 moja-strona test: http://moja-strona/ 3. Prosty serwis CMS 1 Poniższy przykład pozwoli stworzyć prosty system zarządzania treścią. Bazuje on na następującej klasie: 1 na podstawie: http://css-tricks.com/php-for-beginners-building-your-first-simple-cms/ 2

<?php class simplecms { var $host; var $username; var $password; var $table; public function display_public() {... public function display_admin() {... public function write() {... public function connect() {... private function builddb() {...?> Poniżej omówienie metod klasy: stworzenie tabeli w bazie danych private function builddb() { $sql = <<<MySQL_QUERY CREATE TABLE IF NOT EXISTS testdb ( title VARCHAR(150), bodytext TEXT, created TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) MySQL_QUERY; return mysql_query($sql); połączenie z bazą danych public function connect() { mysql_connect($this->host,$this->username,$this->password) or die("could not connect. ". mysql_error()); mysql_select_db($this->table) or die("could not select database. ". mysql_error()); return $this->builddb(); wyświetlenie formy z polem tekstowym public function display_admin() { return <<<ADMIN_FORM <form action="{$_server[ PHP_SELF ]" method="post"> <label for="title">title:</label> <input name="title" id="title" type="text" maxlength="150" /> <label for="bodytext">body Text:</label> <textarea name="bodytext" id="bodytext"></textarea> <input type="submit" value="create This Entry!" /> </form> ADMIN_FORM; zapisanie wpisanych danych w bazie danych public function write($p) { if ( $p[ title ] ) 3

$title = mysql_real_escape_string($p[ title ]); if ( $p[ bodytext ]) $bodytext = mysql_real_escape_string($p[ bodytext ]); if ( $title && $bodytext ) { $created = time(); $sql = "INSERT INTO testdb VALUES( $title, $bodytext, $created )"; return mysql_query($sql); else { return false; wyświetlenie danych z bazy danych public function display_public() { $q = "SELECT * FROM testdb ORDER BY created DESC LIMIT 3"; $r = mysql_query($q); if ( $r!== false && mysql_num_rows($r) > 0 ) { while ( $a = mysql_fetch_assoc($r) ) { $title = stripslashes($a[ title ]); $bodytext = stripslashes($a[ bodytext ]); $entry_display.= <<<ENTRY_DISPLAY <h2>$title</h2> <p> $bodytext ENTRY_DISPLAY; else { $entry_display = <<<ENTRY_DISPLAY <h2>this Page Is Under Construction</h2> <p> No entries have been made on this page. Please check back soon, or click the link below to add an entry! ENTRY_DISPLAY; $entry_display.= <<<ADMIN_OPTION <p class="admin_link"> <a href="{$_server[ PHP_SELF ]?admin=1">add a New Entry</a> ADMIN_OPTION; return $entry_display; Powyższą klasę można wykorzystać następująco (tworząc plik np. display.php, który będzie uruchamianą stroną): <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 4

<head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>simple CMS with PHP</title> </head> <body> <div id="page-wrap"> <?php require_once( simplecms.php ); $obj = new simplecms(); /* CHANGE THESE SETTINGS FOR YOUR OWN DATABASE */ $obj->host = localhost ; $obj->username = root ; $obj->password = pass ; $obj->table = asd ; $obj->connect(); if ( $_POST ) $obj->write($_post); echo ( $_GET[ admin ] == 1 )? $obj->display_admin() : $obj->display_public();?> </div> </body> </html> $obj->display_public(); Ćwiczenie: na podstawie powyższego kodu, proszę utworzyć serwis CMS. Kod źródłowy znajduje się na stronie: fizyka.pw.edu.pl/~maszyman/dydaktyka/sk14l/ Powodzenia 5