Wczoraj zaszła potrzeba połączenia się z terminalem kumpla (HP T5500) który podłączony jest do jego routera. Kumpel nie posiada łącza z publicznym adresem IP, jest za NAT-em. Po chwili wygooglowałem sposób na stworzenie takiego połączenia i zapisuje tutaj jak to uczynić, aby nie zapomnieć...
Na początek musimy nawiązać połączenie z zdalnego komputera z naszym komputerem, w moim przypadku połączenie musiał zestawić kumpel, robimy to tak:
ssh -R 19999:localhost:22 user@naszserwer.com
Zamiast 19999 podajemy port który mamy odblokowany w firewallu na naszej maszynie która ma publiczne IP, user@naszserwer.com jak można się domyślić jest to użytkownik i adres naszej maszyny/shella/whatever z publicznym IP.
Gdy już się zalogujemy, zostawiamy nawiązaną sesję na zdalnym komputerze. Teraz na maszynie z którą został nawiązany tunel klepiemy to:
ssh localhost -p 19999
podmieniając port na taki jak wcześniej. W efekcie został nawiązany tunel na ustalonym porcie, który na terminalu(maszynie za NAT-em) został niejako przekierowany na port SSH - 22.
...może w tym 2012 roku będę więcej pisał :>

O napisanie tego wpisu poprosiła mnie pewna osoba która czytała poprzednie moje wpisy na temat domowego serwera. Dziś poruszę temat zdalnego dostępu do naszego serwera, kontroli nad nim oraz sprawdzania czy jest "online".
Ważnym aspektem tej instrukcji jest sposób połączenia serwera z Internetem - chodzi tutaj głównie o to czy posiadamy publiczne IP oraz jeżeli jest publiczne to czy jest ono stałe czy zmienne. Wszystkich tych informacji dowiemy się od naszego ISP. Przykładowa Neostrada(i podobne czyli Netia, Orange FreeDom, Blueconnect stacjonarny) czyli łącze w technologi ADSL oferuję nam zmienne publiczne IP - oznacza to że przy każdym połączeniu z siecią(lub co 24h) otrzymujemy inne IP, ale przez to że jest publiczne nasz serwer może być widziany z zewnątrz. Jeżeli jesteśmy już w sieci lokalnej(np. osiedlowej) to najprawdopodobniej jesteśmy zza NATem i posiadamy prywatne IP które z zewnątrz nie jest widoczne. W takiej sytuacji pozostaje nam tylko poprosić administratora tej sieci o przekierowanie portów z waszego IP serwera na świat.
Ja dziś opiszę moją sytuację - czyli Orange Freedom(zmienne, publiczne IP) + router TP-LINK TD-W8901G. Wiele routerów takich firm jak Edimax, Planet, Modecom czy Pentagram mają zbliżony interface do interface'u mojego routera gdyż są zbudowane na podobnych układach. Do routera mam podłączone kabelkiem sieciowym 2 komputery: stacjonarny oraz serwer. Po WIFI podłączony mam w obecnej chwili tylko telefon jednak nic nie stoi na przeszkodzie aby nasz serwer który jest np. na strychu był podłączony bezprzewodowo - o tym jak skonfigurować Debiana do pracy w sieci WIFI znajdziecie na blogu Kubofonisty lub u Wujka Google'a ;)
Router powoduje że wszystkie moje urządzenia są zza NATem, dlatego na routerze należy odblokować/przekierować porty usług do jakich chcemy mieć dostęp z zewnątrz. Trzeba tutaj jeszcze wspomnieć o tym, że nasz serwer musi mieć ustawione IP na sztywno a nie pobieranie z serwera DHCP - no chyba że nasz router posiada tablice dhcp z możliwością przypisania mac <--> IP, mój router "już" tego nie posiada - ta opcja znikła w najnowszym firmware dlatego też ustawiłem IP w /etc/network/interfaces ;) Kolejną sprawą jest ustalenie na jakim interfejsie PVC mamy skonfigurowane nasze połączenie Internetowe(nie wszystkie routery posiadają listę profili PVC) - w przypadku Polskich łącz standardowo jest to PVC2(VPI/VCI=0/35) jednak ja skonfigurowałem router do pracy na trybie PVC0 - wtedy połączenie Internetowe jest szybciej nawiązywane(a tak przynajmniej było na starszych FW), aby skonfigurować router aby pracował na PVC0 musimy wpisać w PVC2 wymyślone wartości VPI i VCI(których nie ma w żadnym innym profilu PVC) a następnie w PVC0 ustawić takie, jakie były wcześniej w PVC2 czyli 0 i 35.

