Inet3D

Что это такое

Патченный inetd от FreeBSD 2.1.5.

А зачем это нужно ?

  1. ... Не знаю. Я сделал эту вещь для перекодировок (на разные адреса биндил разные перекодировалки), хотя оно может работать для любого случая inetd-based virtual hosts.
  2. Случай большого почтового траффика. В данном примере не зря программа биндится на 25-ый порт - sendmail стартует после inetd, и слушает все остальные адреса, так что нет надобности делать его exec или проброс на другой хост-порт ( это ведет к слишком большому оверхеду в случае более 10.000 писем в сутки ).
  3. Случай запрета relay'инга. В случае (достаточно надуманном, впрочем), когда Ваш хост решат использовать для spam-relay причем посылать будут через перекодирующий адрес.

Как это работает.

Очень просто: в inetd.conf теперь можно писать строки не только "обычного" вида:
ftp	stream	tcp	nowait	root	/usr/libexec/ftpd	ftpd -l
telnet	stream	tcp	nowait	root	/usr/libexec/telnetd	telnetd
но и более интересные - типа
10.0.2.15:smtp	stream tcp nowait nobody /usr/homes/snar/in/lite lite -e a
10.0.2.16:smtp	stream tcp nowait nobody /usr/homes/snar/in/lite lite -e w
которые задают, что программу lite нужно прибиндить не к INADDR_ANY, как telnet, а к контретному адресу.

Примечания

Compatibility.

Как уже написано, inetd от Free 2.1.5, проверенно работает под FreeBSD 2.1.5-2.2.5, BSDi 2.0.1-2.1 (см. Makefile - там надо раскомментировать, что это BSDI), OpenBSD 2.0-2.1. Не работает под Linux ( ну нету в нем функции daemon(3), хотя написать ее несложно).

Распространение

Программа распространяется под BSD-style license с ftp.lexa.ru/pub/domestic/snar

Автор

Alexandre Snarskii, <snar@paranoia.ru>