tcp_wrappery

tcp_wrappery je základny systém zabraňujúci (a explicitne povoľujúci) prístup k službám na špecifickom počítači. V kocke to funguje takto:

inetd (internet super-server) spúšťa mnoho serverov, z ktorých mnohé sú “zabalené” pomocou tcpd. Inými slovami, tcpd je to, čo v skutočnosti spúšťa tieto servery, ale inetd o tom nevie (či skôr, je mu to jedno). tcpd zapisuje do logov pokusy o pripojenie a potom kontroluje súbory /etc/hosts.allow a /etc/hosts.deny, aby zistil, či pokus o pripojenie má odmietonuť alebo nie.

Pravidlá napísané v týchto súboroch môžu byť trocha komplexné, ale predpokladajme, že pyramid.tdn je veľmi nepríjemný a nenechá chudáčika mojo.tdn na pokoji. mojo.tdn môže prihodiť do /etc/hosts.deny riadok, ktorý vezerá takto:

   ALL: pyramid.tdn

Tento riadok by mal byť celkom jasný: bráni pyramid-e aby používala akékoľvek služby na mojo, ktoré sú chránené pomocou tcpd. Keby ma otravovala okrem pyramid-y celá doména, mohol by som zmeniť riadok takto:

   ALL: pyramid.tdn, .annoying.domain

Ale počkať! Môj kamarát Hobbes, trčí s počítačom na .that.annoying.domain, ale ja chcem aby mohol pristupovať ku mne (,ale nie zvyšok jeho otravných priateľov). To je celkom jednoduché. Ponechajúc hosts.deny tak ako je, nasledujúci riadok v hosts.allow povolí prístup pre Hobbesa:

   ALL: hobbes.annoying.domain

Oveľa viac detailov nájdete v tcpd(8), hosts_access(5), a hosts_options(5). Systém tcp_wrapperov je oveľa flexibilnejší než toto a skutočne sa oplatí zahĺbiť sa do neho viac.