Teraz możemy przejść do zakładki Advanced setup -> NAT -> PVC0(lub PVC2) -> Virtual Server. Tutaj możemy ustalić które porty i z jakiego IP chcemy wypuścić na świat. Aby przykładowo udostępnić stronę www z naszego serwera musimy odblokować port 80 - http. Wyglądało będzie to tak:
Możemy też po prostu z listy wybrać "HTTP_SERVER" ;) Przyciskiem SAVE zapisujemy zmiany. Oto moja konfiguracja: 
Ok, od teraz nasza strona na serwerze(standardowo słynny napis "It works!") powinien się wyświetlać po wpisaniu naszego IP(mi się wyświetlał;) - oczywiście jeżeli na naszym serwerze mamy zainstalowany apache(lub np. ngnix) ale uważam to za oczywistą oczywistość gdyż w poprzednich wpisach to pokazywałem ;)
IP trudno zapamiętać, tym bardziej jeżeli zmienia się ono co 24h - z pomocą przychodzą nam usługi takie jak Dyndns.com lub no-ip.com. Takie oto usługi pozwalają nam utworzyć za darmo domenę(a raczej alias, hostname ;) który zawsze, będzie kierował na nasz aktualny adres IP. Zasada działania jest prosta - router lub klient pod OS co pewien, ustalony przez nas czas wysyła nasze aktualne IP do serwisu a tam to IP jest zapisywane w naszej konfiguracji profilu.
Mój router jest kompatybilny z tą pierwszą usługą. Aby skonfigurować go do pracy z tym serwisem zakładamy konto na dyndns.com, następnie przechodzimy do: My Account -> Add Host Services . Po utworzeniu naszego aliasu przechodzimy do panelu routera do zakładki Access Management -> DDNS i wypełniamy pola danymi zgodnymi z danymi wpisanymi w Dyndns. Po utworzeniu i zapisaniu danych w panelu dyndns.com po wejściu w "My Hosts" powinniśmy ujrzeć nasze aktualne IP.
Metoda opisana wcześniej jest dosyć prosta, jednak czasami gdy poprzez TELNET wywołuje komendę "adsl wan reset" aby zmienić IP to usługa DDNS na routerze pada - świadczy o tym zapis w logu i brak wyświetlenia strony po wpisaniu swojego adresu dyndns, dlatego też na wszelki wypadek na samym serwerze też uruchomiłem taką funkcję, tyle że na no-ip.com.
Sposób instalacji jest podobny - rejestrujemy się na no-ip.com, w zakładce "Hosts/Redirects" tworzymy nowy "host" z domyślnymi ustawieniami i wymyślonym przez nas aliasem a następnie na naszym serwerze wydajemy komendę:
apt-get install noip2
Podczas instalacji zostaniemy poproszeni o podanie bodajże maila i hasła do naszego konta na no-ip.com a także o podanie czasu odświeżania IP naszego hosta. Zapyta nas też czy jesteśmy zza NATem aby wiedział które IP ma przesłać - w przypadku bycia za routerem oczywiście odpowiadamy twierdząco. Komenda noip2 -h wyświetli nam dostępne polecenia.
To by było na tyle jeżeli chodzi o zdalny dostęp, jednak miałem jeszcze napisać jak utworzyć na stronie www wskaźnik czy nasz serwer jest online - posłuży nad do tego prosty skrypt PHP który znalazłem w Internecie i zmodyfikowałem do własnych potrzeb. Znajdziecie go tutaj. W skrypcie należy w 2 miejscach wpisać swój alias noip lub dyndns a następnie cały skrypt wstawić na swoją stronkę np. do jakiegoś widgetu lub do nowej, czystej stronki PHP np. na cba.pl czy dowolnym innym serwerze ;)
Pozdrawiam! Dawid ;)

