Blog (107)
Komentarze (2.3k)
Recenzje (0)

Do czego może służyć serwer domowy?

@webnullDo czego może służyć serwer domowy?02.04.2011 14:19

Witam.

Kilka miesięcy temu zakupiłem stary terminal Neoware CA10, od tego czasu postawiłem na nim kilka ciekawych rzeczy które opiszę Wam w tym wpisie.

Na wstępie jeszcze podam Wam specyfikację na której całość działa:


Procesor: VIA Nehemiah @ 1.0 GHZ (2000 bogomips)
Pamięć ram: 128 mb DDRI 266 mhz (do 1024 mb maksymalnie, dwa sloty)
Zintegrowana pamięć flash: 32 mb
Gniazda USB: 4 x USB 2.0 (możliwość bootowania z USB)
Karta muzyczna: Zintegrowana
Karta graficzna: VIA Technologies, Inc. VT8623 [Apollo CLE266] integrated CastleRock graphics (rev 03)
Karta sieciowa: 10/100 mbit/s VIA  VT6102 [Rhine-II] (rev 74)
Pobór prądu: Do. 20Watt
System operacyjny: Debian GNU/Linux 7 "Wheezy"
Dysk twardy: Z interfejsem ATA na USB 20 GB

1. Status wszystkich komputerów w sieci

Każdy komputer w Mojej sieci wysyła do serwera dane tego typu:


- uptime
- średnie użycie procesora
- użycie pamięci RAM
- listę podłączonego sprzętu (na płycie, pod USB, PCI, ISA, ATA, SATA itp.)
- użycie dysku twardego
- informacje o napięciach jeżeli dostępne
- informacje o wentylatorach jeśli dostępne

Dzięki czemu mam możliwość monitorowania czy przykładowo jakiś komputer zbyt bardzo się nie grzeje - jeśli widzę, że średnie użycie procesora jest za duże to loguję się przez ssh do tego komputera i sprawdzam co jest grane i jak to można poprawić.

2. Automatyczne analizowanie wysyłanych logów

Każdy komputer ma w crontabie (zaplanowaych zadaniach) ustawione automatyczne skanowanie szukające rootkitów (chkrootkit), log jest wysyłany na serwer - a tam serwer go analizuje i wysyła maila bądź wiadomość na Jabbera o występującym problemie.

#!/bin/bash
chkrootkit > /tmp/rk
su webnull -c "screen -DmS /usr/moj-skrypt/send-log http://moj-masterserver/odbierz-log.php?id=`cat /identyfikator-komputera` rk /tmp/rk"

Wysyłam także wyjście z polecenia "last" i szukam tam adresów IP zewnętrznych które logowały się do SSH aby móc wykryć potencjalnego intruza któremu udało się dostać do systemu, a także zbieram informacje o nieoczekiwanym wyłączeniu systemu np. z powodu braku pamięci RAM (często twardy reset jeżeli swapu nie ma, w 50% przypadków da się wyratować system zabijając proces zjadający pamięć - można to zrobić z SSH chyba najlepiej nie powodując jeszcze większego użycia pamięci).

Mam możliwość także przeglądania logów przez przeglądarkę wraz z archiwum, całość dostępna jest tylko dla Mnie, nikt inny nie posiada uprawnień do przeglądania logów.

3. Statystyka, czyli bawimy się w wielkiego brata

Oprócz analizowania logów i wysyłania statusu można także wysyłać różne skany sieciowe przykładowo skan okolicznych sieci bezprzewodowych który uwzględnia adres MAC(główny identyfikator), nazwę sieci, typ zabezpieczenia, kanał itp.

Po zintegrowaniu takiego skanera z GPS można utworzyć mapę punktów dostępowych WiFI.

Ja jednak aktualnie nie posiadam GPS, planuję zakupić jakiś na wejście USB bądź Compact Flash.

4. Bezpieczeństwo, czyli jak to działa?

Komunikacja pomiędzy komputerem a serwerem jest szyfrowana algorytmem AES 256 bitowym.

Serwer i klient posiadają wspólne klucze szyfrujące (każdy klient ma osobny klucz).

Klucze mają często więcej niż 1024 znaki.

Przed zdublowaniem zesniffowanej wiadomości (wysyłamy wiadomość np. o statusie komputera/systemu do serwera a ktoś ją przechwytuje - nie może rozszyfrować ale może ponownie wysłać do serwera aby nadpisać wcześniejsze dane) broni umieszczony wewnątrz timestamp oraz sprawdzanie sumy kontrolnej wiadomości przez serwer.

5. Aktualizacja, czyli jak obsługiwać wszystko z automatu

Postawiłem serwer rsync który służy do synchronizacji danych pomiędzy klientem a serwerem.

Klient codziennie łączy się z serwerem rsync i sprawdza czy któryś z plików lokalnych potrzebuje aktualizacji, jeżeli tak to pobiera nową wersję z serwera.


#!/bin/bash
if ! ping -c 1 -w 2 oneill &>/dev/null ;
then
        echo "Master is offline."
else
        rsync rsync://oneill/aplikacja -avs /usr/share/katalog-aplikacji
fi
receiving incremental file list

sent 25 bytes  received 181 bytes  137.33 bytes/sec
total size is 69332  speedup is 336.56

Podsumowanie

Mały, serwer domowy z niskim poborem prądu jest bardzo przydatny, odwala za Nas całą robotę administracyjną nad większością komputerów w domu.

Wyjątkiem są komputery z systemem Microsoft Windows które stawiają ogromne problemy podczas wdrażania opisanych tutaj rzeczy.

W systemach Windows(R) brakuje odpowiednich narzędzi pod kosnolę takich jak rsync, brakuje bibliotek w Pythonie które zapewniłyby łatwy dostęp do WIFI, program w którym planuje się zadania potrafi nie uruchomić zadania co się zdarza bardzo często na jednym z komputerów z Windows 7 Home Premium.

Ogólnie to system Windows jest bardzo sztywnym systemem nie przystosowanym do tego typu zastosowań, jego użycie zostało przewidziane przez producenta - jeśli jednak chcemy wyjechać poza ten obszar zastosowania to zaczynają się schody.

W systemach Uniksowych udało Mi się wdrożyć coś takiego najmniejszym nakładem pracy pisząc to w Bashu, Pythonie i PHP, pod Windows musiałbym przepisać większość w jakimś języku kompilowanym aby to sprawnie działało.

Proszę nie mówić, że systemy Uniksowe muszą nadganiać Windows, bo Moim zdaniem jest na odwrót.

Udało Mi się wdrożyć częściowo wysyłanie informacji o systemie na komputerach z Windows, lecz nie jest to prefekcyjne - w Windows panuje kodowanie windows-1250 dlatego kiepsko to wygląda.

Nie udało Mi się wdrożyć skanowania sieci WIFI, automatycznego wysyłania logów.

Dlaczego nie udało Mi się wdrożyć wysyłania logów?

- Odpowiedź jest prosta; Windows nie posiada odpowiednich narzędzi które by potrafiły generować logi tekstowe bez użycia GUI (automatycznie w tle)

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.