Logistyka.net.pl

Opracowanie i realizacja projektu informatycznego z przedmiotu sieci komputerowe na przykładzie serwera lam

TRANSCOMP - XIV INTERNATIONAL CONFERENCE
COMPUTER SYSTEMS AIDED SCIENCE, INDUSTRY AND TRANSPORT
Serwer LAM, http, FTP, MySQL

Magdalena WILKOŁAZKA

OPRACOWANIE I REALIZACJA PROJEKTU INFORMATYCZNEGO Z PRZEDMIOTU SIECI KOMPUTEROWE NA PRZYKŁADZIE SERWERA LAM
Artykuł przedstawia kroki podejmowane podczas opisywania i realizacji projektu, który studenci kierunku informatyka mogą wykonać na przedmiocie sieci komputerowe. Projekt jest praktyczną formą zastosowania wiedzy zdobytej podczas laboratorium. Autorka zauważa, że umiejscowienie wiedzy zdobywanej podczas laboratorium w konkretnej sytuacji i w konkretnym problemie pozwala lepiej zrozumieć i zapamiętać materiał.

DESCRIBING AND EXECUTING IT PROJECT ON COMPUTER NETWORK LAB
Article present steps making during describing and executing project.
The project is practical form of using of knowledge gained during lab. Author points that placement of the knowledge in concrete situation and problem allows to better understand and remember lab material.
1. WSTĘP
Projekt informatyczny jest metodą praktycznego zastosowania wiedzy akademickiej.
W czasie jego realizacji studenci uczą się pracy w grupie, organizacji czasu i zadań oraz zdobywają doświadczenie pożądane na rynku pracy. Podczas tworzenia zadań projektowych dla studentów należy pamiętać o zachowaniu realizmu scenariuszy oraz stawiać takie cele, aby zadania stanowiły wyzwania dla realizujących je grup, nie będąc jednocześnie nieosiągalnymi.
2. ZADANIE PROJEKTOWE
Dobrym przykładem projektu jest zadanie następującej treści:
„Jesteś administratorem w nowo powstałej firmie hostingowej: www.moja-firma.pl.
Zdobyłeś właśnie dwóch pierwszych klientów. Pierwszy z nich chce u Ciebie utrzymywać stronę www.example.com, a drugi www.naprzyklad.pl. Obydwaj klienci mają wykupione domeny i usługę DNS u innego dostawcy (nie trzeba konfigurować DNS, a jedynie w celach testowych dokonać wpisu w pliku /etc/hosts) Klienci będą modyfikowali swoje

Politechnika Lubelska, Wydział Elektrotechniki i Informatyki, ul. Nadbystrzycka 36B, tel: 81 5384462

3680

Magdalena WILKOŁAZKA
strony www przez protokół FTP. Dodatkowo klient zamawiający hosting domeny www.naprzyklad.pl poprosił aby dostęp do jego zasobów był chroniony hasłem. Nazwa użytkownika to: student a hasło; student. Klient zaś, który jest właścicielem domeny www.example.com chce, aby jego strony były dwujęzyczne z domyślnym językiem polskim, a drugim angielskim. Ty jako administrator posiadasz zasoby, do których dostęp wymaga autoryzacji poprzez bazę MySql”
W oparciu o to zadanie można sporządzić plan pracy nad projektem i przydzielić określonym osobom wykonanie poszczególnych części projektu.
Każdy projekt wymaga zainstalowania lub zbudowania środowiska, w którym będziemy konfigurować poszczególne elementy. Przykładowy projekt, omawiany w tym artykule, wymaga systemu operacyjnego Linux, w którym zostanie zainstalowany i skonfigurowany serwer Apacze, FTP oraz MYSQL. Niezbędne jest też dodanie modułów, które umożliwiają współpracę między Apachem a MySqlem, w zakresie narzuconym w zadaniu, a mianowicie modauthmysql.
2. WYKONANIE ZADANIA
Realizacja powyższego zadania wymagać będzie wykonania następujących kroków:
• Utworzenie struktury prostej sieci LAN (rys. nr 1)

Rys. 1 Sieć LAN


Instalacja poszczególnych elementów serwera: Apache, Mysql, FTP oraz dodatkowych modułów

OPRACOWANIE I REALIZACJA PROJEKTU INFORMATYCZNEGO...

Utworzenie struktury katalogów i plików serwera Apacze oraz struktury katalogów na pliki użytkownika. Należy uwzględnić między innymi takie katalogi jak logs, do przechowywania dzienników zdarzeń, html - do przechowywania stron internetowych, conf - do przechowywania plików konfiguracyjnych itp. Przykładowe struktury mogą wyglądać następująco: e tc / h ttp d / lo g s / c o n f/ h ttp d .c o n f c o n f.e n a b le d /
c o n f.d /
e x a m p le .c o m .c o n f n a p rz y k la d .p l.c o n f
m o ja - firm a .p l.c o n f

Rys. 2 Struktura katalogów i plików Apache v a r/ www/
m o ja -firm a .p l/ h tm l
h tm l/ in d e x .h tm l
lo g /
n a p rz y k la d .p l/ e x a m p le .c o m / h tm l h tm l/
lo g /
in d e x .h tm l