W dzisiejszym wpisie opiszę pokrótce instalację podstawowych serwerów (www,ftp,smb) w systemie Debian. Jako że wpis jest kierowany do osób początkujących, opiszę też czym jest Webmin, jak go zainstalować i jak z niego korzystać.
1. Instalacja serwera www, Php i MySQL. Apache to chyba najpopularniejszy serwer http. Pozwala nam on na publikowanie własnych stron w internecie bezpośrednio z naszego domowego serwera, ale też ułatwi do niego dostęp zdalny i zarządzanie nim poprzez przeglądarkę, dlatego warto go zainstalować. Jeżeli nie zaznaczyliśmy go podczas instalacji to w bardzo łatwy sposób można go zainstalować poleceniem apt-get install apache2, jednak webmin potrzebuje też biblioteki PERL dlatego wydajemy polecenie apt-get install apache2 php5 php-pear mysql-server-5.0 php5-mysql instalując przy tym apache, php, perl oraz bazę MySQL która z pewnością przyda się przy rozbudowanie naszego serwera.
2. Instalacja serwera FTP. Serwer FTP w sieci domowej nie jest znów aż tak ważny, gdyż pliki będziemy udostępniać przez Otoczenie Sieciowe(o czym napiszę później), jednak przyda się on gdy będziemy chcieli dostać się do naszych plików z zewnątrz, np. z szkoły czy pracy. Aby zainstalować serwer ftp(proftpd) w systemie Debian w konsoli piszemy: apt-get install proftpd.
3. SAMBA to bardzo ważny element domowego serwera na Linuxie, odgrywa on ważną rolę w udostępnianiu plików gdyż dzięki niemu to udostępnianie w ogóle jest możliwe. SAMBA to rozbudowany system umożliwiający tworzenie udziałów i zarządzanie uprawnieniami dla nich. Aby zainstalować SAMBĘ wydajemy polecenie apt-get install samba
Wszystkie opisane powyżej serwery po zainstalowaniu będą pracować na standardowych ustawieniach. Zwykle po instalacji każdego z nich powinniśmy otworzyć plik konfiguracyjny danego serwera i ustawić tam jego parametry oraz ewentualnie ustawić odpowiednie opcje zabezpieczeń, jednak sprawie bezpieczeństwa poświecę osobny wpis, a konfigurację wykonamy poprzez Webmina.
Webmin to potężne narzędzie które oferuję nam dostęp do bardzo wielu opcji konfiguracyjnych poprzez stronę www. Nie musimy bawić się w edycję plików konfiguracyjnych i wydawaniu poleceń gdyż po instalacji Webmina, za pośrednictwem strony www skonfigurujemy opisane powyżej serwery a także wykonamy mnóstwo innych poleceń. Wyczerpujący opis instalacji Webmina zanjdziemy na ubucentrum . Po zainstalowaniu Webmina i zalogowaniu się do niego możemy wejść w zakładkę Serwery i skonfigurować sobie własne serwery wg. potrzeb. Interfejs Webmina jest po Polsku więc nie powinno być z tym problemu. W tym wpisie to już tyle, życzę powodzenia i pozdrawiam!

