omezení interface na kterých poslouchají síťové služby

Ladislav Vaiz spam na nagano.cz
Středa Srpen 11 09:06:05 CEST 2004


>    prohlížel jsem pomocí netstat -l co vše naslouchá spojením z
> Internetu a chtěl bych tento seznam omezit. imapd "démoni" poslouchají
> všude, ale např. exim (smtp) poslouchá jen na loopbacku - jenže ten má
> pro tento účel speciální option. V nam inetd se o možnosti určit
> interface na kterém program poslouchá nepíše - je to možné? Lze nějakým
> způsobem vynutit určitý interface libovolné aplikaci/procesu?

U inetd to IMHO nejde, muzete z nej vsak startovat tcpd a nastavit si
pravidla v /etc/hosts.allow a /etc/hosts.deny.

Poslouchani na portu se iniciuje asi takto:
strace netcat -l -p 1234

socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 3
setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
bind(3, {sin_family=AF_INET, sin_port=htons(1234), sin_addr=inet_addr("0.0.0.0")}}, 16) = 0
listen(3, 1)                            = 0

Pokud se zada do sin_addr jina adresa nez 0.0.0.0, tak se posloucha na
konkretnim interface. Takze

1) bud to aplikace umi udelat sama
2) nebo ji to musite nejak vnutit (LD_PRELOAD)
   Ale jsou jednodussi reseni, treba
3) iptables

La'd"a


Další informace o konferenci Linux