Rys. 3 Struktura katalogów użytkowników
in d e x .h tm l
lo g /

3682

Magdalena WILKOŁAZKA


Stworzenie głównych stron internetowych klientów: www.naprzyklad.pl, www.example.com oraz strony firmy hostingowej: www.moja-firma.pl



Utworzenie na serwerze mysql bazy danych bazamoja oraz w niej tabeli users. W tabeli tej będą przechowywane loginy i hasła osób uprawnionych do korzystania z zasobów serwera (np. admin, nimda)



Zaemulowanie serwera DNS poprzez dodanie odpowiednich wpisów w pliku
/etc/host



Umożliwienie istnienia na serwerze stron pod dwiema różnymi domenami poprzez wprowadzenie virtualhostów i ich konfiguracja dla każdego z użytkowników oddzielnie. Pliki konfiguracyjne powinny być umieszczone w podkatalogu serwera Apacze. Uwzględnienia wymaga fakt iż część klientów, mimo że ma swoje miejsce na serwerze to ich strony są wyłączone. Ma to miejsce wtedy, gdy klient zalega np. z opłatami. Należy utworzyć katalog vhost.enabled, w którym utworzymy linki symboliczne do włączonych virtualhostów. Pliki konfiguracyjne mogą mieć nazwy takie same jak nazwy domen np. naprzyklad.pl.conf. Poniższy rysunek przedstawia przykładowy plik konfiguracyjny:

< V irtu a lH o s t * :8 0 >
S e rv e rN a m e m o ja -firm a .p l
S e rv e rA lia s w w w .m o ja -firm a .p l
D o c u m e n tR o o t /v a r/w w w /m o ja -firm a /h tm l
E rro rL o g /v a r/w w w /m o ja -firm a /lo g /e rro r lo g
C u s to m L o g /v a r/w w w /m o ja firm a /lo g /a c c e s s lo g c o m m o n
< D ire c to ry /v a r/w w w /m o ja -firm a >
O p tio n s M u ltiV ie w s In d e x e s
A llo w O v e rrid e a ll
O rd e r a llo w ,d e n y
A llo w fro m a ll
< /D ire c to ry >
< /V irtu a lH o s t>
Rys. 4 Plik konfiguracyjny strony moja-firma.pl


Zmodyfikowanie pliku konfiguracyjnego httpd.conf, znajdującego się w katalogu
/etc/httpd/conf/ Zmiany które mają być w nim wprowadzone dotyczą ustawień adresu serwera oraz portu, na którym będzie on przyjmował informacje, ustawienie nazwy DNS serwera, załadowanie potrzebnych modułów w sekcji
LoadModule, zabezpieczenia dostępu, modyfikacji katalogów serwera lub katalogów użytkowników (sekcje Direktory), ustawienie priorytetowego języka

OPRACOWANIE I REALIZACJA PROJEKTU INFORMATYCZNEGO... stron wyświetlanych, wskazanie miejsca konfiguracyjnych serwera jak i virtualhostów, •
przechowywania
plików

Utworzenie plik 00default.conf, zawierającego konfigurację domyślnego
Virtualhosta. Zostanie on użyty za każdym razem, gdy w adresie URL zostanie wpisana nazwa domeny nie obsługiwanej przez żaden virtualhost. Stosuje się ten plik, np: do umieszczenia informacji, że nie znaleziono strony pod taką domeną na serwerze. Dołączanie plików konfiguracyjnych virtualhostów poleceniem include w pliku httpd.conf sprawia, że pliki te, w chwili przeszukiwania ich, wczytywane są w kolejności alfabetycznej (cyfry są przed literami). Dlatego też plik default ma w nazwie na początku 00 i zostanie wczytany jako pierwszy. Wpisy w nim zostały pokazane na rysunku:


ServerName www.niematejstrony.pl
DocumentRoot
/var/www/default
RewriteEngine On
RewriteRule .* /index.html

Rys. 5 Plik 00default.conf


Ustawienie możliwości wyświetlania strony w dwóch językach. Realizacja tego kroku opiera się na opcji MultiViews wpisanej w pliku konfiguracyjnym. Aby zobaczyć jej działanie tworzy się pliki index.html.en oraz index.html.po, a następnie w opcjach przeglądarki zmienia się domyślne ustawienia obsługiwanego języka.



Ustawienie dostępu chronionego hasłem dla użytkownika domeny naprzyklad.pl.
Należy utworzyć użytkownika, a następnie wprowadzić w pliku konfiguracyjnym virtualhosta wpisy określające rodzaj uwierzytelnienia, nazwę strefy zastrzeżonej oraz ścieżkę do pliku z loginem i hasłem (student, student)



Ustawienie autoryzowanego dostępu do zasobu poprzez bazę danych mysql.
Połączenie między bazą danych a serwerem Apacze odbywa się poprzez plik
.htaccess (rys nr.6) umieszczony w katalogu, do którego autoryzowany dostęp zostanie skonfigurowany. W pliku tym określona zostaje baza, tabela, nazwa użytkownika bazy i hasło oraz rodzaj szyfrowania i uwierzytelniania.

