/etc/hosts

Linux.fista
Versio hetkellä 29. marraskuuta 2020 kello 15.05 – tehnyt Foliohattu (keskustelu | muokkaukset)
Siirry navigaatioon Siirry hakuun

Tietojenkäsittelyssä hosts-tiedostona tunnettu /etc/hosts määrittää Linux ja Unix-järjestelmissä listan paikallisista isäntänimi -> IP-osoite muutoksista. Se on yleensä nimipalvelinta ensisijaisempi lähde nimenmuutostiedoille. Sen mahdollistamana hosts-tiedostoa voidaan käyttää esim. haitta-, shokki-, seuranta- ja mainosverkkotunnuksien torjumiseen, mutta myös tarpeen tullen tietoliikenteen ohjaamiseen toiseen sijaintiin.

Wikipedian artikkeli: hosts

Käyttö

Mikäli haetaan standardikirjaston kutsulla gethostbyname(3) isäntänimeä tux esim. kirjoittamalla selaimen osoitepalkkiin "https://tux/esimerkki.html", standardikirjasto tutkii ensimmäiseksi /etc/hosts -tiedoston. Jos se sisältää rivin:

10.3.0.1       tux

ei DNS-palvelimelle tehdä lainkaan kyselyä, vaan isäntänimeen liittyvä IP-osoite (10.3.0.1) katsotaan ratkaistuksi (engl. resolved). Standardikirjastokutsu palauttaa osoitteen 10.3.0.1 selaimelle, joka taas avaa osoitteeseen pistokkeen, ja lähettää HTTP-pyynnön tiedostosta "/esimerkki.html".

Palvelimen nimi "tux" päätyy myös HTTP-protokollan Host-kenttään, jolloin osoitteessa 10.3.0.1 sijaitseva palvelin ei voi lainkaan tietää, saiko käyttäjän selain palvelimen IP:n paikallisesta hosts-tiedostosta vaiko joltain nimipalvelimelta. Tätä voidaan käyttää ohjaamaan jokin aito Internet-sivu (esim. www.torkya.fi tai www.pankki.fi) virheelliseen osoitteeseen, joka avaa myös mahdollisuuden esim. erittäin yksinkertaiseen (ja kierrettävään) verkkosivuston käytön estoon, mutta myös käyttäjän harhauttamiseen, jota voidaan hyödyntää esim. tietomurrossa, mikäli murtautuja on saanut hankittua root-oikeuden.

Yleinen sisältö

Yleensä /etc/hosts sisältää ainakin seuraavat rivit:

127.0.0.1       localhost
127.0.0.1       <oma isäntänimi>

Ja lisäksi IPv6-yhteensopivissa järjestelmissä:

::1     localhost ip6-localhost

Nämä rivit saavat koneen oman isäntänimen ja erityisnimen localhost osoittamaan IP-osoitteeseen 127.0.0.1 (::1 IPv6:ssa), joka viittaa aina paikalliseen koneeseen.

Ei toivottujen verkkotunnusten estäminen

Tilanteen mukaan, joko käytettävän laitteen omaan /etc/hosts-tiedostoon tai vaikkapa kodin lähiverkossa, voi yhden laitteen asettaa verkkotason estolaitteeksi, joka toimii palomuurin tavoin, mutta sen sijaan, että jokainen lähiverkkoon kytketty laite käyttäisi esimerkiksi omaa mainostenesto-lisäosaa, tähän tehtävään erikoistunut laitteen /etc/hosts-tiedosto pitää lähiverkon puhtaana ei toivotusta sisällöstä. Perinteisesti on mahdollista käyttää estolistoja, mutta nykymaailmassa niistä ei erityisesti hyötyä ole. Tällöin on hyvä käyttää ylätason verkkotunnusten estämiseen erikoistunutta ohjelmaa kuten NoTrack[1] tai PiHole.

 0.0.0.0       microsoft.com
 0.0.0.0       joku-muu-ikävä-sivusto.net

Esimerkkejä

Laitetaan IP-osoitteelle 127.0.0.1 tunnus www.olematon-palvelin.osoite.fi

127.0.0.1 www.olematon-palvelin.osoite.fi

Laitetaan IPv6-osoitteelle 2001:db8::abcd tunnus www.abcd-ipv6.osoite.fi (jos se on julkinen IPv6-osoitteesi)

2001:db8::abcd www.abcd-ipv6.osoite.fi

Laitetaan IP-osoitteelle 185.185.170.96 tunnus l.fi (tämän sivuston IP, tee vaikka jos haluat kirjoittaa vähemmän tekstiä tullessasi muokkaamaan tänne)

185.185.170.96 l.fi

Laitetaan IP-osoitteelle 127.0.0.5 tunnus linux.fi (tämän sivuston verkkotunnus, ei kannata tehdä näin)

127.0.0.5 linux.fi

Laitetaan IP-osoitteelle 192.168.50.3 useita tunnuksia

192.168.50.3 abc.eioikeasivusto.live def.eioikeasivusto.live ghi.eioikeasivusto.live

Ja näin edelleen.

Katso myös