< Zpět na články

Ovládá Google české domény?

Provozovat vlastní e-mailový server je v téhle době prakticky nemožný úkol. Když už dostanete veřejnou IPv4, je většinou rovnou na nějakém blacklistu. Svět IPv6 na tom není o nic lépe. Ne že by každá IPv6 byla na blacklistu, spíše jsou servery s IPv6 pro starší SMTP servery na IPv4 nedostupné. Jednoduchosti nepomáhají ani autentizační protokoly DMARC, DKIM a SPF, ačkoliv nastavení je pro většinu schopných adminů triviální.

Problém je ale někde jinde. Většina firem stojí před rozhodnutím zda nechat svojí mailovou infrastrukturu spravovat interním zaměstnancem nebo zaplatit měsíčně několik dolarů službám, které za ně nastavení vyřeší. Je pak celkem pochopitelné, že nemalý počet firem využije služeb jako Google Workspace. Nekupují si jen správu mailů (Gmail), ale i služby Google Drive, Google Meet nebo Google Calendar. S veškerou úctou ke službám jako Nextcloud, nic takového ve světě Open-source za podobnou cenu nezískáte. Mluvím z vlastní zkušenosti. Provozuji Nextcloud, baví mě to, ale spravovat řešení pro firmu bych opravdu nechtěl.

Situace tedy není jednoduchá. A kolik je vůbec firem, které používají Google Workspace a kolik třeba Office 365?

No tak dobře, koho ale takové číslo zajímá

Řekněme, že máte nápad na aplikaci, která by se dala integrovat přímo do Google Workspace. Můžete udělat nějaký průzkum trhu, který by vám jasně řekl, kolik případných zákazníků můžete mít? To je ten dotaz, který by si měl klást každý projekt v začátcích. Jen tak pro představu, zavzpomínejte, kolik nápadů jste za svůj život potkali, které neměly svého kupce. I tenhle článek může mít s klidem pouze dva čtenáře: mně, až si to přečtu znova, abych věděl, čím jsem se kdysi zabýval a jak hrozně jsem psal, a mojí maminku, která mě celý život podporuje (i když ne všemu, co dělám, rozumí).

Je legální zjišťovat, kdo používá Google Workspace? Zaměřme se raději jen na technické možnosti, která máme pro zjištění počtu domén. Pokud se firma rozhodne pod českou doménou používat Google Workspace, pak používá pro MX záznamy, které vedou na Google servery a jsou zodpovědné za příjem e-mailů. Takový záznam je veřejně vystavený v DNS. Ponechme teď stranou, že ne všechny domény s Google MX záznamy musí používat Workspace (mohou mít třeba nezaplacené předplatné). Berme výsledek jako číslo, která nám může dát alespoň představu. Nezjišťujeme osobní údaj. Doména a její MX záznam nenapovídá nic o konkrétních uživatelích. DNS záznamy jsou dostupná data potřebná pro běh internetu. Jejich zjišťování provádíme denně bez toho, abychom takovou činnost explicitně vykonávali – děje se to za nás. Na tom není nic nelegálního.

Kudy do toho

Nejdříve je potřeba získat seznam českých domén. Ten je dostupný třeba tady v souboru domain2multi-cz00.txt. Soubor v repozitáři je už dvanáct měsíců starý. Některé domény budou pravděpodobně chybět a jiné přebývat.

Nejdříve vyfiltrujme pouze domény druhého řádu (abc.cz, …):

grep -o '[\-a-zA-Z0-9\-]*\.cz' domain2multi-cz00.txt > domains.txt  
sort --parallel=32 domains.txt | uniq > domains_uniq.txt

