W obecnej sytuacji ekonomicznej oraz coraz silniejszej konkurencji większość firm nie może pozwolić sobie na inwestowanie dużych środków na rozwiązania internetowe. Jednak rezygnacja z jakichkolwiek projektów oznacza utratę pozycji konkurencyjnej.
Trzeba znaleźć rozsądną propozycję dla firm, które chcą się rozwijać, ale nie dysponują dużą ilością kapitału. Na szczęście obecnie na rynku istnieje bardzo dużo rozwiązań darmowych lub prawie darmowych. Co ciekawe, nie są one zwykle gorsze od produktów za x00000$. Proponujemy przyjrzeć się wybranym (i sprawdzonym) produktom realizującym podstawowe funkcje związane z Internetem. Przegląd ten nie jest kompletny – zawiera tylko kilka wybranych rozwiązań z setek (tysięcy?) dostępnych. Czynnikami decydującymi o wyborze były głównie niezawodność, jakość, elastyczność i bezpieczeństwo. Wybrano rozwiązania zwykle bardzo popularne (a przez to godne zaufania – bo dokładnie przetestowane i znane „od podszewki”.
System operacyjny
Do wyboru mamy różne rodzaje linuxów oraz systemy z rodziny BSD. Wszystkie są darmowe. Z linuxów można wybrać np. najbardziej popularną dystrybucję RedHat. Mirror w Polsce wraz z obrazem iso płyty z systemem znajduje się na ftp://sunsite.icm.edu.pl/pub/Linux/redhat/. Jest to dystrybucja bardzo szybko wprowadzająca wszelkie nowinki do systemu. Łatwa w instalacji, jednak znane są jej słabe strony dotyczące bezpieczeństwa. Nie powinno się instalować domyślnej konfiguracji, należy dopracować własną. Bardzo szybko i dynamicznie polski rynek zdobywa dystrybucja Mandrake. Strona projektu znajduje się pod adresem http://www.linux-mandrake.com/, mirroruje ją ftp://sunsite.icm.edu.pl/pub/Linux/mandrake/. Bardzo polecaną dystrybucją na serwery jest Debian – obrazy płyt znajdują się na ftp://sunsite.icm.edu.pl/pub/Linux/debian-cd/. System posiada bardzo wygodne narzędzia do zarządzania update’ami pakietów. Bardzo dobrym systemem jest Slackware, dystrybucja ta ma bardzo wiele cech wspólnych z systemami BSD, nie jest trudna w administracji, chociaż nie posiada żadnych „kreatorów ” oraz im podobnych „wodotrysków”. Większość opcji ustawiamy w plikach o bardzo czytelnej składni. Więcej na temat innych dystrubucji znajdziemy pod adresem Przegląd dystrybucji Linuxa Systemy z rodziny BSD UNIX.
Na całę tę rodzinę składają się , oraz . Oparte są na UNIX-owych systemach. Bardzo dobrze sprawują się jako serwery sieciowe. Opracowano je na Uniwersytecie Kalifornijskim Berkeley.
Linux i FreeBSD mogą pracować nie tylko na procesorach Intela. Stabilne implementacje istnieją dla DECowskiej Alphy (procesora 64-bitowego), dla niektórych maszyn z procesorem Motoroli 68k, m.in. Amigi, PowerPC Apple’a i Sparca Suna. Wreszcie, jeżeli ktoś zdecyduje się kupić płytę z kilkoma procesorami Intela lub Suna to Linux może wykorzystać możliwości takiej płyty. Na FreeBSD decydowały się duże firmy, wymagające pełnej niezawodności, wydajności i bezpieczeństwa przykładami są serwisy yahoo.com, cdrom.com.
Poniżej przedstawone są niektóre cechy systemów BSD
Celem przyświecającym programistom OpenBSD było zapewnienie dużego bezpieczeństwa systemu, oraz wieloplatformowości, dlatego też pierwsza wersja (1996 r.) została oparta na NetBSD 1.1, a obsługiwała 9 platform sprzętowych. Od tego czasu autorzy audytują każdy fragment kodu pod kątem jakichkolwiek zagrożeń bezpieczeństwa. OpenBSD jest też pierwszym systemem, w którym znalazła się tak szeroka obsługa kryptografii.
Jako, że system nie jest rozwijany w USA, autorzy nie musieli dbać o restrykcje eksportowe. Co do FreeBSD to jądro tego systemu zapewnia pełną zgodność binarną z Linuxem, SCO Unixem, NetBSD i BSD/OS, co pozwala na bezproblemowe uruchamianie aplikacji działających w innych środowiskach, jednocześnie nie powodując ich spowolnienia działania.
System NetBSD również pochodzi od 4.4BSD Lite2 (pierwsza edycja w 1994 roku), jednakże w tym wypadku celem programistów było uzyskanie zgodności z jak największą liczbą platform sprzętowych. W chwili obecnej NetBSD pracuje na 30 różnych platformach, od VAX do Atari.
Zarówno Linux jak i systemy BSD dostarczane są wraz ze źródłami, co jest ich dodatkowym atutem. Obecnie także firma udostępnia system SOLARIS również za darmo jest to bardzo dobry system operacyjny – trochę trudności może sprawić jego instalacja. Wymaga on ponadto lepszego sprzętu.
Serwer WWW
Co do serwerów www, to niepodzielnie króluje Wg specjalistów z firmy Apache prowadzi dość znacznie nad innymi konkurencyjnymi serwerami www. Jego główne zalety to wydajność, łatwa konfiguracja oraz, co chyba najważniejsze, olbrzymie możliwości rozbudowy o dodatkowe moduły (ich lista znajduje się ). Dużym atutem jest dokumentacja do tego serwera – jej angielską wersję można znaleść na , natomiast wersję polską znajdziemy tutaj.
Z Apachem bardzo łatwo zintegrować obsługę jezyków programowania. Chodzi tutaj głównie o PHP oraz Perl-a
Inne rozwiązania dopiero zaczynają postawać. Z ciekawszych warto wymienić Aol Serwer oraz Roxenzwiązany z FreeBSD.
Pełną listę serwerów wraz z cenami 🙂 można znaleść na stronach
Baza danych
Ostatnio wzrosło znaczenie niekomercyjnych baz danych – powstały nowe produkty. Został przełamany monopol dużych firm. Obecnie dostępne są opensource’owe rozwiązania w pełni gotowe do wykorzystania w rozwiązaniach B2B, B2C. Udostępniają użyteczne i elastyczne mechanizmy przechowywania wszelkiego rodzaju informacji. Nic więc dziwnego, iż relacyjne bazy danych używane są w aplikacjach tak małych jak prywatny spis telefonów, az po potężne magazyny danych stosowane w bankach do zapisywania realizowanych transakcji.
Standardem obecnie są bazy oparte na języku sql. Jest to język zapytań umożliwiający pobieranie i zapisywanie danych. Na język SQL składają sie zapytania które bardzo łatwo konstruować.
Dwa najpopularniejsze „silniki” baz danych to i PostgreSQL. Zdania co do ich wydajności są podzielone – MySQl nadrobił dystans do PostreSQL implementując obsługę transakcji. Do obsługi ich powstało wiele bibliotek np dla C++. W języki PHP oraz Perl> wbudowano bardzo wygodne funkcje do ich obsługi. Szczególnie perl posiada bogate archiwum PHP bardzo łatwo właczać do stron generowanych dynamicznie.
MySQL nie ma możliwości zapamiętywania procedur i dlatego wszystkie operacje należy programować niejako „z zewnątrz”, w językach: C/C++, Tcl, Perl, PHP lub Python.
Dostęp do informacji jest możliwy z poziomu protokołów ODBC i JDBC. Kolejnym ograniczeniem jest brak tzw. triggerów – procedur wykonywanych automatycznie po odczycie/zapisie konkretnego pola. Ten mechanizm jest często wykorzystywany w oprogramowaniu internetowym, m.in. do zabezpieczania dostępu do części serwisu na hasło (obsługa logowania).
Postgresql obsługuje transakcje i triggery. Ma możliwość składowania procedur napisanych w języku zbliżonym do PL/SQL. Te cechy zostały jednak okupione wolniejszym działaniem oprogramowania. Postgresql nadaje się doskonale do tworzenia zaawansowanych aplikacji Duża pojemność informacyjna (maksymalny rozmiar tabeli danych – 64 TB, największe pole – 1 GB, liczba pól w rekordzie – do 1600) i obsługa standardowych protokołów komunikacji (ODBC/JDBC) pozwalają na zastosowanie nawet w profesjonalnych systemach do zarządzania oraz w hurtowniach danych.
Dostęp do danych można także realizować w językach: C/C++, Tcl, Perl, PHP i Python.
Wśród popularnych serwerów baz danych dla Linuksa, które są dostępne za darmo należy jeszcze wymienić i InterBase. Baza Adabas w wersji 11 jest oferowana także jako bezpłatna Linux Edition. Firma Borland, producent udostępnia gotowy do skompilowania pełny kod źródłowy w ramach tzw. Open Edition.
Reasumując jeżeli posiadamy mniejsze bazy, a zależy nam na szybkości polecamy Mysqla, w przeciwnym wypadku użyjmy PostgreSQL.
System poczty
Linux jako serwer poczty sprawuje się znakomicie. Do niedawna jedynym MTA (MAIL TRANSPORT AGENT) był Znane były jego problemy z bezpieczeństwem .Na stronach można jeszcze znaleść kilka exploitów na starsze jego wersje . Programiści Sendmaila bardzo dokładnie audytowali jego kod i w tej chwili jest to bardzo dobry elastyczny program. Jego konfiguracja może sprawić początkującym użytkownikom dość duże problemy.
Ciekawym programem i bardzo łatwo konfigurowalnym jest napisany przez Wietse Venema. Program ten zasługuje na uwagę – jest bezpieczny i bardzo wydajny. Składa się z kilku niezależnych procesów (całością zarządza daemon o nazwie master) które nie „ufają sobie nawzajem”, co dodatkowo zabezpiecza system.
Na uwagę zasługuje też jest modularnym i bardzo wydajnym narzędziem do transportu poczty elektronicznej, autorstwa prof. Dana J. Bernstein’a. Główną cechą, odróżniającą go od większości MTA (ang. mail transport agent) zbudowanych na wzór sendmail’a jest właśnie modularność oraz prostota, a co za tym idzie bezpieczeństwo. Według testów autora, qmail potrafi dostarczyć 9 mln lokalnych wiadomości dziennie na komputerze klasy Pentium 100. Wadą jest niestandartowy sposób przechowywania skrzynek pocztowych co wymaga dodatkowych zabiegów konfiguracyjnych.
Istnieje też Zmailer Serwer pocztowy autorstwa Rayana S. Zachariassena i Matti Aarnio stworzony został z myślą o dużych instalacjach. Zmailer obsługuje inne protokoły pocztowe oprócz SMTP , m.in. UUCP czy Bitnet, popularne na przełomie lat 80. i 90., a także bramkę pomiędzy pocztą elektroniczną a usenetem.
Ciekawy w konfiguracji jest też Jest to serwer pocztowym rozwijanym na Uniwersytecie Cambridge na zasadach GNU GPL. Architektura Exima różni się zasadniczo od np. Postfiksa. Mailer skomponowany został jako jeden plik binarny, uruchamiany z identyfikatorem obowiązującym root. Nie jest to zbyt popularny MTA. Sądzę że najlepszym kompromisem jest Postfix – mamy w nim zarówno bezpieczeństwo, jak i prostotę konfiguracji.
Inne
Najbardziej znanym serwerem DNS (Domain Name Server) jest . Niestety zyskał on sobie złą sławę poprzez wpływ na bezpieczeństwo systemu. Alternatywą, spełniającą wszelkie oczekiwania odnośnie bezpieczeństwa, stabilności oraz wydajności jest Autorem programu jest Dan J. Bernstein, autor bardzo popularnego serwera poczty QMail. Dla dużych sieci jednak dalej najlepszym rozwiązaniem będzie BIND działający w chrootowanym środowisku bez uprawnień roota.
Nasz serwer należy zabezpieczyć za pomocą firewalla. Możemy go „napisać” za pomocą kilku narzędzi – dobranych w zależnosci od jądra systemu (dla systemów linux).
We wszystkich jądrach do serii 2.0 używa sie narzedzia ipfwadm. Jądra 2.2.x wprowadziły trzecią generacje firewalla IP dla Linuksa o nazwie IP Chains (łancuchy IP). Łańcuchy IP używają programu podobnego do ipfwadm, ale noszącego nazwe ipchains. W nowszej jądrach serii 2.4.x używany jest
Filtrowanie jest opisane w dwóch bardzo dobrych dokumentach napisany przez Daniela Letkiewicza oraz w artykule Pawła Krawczyka
Do badania bezpieczeństwa systemu służą różne bardzo ciekawe narzędzia IDS(Intrusion Detection) Z znanych należy wymienić
W utrzymaniu bezpieczenstwa pomagają skanery dziur oraz Typhon Internet Scanner
Narzędzi im podobnych jest bardzo dużo – należy ich szukać na serwerach i – są to największe serwery z opensource’owym oprogramowaniem.
Jak widać darmowych narzędzi jest wiele. Jak przyznają fachowcy, można dzięki nim stworzyć system nadający się do większości zastosowań nie gorzej, niż drogie systemy komercyjne. Jeżeli chodzi o wsparcie techniczne, to można znaleźć bez większych problemów ludzi, którzy mają doświadczenie w konfiguracji ww. rozwiązań. Koszt instalacji i obsługi tego typu oprogramowania jest znacznie niższy, niż rozwiązań „brandowych”, a jakość również zwykle od nich nie odbiega.
Wykorzystano strony
