Ero sivun ”TCP Wrapper” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
(→‎hosts.allow ja hosts.deny: tarkennusta, monipuolisemmat esimerkit)
(hups, hiukan täydennystä ja siistimistä)
Rivi 1: Rivi 1:
'''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 <tt>/etc/'''hosts.allow'''</tt> ja <tt>/etc/'''hosts.deny'''</tt>. 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.
'''TCP Wrapper''' käsittää ohjelman '''tcpd''' ja kirjaston '''libwrap''', joilla rajoitetaan yhteydet koneen palvelimille mm. yhteyden ottavan koneen perusteella, ikään kuin [[palomuuri]]lla. Asetustiedostoina ovat <tt>/etc/'''hosts.allow'''</tt> ja <tt>/etc/'''hosts.deny'''</tt>. 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ö==
==Käyttö==
Rivi 12: Rivi 12:
inetd:n kautta sopii käynnistää palvelimia, joita käytetään suhteellisen harvoin ja joiden käynnistäminen ei vie liikaa aikaa tai resursseja.
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.
Muussa tapauksessa tämä lähestymistapa on epäkäytännöllinen, jolloin palvelin käynnistetään [[init]]-skripteistä (katso [[GNU/Linuxin käynnistysprosessi]]) ja palvelimen pitää itse huolehtia siitä, mitä yhteyksiä otetaan vastaan, usein käyttämällä libwrap-kirjastoa yhteyden alkuvaiheessa.


=== hosts.allow ja hosts.deny ===
=== hosts.allow ja hosts.deny ===
Rivi 21: Rivi 21:
  ALL: 127.0.0.1
  ALL: 127.0.0.1
  sshd:  minä@jokinkone.example.net .firma.example.fi EXCEPT UNKNOWN
  sshd:  minä@jokinkone.example.net .firma.example.fi EXCEPT UNKNOWN
  sshd fingerd nntpd: 192.168.1. 192.168.2
  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 tietyltä koneelta omalla tunnuskella sekä firman verkosta ja lopuksi yhteydet sshd-, finger- ja nyyssipalvelimeen lähiverkosta . Kaikki muut yhteydet kielletään.
Tässä sallitaan kaikki yhteydet koneelta itseltään (localhost eli [[loopback]], 127.0.0.1), [[SSH]]-yhteydet tietyltä koneelta omalla tunnuskella sekä firman verkosta kysymättä tunnusta ja lopuksi yhteydet sshd-, finger- ja nyyssipalvelimeen kahdesta lähiverkosta . Kaikki muut yhteydet kielletään.


Pisteet verkkotunnuksen edessä ja ip-osoitteen lopussa tarkoittavat, että sääntö koskee koko aliverkkoa.
Palvelin määritellään avainsanalla ALL tai sillä nimellä, jona se käynnistetään (exec-kutsun argv[0]).


(koneilta, joilla nimipalvelu toimii, katso alla, tunnusken tapauksessa)
Pisteet verkkotunnuksen edessä ja ip-osoitteen lopussa tarkoittavat, että sääntö koskee koko aliverkkoa. [[Käyttäjä]]tunnuksen käyttö vaatii toimivan [[identd]]-palvelun, joka kertoo tunnuksen. Käyttäjätunnuksena voi käyttää sanaa KNOWN, jolloin identd:n ei tarvitse kertoa itse tunnusta, mutta varmistaa, että yhteys on tältä koneelta. EXCEPT UNKNOWN tarkoittaa, että sääntö ei koske koneita, joiden nimipalvelimet eivät toimi oikein (katso alla).
(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 hallinnassa. On mahdollista pyytää toinen nimipalvelukysely näin saadun nimen perustella käyttämällä koneen nimenä KNOWN, UNKNOWN tai 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|nimipalvelimia]]'' ei ole oikein säädetty, mm. suurelta osalta kuluttajaliittymistä, sekä muualtakin tiettyjen verkko-ongelmien aikana.
 
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ä.


Vaihtoehtoja määrityksiin on hyvin monipuolisesti, esimerkiksi [[NIS]]-verkkoryhmien käyttö ja lokittaminen onnistuu suoraan. Katso [[man]]uaalisivu hosts_access(5).
Vaihtoehtoja määrityksiin on hyvin monipuolisesti, esimerkiksi [[NIS]]-verkkoryhmien käyttö ja lokittaminen onnistuu suoraan. Katso [[man]]uaalisivu hosts_access(5).
==Katso myös==
* [[Palomuuri]]


[[Luokka:Tietoturva]]
[[Luokka:Tietoturva]]
[[Luokka:Palvelimet]]
[[Luokka:Palvelimet]]
[[Luokka:Asetustiedostot]]
[[Luokka:Asetustiedostot]]

Versio 12. maaliskuuta 2008 kello 14.01

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, jolloin palvelin käynnistetään init-skripteistä (katso GNU/Linuxin käynnistysprosessi) ja palvelimen 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 kysymättä tunnusta ja lopuksi yhteydet sshd-, finger- ja nyyssipalvelimeen kahdesta lähiverkosta . Kaikki muut yhteydet kielletään.

Palvelin määritellään avainsanalla ALL tai sillä nimellä, jona se käynnistetään (exec-kutsun argv[0]).

Pisteet verkkotunnuksen edessä ja ip-osoitteen lopussa tarkoittavat, että sääntö koskee koko aliverkkoa. Käyttäjätunnuksen käyttö vaatii toimivan identd-palvelun, joka kertoo tunnuksen. Käyttäjätunnuksena voi käyttää sanaa KNOWN, jolloin identd:n ei tarvitse kertoa itse tunnusta, mutta varmistaa, että yhteys on tältä koneelta. EXCEPT UNKNOWN tarkoittaa, että sääntö ei koske koneita, joiden nimipalvelimet eivät toimi oikein (katso alla).

ip-osoitteiden käyttö nimien sijaan on suositeltavaa, sillä nimi kysytään ip-osoitteen perusteella koneen oman verkon nimipalvelimelta ja on siten mahdollisesti yhteydenottajan hallinnassa. On mahdollista pyytää toinen nimipalvelukysely näin saadun nimen perustella käyttämällä koneen nimenä KNOWN, UNKNOWN tai 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 nimipalvelimia ei ole oikein säädetty, mm. suurelta osalta kuluttajaliittymistä, sekä muualtakin tiettyjen verkko-ongelmien aikana.

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