Назад | Перейти на главную страницу

TCPWrappers все еще используются?

Согласно моему текущему пониманию, tcpwrappers можно использовать через inetd или xinetd. Недавно мне сообщили, что inetd / xinetd возник для более эффективного использования оборудования в прежние дни и поэтому в настоящее время встречается редко.

У меня вопрос, если tcpwrappers теперь тоже считаются устаревшей техникой. Если да, то какая им замена?

Сервисы, которые постоянно работают на определенных портах. Причина, по которой inetd и подобные им сохранили память, заключается в том, что они не требовали, чтобы демоны работали постоянно, а только по запросу. В наши дни демоны по требованию довольно редки.

Такие вещи, как Apache, MySQL и Tomcat, продолжают работать и прослушивать назначенные им порты. Некоторые даже запускают новые процессы для обработки каждого соединения, другие просто обрабатывают его в том же процессе. Благодаря тому, что не нужно загружать кучу кода каждый раз при запуске соединения, затраты на установление определенного соединения меньше, чем в случае с inetd-подобными процессами.

Первоначально 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.

Вы ошибаетесь насчет 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 (и для базовой функциональности также подойдут правила брандмауэра без сохранения состояния).