• Nie Znaleziono Wyników

System rezerwacji czasu dostępu do zasobów laboratorium sieci komputerowych na podstawie pakietu LAMP

N/A
N/A
Protected

Academic year: 2021

Share "System rezerwacji czasu dostępu do zasobów laboratorium sieci komputerowych na podstawie pakietu LAMP"

Copied!
9
0
0

Pełen tekst

(1)

SYSTEM REZERWACJI CZASU DOSTĘPU DO ZASOBÓW

LABORATORIUM SIECI KOMPUTEROWYCH

NA PODSTAWIE PAKIETU LAMP

W artykule opisano koncepcję systemu, umożliwiającego użytkownikom zdalny dostęp do zasobów laboratorium sieci komputerowych, tj. sprzętu i oprogramowania, wykorzystywanych w ramach zajęć z przedmiotu „Sieci komputerowe”, a także szkoleń realizowanych w ramach kursów Cisco CCNA. System opracowano, opierając się na pakiecie LAMP (Linux, Apache, MySQL i PHP), z wykorzys-taniem wirtualnej sieci VPN. Cała infrastruktura prezentowanego systemu została zbudowana na podstawie oprogramowania klasy Open Source, co znalazło swoje odzwierciedlenie w aspektach ekonomicznych.

Słowa kluczowe: sieci komputerowe, Linux, Apache, PHP, MySQL, VPN, zdalny dostęp.

WSTĘP

Sieci komputerowe są w dzisiejszych czasach nieodzownym elementem wszelkich funkcjonujących systemów opartych na transmisji danych. Gromadzenie, przetwarzanie i dystrybucja informacji stanowią aspekty, umożliwiające działanie wszystkich obecnie funkcjonujących technologii, zarówno prostych systemów powszechnego użytku, jak i rozwiązań na poziomach militarnych czy też rządowych. Wiedza nabyta podczas szkoleń przeprowadzanych w ramach kursów Cisco CCNA (które są realizowane w Akademii Morskiej w Gdyni od 2006 roku, a od roku 2010 rozszerzone o zagadnienia związane z bezpieczeństwem sieciowym [4]), umożliwia uzyskanie stosownego certyfikatu oraz zdobycie doświadczenia w pro-jektowaniu, wdrażaniu i administrowaniu sieciami komputerowymi.

Opracowany system umożliwia studentom oraz kursantom Cisco CNNA przeprowadzanie dodatkowych ćwiczeń, poszerzających nabyte umiejętności oraz utrwalenie wiedzy poprzez pracę na rzeczywistym sprzęcie, znajdującym się w laboratorium.

Do opracowania systemu wykorzystano oprogramowanie klasy Open Source, co w konsekwencji okazało się rozwiązaniem o wiele bardziej ekonomicznym, w porównaniu z rozwiązaniami komercyjnymi funkcjonującymi na rynku. Przykła-dem systemu udostępniającego możliwość zdalnego dostępu jest NETLAB+ – rozwiązanie firmy NDG, udostępniającej projekt na warunkach licencyjnych. Jest to rozwiązanie oferujące usługi na najwyższym poziomie, jednak wykupienie licencji

(2)

wymaga znacznych środków finansowych (cena najtańszej, możliwej do wykupienia licencji, to 2395$) [10]. W skład pakietu NETLAB+ wchodzi przejrzysty interfejs, dostępny z poziomu przeglądarki internetowej, zawierający wbudowane aplikacje dla maszyny wirtualnej i zarządzania komponentami laboratorium. Połączenie jest podzielone pomiędzy administratora i użytkowników, a wbudowany komunikator pozwala na swobodną rozmowę podczas wirtualnej pracy.

Opracowanie prezentowanego systemu obejmowało kilka kroków, które w kon-sekwencji spełniają postawione przed nimi zadania.

1. IDEA SYSTEMU REZERWACJI CZASU

Kluczowym elementem prezentowanego systemu są utworzone interfejsy WWW, przeznaczone zarówno dla użytkowników, jak i administratora. Interfejsy zostały zaprojektowane z wykorzystaniem języka PHP (skryptowy język programo-wania, działający po stronie serwera i umożliwiający komunikację z bazą danych [8]) oraz bazy danych MySQL. Użytkownik, po zarejestrowaniu się, ma możliwość zarezerwowania poprzez interfejs określonego przedziału czasowego, w którym będzie mógł przeprowadzić zdalną sesję – połączyć się z zasobami laboratorium. Rezerwacje użytkowników przechowywane są w utworzonej na potrzeby prezento-wanego systemu bazie danych. Pliki wchodzące w skład interfejsów, tj. głównie skrypty PHP, zostały umieszczone na serwerze znajdującym się w laboratorium.

