Twoje źródło, wolne źródło #1 – Traccar

Prawo jazdy, dowód rejestracyjny i ubezpieczenie proszę…
Prawie każda kontrola drogowa zaczyna się w ten sposób, a pomysł na tą notkę dał mi mój znajomy Maciej, zaś testerem był Jarek ze strony /home/evilus.
Traccar – czyli oprogramowanie które za pomocą GPS śledzi urządzenie na którym jest włączone, co oczywiście jest przydatne dla firm kurierskich, bądź dla przedsiębiorstw autobusowych, które by chciały widzieć gdzie są ich kierowcy.
Warto też zapytać się prawnika czy raport ze systemu zainstalowanego na Waszym serwerze będzie mógł być dowodem w sądzie, kiedy mandat za przekroczenie prędkości będzie niesłuszny, bo prędkość Waszego samochodu będzie zgodna z ograniczeniami na drodze.
Dla tych co nie lubią być inwigilowani – wyłączcie tą kartę i nie czytajcie dalej tej notki.

Instalacja oprogramowania w tym przypadku będzie przebiegała na systemie Debian Stretch, a informuję o tym, gdyż Java na każdym systemie instalowana jest inaczej.
Najpierw warto by było z użytkownika root zrobić update systemu, zainstalować niezbędne pakiety, a następnie zainstalować właśnie Jave:

apt update
apt install curl wget apt-transport-https dirmngr software-properties-common zip unzip
echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee /etc/apt/sources.list.d/webupd8team-java.list
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886
apt update
apt install oracle-java8-installer

Teraz kiedy Java jest już zainstalowana, możemy przejść do instalacji Traccara i teraz można to zrobić z użytkownika root, albo z usera, lecz traccar niestety instaluje się w katalogu /opt/traccar, więc chyba lepiej to zrobić z roota, a więc lecimy 🙂

wget https://github.com/tananaev/traccar/releases/download/v3.15/traccar-linux-3.15.zip
unzip traccar-linux-3.15.zip
./traccar.run

Pobrać za pomocą wget można w każdym katalogu, ale dalej będzie /opt/traccar 🙂

cd /opt/traccar/bin
sh installDaemon.sh
sh startDaemon.sh

Od teraz do startu można wykonać taką komendę:

cd /etc/init.d/
./traccar start

I od tego momentu nasz traccar jest dostępny ze strony internetowej pod adresem http://1.2.3.4:8082 z czego 1.2.3.4 to adres IP, a 8082 to port pod którym działa webpanel.

Jak już nasz serwer działa to na telefonie z Androidem (lub iOS) pobieramy i instalujemy aplikację Traccar Client.
Port dla urządzeń to 5055, więc w urządzeniach w rubryce Server wpisujemy http://1.2.3.4:5055

Teraz tak, domyślne dane logowania to admin:admin, a co do ustawień częstotliwości przesyłania danych u mnie są ustawione 3 sekundy, a w ostatniej rubryce mam ustawione tylko GPS.

Na koniec cztery screeny z testów u Jarka 🙂

PS. Serdecznie dziękuję Jarkowi, że na potrzeby tej notki zgodził się zostać testerem i że wyraził dobrowolną wolę na udostępnienie powyższych zrzutów ekranu.
Serdecznie dziękuję! 🙂

Tunelowanie SSH – czyli jak udostępnić serwer www w sieci i każdy inny

Jak ma się dużą ilość osób na moim kanale xmpp to zawsze można się czegoś od innych dowiedzieć. Ostatnio Bonn333 pokazał mi coś o czym jeszcze nie wiedziałem, a dokładnie pokazał mi sposób na tunel po protokole SSH.
Zapewne już ktoś powie, że ten sposób jest znany od dawna, no bo faktycznie, sam używam tego do tunelowania ruchu na moim serwerze, choć Bonn333 wykazał się czymś innym.

Za dzisiejszy przykład weźmy sobie serwer WWW nasłuchujący na porcie 80 i uruchomiony na maszynie lokalnej (np. komputer, laptop), oraz serwer vps/shell na którym mamy otwarty port 8881.
Teraz prosimy właściciela serwera shellowego lub vpsa (o ile my nimi nie jesteśmy) o to by w pliku /etc/ssh/sshd_config została odkomentowana linia 88 (u mnie taka właśnie jest) w której znajduje się „GatewayPorts” i wartość no została zmieniona na yes.
Teraz finalnie wystarczy zrestartować serwer ssh i z naszego komputera czy laptopa połączyć się z serwerem za pomocą programu PuTTy dla Windowsa lub poprzez wydanie polecenia ssh dla Linuxa: ssh -NC -R 1.2.3.4:8881:127.0.0.1:80 [email protected]

Dla Windowsa:

Od tego momentu Wasz serwer WWW na laptopie będzie widoczny w internecie pod adresem http://1.2.3.4:8881
Mam nadzieję, że pomogłem zrozumieć jak to działa 🙂

PS. Jeżeli w PuTTy źle coś zrobiłem to napiszcie mi o tym bo ja używam tylko Linuxa 🙂

===== Aktualizacja notki =====

Przez to, że notka nie jest dla niektórych dość przejrzysta to postanowiłem ją z lekka poprawić na przykładzie serwera vps w Aruba Cloud.
Aby zacząć należy zakupić serwer vps w Aruba Cloud (za 4zł + VAT = 4,92zł wystarczy), a następnie zalogować się na konto root.

Teraz na naszym komputerze czy na jakimkolwiek urządzeniu musimy zrobić klucze ssh, więc na Linuxie wydajemy polecenie:

ssh-keygen -b 4096

Kiedy poprosi nas o podanie ścieżki to podajemy katalog w którym chcemy by klucze się znalazły, gdzie w moim przypadku jest to: /home/user/.ssh/
Na Windowsie używamy do tego oczywiście programu puttygen.

Kiedy już na serwerze vps zmienimy odpowiednią linijkę (podaną powyżej) i go zrestartujemy to teraz można zgrać klucz publiczny na serwer i go dopisać do pliku authorized_keys (instrukcja podana dla Linuxa):

Na laptopie/rasberce:

scp /home/user/.ssh/id_rsa.pub root@ip:/root/.ssh/id_rsa.pub

Na serwerze:

cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

Dla Windowsa robimy tak, że generujemy klucz w puttygen, następnie kopiujemy to co wyświetli puttygen, logujemy się na serwer za pomocą putty i dopisujemy do wyżej podanego pliku (/root/.ssh/authorized_keys) zawartość z puttygen, a klucze zapisujemy na pulpicie.

Teraz aby się połączyć z serwerem wpisujemy na Linuxie komendę podaną wyżej z dopiskiem -i /sciezka/do/klucza, zaś na Windowsie w programie PuTTy w Connection->SSH->Auth podajemy klucz i zapisujemy połączenie, a następnie logujemy się na serwer z udostępnionym portem na zewnątrz.

Na Linuxie można jeszcze zrobić taki myk, że zrobić plik /usr/bin/remote i w nim zrobić taki wpis:

#!/bin/bash
ssh -i /home/user/.ssh/id_rsa -NC -R 1.2.3.4:8881:127.0.0.1:80 [email protected]

Teraz tylko należy wydać polecenie chmod +x /usr/bin/remote i zawsze po włączeniu laptopa/komputera czy rasberki wydać polecenie remote by z automatu połączyło z serwerem vps.