Чи добре відключити Requetty?


39

Я намагаюся налаштувати сценарій розгортання за допомогою Capistrano. На етапі cap deploy:setupсценарій підключається до мого сервера і намагається запускати команди, які створюють каталоги. Потім я бачу помилку:msudo: sorry, you must have a tty to run sudo

Існує запропоноване рішення відключити Requetty на моєму сервері. https://unix.stackexchange.com/a/49078/26271

Мені цікаво, чи безпечно це робити?

Відповіді:


40

Є дуже обмежена перевага в безпеці при наявності requirettyна сервері. Якщо використовується який-небудь некореневий код (наприклад, PHP-скрипт), requirettyопція означає, що код експлуатації не зможе безпосередньо оновити свої привілеї шляхом запуску sudo.

Зловмиснику може бути інший спосіб отримати корінь, і, звичайно, зловмисник все одно зможе знеструмити ваш сайт, але не дозволяти зловмиснику отримати корінь означає, що інші сервіси, що працюють, як різні користувачі, продовжуватимуть працювати нормально, а зловмисник виграє ' не зможете стерти системні журнали. Якщо жоден із ваших sudoправил не робить нічого небезпечного, як, наприклад, створення каталогу , це не викликає занепокоєння.

Крім того, - і ще більше прокляття requiretty- не потрібні пільги для створення TT, наприклад, з очікуванням . Тож ви можете також вимкнути requiretty: самостійно це не дає переваги безпеці. Це забезпечує легку перевагу аудиторності при виконанні користувачами (оскільки журнали дають кращу думку про те, хто викликав sudoі звідки вони беруться ), але не виконуються з фонового завдання.


1
Ви маєте на увазі, що якщо користувач може працювати expect(або, screenнаприклад,), то requirettyз точки зору безпеки це марно? (Я не зовсім зрозумів, що ви маєте на увазі під "прокляттям" у цьому реченні)
Жорж Дюперон

@ GeorgesDupéron Так, це все. Оскільки кожен може створити tty, цей requirettyпараметр нікому не заважає використовувати sudo.
Жил "ТАК - перестань бути злим"

3
requirettyможе перешкодити користувачеві не витікати свій пароль у прозорому тексті, якщо він виконує команду sudo, для якої потрібен пароль через ssh. Це там, щоб змусити користувача викликати ssh -t.
Кріс Бетті

1
@Chris Betti - чому це гарна річ, виконувати ssh -t ...?
Rop

У той час я міркував про те, що в цьому випадку, якщо ви виконуєте віддалену команду sudo, яка вимагає ввести пароль, то краще використовувати програму пропуску віддаленої машини, ніж заповнювати пароль в явному тексті через консоль. Я, чесно кажучи, не маю уявлення, якщо це забезпечує підвищену безпеку, крім можливого запобігання ситуації, коли ваш пароль повторюється на екрані під час введення. Я вважаю, я думав, що програму пропуску не буде запущено без tty чи pseudo-tty.
Кріс Бетті
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.