Rys. 1. Komunikacja odległego użytkownika z laboratorium – architektura klient – serwer

Fig. 1. Communication the remote user's with the laboratory – client – server architecture

Cały ruch pomiędzy zdalnym użytkownikiem a zasobami laboratorium, realizowany jest z wykorzystaniem wirtualnej sieci prywatnej VPN. Jest to tunel, przez który płynie ruch prywatny, poprzez infrastrukturę sieci publicznej.

(3)

Do momentu ustanowienia sesji zdalnej ruch ten jest kierowany do serwera znajdują-cego się w laboratorium. Serwer ten pracuje pod kontrolą systemu operacyjnego

Linux. Proces zadań okresowych cron tego systemu umożliwia odczytanie bazy

danych i modyfikację pliku przechowującego dane autoryzacyjne użytkowników. Gdy użytkownik uzyska możliwość rozpoczęcia sesji zdalnej w danym przedziale czasu, nawiązuje połączenie z zasobami laboratorium poprzez program emulujący terminal, np. PuTTY. Proces nawiązywania połączenia oraz uwierzytel-niania użytkownika odbywa się z wykorzystaniem protokołu TACACS+. W momencie, gdy upłynie czas wcześniej zarezerwowany przez użytkownika, następuje zakończenie zdalnej sesji.

Interfejs WWW przeznaczony dla administratora, umożliwia zarządzanie użyt-kownikami, przedziałami czasu przeznaczonymi do rezerwacji, samymi rezerwacja-mi, jak i parametrami systemu – przykładowo maksymalną, możliwą do zarezerwo-wania przez użytkowników, liczbą sesji.

2. BAZA DANYCH SYSTEMU REZERWACJI CZASU

Struktura bazy danych, na której opiera się funkcjonowanie systemu rezerwacji sesji, opisuje zależności pomiędzy kolumnami wszystkich tabel oraz znaczenie poszczególnych kolumn i rekordów. Baza ta składa się z trzech tabel, których zawartość definiuje elementy wyświetlane zarówno przez interfejs użytkownika, jak i przez interfejs administratora (rys. 2) .

Rys. 2. Struktura bazy danych systemu rezerwacji czasu Fig. 2. The structure of the database of the time booking system

(4)

Pierwsza tabela, options, zawiera funkcje administracyjne i jest przeznaczona tylko dla administratora. Składa się ona z trzech kolumn. Pierwsza, ido, zawiera unikatowe identyfikatory wszystkich rekordów w tej tabeli. Każdy rekord reprezen-tuje jedną funkcję. Kolumny name oraz VALUE oznaczają, odpowiednio, nazwę i wartość danej funkcji. Przykładem rekordu tej tabeli jest „Maksymalna liczba sesji”. Administrator, zmieniając wartość VALUE, wpływa bezpośrednio na liczbę sesji, jaką użytkownik może maksymalnie zarezerwować.

Druga tabela, users, składa się z sześciu kolumn i przechowuje dane użytkow-ników. Kolumna id zawiera unikatowe identyfikatory wszystkich użytkowużytkow-ników. Kolumny login, pass oraz email przechowują kolejno login, hasło i adres e-mail każdego użytkownika. Kolumna sesje przechowuje liczbę aktualnie zarezerwo-wanych sesji przez każdego użytkownika, a kolumna ip adresy IPv4 użytkowników.

Trzecia tabela, times, składa się z pięciu kolumn. Kolumna idt zawiera unikatowe identyfikatory wszystkich czasów przeznaczonych do rezerwacji. Kolumna date zawiera informacje w postaci dat, czyli czasów, na których opiera swe działanie proces rezerwacji czasu. Kolumna stat zawiera informację o statusie danej daty, czyli informuje, czy dany czas jest zarezerwowany czy też nie. Kolumny idu oraz ip zawierają dane powiązane z tabelą users, czyli – odpowiednio – identyfikator użytkownika oraz jego adres IPv4. Dane te mają praktyczne znaczenie tylko wówczas, gdy dany czas jest zarezerwowany.

