Bagaimanakah Internet rumah hidup dan statistik pelayan nama domain?

Penghala rumah (dalam kes ini FritzBox) boleh merekodkan banyak perkara: berapa banyak trafik berlaku bila, siapa yang disambungkan pada kelajuan berapa, dsb. Pelayan nama domain (DNS) pada rangkaian tempatan membantu saya mengetahui perkara yang tersembunyi di sebalik penerima yang tidak diketahui.

Secara keseluruhan, DNS telah memberi kesan positif pada rangkaian rumah: ia telah menambah kelajuan, kestabilan dan kebolehurusan.

Di bawah ialah gambar rajah yang menimbulkan persoalan dan keperluan untuk memahami perkara yang berlaku. Hasilnya sudah menapis permintaan yang diketahui dan berfungsi kepada pelayan nama domain.

Mengapakah 60 domain yang tidak jelas ditinjau setiap hari semasa semua orang masih tidur?

Setiap hari, 440 domain tidak diketahui ditinjau semasa waktu aktif. Siapa mereka dan apa yang mereka lakukan?

Purata bilangan permintaan setiap hari mengikut jam

Bagaimanakah Internet rumah hidup dan statistik pelayan nama domain?

Pertanyaan laporan SQL

WITH CLS AS ( /* prepare unique requests */
SELECT
DISTINCT DATE_NK,
STRFTIME( '%s', SUBSTR(DATE_NK,8,4) || '-' ||
	CASE SUBSTR(DATE_NK,4,3)
	WHEN 'Jan' THEN '01' WHEN 'Feb' THEN '02' WHEN 'Mar' THEN '03' WHEN 'Apr' THEN '04' WHEN 'May' THEN '05' WHEN 'Jun' THEN '06'
	WHEN 'Jul' THEN '07' WHEN 'Aug' THEN '08' WHEN 'Sep' THEN '09' WHEN 'Oct' THEN '10' WHEN 'Nov' THEN '11'
	ELSE '12' END || '-' || SUBSTR(DATE_NK,1,2) || ' ' || SUBSTR(TIME_NK,1,8) ) AS EVENT_DT,
REQUEST_NK, DOMAIN
FROM STG_BIND9_LOG )
SELECT
  1 as 'Line: DNS Requests per Day for Hours',
  strftime('%H:00', datetime(EVENT_DT, 'unixepoch')) AS 'Day',
  ROUND(1.0*SUM(1)/COUNT(DISTINCT strftime('%d.%m', datetime(EVENT_DT, 'unixepoch'))), 1) AS 'Requests per Day'
FROM CLS
WHERE DOMAIN NOT IN ('in-addr.arpa', 'IN-ADDR.ARPA', 'local', 'dyndns', 'nas', 'ntp.org')
  AND datetime(EVENT_DT, 'unixepoch') > date('now', '-20 days')
GROUP BY /* hour aggregate */
  strftime('%H:00', datetime(EVENT_DT, 'unixepoch'))
ORDER BY strftime('%H:00', datetime(EVENT_DT, 'unixepoch'))

Pada waktu malam, akses wayarles dilumpuhkan dan aktiviti peranti dijangka, i.e. tiada tinjauan pendapat untuk domain yang tidak diketahui. Ini bermakna aktiviti terbesar datang daripada peranti dengan sistem pengendalian seperti Android, iOS dan Blackberry OS.

Mari kita senaraikan domain yang ditinjau secara intensif. Keamatan akan ditentukan oleh parameter seperti bilangan permintaan setiap hari, bilangan hari aktiviti dan dalam berapa jam pada hari ia diperhatikan.

Semua suspek yang dijangka berada dalam senarai.

Domain yang ditinjau secara intensif

Bagaimanakah Internet rumah hidup dan statistik pelayan nama domain?

Pertanyaan laporan SQL

WITH CLS AS ( /* prepare unique requests */
SELECT
DISTINCT DATE_NK,
STRFTIME( '%s', SUBSTR(DATE_NK,8,4) || '-' ||
	CASE SUBSTR(DATE_NK,4,3)
	WHEN 'Jan' THEN '01' WHEN 'Feb' THEN '02' WHEN 'Mar' THEN '03' WHEN 'Apr' THEN '04' WHEN 'May' THEN '05' WHEN 'Jun' THEN '06'
	WHEN 'Jul' THEN '07' WHEN 'Aug' THEN '08' WHEN 'Sep' THEN '09' WHEN 'Oct' THEN '10' WHEN 'Nov' THEN '11'
	ELSE '12' END || '-' || SUBSTR(DATE_NK,1,2) || ' ' || SUBSTR(TIME_NK,1,8) ) AS EVENT_DT,
REQUEST_NK, DOMAIN
FROM STG_BIND9_LOG )
SELECT 
  1 as 'Table: Havy DNS Requests',
  REQUEST_NK AS 'Request',
  DOMAIN AS 'Domain',
  REQ AS 'Requests per Day',
  DH AS 'Hours per Day',
  DAYS AS 'Active Days'
