Przygoda z Ipfire cz.I
Wybór jeden z wielu, czyli dlaczego Ipfire?
Pewnego dnia dostałem wiadomość prywatną na forum mojego miasta z propozycją współpracy przy sieci radiowej w technologi 5Ghz. Ktoś co prawda przemienił debiana na ruter, ale pozostawił go samemu sobie, nie wykazując jakiejś większej inicjatywy do pracy przy świeżo powstałej sieci.
Nie zastanawiając się dłużej wyraziłem chęć współpracy i w ten sposób rozpocząłem przygodę z Ipfire. Pod uwagę brałem wiele obecnych na rynku rozwiązań, przewijał się ZeroShell, który jest znakomity, pojawił się też Ipcop, którego kilkukrotnie użyłem jako ruter w małych sieciach, ale z doświadczenia wiem, że sprawia większe, bądź też mniejsze problemy, chociaż jest bliźniaczo podobny do Ipfire.
Pod uwagę wziąłem jeszcze parę innych rozwiązań, ale ostatecznie postanowiłem do tejże sieci na główny serwer wykorzystać Ipfire. Jego mocną stroną są dodatki, oraz możliwość korzystania z xen, co stwarza już w zasadzie nie ograniczone możliwości, zależnie jaki system zainstalujemy na maszynie wirtualnej. Poważną wadą jest wsparcie tylko dla jednego interfejsu WAN (red), oraz jednego interfejsu LAN(green), a zatem brak vlanów, przy małych sieciach to nie dokucza, przy bardziej złożonej topologii można się już zastanawiać, czy aby na pewno ruter z Ipfire nam wystarczy.
Modyfikacje konieczne do pracy.
Nie są to jakieś poważne ingerencje w system, póki co. Pierwsze za co wziąłem się po zainstalowaniu i skonfigurowaniu wstępnie systemu do pracy w sieci były skrypty startowe, a dokładniej musiałem sam sobie takowy dopisać, który uruchamiał wraz ze startem odpowiedni ruting.
Następnie zgodnie z zaleceniami skonfigurowałem vpn, konkretnie openvpn w taki sposób, aby przekazywał wpisy dla rutingu do klientów, polegało to na edycji pliku konfiguracyjnego openvpn i dopisaniu kilku linijek. Nie długo po tym wyskoczył kolejny problem, po restarcie ruting na serwerze jest dopisywany w sposób prawidłowy, lecz nie ma synchronizacji z wpisami siedzącymi w pliku konfiguracyjnym openvpn. Dlatego musiałem delikatnie zmodyfikować skrypt odpowiedzialny za ruting tak, aby nie zapominał synchronizować tras z wpisami w pliku konfiguracyjnym openvpn.
To też jest dla mnie jedna z wad tej dystrybucji, że nie posiada w swoim interfejsie narzędzia do ustalania statycznych tras, przydało by się.
Kolejną taką drobną zmianą było stworzenie skryptu, który robi kopie zapasowe i przenosi je na oddzielną partycję. Jak już jesteśmy przy skryptach, to od razu wspomnę o skrypcie odpowiedzialnym za logowanie ruchu sieciowego. Skrypt wykorzystuje do pracy tcpdump, pliki o rozmiarze ograniczonym do 1Mb (dla łatwiejszej analizy) są kopiowane do katalogu o nazwie w formacie : godzina.data.zrzut.dmp.
Następnie wziąłem się za skonfigurowanie vhost dla strony klienta, po co ma trzymać ją na zewnętrznym serwerze jak może u siebie niemal za darmo:) Do tego oczywiście doszedł ftp, tu wykorzystałem dostępny vsftp.
To, z czego warto skorzystać.
To co oferuje Ipfire i co może przydać się do codziennej pracy administratora nie zawsze wystarcza, dlatego warto rozejrzeć się za dodatkowym oprogramowaniem, które trochę wspomoże kontrolowanie sieci. Takim programem jest Nagios, dostępny jako pakiet do zainstalowania. Jego konfiguracja to inna bajka, nie ma sensu jej opisywać, bo jest inna dla każdej sieci.
Kolejnym przydatnym oprogramowaniem jest snort, oraz tripwire. Pierwsze to IDS, zaś drugie bada integralność plików na serwerze. Nie jestem ekspertem od bezpieczeństwa, ale na tyle ile mogę, zadbałem o nie. Jak już jesteśmy przy tym temacie to opiszę w jaki sposób wykorzystuje openvpn do pracy. Jak wiadomo ogólnie vpn tworzy tunele, przez które można w bezpieczny sposób łączyć się z zasobami sieci. Dostęp z zewnątrz jest zablokowany, bez certyfikatu dla openvpn nie ma w zasadzie jak się dostać do serwera, chyba że od wewnątrz. Pomijam jakieś niestandardowe metody polegające na włamaniu się na serwer, bo na tyle ile pozwoliła mi moja wiedza sprawdziłem podatność serwera na różne ataki i nie udało mi się sforsować moich zabezpieczeń.
Z openvpn skorzystałem jeszcze z jednego względu, podłączając się z dowolnego miejsca na świecie mogę zarządzac zarówno serwerem jak i nadajnikami, na których siedzi mikrotik, a on ma taką fajną aplikację do zarządzania jak winbox.
To co obecnie wdrażam.
Takim pierwszoplanowym wdrożeniem jest zrobienie intranetu dla klientów sieci, tak aby przepływ informacji od klientów do mnie był maksymalnie skrócony. Jak wszystko pójdzie dobrze, opiszę to w kolejnych częściach, wraz z zrzutami ekranu jak ja rozwiązałem sprawę intranetu.
Przyszedł czas, że trzeba zacząć kolejkować ruch sieciowy, QoS jest dostępne w Ipfire, ma obsługę warstwy 7 modelu OSI, oraz ma kilka wbudowanych klas, więc trzeba to wszystko sobie skonfigurować pod siebie. Na tym polu zdecydowanie przegrywa z ZeroShell.
System do obsługi klientów, tj:
*powiadomienia sms
*przypomnienie hasła do pppoe za pomocą sms‑a
*baza danych pozwalająca zarządzać klientami (mysql)
Pozostałe elementy pracy z Ipfire przedstawię w kolejnych wpisach, gdzie opiszę trochę dokładniej samego Nagiosa, oraz inne programy, które wykorzystuje w pracy z bramą opartą na Ipfire