TCP Wrapper

Linux.fista
Versio hetkellä 12. maaliskuuta 2008 kello 11.40 – tehnyt LP (keskustelu | muokkaukset) (esittely, yksinkertainen esimerkki)
(ero) ← Vanhempi versio | Nykyinen versio (ero) | Uudempi versio → (ero)
Siirry navigaatioon Siirry hakuun

TCP Wrapper käsittää ohjelman tcpd ja kirjaston libwrap, joilla rajoitetaan yhteydet koneen palvelimille mm. yhteyden ottavan koneen perusteella, ikään kuin palomuurilla. Asetustiedostoina ovat /etc/hosts.allow ja /etc/hosts.deny. Ohjelmaa tcpd käytetään inetd:n tai vastaavan yhteyksiä vastaanottavan "superpalvelimen" kautta, riipumatta palvelinohjelmasta. Kirjastoa libwrap käytetään kääntämällä palvelinohjelma käyttämään sitä suoraan.

Käyttö

inetd & kumpp.

/etc/inetd.conf sisältää rivejä tyyliin

nntp stream tcp nowait news /usr/sbin/tcpd /usr/sbin/leafnode

Tässä määrätään inetd:tä kuuntelemaan nntp-porttia (tcp 119), sallimaan useampia yhtaikaisia yhteyksiä (nowait) ja käyttäjänä news käynnistämään tcpd, joka puolestaan käynnistää itse palvelimen leafnode. Jos tcpd huomaa, että yhteys tietyltä koneelta ei ole sallittu, se ei käynnistäkään palvelinohjelmaa.

inetd:n kautta sopii käynnistää palvelimia, joita käytetään suhteellisen harvoin ja joiden käynnistäminen ei vie liikaa aikaa tai resursseja.

Muussa tapauksessa tämä lähestymistapa on epäkäytännöllinen, palvelin käynnistetään init-skripteistä (katso GNU/Linuxin käynnistysprosessi) ja ohjelmiston pitää itse huolehtia siitä, mitä yhteyksiä otetaan vastaan, usein käyttämällä libwrap-kirjastoa yhteyden alkuvaiheessa.

hosts.allow ja hosts.deny

tcpd:tä tai libwrap-kirjastoa käyttävä ohjelma sallii yhteyden, jos se sallitaan tiedostossa /etc/hosts.allow tai jos sitä ei kielletä tiedostossa /etc/hosts.deny. Kotikoneilla yleensä kerrotaan sallittavat yhteydet allow-tiedostossa ja kielletään kaikki yhteydet deny-tiedostosssa:

# /etc/hosts.allow: list of hosts that are allowed to access the system.
ALL: 127.0.0.1
ssh: 192.168.1. .firma.example.fi
nntpd: 192.168.1.
# /etc/hosts.deny: list of hosts that are _not_ allowed to access the system
ALL:ALL

Tässä sallitaan kaikki yhteydet koneelta itseltään (localhost eli loopback, 127.0.0.1) SSH-yhteydet lisäksi lähiverkosta ja firman verkosta ja lopuksi yhteydet nyyssipalvelimeen lähiverkosta. Kaikki muut yhteydet kielletään.

ip-osoitteiden käyttö nimien sijaan on suositeltavaa, sillä nimi kysytään ip-osoitteen perusteella koneen oman verkon nimipalvelimelta ja on siten mahdollisesti yhteydenottajan kontrollissa. On mahdollista pyytää toinen nimipalvelukysely näin saadun nimen perustella määrittelemellä PARANOID (tämän ominaisuuden voi myös kääntövaiheessa määritellä aina käytettäväksi), jolloin ongelma poistuu, mutta samalla evätään pääsy koneilta, joiden nimipalvelimet ei ole oikein säädetty, mm. suurelta osalta kuluttajaliittymistä.

Vaihtoehtoja määrityksiin on hyvin monipuolisesti, esimerkiksi NIS-verkkoryhmien käyttö ja lokittaminen onnistuu suoraan. Katso manuaalisivu hosts_access(5).

Katso myös