TCPWrappers все еще используются?
Насколько я понимаю, tcpwrappers можно использовать через inetd или xinetd. В последнее время я был проинформирован о том, что inetd/xinetd появился для более эффективного использования аппаратного обеспечения в более ранние дни и поэтому встречается редко в наши дни.
У меня вопрос, если tcpwrappers теперь тоже считаются устаревшей техникой. Если да, то какова их замена?
5 ответов
Первоначально tcpwrappers был реализован как отдельная программа, которая проверяла бы hosts.allow и hosts.deny. Если соединение прошло, то требуемый демон будет запущен для запуска одного запроса. Конфигурация для inetd будет настроена для запуска оболочки tcpd с программой демона и параметрами в качестве параметров.
xinted - это расширенный inetd. Имеет значительно больше опций конфигурации, чем старый inetd. Тривиальные сервисы, такие как echo, chargen, time, daytime и discard, встроены. Многие процессы-демоны, которые часто работают непрерывно, можно запустить из xinetd. Обычно это делается, когда услуга используется редко. Это ограничивает количество процессов, которые должны выполняться за счет более медленного времени запуска. Службы, которые могут быть запущены таким образом, включают почтовые серверы, vnc, apache и многие другие демоны.
inetd выполняет те же задачи, что и xinetd, но с простой однострочной конфигурацией для каждого сервиса. Это ограничивает возможности настройки, но упрощает автоматическую настройку. Процедуры установки, которые могут автоматически настроить inetd, могут не сделать то же самое для xinetd. Многие сайты теперь предпочитают использовать xinetd, а не inetd.
Код оболочки был превращен в библиотеку и часто связан с демонами, которые всегда работают. Эти демоны будут использовать библиотеку для проверки входящих соединений перед их использованием. Это допускает ограничения на основе имен, которые не могут быть надежно реализованы в брандмауэре. Это включает в себя ряд проверок на основе DNS. Одним из демонов, который обычно создается с использованием библиотеки, является xinetd.
Сервисы, которые постоянно работают на определенных портах. Причиной inetd и подобной экономии памяти является то, что они не требуют, чтобы демоны запускались постоянно, только по требованию. В наши дни демоны по требованию довольно редки.
Такие вещи, как Apache, MySQL и Tomcat, все еще работают и слушают назначенные им порты. Некоторые даже запускают новые процессы для обработки каждого соединения, другие просто обрабатывают его в одном процессе. Из-за того, что нет необходимости загружать кучу кода при каждом запуске соединения, стоимость установки конкретного соединения меньше, чем это было бы с inetd-подобными процессами.
Вы не правы насчет TCPwrappers и [x]inetd.
tcpwrappers можно использовать через inetd или xinetd
Да, но вы можете использовать их с любым сетевым демоном - это просто вопрос использования другой библиотеки при создании приложения.
inetd / xinetd появился для более эффективного использования аппаратного обеспечения в более ранние времена и поэтому редко встречается в наши дни
Нет, на самом деле - запускать сервисы через [x]inetd всегда было очень неэффективно по сравнению с автономным демоном - разница, которую они делают, заключается в том, что код намного проще и отображается только в памяти при установлении соединения.
Это все еще актуально сегодня - если вы работаете с выделенным веб-сервером, то нет смысла поддерживать демоны, например POP-сообщения, если есть только один пользователь, подключающийся пару раз в день для сбора почты, генерируемой заданиями cron. Или запуск VNC-сервера, когда вам нужен удаленный доступ с графическим интерфейсом на автономной машине.
Одна из приятных особенностей tcpwrappers заключается в том, что они делают сложные ответы сценариев очень простыми по сравнению с брандмауэром на основе ядра.
inetd/xinetd появился в те дни, когда люди запускали множество удаленно доступных сервисов на каждой машине, включая такие, как время / дата / chargen и т. д. В наши дни, из-за более враждебного интернета и большей осведомленности о возможности использования таких вещей для запуска DDOS-атак на большинстве машин будет работать очень мало серверов (очень немногие должны запускать что-либо, кроме SSH), со специальными машинами для таких вещей, как DNS, SMTP и т. д. Таким образом, более новые демоны, которые реализуют такие протоколы, обычно имеют все, что обертки сделали внутри них.
Кроме того, возможности брандмауэра могут использоваться для предоставления большей части того, что раньше делал tcpd / udpd.
По сути, работу, которую выполняет TCP-Wrappers для сервисов, вызываемых через "суперсервер", можно заменить (для других процессов и "суперсервер") межсетевым экраном с сохранением состояния через iptables / netfilter в случае большинства современных установок Linux (и для основной функциональности подойдут и правила брандмауэра без сохранения состояния).