1024

Господа, объясните мне кто-нибудь, когда и для чего во всяческих Unix и прочих BSD, было введено ограничение на открытие порта с номером < 1024 — открывать их имеет право только root. Ведь это создаёт массу проблем — всяческие BIND/Sendmail/Apache и прочие сервера вынуждены запускаться из под рута, из за чего и существует вся эта масса эксплоитов, которая пользуясь дырами, которые постоянно появляются и изчезают в этих и прочих программах, позволяют получить на системе абсолютные права.

Комментарии 10

kama № 1
А обычно пускается процесс под рутом, открывает порт и потом «рождает child'а», который и занимается безобразием :)
Евгений Степанищев автор № 2
Да, так и есть. :) Эксплоит, обычно, сводится к тому, чтобы произвести переполнение в родительском процессе.
kama № 3
Ну это да. Но мне кажется я нашел выход — пускаем процессы на портах > 1024, используя выделенных под них пользователей, а с портов предназначенных для них делаем forward :)
А еще лучше для каждого свой chroot/jail. Надо будет на досуге занятся конфигурированием этакого BlackBox'a :)
Hamlet № 7
Может как раз чтобы user не вывесил свой named/apache ?
прикинь…. упал named в core. user вывесил свой со своей зоной….
или тоже самое с apache ?
Евгений Степанищев автор № 8
У меня есть ответ на этот вопрос :) Нужно оформить порты как девайсы /dev/tcp1, …, /dev/tcp255, /dev/udp1, …, /dev/udp255 и раздавать на них права. «x» — возможность создания сокета на этом порту.
Ray № 9
нет под рукой, но помню читал в эхе, патчит ядро не надо, есть стандартные средства опустить порог.

хотя вопрос религии наверно
апач кроме биндинга порта, рождения чялдов, и записи логов ни че и не делает, рутовый который.
сендмыл.. ну этот вообще, назло русским, буржиями изобретён, по заказу цру.
Евгений Степанищев автор № 10
А сколько дыр найдено во всяких там sendmail/BIND, которые позволяют получить рута?