Linux

SMStools i smsd, czyli automat do wysyłania SMS

Pod linux'em jest całe mnóstwo oprogramowania, które może realizować zadanie odbierania i wysyłania wiadomości SMS. Są również narzędzia, dzięki którym cały proces związany z przetwarzaniem SMS'ów można zautomatyzować. Jakiś czas temu opisywałem tego typu funkcjonalność na przykładzie gammu-smsd. Nadal uważam, że jest to przyzwoite narzędzie ale jakby nie patrzeć wymaga ono wielu zależności. Właśnie przez nie gammu-smsd nie nadaje się do zastosowań, gdzie ma się do dyspozycji niewiele miejsca. Niemniej jednak, w przypadku OpenWRT mamy tam możliwość zainstalowania pakietu smstool3 , w którym jest dostępny demon smsd . Tak się też składa, że debian również ma swoich repozytoriach to narzędzie posiada, z tym, że w pakiecie smstools. W tym wpisie skonfigurujemy sobie działającą bramkę SMS, która będzie automatycznie odbierać wiadomości SMS i podejmować stosowne działanie w zależności od numeru czy treści otrzymanego komunikatu.

Jak przypisać losowy adres MAC do interfejsu

Interfejsy kart sieciowych, które są instalowane w komputerach, posiadają adres MAC (Media Access Control). Jest to unikalny identyfikator, który wyróżnia nasz komputer spośród tłumu. Na podstawie tego adresu można nie tylko określić markę sprzętu, którą się posługujemy ale także można sklasyfikować cały nasz ruch sieciowy. W ten sposób bardzo prosto możemy zostać zidentyfikowani wymieniając dane przez darmowe hotspoty sieci bezprzewodowych WiFi. Niemniej jednak, jesteśmy się w stanie obronić przed tego typu inwigilacją zmieniając adres MAC naszego komputera. Nie jest to zbytnio trudne ale trzeba uważać, by znowu nie przesadzić w drugą stronę i czasem nie zostać zidentyfikowanym przez naszą "odmienność". W tym wpisie postaramy się wypracować taki mechanizm, który zmieni nam adres MAC przy każdym podłączeniu do sieci i przy zachowaniu zdroworozsądkowych zasad.

Przeciek DNS (DNS leak) w VPN (resolvconf)

Przeciek DNS (dns leak) to nic innego jak wyciek poufnej informacji, za sprawą nieprawidłowej konfiguracji resolver'a DNS. Może niekoniecznie jest winne tutaj samo oprogramowanie, które realizuje zapytania DNS, czy też serwer domen jakiejś organizacji. Chodzi głównie o tematykę VPN, gdzie cały ruch sieciowy powinien być wrzucany do tunelu SSL/TLS i szyfrowany. W pewnych sytuacjach, zapytania DNS mogą zostać wysyłane pod zewnętrzny resolver, często w formie niezaszyfrowanej i do tego poza połączeniem VPN. Ten ruch można podsłuchać, przechwycić i poddać analizie. Celem tego artykułu jest tak skonfigurowanie linux'a (w tym przypadku dystrybucja Debian), by te przecieki wyeliminować. Jest to możliwe za sprawą narzędzia resolvconf.

Obsługa kodów USSD w modemach LTE

Każdy, kto ma lub miał prepaid'a, prędzej czy później musiał nauczyć się obsługi kodów USSD. To za ich pomocą jesteśmy w stanie sprawdzić stan konta czy też aktywować poszczególne usługi. Co się jednak stanie, gdy taki prepaid zostanie umieszczony w modemie LTE? Teoretycznie modem powinien nam zapewnić połączenie LTE ale to jest nieco inna technologia niż GSM czy UMTS, a to za ich pomocą mogą być przesyłane zarówno kody USSD i SMS. Niby modemy LTE potrafią operować również na UMTS i GSM ale pod linux'em przesyłanie kodów USSD może być nieco problematyczne. Jedynym oprogramowaniem będącym w stanie operować na tych kodach był modem-manager-gui . Problem w tym, że zajmuje on praktycznie cały modem dla siebie, co w pewnych sytuacjach może nie być pożądane. Zatem jakie alternatywy nam pozostają? W jaki sposób operować na tych kodach USSD pod linux'em?

Tworzenie repozytorium git na GitHub

Po eksperymentah z repozytorium git na github'ie postanowiłem zrobić drobną ściągawkę na temat obsługi tego mechanizmu z poziomu linii poleceń. Oczywiście, tutaj będą przedstawione jedynie podstawy, tj. jak zacząć tworzyć takie repozytorium. Bardziej zaawansowane rzeczy, np. implementacja kluczy SSH na github'ie, czy też podpisywanie swojej pracy przy pomocy kluczy GPG zostały opisane w osobnych wpisach, bo lekko wykraczają poza tematykę tego artykułu. Oczywiście te dwie rzeczy nie są wymagane do pracy z git'em ale trzeba rozważyć ich wdrożenie jeśli faktycznie zamierzamy zacząć korzystać z tego VCS'a. W każdym razie, tutaj zajmę się podstawowymi operacjami, które człowiek zwykle przeprowadza, gdy przychodzi mu korzystać z git'a. Zdaję sobie sprawę, że są różne nakładki graficzne na narzędzie git ale, jak się okaże po przeczytaniu tego wpisu, operowanie na tekstowym git nie jest takie straszne, choć sama dokumentacja może przerazić, bo jest tego dość sporo i raczej wszystkiego od razu nie ogarniemy.