Podsumowując, tak zdefiniowana struktura bazy danych pozwala na funkcjono-wanie systemu rezerwacji czasu zgodnie z wcześniej ustalonym przeznaczeniem. Warto jednak zwrócić uwagę na pewien aspekt tej struktury: w bazie danych nie skorzystano z kluczy obcych (klucz obcy stanowi kolumnę lub zbiór kolumn, będących kluczem głównym w innej tabeli [7, 8]), ze względu na to, iż nie było to konieczne, a upraszcza to zapytania SQL kierowane do bazy danych w przypadku niewielkiej liczby tabel. Utworzenie struktury, opartej na mechanizmach związa-nych z funkcjonowaniem kluczy obcych, jest jak najbardziej możliwe, jednak imple-mentowanie określonych zależności stanowi kwestię wyboru projektanta systemu.

3. SKŁADOWE PROCESU USTANOWIENIA ZDALNEJ SESJI

Ruch pomiędzy użytkownikiem końcowym a zasobami znajdującymi się w laboratorium, realizowany jest w ramach wirtualnej sieci prywatnej VPN (Virtual

Private Network). Jest to sieć transmitująca prywatne dane poprzez publiczną

infrastrukturę telekomunikacyjną. Transmisja taka jest powszechnie wykorzysty-wana – przykładowo, gdy dana firma posiada dwa, znacznie od siebie oddalone oddziały, może zdecydować się na wykonanie między nimi połączenia VPN. Operator telekomunikacyjny, za dodatkową opłatą, udostępnia klientowi szyfrowane połączenie ze swojej sieci, którym może on przesyłać dane między oddziałami. Dzięki temu, pomiędzy routerami granicznymi poszczególnych oddziałów powstaje połączenie, przenoszące dane w ramach struktury sieci prywatnej. Zastosowana

(5)

technologia zapewnia szyfrowanie i integralność danych oraz uwierzytelnianie obu stron połączenia, co czyni transmisję bezpieczną [5].

W przypadku infrastruktury wykorzystywanej przez system rezerwacji czasu wystarczy, że użytkownik końcowy połączy się w dowolny sposób z Internetem, a następnie zaktywizuje połączenie VPN z siecią lokalną, znajdującą się w laboratorium sieci komputerowych Akademii Morskiej w Gdyni.

Najpopularniejszym protokołem, wykorzystywanym w sieciach wirtualnych VPN, jest protokół IPSec (IP Security). Został on opracowany przez IETF (Internet

Engineering Task Force). Protokół ten działa na poziomie protokołu IP i jest

niezależny od protokołów warstw wyższych (w odniesieniu do warstwowej struk-tury Internetu). Podczas transmisji danych IPSec zapewnia ich integralność i poufność oraz udostępnia mechanizm uwierzytelniania obu stron połączenia. Dane IPSec są transmitowane wewnątrz datagramu IP przenoszącego odpowiedni protokół bezpieczeństwa AH lub ESP, a dopiero w kopercie jednego z tych proto-kołów są zawarte dane (protokoły warstw wyższych przenoszące dane).

Protokół AH (Authentication Header) zapewnia integralność przenoszonych danych oraz nagłówka IP, wewnątrz którego jest transmitowany.

Protokół ESP (Encapsulation Security Payload) służy do szyfrowania danych w warstwie wyższej [6].

Po ustanowieniu połączenia użytkownik może przeprowadzić zdalną sesję zgodnie z wcześniej zarezerwowanym czasem tej sesji. O tym, czy dany użytkownik uzyska możliwość połączenia się z zasobami laboratorium, decyduje demon OS Linux cron.

Program cron jest demonem systemowym, który wykonuje zadane polecenia w określonym czasie. Demon cron jest zwykle uruchamiany w trakcie ładowania systemu.

Pliki konfiguracyjne, które sterują działaniem programu cron, noszą nazwę

crontab. Zawierają one informacje na temat czasu, daty oraz polecenia do

wyko-nania. Są to pliki tekstowe, w których każdy wiersz składa się z sześciu pól oddzie-lonych spacjami. Pierwsze pięć pól określa, kiedy ma być wykonane polecenie, natomiast szóste pole określa polecenie do wykonania. Zawartość pliku crontab można wyświetlić za pomocą polecenia crontab -l. Ze względów bezpieczeństwa pliki crontab, pomimo że są tekstowe, nie powinny być modyfikowane za pomocą edytora tekstów. Celem edycji tych plików stosuje się polecenie crontab -e [1].

