Ero sivun ”TCP Wrapper” versioiden välillä

Linux.fista
(hups, hiukan täydennystä ja siistimistä)
p (w TCP)
Rivi 8: Rivi 8:
  nntp stream tcp nowait news /usr/sbin/tcpd /usr/sbin/leafnode
  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.
Tässä määrätään inetd:tä kuuntelemaan nntp-porttia ([[TCP|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.
inetd:n kautta sopii käynnistää palvelimia, joita käytetään suhteellisen harvoin ja joiden käynnistäminen ei vie liikaa aikaa tai resursseja.
Rivi 26: Rivi 26:
  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 kysymättä tunnusta ja lopuksi yhteydet sshd-, finger- ja nyyssipalvelimeen kahdesta 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 tunnuksella 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]).
Palvelin määritellään avainsanalla ALL tai sillä nimellä, jona se käynnistetään (exec-kutsun argv[0]).

Versio 28. lokakuuta 2011 kello 21.17

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 tunnuksella 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).