m0n0wall - oprogramowanie dla routerów i firewalli w zastosowaniach domowych i nie tylko.
Projekty takie jak Vyatta czy m0n0wall powstały aby ułatwić życie administratorom sieci komputerowych i oszczędzić ich czas a także dla osób, które nie są specjalnie obeznane w systemach bazujących na jądrze Linux bądź systemach BSD. Portal dobreprogramy.pl promuje od dawna Vyattę, o którym była też ciekawa sesja na tegorocznym HotZlocie, Ci co nie byli osobiście mogą obejrzeć wideorelację. Polecam również zapoznać się z demonstracjami na temat Vyatty na portalu TechIT. Ja postanowiłem pokazać natomiast czym jest projekt m0n0wall, ponieważ uważam iż jest to ciekawe rozwiązanie dla tzw. zwykłych użytkowników, chcących stworzyć router bądź firewall dla swojej sieci w domu. Oczywiście nie tylko na tym kończą się możliwości tego systemu. Według prowadzących sesję, Vyattę można stosować nie tylko w serwerowniach ale również w warunkach domowych i faktycznie można ale mimo wszystko osobiście uważam, że ten system może okazać się jeszcze zbyt skomplikowany dla osób, które nie czują się zbyt dobrze w CLI (Command Line Interface), czyli w trybie tekstowym. Vyatta od niedawna oferuje również interfejs przeglądarkowy, czyli dostęp do panelu przez przeglądarkę stron www tak jak ma to miejsce w domowych routerach sprzętowych oferowanych przez rozmaitych producentów tego typu sprzętu, jednak według mnie, przynajmniej na dzień dzisiejszy, interfejs ten może okazać się dla użytkownika domowego zbyt skomplikowany i mało intuicyjny. Mam nadzieję, że w przyszłości się to zmieni. Oczywiście jest to tylko i wyłącznie moje, subiektywne odczucie, z którym nie wszyscy muszą się zgodzić.
Czym jest projekt m0n0wall?
Jest to system oparty na FreeBSD, którego przeznaczeniem jest stworzenie systemu dla urządzeń pełniących rolę zapory sieciowej, który może pełnić również funkcję routera. Praktycznie cała konfiguracja systemu odbywa się z poziomu przeglądarki stron www. Interfejs jest dość przejrzysty i każdy, nawet początkujący użytkownik routera, powinien sobie poradzić z jego konfiguracją - tutaj jedynym ograniczeniem jest wiedza na temat sieci komputerowych :) System jest w pełni darmowy.
Skoro za niewielkie pieniądze można kupić router sprzętowy przeznaczony dla małych sieci domowych to kto chciałby tego używać?
Praktycznie każdy kto ma na to ochotę. System ten tworzony jest pod procesor z architekturą x86, więc można go stosować na zwykłym komputerze klasy PC jak i routerach sprzętowych, działających na procesorach tej architektury czy serwerach, więc jeśli ktoś dysponuje starym komputerem, który kurzy się w piwnicy lub na szafie to można z niego zrobić użytek, tworząc router dla domowej sieci lub jeśli w domu posiada się tylko jeden komputer jest to idealne rozwiązanie aby zbudować zaporę sieciową, która dodatkowo chroniłaby ten jeden komputer. Oprócz tego m0n0wall może też stanowić alternatywę dla oprogramowania stosowanego w routerach sprzętowych. Niestety routery z serii Linksys WRT54G nie są wspierane ze względu na architekturę procesora w nich stosowanych ale tutaj znowuż swoją rolę spełnia dobrze takie oprogramowanie jak Tomato, DD‑WRT czy HyperWRT. Oczywiście możliwości m0n0wall się na tym nie kończą i można go również stosować w rozbudowanych sieciach komputerowych, stanowiąc tym samym alternatywę dla drogich rozwiązań sprzętowych podobnie jak Vyatta.
Co oferuje m0n0wall?
System na dzień dzisiejszy ma do zaoferowania to co większość innych routerów programowych bądź sprzętowych a między innymi:
- interfejs przeglądarkowy (przykładowy zrzut ekranu) ; - możliwość zmiany nazwy użytkownika i hasła do panelu routera oraz tworzenia nowych użytkowników i grup; - możliwość zmiany protokołu (http lub https) i/lub zmiany portu dostępu do panelu przeglądarkowego na dowolny inny, wtedy można się łączyć z panelem na przykład w taki sposób http://192.168.1.1:5000; - możliwość aktualizacji oprogramowania z poziomu przeglądarki stron internetowych; - możliwość stworzenia kopii zapasowej konfiguracji routera i jej późniejsze przywracanie z utworzonej kopii; - wsparcie dla protokołu IPv6 ; - zapora sieciowa, która chroni przed atakami sieciowymi. Domyślnie ruch przychodzący jest blokowany, ruch wychodzący jest dopuszczony i dopuszczane są pakiety z powiązań już nawiązanych, oprócz tego można tworzyć również własne reguły; - serwer NAT ; - serwer DHCP ; - podział pasma i limitowanie łącza; - Dynamic DNS, czyli usługę DynDNS/No-IP w przypadku łącz ze zmiennym IP z puli adresów publicznych, wspierające kilka serwisów tego typu; - Wake On LAN, czyli możliwość wybudzania/uruchamiania danego komputera w sieci lokalnej; - bramka VPN (IPsec, PPTP ); - Strefa zdemilitaryzowana (DMZ ); - możliwość konfiguracji łącz dsl/adsl, łącz ze statycznym bądź dynamicznym IP przydzielanym przez operatora sieci; - wsparcie dla punktów dostępu do sieci bezprzewodowej (Access Point); - możliwość tworzenia sieci VLAN ; - wsparcie dla protokołu SNMP ; - możliwość przekierowania portów; - diagnostyka łącza i systemu wraz z wykresami generowanymi w czasie rzeczywistym;
Instalacja systemu.
Instalacja systemu z płyty CD jest banalna, nie potrzeba tutaj żadnej wiedzy na temat systemu FreeBSD, wszystko zostało tak skonstruowane aby z tego po prostu korzystać i polega na wybraniu odpowiedniej opcji z menu, wybraniu nośnika na którym system ma być zainstalowany - może to być karta pamięci lub inny nośnik pamięci flash czy też zwykły dysk twardy. System działa również jako LiveCD i tak naprawdę nie trzeba go instalować, jednak to rozwiązanie ma pewną wadę - w przypadku restartu routera cała konfiguracja jest tracona bezpowrotnie, ponieważ jest przechowywana w pamięci RAM. Jednak i na to jest sposób - istnieje możliwość zapisu konfiguracji na dyskietce bądź innym nośniku pamięci i w razie potrzeby ponownego uruchomienia urządzenia system wczytuje konfigurację z dostarczonej mu dyskietki. Oferowany jest też specjalny obraz dla tzw. urządzeń wbudowanych, czyli np. dla routerów sprzętowych, serwerów opartych o procesory x86, w tym wypadku instalacja polega na wypakowaniu i skopiowaniu obrazu na dyskietkę bądź kartę pamięci (instrukcja dostępna na stronie projektu). Oprócz tego można pobrać sobie obraz dla maszyny wirtualnej i na niej przetestować już działający system. Obraz co prawda tworzony jest dla VMWare ale pod VirtualBoksem też działa, jak pod innymi maszynami to nie wiem, bo nie miałem okazji sprawdzać.
System po uruchomieniu wita nas początkowo w trybie tekstowym, lecz nie należy się tym martwić, ponieważ wszystko jest łatwe w konfiguracji a całą resztę odwalają za nas skrypty pisane w PHP. Jeśli do routera został przypisany adres IP z serwera DHCP to nie trzeba nic więcej robić, już na tym etapie można zalogować się do panelu przez przeglądarkę, wpisując adres IP przypisany dynamicznie do routera i tam wszystko skonfigurować. W przeciwnym wypadku tutaj można przeprowadzić wstępną konfigurację, jak np. ręczne przypisanie adresu IP do routera, możliwość włączenia serwera DHCP i ustalenia zakresu przydzielanych adresów.
Ekran powitalny systemu m0n0wall zawierający podstawowe informacje o systemie, tu odbywa się wstępna konfiguracja routera.
Jak widać menu oferuje:
1. Konfigurację interfejsów (kart) sieciowych i VLAN; 2. Ustalanie adresu routera, w moim przypadku jest to akurat 192.168.1.1; 3. Resetowanie hasła do panelu www, domyślne hasło to mono o czym system poinformuje w przypadku resetowania hasła; 4. Resetowanie do ustawień fabrycznych, czyli do ustawień domyślnych sprzed konfiguracji routera, w tym również to co zostało skonfigurowane za pomocą przeglądarki stron internetowych; 5. Ponowne uruchamianie systemu; 6. Tutaj można sprawdzić czy router został prawidłowo skonfigurowany poprzez pingowanie komputerów zarówno w sieci lokalnej jak i globalnej; 7. Instalacja systemu na dysku twardym, karcie pamięci lub innym nośniku.
Jeśli już ktoś jest zdecydowany na instalację systemu na urządzeniu, które ma pełnić rolę routera bądź zapory sieciowej, powinien wybrać siódmą pozycję z menu, wówczas system postara się wykryć dostępne nośniki, na których możliwa będzie instalacja.
Lista nośników, na których może być zainstalowany system.
W moim przypadku system wykrył jeden dysk oznaczony jako ad0 (dysk wirtualny Virtualboksa), jeśli u kogoś w systemie wyrytych zostanie kilka nośników należy wybrać odpowiedni i podać jego nazwę. Proponuję przedtem zapoznać się z tą stroną, na której wyjaśniono w jaki sposób FreeBSD rozpoznaje dyski i inne urządzenia, aby uniknąć ewentualnej pomyłki.
Przed ostateczną instalacją pojawi się ostrzeżenie, że instalacją wiąże się z utratą wszelkich danych znajdujących się na nośniku, na którym przeprowadzana będzie instalacja. Należy jeszcze tylko zatwierdzić chęć instalacji i chwilę poczekać. System po instalacji automatycznie się zrestartuje.
Instalacja systemu.
Po instalacji systemu można rozpocząć konfigurację routera bądź zapory sieciowej. Niestety ze względu na limit obrazków jaki można zamieścić na blogu odsyłam chętnych na stronę projektu, gdzie można obejrzeć zrzuty ekranu, pobrać system oraz poczytać dokumentację i przewodniki, obejrzeć demonstracje pomocne w instalacji i konfiguracji routera, niestety wszystko w języku angielskim.
Strona projektu - http://m0n0.ch/ Zrzuty ekranu - http://m0n0.ch/wall/screenshots.php Polska strona projektu (niestety od dawna nie aktualizowana) - http://m0n0wall.eu