Na serwerze, znajdującym się w laboratorium sieci komputerowych Akademii Morskiej w Gdyni, program cron jest uruchamiany co godzinę, zgodnie z kwantem czasu rezerwacji. Jego zadaniem jest przeszukiwanie bazy danych celem określenia, czy na daną godzinę jest zarezerwowana jakaś sesja. Jeżeli tak, cron modyfikuje plik

(6)

Rys. 3. Mechanizm przeprowadzania zdalnej sesji – program cron

Fig. 3. A mechanism for a remote session – cron daemon

Dla każdego użytkownika, funkcjonującego w bazie danych systemu rezerwacji czasu, znajduje się odpowiedni wpis w pliku haseł (/etc/passwd) w następującej postaci:

login:hasło:ID_użytkownika:ID_grupy:dane:katalog_home:program gdzie „dane” oznaczają dane osobiste, wyświetlane w OS Linux poleceniem finger.

Ponieważ pole „hasło” musi być zaszyfrowane, umieszczenie w nim pojedyn-czego znaku spowoduje, że logowanie na dane konto nie będzie możliwe. Jeżeli w polu „hasło” znajduje się znak „x”, oznacza to, że używany jest dodatkowy plik haseł – plik /etc/shadow (rys. 4). Plik ten stanowi element systemu zabezpieczeń, dzięki któremu zwykli użytkownicy nie mogą odczytać nawet zaszyfrowanych łańcuchów znaków, jeżeli zostaną one umieszczone w standardowym pliku haseł [3].

Rys. 4. Przykładowa zawartość pliku /etc/shadow, wyświetlona poleceniem cat – linia reprezentująca pojedynczego użytkownika – „host10111” (login)

Fig. 4. Sample contents of the file /etc/shadow, displayed a command cat – line represents

(7)

Użytkownicy systemu rezerwacji sesji, których dane zapisane są w pliku

/etc/shadow, domyślnie nie mogą przeprowadzać zdalnej sesji – nie przysługują im

żadne usługi sieciowe umożliwiające zdalny dostęp. Jest to realizowane poprzez znak „!”, poprzedzający każdy wpis w pliku /etc/shadow.

Jeżeli cron stwierdzi, na podstawie przeszukiwania bazy danych, obecność zarezerwowanej sesji, modyfikuje plik /etc/shadow, poprzez usunięcie znaku „!”, przy wpisie reprezentującym użytkownika, który zarezerwował sesję na daną godzinę.

Użytkownik ma teraz czas, aby połączyć się zdalnie z zasobami laboratorium sieci komputerowych. Po upłynięciu kwantu czasu rezerwacji (jednej godziny), plik

/etc/shadow modyfikowany jest ponownie przez proces cron.

Użytkownik, aby przeprowadzić zdalną sesję i wykonać odpowiednie operacje na komponentach laboratorium, musi mieć możliwość emulacji terminalu teksto-wego. Programów, które umożliwiają wykonanie wymienionych operacji, jest wiele. Użytkownik może wybrać stosowny program, zgodnie z osobistymi preferencjami. Jako przykład można podać program PuTTY, będący klientem m.in. protokołu telnet (rys. 5).

Rys. 5. Interfejs programu PuTTY Fig. 5. The interface of the program PuTTY

(8)

Jak wspomniano,proces nawiązania połączenia oraz uwierzytelniania użytkow-nika realizowany jest z wykorzystaniem protokołu TACACS+.

Protokoły RADIUS i TACACS+ są rozwiązaniami wykorzystywanymi w komunikacji z aplikacjami, odpowiedzialnymi za uwierzytelnianie i autoryzację. Każdy z nich oprócz weryfikowania tożsamości użytkowników realizuje również wiele funkcji dodatkowych (rejestrowanie wprowadzanych poleceń, zapisywanie przebiegu połączenia itp.). Obydwa są bardzo popularne, ale firma Cisco zaleca stosowanie protokołu TACACS+. Należy jednak pamiętać, iż obydwa umożliwiają zrealizowanie tego samego zadania. Jedną z wad mechanizmu RADIUS jest to, że nie pozwala on na ograniczenie zestawu poleceń wykonywanych przez użytkownika. Jeżeli więc dostępność takiej funkcji jest wymagana, należy zgodnie z zaleceniami Cisco wybrać TACACS+ [2, 9].

PODSUMOWANIE

