Я пытаюсь защитить учетную запись на нашем сервере с именем ssh_user, которая используется исключительно для подключения через SSH к нашему серверу. Все члены нашей команды входят в эту учетную запись через защищенное PSK-соединение ssh и туннелируют на определенный порт для нашей системы контроля версий. Безопасность поддерживается каждым, имеющим свой PSK в файле / etc / ssh / ssh_user / авторизованный_пользователь
Учетная запись ssh_user была создана с помощью sudo adduser -r -s / bin / sh ssh_user сделать пользователя системной учетной записью, без домашнего каталога и максимально ограниченной оболочки.
Несмотря на то, что это уже доверенные пользователи, всегда возникает вопрос о том, какой доступ действительно необходим этой учетной записи, потому что я все еще могу перечислять каталоги в корневой файловой системе через эту учетную запись и читать конфигурационные файлы в / etc / ssh / .. ., поэтому я задаюсь вопросом, является ли эта проблема такой же простой, как выдача отзыва всего доступа к группе «другие» во всей файловой системе с помощью sudo chmod go-rwx / * ? Я, однако, не знаю, что (если вообще что-то) может сломаться при установке Ubuntu 16.04 по умолчанию.
Я ни в коем случае не эксперт в Linux или безопасности, и я не пытаюсь притворяться, что знаю, что я делаю, поэтому любой вклад очень важен.
Спасибо!
Повторитесь после меня: Работа ЛЮБОЙ команды разрешения /
не зная точно то, что Вы делаете, является отличным способом повредить Вашу систему. Даже если Вы знаете то, что Вы делаете, это - все еще, вероятно, неправильный поступок.
В Вашем случае не будет работать команда, потому что это - неправильное для запуска. Во-вторых, группы являются очень допустимой конструкцией Linux пользователей, и блокирование групп от доступа к файлам является действительно действительно плохой идеей.
Если я понимаю Ваш случай правильно, Вы хотите заблокировать пользователей от ресурсов, которые они не разрешены считать. К счастью, для Вас, существует несколько способов сделать это, каждого с компромиссами.
Вы используете SSH, чтобы позволить пользователям туннелировать в защищенный сервер, правильно? Почему пользователям даже нужна оболочка в этом случае? Просто блокируйте их доступ к оболочке и только позвольте им туннелировать!
Чтобы сделать это, просто создайте новую названную группу noaccess
или подобный. Затем копия и вставка ниже в Ваш /etc/ssh/sshd_config
файл:
Match Group noaccess
AllowTcpForwarding yes
X11Forwarding no
Если Вы хотите быть еще более безопасными путем ограничения, где они могут туннелировать, можно добавить параметр PermitOpen
к конфигурации SSH. Например, если бы Вы хотите только позволить пользователям передавать порту 1337 на текущем сервере, Вы добавили бы PermitOpen localhost:1337
к Вашему файлу конфигурации, прямо под AllowTcpForwarding
директива, как так:
Match Group noaccess
AllowTcpForwarding yes
PermitOpen localhost:1337
X11Forwarding no
...
Наконец, установите оболочку пользователей к /bin/true
путем выполнения команды chsh -s /bin/true <username>
. Пользователи будут тихо (и сильно) отвечены ударом на удар, если они попытаются запустить какой-либо вид интерактивной сессии. Если Вы хотите включать "дружественное" сообщение об ошибке, можно создать оболочку "фальшивки" quick-n-dirty, которая плюнет назад сообщением об ошибке.
SSH скорее раздражается, когда она не может получить доступ к оболочке, таким образом, необходимо передать параметр командной строки -N
к команде OpenSSH, как так:
ssh user@example.com -N -L 3307:localhost:3306
При использовании PuTTY удостоверьтесь, что выделенный флажок устанавливается:
Я шел вперед и сделал действительно простую (непротестированную) оболочку, что слюна поддерживает сообщение об ошибке, и также сохраняет окно терминала открытым так, чтобы -N
является ненужным. Можно найти источник здесь, если Вы хотите скомпилировать и использовать его. Даже с этим, необходимо все еще использовать -N
, но это больше не абсолютно необходимо.
/etc/shadow
) уже запретите чтения от неавторизованных пользователей. Если Ваши пользователи уже защищены (и на самом деле будут рабочими в Вашей системе), это - наилучший вариант - за счет хранения пользователей из того, где они не принадлежат
Если Опция 2 все еще слишком небезопасна для Ваших потребностей, Вы можете chmod o-rwx
файлы, что Вы не хотите их к доступу. Примеры их включают "безопасные" файлы конфигурации. Однако необходимо быть очень осторожными, что Вы не заставляете сервисы и приложения терять доступ к файлам, которые необходимы, чтобы сделать их задание.
Вы могли также использовать Списки управления доступом для блокирования групп пользователей файлов, не устанавливая их как группа владения. Я предостерегаю, однако, что это справедливо включено, и это открывает способ позволить пользователям "выходить" из своего ограниченного набора, если они находят покрытого оболочкой пользователя, который не находится в заблокированной группе.
chroot
Используя chroot
позволяет Вам управлять точно, к чему у Ваших пользователей есть доступ. Вы решаете что полномочия, что команды, и так далее. Это - очень включенный метод, для которого нужна большая работа для получения работать правильно, таким образом, это не рекомендуется для всех.
Если Вам интересно, этот вопрос объясняет это скорее хорошо.
Выполнение
sudo chmod go-rwx /*
только позволило бы корню получать доступ к чему-либо в Вашей системе, которая повредится обо всем.
См. Простой & простой способ заключить в тюрьму пользователей за soem лучшие способы ограничить то, что может сделать пользователь.