W dzisiejszym wpisie chciałbym przedstawić kilka wskazówek które mogą się przydać osobą które też chcą zrobić pożytek z starego, nie używanego i zakurzonego komputera i zrobić z niego jakiś domowy serwer.
Od czegoś trzeba zacząć, więc najpierw sprawdźmy konfigurację tego naszego starego komputera. Myślę że dla Debiana spokojnie wystarczy 128Mb ram albo i nawet mniej, jednak im więcej tym lepiej. Oczywiście mówię tu o instalacji bez Xów czyli bez środowiska graficznego bo po co nam w serwerze środowisko graficzne ? Środowisko graficzne pobiera znaczną część pamięci ram, dlatego zalecane jest aby mieć jej nieco więcej jeżeli chcemy je instalować. Jeżeli chodzi o procesor to Debian też nie ma jakiś specjalnych ograniczeń i powinien się zainstalować nawet na 133Mhz. Dysk twardy na którym będzie zainstalowany Debian myślę że powinien mieć minimum 1Gb wolnego miejsca, jednak tu też lepiej aby mieć go więcej, lub mieć dodatkowy jeżeli chcemy aby nasz domowy serwer spełniał funkcję serwera NAS czyli domowego serwera plików oraz zasysał coś z Rapida czy Torrentów. Nic nie szkodzi na przeszkodzie aby podłączyć dodatkowy dysk, dysk zewnętrzny na USB czy dysk SATA do kontrolera SATA na PCI, kernel Linuxa na pewno sobie poradzi z każdą pamięcią masową, jednak ograniczeniem bowiem może być płyta główna. Starsze płyty główne miały ograniczenie pojemności dysku twardego IDE(ATA/PATA) do 120Gb, dlatego lepiej sprawdźmy taki dysk przed kupnem. Warto też zadbać aby zasilacz który będzie w komputerze który niejednokrotnie pewnie będzie działał 24h na dobę wypuszczał odpowiednie napięcia na wyjściach, czyli zmierzyć je miernikiem. W Internecie łatwo można taki opis mierzenia napięć znaleźć. Nie chcieli byśmy chyba utracić naszych danych z powodu awarii zasilacza, nie ? Z moich obserwacji wynika że starsze komputery nie były tak podatne na wahania napięć jak te współczesne, nie wiem, może po prostu dawniej zasilacze były lepiej produkowane ale w obecnych czasach wiele problemów powodują właśnie zasilacze które wypuszczają napięcia nie zgodne z normą ATX.
Kolejnym ważnym elementem naszego domowego serwera jest karta sieciowa. Najlepiej aby była ona na PCI bądź zintegrowana z płytą główną. Tutaj też Linux powinien sobie z każdą kartą poradzić. U mnie są 2 karty sieciowe, jedna 100Mb Realteka na PCI która działa znakomicie oraz 10Mb 3Com’a na ISA którą Debian wykrył podczas instalacji ale później nie udało mi się już jej uruchomić. Jeżeli wszystko mamy gotowe możemy przejść do instalacji. Znakomity opis instalacji znajdziecie tu
Może jeszcze wytłumczę co to są repozytoria, mianowicie repozytoria to tak jak by baza programów i aktualizacji do systemu. W Windows jesteśmy przyzwyczajeni że jak chcemy zainstalować Firefoxa wchodzimy na firefox.pl, ściągamy instalkę i instalujemy. W Linuxie ze względu na to że nie każda dystrybucja jest z każdą w pełni kombatybilna ze względu na zależności istnieją menadżery pakietów, w Debianie i Ubuntu jest nim DPKG wraz z Aptem i Aptitude i skojarzony z nimi plik DEB, w innych dystrybucjach są inne menadżery pakietów i inne formaty plików instalacyjnych, jednak menadżer pakietów to też ta wielka baza oprogramowania o której już pisałem. Wystarczy jedno polecenie i na nasz dysk ściąga się i instaluje wybrany przez nas program, jednak warunkiem jest to, że musimy mieć repozytoria danego programu w systemie. W takim jednym linku który dodajemy do sources.list możemy znaleźć tysiące aplikacji, wiele producentów oprogramowania jak Adobe(z Flashem), Opera czy Skype wydają własne repozytoria aby użytkownicy jak najszybciej mogli zaktualizować oprogramowanie do najnowszej wersji bezpośrednio po wydaniu go przez producenta.
Po instalacji warto od razu dodać repozytoria, w tym celu otwieramy w tekstowym edytorze tekstu NANO plik sources.list z /etc/apt/ poleceniem: nano /etc/apt/sources.list na koncie roota. Usuwamy z niego wszystko i wpisujemy tam(bądź wklejamy gdy mamy Xy) adresy repozytoriów z http://debian.linux.pl/threads/1408-Wpisy-w-pliku-etc-apt-sources.list zgodnie z posiadaną dystrybucją – obecnie najnowsza, stabilna wersja to Lenny.
Rozumiem że dla niektórych ta czynność może być kłopotliwa gdyż nie mogą ich po prostu wkleić, dlatego warto zainstalować serwer SSH, robimy to poleceniem „apt-get install ssh”. Podstawowa konfiguracja sieci odbywa się podczas instalacji systemu, dlatego nie będę jej tutaj przedstawiał, po prostu w większość sieci domowych jest router, a router ma DHCP i IP i DNSy jest przydzielane automatycznie. Teraz z innego komputera w sieci, ściągamy program PuTTY pod Windows, wklepujemy tam IP naszego serwera(aby je sprawdzić wpisujemy na serwerze „ifconfig”) i zaznaczamy kropkę obok SSH. Klikamy na Open. Po chwili powinna wyskoczyć prośba o podanie loginu do naszego serwera. Wklepujemy root[enter] hasło i znów [enter]. Teraz możemy już odłączyć monitor od naszego serwera i postawić go np. pod schodami czy na strychu, bowiem mamy do niego dostęp zdalny, jednak IP jest przydzielane dynamicznie. Możemy je ustawić na sztywno w pliku /etc/network/interfaces jednak ja polecam zalogować się do panelu routera i tam ustawić przydzielanie DHCP wg adresu Mac karty sieciowej, ja tak zrobiłem. Jest to wg. Mnie wygodniejsze. Teraz wystarczy wydać polecenie nano /etc/apt/sources.list w Putty. Repozytoria kopiujemy do schowka z strony podanej wcześniej, usuwamy wszystkie z pliku sources.list i prawym przyciskiem wklejamy je w oknie Putty. Potem tylko Ctrl+o aby zapisać i Ctrl+x aby zamknąć. Teraz odświeżamy repozytoria poleceniem apt-get update i aktualizujemy system poleceniem apt-get dist-upgrade. System jest teraz gotowy do instalacji dodatkowych programów i usług, a o tym jak tego dokonać dowiecie się w następnym wpisie.
W dzisiejszym wpisie chciał bym napisać trochę o moich planach związanych z pewnym komputerem(którego niektórzy nazwali by już zabytkiem bo XP ledwo co na nim działa) którego dostałem od kumpla bez ramu i dysku twardego. Jest to dość leciwa maszynka, lecz wciąż działa. Jej konfiguracja jest następująca:
- Gigabyte GA-6BA
- Pentium 2 400Mhz
- 416Mb SDRAM(256Mb+64Mb+64Mb+32Mb) – kupiłem od kumpla za 5zł ;)
- HDD 10Gb - również od kumpla za 5zł ;P - karta LAN 10Mbit/s firmy 3COM na ISA oraz jakaś na realteku 100Mbit/s na PCI od znajomego za free
Zainstalowałem w tym sprzęcie Debiana i podłączyłem go crossem z swoim PC. System wstaje dość długo ale działa fajnie i łącze się z nim poprzez SSH z swojego PC. Moim celem jest utworzenie małego domowego serwera, który by czasem coś zassał z RapidShare(nie trawię P2P bo trzeba coś udostępniać a to większy "grzech" w świetle prawa) i który by sprawdzał temperaturę np. na zewnątrz, w kotle CO, w moim pokoju i publikował te dane na stronie www dla prywatnych celów w formie ładnych statystyk.
Pisałem już że lubię RapidSharę ale nie pisałem że mam łącze z dynamicznym IP(orange freedom = neostrada) a co za tym idzie modem na USB. Na PC korzystam z programu jDownloader + AutoConnect – rozłącza mi on i podłącza Internet ponownie po skończeniu pobierania linka(parta). Takie coś też chciał bym uczynić na tym komputerze pod Debianem. Jako że modem jaki posiadam to Sagem F@st 800 który ma sterowniki pod większość systemów(Windows, Linux, Mac OS X) będę mógł go użyć do podłączenia Internetu do tego mojego „serwera”. Ale zaraz! Przecież kontroler USB w płycie głównej mam padnięty! No właśnie, dlatego zakupiłem kontroler USB na PCI na Allegro na układzie NECa bo ponoć one najlepsze. I co ? I nie działa! Odesłałem go i czekam aż mi wymienią. Na PC kiedyś pod Ubuntu miałem fajny skrypt w Ruby który pobierał link a następnie zmieniał IP i chcę go też użyć pod Debianem. Mógł bym kupić sobie Router ale w przypadku routera więcej zabawy było by właśnie z zmianą IP, ten serwer będzie pełnił właśnie funkcję routera. Jak będę miał kontroler USB to podłączę też pod niego pendrive lub jakiś dysk zewnętrzny bo ten dysk 10Gb to na maszynę pobierającą troszkę mało.
Piec CO mam umieszczony 2 kondygnację niżej od swojego pokoju więc chciał bym sobie nieco ułatwić tym życie a przy tym jest z tworzeniem tego wszystkiego fajna zabawa. Pomysł ten powstał podczas przeglądania elektrody i napotkaniu na ten temat: http://www.elektroda.pl/rtvforum/topic1149891.html Nie wiem dokładnie jak ten Pan to wszystko utworzył , na jakich czujnikach i na jakich układach jednak ja już wiem że posłużę się czujnikami DallasSemiconductor DS1820 które pracują na magistrali 1-Wire, dzięki temu na jednym kablu może być wpiętych kilkanaście czujników. Pod Linux istnieje program Digitemp który szczytuje te wartości i w bardzo łatwy sposób można te dane zapisać w bazie MySQL a potem opublikować je na WWW.
To wszystko to na razie tylko plany jednak bardzo bym chciał je zrealizować, jednak muszę jeszcze poszerzyć swoją wiedzę bo nie wiem czy tak długi kabel nie będzie miał strat. Muszę też zakupić te wszystkie czujniki i elementy do zbudowania tego układu COM<==> 1-Wire. Będę tu pisał o postępach, bo na moim blogu tak pusto ;p