Każdy jest innym i nikt sobą samym.

W przypadku us³ug TCP,
które chcesz monitorowaæ lub zabezpieczaæ, jest on wywo³ywany zamiast programu
serwera. tcpd sprawdza, czy zdalny host ma prawo u¿ywaæ us³ugi i je¿eli test zakoñ-
czy siê poprawnie, uruchamia prawdziwy serwer. tcpd zapisuje równie¿ ¿¹dania do
demona syslog. Zauwa¿, ¿e demon ten nie obs³uguje us³ug opartych na UDP.
Na przyk³ad, aby „opakowaæ” demona finger, musisz zmieniæ odpowiedni¹ liniê
w pliku inetd.conf z takiej:
# demon finger wywo³ywany bezpoœrednio
finger
stream tcp nowait bin
/usr/sbin/fingerd in.fingerd
na tak¹:
# "opakowany" demon finger
finger
stream tcp nowait root
/usr/sbin/tcpd in.fingerd
Przy zupe³nym braku kontroli dostêpu bêdzie to wygl¹da³o z punktu widzenia
klienta tak jak zwyk³a konfiguracja finger, z tym wyj¹tkiem, ¿e wszelkie ¿¹dania
bêd¹ zapisywane przez funkcjê o nazwie sysloga auth.
Kontrola dostêpu jest realizowana przez dwa pliki: /etc/hosts.allow i /etc/hosts.deny.
Zawieraj¹ one wpisy, które pozwalaj¹ na dostêp do pewnych us³ug i hostów lub go
zabraniaj¹. Gdy tcpd obs³uguje ¿¹danie us³ugi, na przyk³ad finger od klienta z hosta
o nazwie biff.foobar.com, przegl¹da pliki hosts.allow i hosts.deny (w tej kolejnoœci)
w poszukiwaniu wpisu pasuj¹cego zarówno do us³ugi, jak i do hosta. Je¿eli od-
powiedni wpis zostanie znaleziony w pliku hosts.allow, dostêp jest udzielany, a tcpd
nie sprawdza pliku hosts.deny. Je¿eli w pliku hosts.allow nie zostanie znaleziony wpis,
ale zostanie on znaleziony w hosts.deny, ¿¹danie jest odrzucane przez zamkniêcie
po³¹czenia. ¯¹danie jest jednak akceptowane, je¿eli odpowiedni wpis nie zostanie
znaleziony w ¿adnym z plików.
Wpisy w plikach dostêpu wygl¹daj¹ tak:
listaus³ug: listahostów [: polecenie]
* Autorem tego demona jest Wietse Venema, wietse@wzv.win.tue.nl.
Funkcja kontroli dostêpu tcpd
217
listaus³ug to lista nazw us³ug na podstawie pliku /etc/services lub s³owo kluczo-
we ALL. Aby pasowa³y wszystkie us³ugi poza finger i tftp, u¿yj ALL EXCEPT fin-
ger, tftp.
listahostów to lista nazw hostów, adresów IP lub s³ów kluczowych ALL, LOCAL,
UNKNOWN lub PARANOID. ALL pasuje do dowolnego hosta, natomiast LOCAL tylko
do hostów, które nie zawieraj¹ kropki*. Do UNKNOWN pasuje dowolny host, którego
nazwy lub adresu nie znaleziono. Do PARANOID pasuje dowolny host, którego na-
zwa nie zamienia siê na jego poprawny adres IP**. Do nazwy rozpoczynaj¹cej siê od
kropki pasuj¹ wszystkie hosty z domeny o tej nazwie. Na przyk³ad do .foobar.com
pasuje biff.foobar.com, ale nie pasuje nurks.fredsville.com. Do wzorca koñcz¹cego
siê kropk¹ pasuje dowolny host, którego adres IP rozpoczyna siê od podanego wzor-
ca, a wiêc do 172.16 pasuje 172.16.32.0, ale nie pasuje 172.15.9.1. Wzorzec postaci
n.n.n.n/m.m.m.m jest traktowany jak adres IP i maska sieci, a wiêc mo¿emy zapi-
saæ poprzedni przyk³ad jako 172.16.0.0/255.255.0.0. Wreszcie dowolny wzorzec roz-
poczynaj¹cy siê od znaku „/” pozwala na zadanie pliku, w którym zawarta bêdzie
lista dopasowywanych wzorców nazw hostów lub adresów IP. Tak wiêc wzorzec
wygl¹daj¹cy jak /var/access/trustedhosts spowodowa³by, ¿e demon tcpd odczyta³by
plik, sprawdzaj¹c, czy jakieœ zawarte w nim wiersze odpowiadaj¹ pod³¹czaj¹cemu
siê hostowi.
Aby zakazaæ dostêpu do us³ug finger i tcpd wszystkim oprócz hostów lokal-
nych, umieœæ nastêpuj¹cy wpis w pliku /etc/hosts.deny i pozostaw plik /etc/hosts.allow
pusty:
in.tftpd, in.fingerd: ALL EXCEPT LOCAL, . twoja.domena
Opcjonalne pole polecenie mo¿e zawieraæ polecenie wywo³ywane po dopasowa-
niu wpisu. Jest to przydatne do konfigurowania pu³apek, które mog¹ ujawniaæ poten-
cjalnych atakuj¹cych. Poni¿szy przyk³ad tworzy plik logu, w którym s¹ wpisywani
u¿ytkownicy i pod³¹czaj¹ce siê hosty. Je¿eli host nie nazywa siê vlager.vbrew.com,

Tematy