Celkově je domén v souboru domain2multi-cz00.txt 7323162, unikátních domén druhého řádu v souboru domains_uniq.txt  je 996949. Podle statistik cz.nic jsme mimo jen o zhruba půl milionu. Seznam neobsahuje domény s háčky a čárky. Pro potřeby tohoto textu je budu ignorovat (omlouvám se https://www.háčkyčárky.cz/).

Zkusme tedy zjistit, kolik domén má MX záznam vedoucí na servery Google. Zkontrolujte předtím nastavení svých IPS/IDS systémů. Pro jistotu jsem na svém Turrisu vypnul systém Threat Detection. Pro skenování DNS domén stačí jednoduchý bash skript pod názvem check_mx_single_domain.sh:

#!/bin/bash  
  
set -e  
  
domain="$1"  
  
if ! grep -q -- "${domain}" not_google_mx.txt && ! grep -q -- "${domain}" google_mx.txt; then  
 if dig MX "${domain}" | grep 'MX' | grep 'google.com'; then  
          flock -x -w 60 google_mx.txt echo "${domain}" >> google_mx.txt  
 else  
          flock -x -w 60 not_google_mx.txt echo "${domain}" >> not_google_mx.txt  
 fi  
fi

Spustit jen můžeme pomocí parallel -j 32 ./check_mx_single_domain.sh “{}” < domains_uniq.txt. Skript má samozřejmě nějaké drobné problémy. V případě, že chcete přesný seznam, pravděpodobně bych ještě vylepšil práci sflock.

Velký počet domén, které jsme vyhledali, je pravděpodobně nepoužívaný. Můžeme je prověřit pomocí curl. V případě, kdy doména vrátí HTTP 200 status na http://… nebo https://… URL, řekněme, že je aktivní. Samozřejmě tím vynecháme hromadu domén, které provádí jen forward na jinou doménu. Berme proto výsledky spíše orientačně. Skript nazveme ./check_single_url.sh:

#!/bin/bash  
  
domain="$1"  
  
if ! grep -q -- "$domain" not_active_google_mx.txt && ! grep -q -- "$domain" active_google_mx.txt; then  
 if [ `curl -m 10 -s -o /dev/null -w "%{http_code}" "https://${domain}/"` = "200" ] || [ `curl -m 10 -s -o /dev/null -w "%{http_code}" "https://www.${domain}/"` = "200" ] || [ `curl -m 10 -s -o /dev/null -w "%{http_code}" "http://${domain}/"` = "200" ] || [ `curl -m 10 -s -o /dev/null -w "%{http_code}" "http://www.${domain}/"` = "200" ]; then  
     flock -x -w 60 active_google_mx.txt echo "$domain" >> active_google_mx.txt  
 else  
     flock -x -w 60 not_active_google_mx.txt echo "$domain" >> not_active_google_mx.txt  
 fi  
fi

No a jak to vyšlo?

Celé měření má spousty drobných problémů. Hromady dotazů na DNS a HTTP mohly být zahozeny. Spousta domén nám prostě unikne.

DoményPočetProcent z celku
Celkový počet .cz domén996949100 %
Domény s MX u Google260802,6 %
Aktivní domény s MX u Google189471,9 %

Zdá se, že Google má “pod palcem” nemalé procento českých domén. Řekněme, že pokud vytváříte aplikaci na Workspace pro vlastníky české domény, cílíte zhruba na 2,6 % domén.

Další krok může být porovnání počtu domén s dalšími poskytovateli mailových aplikací. Vzhledem k tomu, že pouhých 2,6 % domén má nastavený MX záznam na Google, bylo by možná zajímavější zjistit, kolik domén má vůbec nastavený nějaký MX záznam. Podíl Googlu by pak možná byl daleko větší, než se na první pohled zdá.

Úpravou skriptů výše není problém taková čísla získat také:

Domény s MX záznamem61278161 %
Domény s MX u Seznamu184321,8 %
Aktivní domény s MX u Seznam146761,4 %
Domény s MX u Outlooku233532,3 %
Aktivní domény s MX u Outlooku171291,7 %

Čísla nic neříkají o počtu uživatelů používajících jednotlivé služby. Nicméně, v případě, kdy se rozhodujete mezi vývojem aplikace pro Google nebo pro Office 365, pravděpodobně budete mít víc uživatelů u Google. Nezapomínejme, že čísla platí pro dobu vydání tohoto článku.

V případě, že máte pochybnosti o způsobu měření, veškeré skripty se dají dohledat na mém githubu. Díky za každou hvězdičku.

Martin Beránek
Martin Beránek
DevOps Team Lead

Máte zájem o spolupráci? Pojďme to probrat osobně!