Как я могу защитить свои пароли пользователей и кодовую фразу от пользователя root

Я боролся с этой проблемой несколько дней и обнаружил, что для выполнения моих заданий корневого cron просто удалите имя пользователя из crontab.

Это кажется неожиданным поведением.

При обновлении система сломалась, а затем после сбоя чистой установки cron. Вдобавок, чтобы сделать это еще более странным, когда я попробовал предложенное исправление, я продолжал получать плохую ошибку с магическим числом: /

RESOLUTION:
crontab -l [Success]
* * * * * /mnt/nfs/System/sensorSnapshotLoop.sh

crontab -l [failure]
* * * * * root /mnt/nfs/System/sensorSnapshotLoop.sh

Подробности:

201601201546: this cron entry has no username!
test cron:
crontab -e
* * * * * echo test >> /tmp/a.log
crontab -l
systemctl enable crond
systemctl restart crond
systemctl status crond
cat /tmp/a.log
success!

201601201529: ~5 re-installs later trying different suggestions
#mount nfs share
vi /etc/fstab 
192.168.1.77:/System /mnt/nfs/System            nfs     defaults        0 0
reboot

201601191226: reinstall again
OS reinstall
CentOS-7-x86_64-DVD-1511.iso
features:
Server with GUI
    Network File System Client
    Development Tools
security:
    standard system security profile

201601191033: bad magic after clean install?
#https://bugzilla.redhat.com/show_bug.cgi?id=1263328
gedit mycron.cil
; cron fix
(allow unconfined_t user_cron_spool_t( file ( entrypoint)))
cat mycron.cil
semodule -i mycron.cil
reboot
FAIL! [bad magic number]

#201601190950: still fails w/o nfs access
fix cron <-- no nfs access
mkdir /root/metrics/
cp /mnt/nfs/System/sensorSnapshot.sh /root/metrics/
chmod +x /root/metrics/sensorSnapshotLoop.sh
crontab -e
* * * * * root /root/metrics/sensorSnapshotLoop.sh
crontab -l
systemctl restart crond
systemctl status crond
failed

#201601181929: reinstall/mount nfs share
#mount nfs share
vi /etc/fstab 
192.168.1.77:/System /mnt/nfs/System            nfs     defaults        0 0
reboot

#2016-01-18-1428: noticed failure
upgrade MPSS stack
-> cron failure
*reinstall OS

Спасибо,

Роб

5
22.02.2017, 23:39
2 ответа

Вы не можете.

Пользователь root имеет полный доступ к машине. Это включает возможность запускать кейлоггеры, читать любые файлы, заставлять запущенные вами программы делать что-то, не показывая это в пользовательском интерфейсе... Будет ли это вероятно, зависит от вашего окружения, поэтому мы не можем вам этого сказать. Даже 2FA не является безопасным из-за возможности перехвата сеанса.

В общем, если вы подозреваете, что машина небезопасна, вам не следует использовать ее для доступа к своим службам.

26
27.01.2020, 20:31

Я полагаю, что принятый ответ технически верен и, вероятно, подходит примерно для 99% всех обычных Unix / Linux-машин, используемых сегодня. Тем не менее, мы можем решить эту проблему с несколько более дифференцированного взгляда и попытаться нацелиться на ваш фактический вопрос (который не совсем соответствует «может ли root делать все на моей машине», а «как я могу защитить себя»).

@ ceph3us связан https://security.stackexchange.com/questions/7801/keeping-secrets-from-root-on-linux в комментарии. В этом вопросе и ответах на него говорится о возможностях сохранения секретов из корня , доступных сегодня. Если вы настоящий параноик и, вероятно, вам придется переустановить компьютер, вы можете попробовать что-нибудь из этого. То есть SELinux с очень ограниченными настройками.

В вашем сценарии SELinux имеет большой недостаток. Удаленные администраторы являются удаленными администраторами, потому что они должны администрировать вашу машину. Это означает, что им необходимо иметь полный контроль над абсолютно чем угодно, делать практически все с вашей машиной, включая, в первую очередь, обеспечение безопасности. Это вообще не технический вопрос, это вопрос организации. Даже если вы установите SELinux, им все равно потребуется полный доступ для выполнения своей работы.

Чтобы выйти за рамки вопроса о root , давайте перефразируем проблему следующим образом: любой удаленный администратор, у которого достаточно полномочий, чтобы делать все, что нужно удаленному администратору (включая настройку и усиление любых аспектов безопасности системы) находится за пределами аспектов безопасности системы. По определению.Никакие технические меры не могут этого изменить.

Итак, на практике я вижу для вас только один аспект: переустановите машину с вашей собственной установкой с нуля. А теперь выслушайте меня. Есть два сценария, оба из которых я испытал в разных компаниях: компания одного типа признает, что, хотя большинству людей (преимущественно не использующим Unix) наплевать, есть некоторые люди, способные и им можно доверить управление собственной машиной. Если вы один из таких парней, то променяете их потенциальные услуги на свою свободу. Обычно они отказывают вам в помощи с вашей машиной после того, как вы ее взяли. Это именно то, что вам нужно.

Затем вы можете усилить его, насколько захотите, и тогда у ваших бывших администраторов не будет особо сильной возможности взломать вашу машину, по сравнению с любым другим скриптовиком.

Такие компании поняли, что внутренняя локальная сеть сама по себе не является особенно безопасным местом; то есть он обрабатывает все машины в локальной сети (даже если они предположительно усилены командой администраторов компании) как возможных злоумышленников. В этом случае они могут меньше заботиться о том, чтобы вы устанавливали свои собственные вещи.

Другой сценарий - ваша компания просто запрещает это. Тогда пора выяснить, почему это так. Боятся ли они, что вы можете испортить свою машину, а затем позвать их на помощь, что им будет сложно сделать? Заверьте их, что вы справитесь сами. Есть проблема с лицензией? В Linux? Не думаю.Боятся ли они, что вы можете запускать вредоносный код / ​​устанавливать что-то из Интернета? Вы уже можете это сделать, у вас уже есть root. Думают ли они, что вы можете заставить машину делать вредоносные вещи, а их кейлоггеры / скринлогеры не видят этого? Тогда вы, вероятно, работаете в АНБ, а они следят за своими парнями (я шучу,Про внутренности АНБ понятия не имею;)).

Надеюсь, вы видите, куда я иду. Нет никаких практических оснований предполагать, что вы используете их установку (при наличии у вас полного root-доступа), что делает что-либо более безопасным, чем использование вашей собственной установки, когда они не имеют доступа.

Попытайтесь убедить их, или выясните, почему они не будут убеждены. Возможно, это должно вам кое-что сказать.

1
27.01.2020, 20:31

Теги

Похожие вопросы