FROM (
SELECT
  REQUEST_NK, MAX(DOMAIN) AS DOMAIN,
  COUNT(DISTINCT REQUEST_NK) AS SUBD,
  COUNT(DISTINCT strftime('%d.%m', datetime(EVENT_DT, 'unixepoch'))) AS DAYS,
  ROUND(1.0*SUM(1)/COUNT(DISTINCT strftime('%d.%m', datetime(EVENT_DT, 'unixepoch'))), 1) AS REQ,
  ROUND(1.0*COUNT(DISTINCT strftime('%d.%m %H', datetime(EVENT_DT, 'unixepoch')))/COUNT(DISTINCT strftime('%d.%m', datetime(EVENT_DT, 'unixepoch'))), 1) AS DH
FROM CLS
WHERE DOMAIN NOT IN ('in-addr.arpa', 'IN-ADDR.ARPA', 'local', 'dyndns', 'nas', 'ntp.org')
  AND datetime(EVENT_DT, 'unixepoch') > date('now', '-20 days')
GROUP BY REQUEST_NK )
WHERE DAYS > 9 -- long period
ORDER BY 4 DESC, 5 DESC
LIMIT 20

Kami menyekat isс.blackberry.com dan iceberg.blackberry.com, yang pengilang akan membenarkan atas sebab keselamatan. Keputusan: apabila cuba menyambung ke WLAN, ia menunjukkan halaman log masuk dan tidak pernah menyambung ke mana-mana lagi. Mari kita nyahsekatnya.

detectportal.firefox.com adalah mekanisme yang sama, hanya dilaksanakan dalam pelayar Firefox. Jika anda perlu log masuk ke rangkaian WLAN, ia akan memaparkan halaman log masuk terlebih dahulu. Tidak jelas sepenuhnya mengapa alamat perlu diping dengan kerap, tetapi mekanismenya diterangkan dengan jelas oleh pengilang.

skype. Tindakan program ini serupa dengan cacing: ia menyembunyikan dan tidak hanya membenarkan dirinya dibunuh dalam bar tugas, menjana banyak trafik pada rangkaian, ping 10 domain setiap 4 minit. Apabila membuat panggilan video, sambungan Internet sentiasa terputus, apabila ia tidak boleh menjadi lebih baik. Buat masa ini ia perlu, jadi ia kekal.

upload.fp.measure.office.com - merujuk kepada Office 365, saya tidak dapat mencari penerangan yang baik.
browser.pipe.aria.microsoft.com - Saya tidak dapat mencari penerangan yang baik.
Kami menyekat kedua-duanya.

connect.facebook.net - Aplikasi sembang Facebook. Kekal.

mediator.mail.ru Analisis semua permintaan untuk domain mail.ru menunjukkan kehadiran sejumlah besar sumber pengiklanan dan pengumpul statistik, yang menyebabkan ketidakpercayaan. Domain mail.ru dihantar sepenuhnya ke senarai hitam.

google-analytics.com - tidak menjejaskan kefungsian peranti, jadi kami menyekatnya.
doubleclick.net - mengira klik pengiklanan. Kami sekat.

Banyak permintaan pergi ke googleapis.com. Penyekatan itu telah menyebabkan pelumpuhan mesej ringkas pada tablet yang menggembirakan, yang kelihatan bodoh bagi saya. Tetapi playstore berhenti berfungsi, jadi mari kita nyahsekatnya.

cloudflare.com - mereka menulis bahawa mereka suka sumber terbuka dan, secara umum, banyak menulis tentang diri mereka sendiri. Keamatan tinjauan domain tidak sepenuhnya jelas, yang selalunya lebih tinggi daripada aktiviti sebenar di Internet. Mari tinggalkan buat masa ini.

Oleh itu, keamatan permintaan selalunya berkaitan dengan kefungsian peranti yang diperlukan. Tetapi mereka yang berlebihan dengan aktiviti juga ditemui.

Yang pertama sekali

Apabila Internet wayarles dihidupkan, semua orang masih tidur dan adalah mungkin untuk melihat permintaan mana yang dihantar ke rangkaian terlebih dahulu. Jadi, pada 6:50 Internet dihidupkan dan dalam tempoh sepuluh minit pertama 60 domain ditinjau setiap hari:

Bagaimanakah Internet rumah hidup dan statistik pelayan nama domain?

Pertanyaan laporan SQL