Wvdial i PPP, czyli modem LTE w trybie RAS

Jak wielu użytkowników linux'a zapewne wie, modem GSM/UMTS/LTE może pracować w kilku trybach. Najpopularniejszym z nich jest tryb RAS wykorzystujący interfejsy udostępniane przez to urządzenie w katalogu /dev/ , zwykle ttyUSB0 , ttyUSB1 , etc. By taki modem mógł nawiązać połączenie z siecią, potrzebny jest demon PPP. O trybie RAS wspominałem już parokrotnie, min. we wpisach dotyczących konfiguracji połączenia LTE w RBM/Play jak i przy omawianiu problemów z resolver'em DNS w przypadku Aero2. Generalnie ten tryb różni się trochę od trybu NDIS(NCM) głównie tym, że tutaj nie uzyskamy większych prędkości niż 20-30 mbit/s. Niemniej jednak, jeśli nie mamy dobrej jakości połączenia LTE, lub nasz modem z jakiegoś powodu pod linux'em nie potrafi pracować w trybie NDIS, to możemy skonfigurować połączenie w trybie RAS wykorzystując do tego celu wvdial oraz demona PPP.

Wysyłanie i odbieranie SMS w wammu

Wammu to aplikacja, przy pomocy której jesteśmy w stanie zarządzać swoim telefonem komórkowym. Można ją także wykorzystać do zarządzania modemami USB, tymi samymi, które są w stanie nam dostarczyć połączenie LTE. Przy pomocy wammu nie damy rady jednak nawiązać połączenia internetowego ale jest kilka rzeczy, do których ten soft może nam się przydać. Karta SIM obecna w takim modemie może mieć zapisane kontakty, które możemy edytować, usuwać i ewentualnie dodawać nowe. Ważniejszym ficzerem, który oferuje wammu , jest możliwość wysyłania i odbierania wiadomości SMS. Wcześniej opisywałem wysyłanie i odbieranie SMS za pomocą gammu-smsd, niemniej jednak, w przypadku wammu nie będziemy uruchamiać żadnej usługi systemowej. Same wiadomości SMS odbiera i wysyła się na podobnej zasadzie co w telefonie komórkowym. Przyjrzymy się zatem bliżej temu kawałkowi oprogramowania.

Gammu-smsd, czyli wysyłanie i odbieranie SMS

Eksperymentując ostatnio z modemem Huawei E3372s-153 w wersji NON-HiLink, pomyślałem, że przydałoby się zaprojektować jakiś prosty system do odbioru i wysyłania SMS. Nie chodzi tutaj o zaprzęgnięcie do pracy oprogramowania takiego jak modem-manager-gui czy też wammu ale bardziej o przekazywanie tych wiadomości SMS, które trafiają na modem, na inny numer telefonu komórkowego. Czyli stworzenie takiego telefonicznego proxy, które te SMS będzie przekazywał dalej. Tego typu funkcjonalność można zaimplementować praktycznie w każdym linux'ie, tylko wymagane jest posiadanie odpowiednich narzędzi. W tym przypadku rozchodzi się o gammu-smsd i to o nim będzie ten wpis.

Zmiana nazwy interfejsu modemu ttyUSB0

Spora część osób posiada różnego rodzaju urządzenia do komunikacji GSM/UMTS/LTE. Mogą to być smartfony, czy też modemy USB. Zwykle po podpięciu takiego urządzenia do portu USB, system wykrywa je i oddaje nam do dyspozycji kilka interfejsów w katalogu /dev/ . W przypadku modemu Huawei E3372s-153 w wersji NON-HiLink, standardowo są dwa interfejsy: ttyUSB0 oraz ttyUSB1 . Gdy podłączamy tylko jedno urządzenie, to nie mamy problemy z tymi nazwami. Co się jednak stanie w przypadku, gdzie tych urządzeń będzie więcej i podepniemy je w losowej kolejności? Nawet jeśli będziemy wiedzieć które interfejsy są od jakich urządzeń, to i tak trzeba będzie przepisywać pliki konfiguracyjne różnych aplikacji pod kątem dostosowania tych nazw. Możemy jednak stworzyć unikalne nazwy interfejsów w oparciu o reguły udev'a i tym zajmiemy się w niniejszym wpisie.

Modem LTE HUAWEI E3372 bez usb-modeswitch

Ten artykuł, podobnie jak kilka poprzednich, powstał w oparciu o moje badania przeprowadzane nad modemem LTE HUAWEI E3372s-153 w wersji NON-HiLink. Niby rozwiązań dotyczących konfiguracji modemów pod linux'em jest pełno w sieci ale zasadniczą różnicą niżej opisanego sposobu jest kompletne pozbycie się pakietu usb-modeswitch . Dla przypomnienia, ten pakiet odpowiada za przełączanie trybu modemu. Zwykle są dostępne dwa tryby. Pierwszy z nich jest w stanie dostarczyć sterowniki (pod windows), po instalacji których modem przechodzi w drugi tryb, już ten właściwy. Na linux'ach to przełączanie jest realizowane via usb-modeswitch . I tu się nasuwa pytanie, czy ten modem faktycznie trzeba przełączać? A może istnieje sposób, który by automatycznie ustawił modem na taki tryb, który linux'y lubią najbardziej? Okazało się, że istnieje i w tym wpisie zostanie on przestawiony.