Ero sivun ”TCP Wrapper” versioiden välillä
LP (keskustelu | muokkaukset) (esittely, yksinkertainen esimerkki) |
LP (keskustelu | muokkaukset) (→hosts.allow ja hosts.deny: tarkennusta, monipuolisemmat esimerkit) |
||
Rivi 20: | Rivi 20: | ||
# /etc/hosts.allow: list of hosts that are allowed to access the system. | # /etc/hosts.allow: list of hosts that are allowed to access the system. | ||
ALL: 127.0.0.1 | ALL: 127.0.0.1 | ||
sshd: minä@jokinkone.example.net .firma.example.fi EXCEPT UNKNOWN | |||
nntpd: 192.168.1. | sshd fingerd nntpd: 192.168.1. 192.168.2 | ||
# /etc/hosts.deny: list of hosts that are _not_ allowed to access the system | # /etc/hosts.deny: list of hosts that are _not_ allowed to access the system | ||
ALL:ALL | ALL:ALL | ||
Tässä sallitaan kaikki yhteydet koneelta itseltään (localhost eli [[loopback]], 127.0.0.1) [[SSH]]-yhteydet | Tässä sallitaan kaikki yhteydet koneelta itseltään (localhost eli [[loopback]], 127.0.0.1), [[SSH]]-yhteydet tietyltä koneelta omalla tunnuskella sekä firman verkosta ja lopuksi yhteydet sshd-, finger- ja nyyssipalvelimeen lähiverkosta . Kaikki muut yhteydet kielletään. | ||
Pisteet verkkotunnuksen edessä ja ip-osoitteen lopussa tarkoittavat, että sääntö koskee koko aliverkkoa. | |||
(koneilta, joilla nimipalvelu toimii, katso alla, tunnusken tapauksessa) | |||
(huomaa piste, jolla koko aliverkko sallitaan) | |||
Palvelin määritellään avainsanalla ALL tai sillä nimellä, jona se käynnistetään (argv[0]). | |||
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äminen|kääntövaiheessa]] määritellä aina käytettäväksi), jolloin ongelma poistuu, mutta samalla evätään pääsy koneilta, joiden ''[[nimipalvelin|nimipalvelimet]]'' ei ole oikein säädetty, mm. suurelta osalta kuluttajaliittymistä. | 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äminen|kääntövaiheessa]] määritellä aina käytettäväksi), jolloin ongelma poistuu, mutta samalla evätään pääsy koneilta, joiden ''[[nimipalvelin|nimipalvelimet]]'' ei ole oikein säädetty, mm. suurelta osalta kuluttajaliittymistä. |
Versio 12. maaliskuuta 2008 kello 13.42
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 sshd: minä@jokinkone.example.net .firma.example.fi EXCEPT UNKNOWN sshd fingerd nntpd: 192.168.1. 192.168.2
# /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 tietyltä koneelta omalla tunnuskella sekä firman verkosta ja lopuksi yhteydet sshd-, finger- ja nyyssipalvelimeen lähiverkosta . Kaikki muut yhteydet kielletään.
Pisteet verkkotunnuksen edessä ja ip-osoitteen lopussa tarkoittavat, että sääntö koskee koko aliverkkoa.
(koneilta, joilla nimipalvelu toimii, katso alla, tunnusken tapauksessa) (huomaa piste, jolla koko aliverkko sallitaan)
Palvelin määritellään avainsanalla ALL tai sillä nimellä, jona se käynnistetään (argv[0]).
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).