Własna namiastka dyndns

Po ostatniej akcji Microsoftu z przejęciem i zablokowaniem domen należących do No-IP miałem przez moment umiarkowany problem z dostępem do jednej z moich maszyn, bo nie znałem IP. Nic krytycznego i szybko rozwiązałem, ale stwierdziłem, że warto by się zabezpieczyć na przyszłość. Początkowo chciałem uruchomić po prostu innego dostawcę dyndns, z inną domeną, co dałoby całkiem niezłą – jak mi się wydaje – redundancję w tym względzie, ale prowizorycznie uruchomiłem coś innego, własnego i znacznie prostszego. W komentarzu do poprzedniego wpisu padło pytanie co dokładnie zrobiłem, więc opisuję.

Tak się składa, że mam serwer dedykowany ze stałym IP (nie jest konieczne zamiast tego można skorzystać z domeny), na którym stoi serwer WWW (lighttpd). Na wszystkich maszynkach potrzebujących dyndns mam dostęp do crona (zresztą, korzystałem z crona już przy zwykłym koncie dyndns, patrz update wpisu). Rozwiązanie jest proste: klient wywołuje okresowo unikatowy URL na moim serwerze, serwer okresowo parsuje log w poszukiwaniu tego unikatowego ciągu znaków i zapisuje IP z którego nastąpiło odwołanie w określonym pliku.

Poniżej wklejki ze wszystkimi onelinerami (gotowiec dla lighttpd, w przypadku innego serwera WWW trzeba dostosować):

# po stronie klienta*/5 * * * * /usr/bin/wget -4 -q -O /dev/null http://mojadomena.com/losowyciagznakow4346456543324645 > /dev/null
 # po stronie serwera*/5 * * * * /usr/bin/awk '/losowyciagznakow4346456543324645/ {ip=$1} END {print ip}' /var/log/lighttpd/access.log > /var/www/dyndns_host1.txt
 # pobranie IPwget -O - http://mojadomena.com/dyndns_host1.txt

Po namyśle, rozwiązanie nawet lepsze niż drugi dostawca dyndns. Mniej kont, prostsza konfiguracja, mając stałe IP na upartego można całkowicie uniezależnić się od DNSów, jeśli ktoś odczuwa potrzebę.

Oczywiście nie od razu tak to wyglądało, w szczególności po stronie serwera był grep, awk, tail w użyciu. Ale skoro da się wszystko załatwić awk (a nie tylko wyświetlanie określonej kolumny, chyba najczęstsze zastosowanie awk…), to czemu nie? Tu polecam zbiór przydatnych onelinerów w awk.

UPDATE: IPv6 się popularyzuje. Okazało się, że mój skrypt nie działa poprawnie, bo łączenie między maszynami następuje po IPv6. Dodany parametr -4 do wget w celu naprawy tego problemu.

Microsoft blokuje No-IP

Krótka lekcja nt. neutralności sieci w praktyce. Zaglądając na stronę popularnego operatora domen, w szczególności jednego z bardziej znanych dostawców darmowych domen dla osób z dynamicznym IP, można dziś zobaczyć taki komunikat:

 No-IP warning

Pod pretekstem wykorzystywania domen przez twórców malware (co z pewnością miało miejsce, malware korzysta z czego się da…), na mocy nakazu sądowego, Microsoft zajął 22 domeny. Zgodnie z tym, co pisze No-IP, nie było żadnego wcześniejszego kontaktu w celu usunięcia „złych” domen. Co ciekawe, No-IP utrzymuje aktywny zespół abuse, ma surową politykę przeciwko nadużyciom i… ma historię dobrej współpracy z Microsoftem w reagowaniu na podobne nadużycia.

Najwyraźniej komuś nie zależało, by z tego skorzystać. Duży może więcej.

Poniżej kopia oświadczenia wydanego przez No-IP w tej sprawie (stan na godzinę 8:00):

We want to update all our loyal customers about the service outages that many of you are experiencing today. It is not a technical issue. This morning, Microsoft served a federal court order and seized 22 of our most commonly used domains because they claimed that some of the subdomains have been abused by creators of malware. We were very surprised by this. We have a long history of proactively working with other companies when cases of alleged malicious activity have been reported to us. Unfortunately, Microsoft never contacted us or asked us to block any subdomains, even though we have an open line of communication with Microsoft corporate executives.

We have been in contact with Microsoft today. They claim that their intent is to only filter out the known bad hostnames in each seized domain, while continuing to allow the good hostnames to resolve. However, this is not happening. Apparently, the Microsoft infrastructure is not able to handle the billions of queries from our customers. Millions of innocent users are experiencing outages to their services because of Microsoft’s attempt to remediate hostnames associated with a few bad actors.

Had Microsoft contacted us, we could and would have taken immediate action. Microsoft now claims that it just wants to get us to clean up our act, but its draconian actions have affected millions of innocent Internet users.

Vitalwerks and No­-IP have a very strict abuse policy. Our abuse team is constantly working to keep the No-­IP system domains free of spam and malicious activity. We use sophisticated filters and we scan our network daily for signs of malicious activity. Even with such precautions, our free dynamic DNS service does occasionally fall prey to cyber scammers, spammers, and malware distributors. But this heavy-handed action by Microsoft benefits no one. We will do our best to resolve this problem quickly.

UPDATE: Wpis dotyczący sprawy na blogu no-ip.com został parę razy zaktualizowany. Z tego co zauważyłem, moje domeny zaczęły działać wczoraj, czyli downtime w granicach 36h. Zdarzenie jest przykładem kluczowej roli DNS (domeny, serwery), a w kontekście bezpieczeństwa warto zwrócić uwagę na to, z jakich domen się korzysta.

Kiedy nadejdzie era IPv6?

Dziś zobaczyłem sondę w serwisie Slashdot, dotyczącą czasu wdrożenia IPv6:

kiedy ipv6 sonda

Dotychczasowe wyniki:

Kiedy IPv6 - wyniki sondy.

W porównaniu z tym co słychać na Plnog i z okolic RIPE, proponowane w sondzie terminy raczej odległe (najwcześniejszy to przed 2020 z wynikiem 28%, kolejny 2020-2024 – 20%). I sporo pesymistów, którzy powątpiewają w masowość IPv6 kiedykolwiek (never – 11%, when we build a new internet – 26%).

Użytkownicy Slashdot są raczej techniczni, więc wpływ USA (mniejszy problem z brakującymi adresami IPv4) czy głos rozsądku?

UPDATE: Zniknęła z bieżącej ankiety na Slashdocie, więc „zakończona”. Łącznie 17434 głosy, wyniki bez istotnych zmian.