To jest stara wersja strony!
whois / at.hs3.pl
Zamieszany | not7cd, mw |
---|---|
Rozpoczęto | 2018-01-12 |
Status | Działa na at.hs3.pl |
Repo | https://github.com/hs3city/whois |
Tagi |
Ogólnie fajnie by było wiedzieć czy ktoś jest w hs'ie. Aktualnie jest działający skrypt dla mikrotika, który wysyła co jakiś czas POST'a do bazy danych po stronie serwera.
Stack
- Mikrotik
- Flask
Instrukcja
- Zarejestruj się będąc w spejsie
- Najlepiej nick zgodny z wiki
- Tak, hasła są hashowane
- Zajmij urządzenia które są twoje
- Jeżeli nic nie widać poczekaj maks 15 minut, mikrotik powinien je już wysłać
- Uwaga, to samo urządzenie może mieć kilka interfejsów sieciowych
- Ustaw flagi dla urządzenia (z ctrl wiele)
- W profilu możesz ustawić flagi dla siebie i zmienić dane
- Czasem wpadnij zaktualizować swoje urządzenia
- Na slacku użyj komendy
/ktohakuje
Nie panikuj kontener z botem wolno wstaje- Panikuj, spotty-kiwi nie żyje,
napraw, po dostęp uderzaj do not7cdnaprawiane
- Wykorzystaj endpoint http://at.hs3.pl/api/now w swoim projekcie
Opis
- Na wewnętrznym serwerze stoi aplikacja która nasłuchuje requestów z routera.
- Router mikrotik wysyła listę leasów na adres serwera co 12
- Serwer zbiera informacje o urządzeniach i ich właścicielach
- Serwer wystawia jeden JSON GET z aktywnością z ostatnich 30 minut
- Slack bot wysyła zapytanie na at.hs3.pl gdy wywołany
Skrypt dla Mikrotik z RouterOS >= 6.39
# Get DHCP leases records and send selected fields (MAC ADDRESS, HOST NAME, LAST SEEN and STATUS) to a webservice via POST. :put "Get DHCP leases"; :local leases ""; :foreach i in=[/ip dhcp-server lease find] do={ :local dhcp [/ip dhcp-server lease get $i] :local client "\"mac\":\"$($dhcp->"active-mac-address")\",\"name\":\"$($dhcp->"host-name")\",\"last\":\"$($dhcp->"last-seen")\",\"status\":\"$($dhcp->"status")\""; :set $leases ($leases, $client); } :local json "["; :local first true; :foreach k,v in $leases do={ if ([:len $v] > 0) do={ if ($first = true) do={ :set $json ($json . "{" . $v . "}"); } else={ :set $json ($json . ",{" . $v . "}"); }; :set $first false; } } :set $json ($json."]"); :local data ("data=" . $json); :do { :put "Send DHCP leases"; /tool fetch mode=http url="http://webservice" keep-result=yes dst-path="sendleases.txt" http-method="post" http-data=$data; } on-error={ :put "Send DHCP leases failed!"; log warning "Send DHCP leases failed!"; }
Skrypt wysyła dane w parametrze data sformatowane do json:
data=[{"mac":"11:22:33:44:55:66","name":"Dom","last":"50w6d16h1m10s","status":"waiting"},{"mac":"AA:BB:CC:DD:EE:FF","name":"HS","last":"4d1h58m8s","status":"bound"}]
Log
Proof of Concept: skrypt na mikrotiku komunikujący się z aplikacją — 2018/03/03 5:36
Program uruchomiony na serwerze w HS — not7cd, mroz 2018/03/25 16:18
Forwad i DNS na serwer + Bot na slacku — not7cd 2018/04/08 12:38
Hairpin NAT1) dla at.hs3.pl Sensowny docker w testach — not7cd 2018/04/15 13:54
glitch.com coś zmienił z SQlite więc spotty-kiwi nie działa — 2018/04/22 15:17
Prawilny deployment na Serwer na laptopie. — allgreed 2018/04/25 23 z hakiem
Instalacja nginx + certbot (https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04), konfiguracja nginx w trybie reverse proxy dla at.hs3.pl, przekierowanie portu na routerze. MAMY HTTPS! Do zrobienia zostało - całkowite ukrycie at.hs3.pl za reverse proxy (aktualnie port 80 jest serwowany bezpośrednio przez aplikację) — mroz 2018/07/01 16:40 — not7cd 2018/07/01 16:40
kontener wywalony na 127.0.0.1:6000 dostęp tylko przez proxy ngnix'a — not7cd 2018/07/04 17:57