====== whois.at.hsp.sh ======
^Zamieszany|[[user>not7cd]], [[user>mw]] |
^Rozpoczęto|2018-01-12 |
^Status|{{tag>projekty:skończony projekty:stoi}} Działa na [[https://whois.at.hsp.sh/] |
^Repo |https://github.com/hs3city/whois |
^Tagi |{{tag>projekt usługa serwis}}|
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 [[user>not7cd]] naprawiane
- Wykorzystaj endpoint http://whois.at.hsp.sh/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
- [[https://glitch.com/edit/#!/spotty-kiwi|Slack bot]] wysyła zapytanie na whois.at.hsp.sh gdy wywołany
[[https://github.com/hspsh/whois/blob/master/helpers/mikrotik_script|Skrypt]] dla Mikrotik z RouterOS >= 6.39.
FIXME Skrypt należy przepisać żeby uploadował surowe dane, a ich procesowanie trzeba przerzucić na aplikację w Pythonie.
FIXME (Prawdopodobnie) przez konfigurację Mikrotika skrypt nie może połączyć się z whoisem używając publicznego adresu.
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"}]
Testowa komenda:
curl -X POST -H "User-Agent: Mikrotik/6.x Fetch" -d '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"}]' https://whois.at.hsp.sh/api/last_seen
===== Uwagi =====
Proces aplikacji musi mieć uprawnienia do tworzenia plików w folderze z bazą danych (SQLite tworzy pliki tymczasowe). Do dzisiaj problem ten został napotkany podczas 2 migracji.
===== Log =====
Proof of Concept: skrypt na mikrotiku komunikujący się z aplikacją
--- //2018/03/03 5:36//
----
Program uruchomiony na serwerze w HS
--- //[[user>not7cd|not7cd]], [[user>mroz|mroz]] 2018/03/25 16:18//
----
Forwad i DNS na serwer + [[https://glitch.com/edit/#!/spotty-kiwi|Bot na slacku]]
--- //[[user>not7cd|not7cd]] 2018/04/08 12:38//
----
Hairpin NAT((https://wiki.mikrotik.com/wiki/Hairpin_NAT)) dla at.hs3.pl
Sensowny docker w testach
--- //[[user>not7cd|not7cd]] 2018/04/15 13:54//
----
glitch.com coś zmienił z SQlite więc [[https://glitch.com/edit/#!/spotty-kiwi|spotty-kiwi]] nie działa
--- //2018/04/22 15:17//
----
Prawilny deployment na [[squire|Serwer na laptopie]].
--- //[[user>allgreed|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ę)
--- //[[user>mroz]] 2018/07/01 16:40//
--- //[[user>not7cd]] 2018/07/01 16:40//
----
kontener wywalony na 127.0.0.1:6000
dostęp tylko przez proxy ngnix'a
--- //[[user>not7cd]] 2018/07/04 17:57//
----
Deployment na [[arthur]] -> [[https://whois.at.hsp.sh]].
--- //[[user>yasiu]] 2020/09/01 //
----
Skrypt na Mikrotiku został poprawiony i whois znowu działa w lokalu na Do Studzienki.
--- //[[user>michal]] 2020/09/29 //
===== Podobne projekty =====
* http://wiki.hswro.org/projects/wlokalu.hswro.org
* https://github.com/HackerspaceKRK/WHOis-HS
* https://wiki.hackerspace.pl/projects:checkinator