Prezentowany system rezerwacji czasu dostępu do zasobów laboratorium sieci komputerowych to projekt, który zrealizowano na podstawie możliwie najskutecz-niejszej funkcjonalności, przy jednoczesnym wykorzystaniu mechanizmów bezpie-czeństwa, udostępnionych przez zastosowane technologie. Komunikacja pomiędzy użytkownikiem końcowym a zasobami laboratorium, będąca przykładem transmisji danych w architekturze klient – serwer, wymaga szczegółowej analizy każdego etapu zestawienia takiego połączenia.

System rezerwacji czasu korzysta z wolnego oprogramowania. Serwer Apache, serwer bazy danych MySQL, system operacyjny Linux, czy też protokoły i usługi sieciowe, tworzą razem strukturę, której mechanizmy bardzo dobrze spełniają zadania, postawione przed zaprojektowanym systemem na etapie planowania.

Zaprojektowany system jest także otwarty na późniejszą, ewentualną modyfi-kację, której fundamenty być może stworzą użytkownicy, po określonym czasie jego funkcjonowania.

Reasumując, powstały system rezerwacji sesji spełnia wymagania, które posta-wiono przed nim na etapie planowania. Zbudowany na bazie infrastruktury labora-torium sieci komputerowych Akademii Morskiej w Gdyni, jest nowym elementem, umożliwiającym użytkownikom zdobycie doświadczenia poprzez pracę zdalną.

LITERATURA

1. Camou M., Goerzen J., Van Couwenberghe A., Debian Linux. Księga eksperta, Helion, Gliwice 2001.

2. Donahue G., Wojownik sieci, wydanie II, Helion, Gliwice 2012.

3. Glass G., Ables K., Linux dla programistów i użytkowników, Helion, Gliwice 2007.

4. Januszewski K., Zdalny dostęp do zasobów laboratorium sieci komputerowych, Zeszyty Naukowe Akademii Morskiej w Gdyni, 2015, nr 90.

(9)

5. Karbowski M., Podstawy kryptografii, wydanie III, Helion, Gliwice 2014. 6. Krysiak K., Sieci komputerowe – kompendium, wydanie II, Helion, Gliwice 2005.

7. Welling L., Thomson L., PHP i MySQL – tworzenie stron WWW. Vademecum profesjonalisty, wydanie IV, Helion, Gliwice 2009.

8. Zandstra M., PHP: Obiekty, wzorce, narzędzia, wydanie IV, Helion, Gliwice 2014.

Źródła internetowe

9. https://www.gnu.org/software/radius/manual/radius.html. 10. https://www.netdevgroup.com/products/.

TIME BOOKING SYSTEM OF ACCESS

TO NETWORK LAB RESOURCES

BASED ON LAMP PACKAGE

Summary

In the paper is described the infrastructure of system, which allows the users to remotely access the network hardware and software. System is used in the teaching process while teaching the subject "Computer Networks" and Cisco CCNA course. This system is realized on the basis for VPN and LAMP package - is based on Open Source Software.

Cytaty

Powiązane dokumenty

TOPOLOGIA MAGISTRALI - jedna z topologii fizycznych sieci komputerowych charakteryzująca się tym, że wszystkie elementy sieci są podłączone do jednej magistrali (zazwyczaj jest

Średni czas zestawienia połączenia nie przekracza wartości 12ms (rys. 3a oraz 3b) zarówno dla algorytmu 1 oraz algorytmu 2. Na podstawie obliczonych 95% prze- działów ufności

Połączenia analogowe stosujące modemy klasyczne potrzebują Połączenia analogowe stosujące modemy klasyczne potrzebują tylko jednej pary przewodów, szerokość pasma transmisji

iptables -A FORWARD -m mac --mac-source ADR_MAC -j RETURN Ciekawym zastosowaniem filtra pakietów jest analiza ruchu wychodzącego z sieci chronionej.. W celu rozróżnienia

Potwierdzić w/w informacje przyciskiem „Zapisz i wyślij zgłoszenie”, co spowoduje zapisanie rezerwacji w programie.. Efektywność opisywanego programu jest

• Port Trunking jest możliwy jedynie przy wykorzystaniu przełączników zarządzalnych, które muszą być odpowiednio

Każdemu z urządzeń stosowanych do budowy sieci przypisano symbol graficzny, za pomocą którego jest on reprezentowany w schematach.. Wybrane symbole urządzeń

Umieszają dane na serwerach do wykorzystania przez uczniów, otrzymują pliki od uczniów. Tak samo jak uczniowie korzystają w różnym czasie z różnych komputerów i powinni