WITH CLS AS ( /* prepare unique requests */
SELECT
DISTINCT DATE_NK,
STRFTIME( '%s', SUBSTR(DATE_NK,8,4) || '-' ||
	CASE SUBSTR(DATE_NK,4,3)
	WHEN 'Jan' THEN '01' WHEN 'Feb' THEN '02' WHEN 'Mar' THEN '03' WHEN 'Apr' THEN '04' WHEN 'May' THEN '05' WHEN 'Jun' THEN '06'
	WHEN 'Jul' THEN '07' WHEN 'Aug' THEN '08' WHEN 'Sep' THEN '09' WHEN 'Oct' THEN '10' WHEN 'Nov' THEN '11'
	ELSE '12' END || '-' || SUBSTR(DATE_NK,1,2) || ' ' || SUBSTR(TIME_NK,1,8) ) AS EVENT_DT,
REQUEST_NK, DOMAIN
FROM STG_BIND9_LOG )
SELECT
  1 as 'Table: First DNS Requests at 06:00',
  REQUEST_NK AS 'Request',
  DOMAIN AS 'Domain',
  REQ AS 'Requests',
  DAYS AS 'Active Days',
  strftime('%H:%M', datetime(MIN_DT, 'unixepoch')) AS 'First Ping',
  strftime('%H:%M', datetime(MAX_DT, 'unixepoch')) AS 'Last Ping'
FROM (
SELECT
  REQUEST_NK, MAX(DOMAIN) AS DOMAIN,
  MIN(EVENT_DT) AS MIN_DT,
  MAX(EVENT_DT) AS MAX_DT,
  COUNT(DISTINCT strftime('%d.%m', datetime(EVENT_DT, 'unixepoch'))) AS DAYS,
  ROUND(1.0*SUM(1)/COUNT(DISTINCT strftime('%d.%m', datetime(EVENT_DT, 'unixepoch'))), 1) AS REQ
FROM CLS
WHERE DOMAIN NOT IN ('in-addr.arpa', 'IN-ADDR.ARPA', 'local', 'dyndns', 'nas', 'ntp.org')
  AND datetime(EVENT_DT, 'unixepoch') > date('now', '-20 days')
  AND strftime('%H', datetime(EVENT_DT, 'unixepoch')) = strftime('%H', '2019-08-01 06:50:00')
GROUP BY REQUEST_NK
 )
WHERE DAYS > 3 -- at least 4 days activity
ORDER BY 5 DESC, 4 DESC

Firefox menyemak sambungan WLAN untuk kehadiran halaman log masuk.
Citrix sedang melakukan ping pelayannya walaupun aplikasi itu tidak aktif berjalan.
Symantec mengesahkan sijil.
Mozilla menyemak kemas kini, walaupun dalam tetapan saya meminta untuk tidak melakukan ini.

mmo.de ialah perkhidmatan permainan. Kemungkinan besar permintaan itu dimulakan oleh sembang facebook. Kami sekat.

Apple akan mengaktifkan semua perkhidmatannya. api-glb-fra.smoot.apple.com - berdasarkan penerangan, setiap klik butang dihantar ke sini untuk tujuan pengoptimuman enjin carian. Sangat mencurigakan, tetapi berkaitan dengan fungsi. Kita tinggalkan.

Berikut ialah senarai panjang permintaan kepada microsoft.com. Kami menyekat semua domain bermula dari peringkat ketiga.

Bilangan subdomain pertama
Bagaimanakah Internet rumah hidup dan statistik pelayan nama domain?

Jadi, 10 minit pertama menghidupkan Internet wayarles.
iOS mengundi terbanyak subdomain - 32. Diikuti oleh Android - 24, kemudian Windows - 15 dan terakhir Blackberry - 9.
Aplikasi facebook sahaja mengundi 10 domain, tinjauan skype 9 domain.

Sumber maklumat

Sumber untuk analisis ialah fail log pelayan tempatan bind9, yang mengandungi format berikut:

01-Aug-2019 20:03:30.996 client 192.168.0.2#40693 (api.aps.skype.com): query: api.aps.skype.com IN A + (192.168.0.102)

Fail telah diimport ke dalam pangkalan data sqlite dan dianalisis menggunakan pertanyaan SQL.
Pelayan bertindak sebagai cache; permintaan datang dari penghala, jadi sentiasa ada satu klien permintaan. Struktur jadual yang dipermudahkan adalah mencukupi, i.e. Laporan memerlukan masa permintaan, permintaan itu sendiri dan domain peringkat kedua untuk pengumpulan.

jadual DDL

CREATE TABLE STG_BIND9_LOG (
  LINE_NK       INTEGER NOT NULL DEFAULT 1,
  DATE_NK       TEXT NOT NULL DEFAULT 'n.a.',
  TIME_NK       TEXT NOT NULL DEFAULT 'n.a.',
  CLI           TEXT, -- client
  IP            TEXT,
  REQUEST_NK    TEXT NOT NULL DEFAULT 'n.a.', -- requested domain
  DOMAIN        TEXT NOT NULL DEFAULT 'n.a.', -- domain second level
  QUERY         TEXT,
  UNIQUE (LINE_NK, DATE_NK, TIME_NK, REQUEST_NK)
);

Output

Oleh itu, hasil analisis log pelayan nama domain, lebih daripada 50 rekod telah ditapis dan diletakkan pada senarai blok.

Keperluan beberapa pertanyaan diterangkan dengan baik oleh pengeluar perisian dan menimbulkan keyakinan. Bagaimanapun, kebanyakan aktiviti itu tidak berasas dan boleh dipersoalkan.

Sumber: www.habr.com

Tambah komen