3684

Magdalena WILKOŁAZKA

AuthName "Strefa administracyjna"
AuthType Basic
AuthMySQLHost localhost
AuthMYSQLEnable on
AuthMySQLUser userbazyapacha
AuthMySQLPassword ijegohaslo
AuthMySQLDB bazamoja
AuthMySQLUserTable user
AuthMySQLNameField name
AuthMySQLPasswordField password
AuthMySQLPwEncryption none require valid-user
Rys. 6 Zawartość pliku .htaccess


Modyfikacja pliku /etc/my.cnf przez wprowadzenie właściwej ścieżki do bazy.



Konfiguracja serwera ftp przez modyfikacje pliku proftpd.conf, w którym trzeba zmienić nazwę użytkownika i grupy na apacze. Aby ftp działał na tych samych prawach co użytkownik apache (ten sam dostęp do plików co apache) należy też zmienić parametry w następujących dyrektywach: AuthUserFile, AuthOrder, RequireValidShell. Dla podniesienia poziomu bezpieczeństwa należy stworzyć wirtualnych użytkowników specjalnym poleceniem ftpasswd.



Uruchomienie serwera ftp, http i mysql oraz następnie wyłączenie strony startowej
Apacze poprzez zakomentowanie wszystkich linii w pliku
/etc/httpd/conf.d/welcome.conf.

3. TESTY I KOREKCJA EWENTUALNYCH BŁĘDÓW
W chwili realizacji projektu pojawiają się błędy związane z błędami w nazwach plików i katalogów, błędnymi ścieżkami do katalogów i plików, w obu przypadkach strony internetowe nie zostaną załadowane a przeglądarka zwróci błąd „Strona o podanym adresie nie istnieje” lub „taka domena nie jest hostowana na tym serwerze” Kolejną grupą błędów są błędne wpisy w plikach konfiguracyjnych serwera i virtualhostów skutkujące brakiem możliwości uruchomienia serwera. Obecne są także błędy wynikające z niezrozumienia sposobu komunikacji między poszczególnymi częściami projektu, konfiguracja jest poprawna a mimo to komunikacja nie działa tak jak powinna. Pomocne przy rozwiązywaniu błędów i testach są dzienniki zdarzeń. Tak serwer jak i virtualhosty zapisują takie dzienniki w postaci plików w specjalnych katalogach log.
Pierwszym punktem przy testach jest sprawdzenie komunikacji pomiędzy komputerami klientów a komputerem pełniącym rolę serwera. Zaś testowania właściwego działania wszystkich elementów serwera warto rozpocząć po wprowadzeniu minimalnej konfiguracji.

OPRACOWANIE I REALIZACJA PROJEKTU INFORMATYCZNEGO...
W przypadku projektu serwera LAM, zmodyfikowanie pliku httpd.conf , utworzenie jednej strony html pozwala na sprawdzenie czy serwer Apacze zadziała. Następnym krokiem przy testach może być, zaemulowanie serwera DNS i sprawdzenie czy nazwy domenowe są właściwie interpretowane. Później można wprowadzić dostęp przez serwer
FTP i sprawdzić czy nie ma możliwości dostępu dla niepowołanych użytkowników.
Podobnie sytuacja się przedstawia jeśli zostanie wzięty pod uwagę autoryzowany dostęp do zasobów oraz prawa do plików i katalogów na komputerze pełniącym rolę serwera. Ważne jest aby katalogi i pliki miały takie prawa, by mogli je modyfikować, przeglądać jedynie uprawnieni do tego użytkownicy i szczególnie istotne by pliki z hasłami nie były przechowywane w ogólno-dostępnych katalogach.
4. PODSUMOWANIE
Projekt jest bardzo kształcącą ale i czasochłonną metodą pracy. Podczas opracowania projektu najważniejsze jest prawidłowe postawienie zadania projektowego i świadomość i rozumienie tego, co chce się zrealizować. Realizacja w takim przypadku będzie dużo łatwiejsza, a wynik testów pozytywny.
5. BIBLIOGRAFIA
[1] Meloni J. “PHP, MySQL, Apache dla każdego”
[2] O'Reilly Apache „Przewodnik encyklopedyczny”
[3] Stolz J, Gernet J., „PHP, Apachei MySQL. Od podstaw”,Helion
[4] http://centos.pl/kompilacja-i-konfiguracja-proftpd-w-centos-5-4-t-33.html
[5] http://www.eioba.pl/a76047/aktywnyipasywnytrybftp
[6] http://www.proftpd.org/docs/howto/
[7] http://pl.wikipedia.org/wiki/HypertextTransferProtocol
[8] http://www.cgi101.com/book/ch20/modauthmysql.html
[9] http://httpd.apache.org/docs/2.2/howto/htaccess.html
[10] http://dev.mysql.com/tech-resources/articles/mysqlintro.html
[11]http://www.networld.pl/news/130505/Wlasny.i.bezpieczny.serwer.FTP.cz.2.Linux.html