Inet3D
Что это такое
Патченный inetd от FreeBSD 2.1.5.
А зачем это нужно ?
- ... Не знаю. Я сделал эту вещь для перекодировок (на разные
адреса биндил разные перекодировалки), хотя оно может работать
для любого случая inetd-based virtual hosts.
- Случай большого почтового траффика. В данном примере не зря программа
биндится на 25-ый порт - sendmail стартует после inetd, и слушает
все остальные адреса, так что нет надобности делать его exec или
проброс на другой хост-порт ( это ведет к слишком большому оверхеду
в случае более 10.000 писем в сутки ).
- Случай запрета 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, а к контретному адресу.
Примечания
-
Если вы используете FreeBSD 2.2.* - посмотрите man inetd
на предмет опции -a, и подумайте, может быть вам лучше использовать
штатное средство ? :)
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>