Последовательный и безопасный подход к учетным записям без пароля с SSH

Я нашел решение, я должен был пройти 25 веб-сайтов, прежде чем я нашел тот, который помог мне, этот наконец сделал:

http://techbase.kde.org/Development/Tutorials/Creating_Konqueror_Service_Menus

Fedora 17 сделал, чтобы Вы поместили Ваш something.desktop файл в другом месте:

Вход в систему как корень и место Ваш something.desktop файл здесь:

/usr/share/kde4/services/

Я обойду Вас через точно, что я сделал так, можно получить его работа:

Вход в систему как корень и делает следующий файл названным engauge.desktop здесь:

/usr/share/kde4/services/engauge.desktop

Отредактируйте тот файл и поместите точно эти строки там:

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=image/*;
Actions=setAsWallpaper

[Desktop Action setAsWallpaper]
Name=Use As Wallpaper
Icon=background
Exec=dcop kdesktop KBackgroundIface setWallpaper %U 6

Заметьте две новых строки, которые важны, Type=Service и ServiceTypes строка. Это не является дополнительным.

Сохраните файл и удостоверьтесь, что он имеет 755 полномочий. Откройте завоевателя в режиме файла и щелчке правой кнопкой по .jpg или другому изображению, перейдите к Меню действий, и Вы будете видеть "Использование, Поскольку Обои" объект появятся.

12
26.01.2019, 17:47
2 ответа

Требования к которому я предложу решения, поскольку пули Points:

  1. Putobuldbless CORT CONSOLE Вход в систему
  2. Root Phaness Rood Remote Вход от предварительно авторизованных пользователей
  3. Удаленный логин Passement для указанных учетных записей От предварительно уполномоченных пользователей
  4. Удаленный логин Passwordble для любой учетной записи от предварительно авторизованных пользователей

Следующие примеры основаны на Debian, поскольку это то, что я получил сюда для тестирования. Тем не менее, я не вижу причин, почему принципы не могут быть применены к любому распределению (или действительно любые производные PAM * IX).

Логин корневой консоли Passementless

Я думаю, что, как я бы поддержал это, будет использовать PAM и файл конфигурации / etc / Securetty .

В качестве предварительной необходимости необходимо установить «достаточно безопасный» пароль корневого пароля. Это не требуется для входа в консоль, но существует, чтобы сделать попытки растрескивания грубой силы нереально. Учетная запись в противном случае совершенно нормальный корневой счет.

в /etc/pam.d/login У меня есть следующий стандартный набор строк для аутентификации (начиная с ключевого слова auth ):

auth       optional   pam_faildelay.so  delay=3000000
auth [success=ok new_authtok_reqd=ok ignore=ignore user_unknown=bad default=die] pam_securetty.so
auth       requisite  pam_nologin.so

@include common-auth
auth       optional   pam_group.so

ссылки Common-auth включают в себя файл содержит следующие соответствующие строки:

auth    [success=1 default=ignore]      pam_unix.so nullok_secure
auth    requisite                       pam_deny.so
auth    required                        pam_permit.so
auth    optional                        pam_cap.so

Файл Common-auth Указывает PAM пропустить одно правило (отрицание), если «вход в систему Unix» добивается успеха. Обычно это означает матч в / и т. Д. / Тень .

AUTH ... PAM_SECURETTYTY.SO строка сконфигурирована для предотвращения корневых логинов, кроме на устройствах TTY, указанных в / etc / securetty . (Этот файл уже включает в себя все консольные устройства.)

Изменение этого AUTH Линия слегка, можно определить правило, что позволяет логин корня без пароля от TTY Устройство, указанное в / etc / securetty . Параметр = OK параметр должен быть изменен таким образом, чтобы ok заменяется количеством строк Auth , которые будут пропущены в случае успешного совпадения. В ситуации, показанной здесь, этот номер 3 , который прыгает на AUTH ... PAM_PERMIT.SO строка:

auth [success=3 new_authtok_reqd=ok ignore=ignore user_unknown=bad default=die] pam_securetty.so

Root Rood Remote Вход от предварительно авторитетных пользователей

Это простое включение ключей SSH для этих авторизованных пользователей, добавленных в корню файл authorized_keys .

Удаленный логин Passhieldleble для указанных учетных записей от предварительно авторизованных пользователей

Это также простое включение ключей SSH для авторизованных пользователей, добавленных к соответствующему и соответствующему пользователю .ssh / authorized_keys . (Типичный Удаленный пользователь Chris хочет, чтобы войти в систему для локального пользователя Chris Сценарий.)

Обратите внимание, что учетные записи могут оставаться в заблокированном состоянии по умолчанию после создания (т. Е. Сразу ! в Поле пароля для / etc / Shadow ), но разрешить логин на основе ключей SSH. Это требует root для размещения ключа в файле нового пользователя .ssh / authorized_keys . Что такое не так очевидно , заключается в том, что этот подход доступен только в том случае, если useppam да устанавливается в / etc / ssh / sshd_config . PAM дифференцирует ! Как «учетная запись заблокирована для пароля, но другие методы доступа могут быть разрешены» и ! ... «Счета заблокирована. Период». (Если установлен USEPAM NO , то OpenSSH учитывает любое наличие ! , запускаемое поле пароля, чтобы представлять заблокированную учетную запись.)

Удаленный логин для любой учетной записи от предварительно авторизован Пользователи

Мне не совсем понятно, хотите ли вы этого объекта или нет. А именно, некоторые уполномоченные пользователи смогут SSH логин без пароля на любой любой любой локальный счет.

Я не могу проверить этот сценарий, но я считаю, что это может быть достигнуто с помощью OpenSSH 5.9 или новее, что позволяет нескольким файлам authorized_keys , которые будут определены в / etc / ssh / sshd_config . Отредактируйте файл конфигурации, чтобы включить второй файл под названием / etc / ssh / authorized_keys . Добавьте свои выбранные авторизованные пользователи «Общественные клавиши к этому файлу, обеспечение того, чтобы разрешения были таковы, что он принадлежит корнеплоду и имеет доступ к записи только рутом (0644).

5
27.01.2020, 19:56

Это звучит так, как вы хотите, чтобы реальные (нерудовые) учетные записи пользователей с ключами SSH и Full NOPASSWD Доступ через Sudo (который доступен по умолчанию в большинстве дистрибутивов в большинстве дистрибутивов в наши дни и также имеет тривиальность для установки вручную). Вы можете иметь пустые пароли для каждой учетной записи пользователя (которая не будет работать удаленно), то пользователь либо работает Sudo -S или пользователя ~ / .bash_profile , просто содержит эту команду.

Sudo

Добавить каждого пользователя к группе Sudo Unix (например, username usermod -a -g sudo , хотя старые системы будут иметь менее интуитивные способы сделать это; худший Корпус, вы редактируете / etc / группы напрямую).

В / etc / sudoers или /etc/sudoers.d/local , вы хотите, чтобы строка была таковой:

%sudo    ALL=(ALL:ALL) NOPASSWD: ALL

, если вы хотите, чтобы вы нужны автоматический доступ, добавьте это в профиль пользователя. Для Bash , это было бы ~ / .bash_profile :

sudo -s

Это позволит вам увидеть, кто вошел в систему (попробуй , который или последний ) и оставит журналы в /var/log/auth.log .

Войти PatureBless

на гораздо более старых системах, вы можете просто редактировать / etc / passwd (или на слегка старых системах, / etc / thadow ) и удалить хеш, Так, например, BOB: $ 1 $ SOLS $ HASHH: 12345: 0: 99999: 7 ::: становится просто BOB :: 12345: 0: 99999: 7 ::: . Это было все, что вам нужно. Современные системы не нравятся это. Существуют, вероятно, другие способы сделать это, но так, как я только что проверил, заключается в следующем (Источник: Случайные вещи Лео ) :

Открыть / etc / etc / Тень и соблюдайте учетную запись с реальной информацией. Это будет включать три элемента, разграниченные знаками доллара ( $ ). Они представляют механизм хеширования, затем соль , затем хеш. Обратите внимание на соль, затем запустите это:

openssl passwd -1 -salt SALT

(это использует MD5 в качестве механизма хеширования. Это пустой пароль, поэтому вы не должны возражать.) При появлении запроса для пароля нажмите Enter. Сохраните эту строку, включая любые задние точки, и вставьте его после первой кишки на эту линию пользователя в / etc / thadow (это должно заменить любое ранее существование между первыми и вторыми дюймами). (Пожалуйста, не используйте буквально соль как ваша соль!)

SSH

Ваш SSH Конфигурация демона жизни в / etc / sshd_config или / etc / ssh / sshd_config . Для правильной безопасности я рекомендую он включать в себя эти строки:

PermitRootLogin no
PermitEmptyPasswords no

см. В Безопасная защищенная оболочка ) Написать для дополнительных мер безопасности, вы можете добавить в вашу конфигурацию SSH, чтобы лучше укрепить его от сложных злоумышленников.

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

Каждый пользователь, для каждого из их клиентских систем, должен создать пару клавиши SSH, например,

ssh-keygen -t rsa -b 4096 -f $HOME/.ssh/id_rsa -o -a 100 -C "Bob Roberts on his laptop"

Это производит закрытый ключ в $ HOME / .SSH / ID_RSA и открытый ключ в $ HOME / .SSH / ID_RSA.PUB . Есть ли этот пользователь отправлять вам свои открытые ключи и добавить их к этому серверу $ HOME / .ssh / autorized_keys (Обратите внимание, что каждый пользователь $ HOME / .SH должен быть режимом 700, например MKDIR -P ~ User / .ssh && chmod 700 ~ user / .ssh ).

Пользователи, которые не хотят ключей SSH, можно подойти к физической системе. Там их пустые пароль введут их, в какой момент они могут ввести passwd из оболочки и установите пароль, что позволяет им удаленным доступом.

(Я фактически использовал эту технику, чтобы дать людям доступ к коллекции систем назад, когда я запустил ИТ-отдел. Он принудил пользователей использовать SSH-ключей, и мне не нужно было давать им пароли. Их начальный /.bash_profile имел две линии внизу: Passwd , а затем MV ~ / .bash_profile.real ~ / .bash_profile Так что они устанавливают новый пароль при первом входе в систему. )

Риски

Вы поместите полное доверие к своим пользователям. Там ничего не останавливает пользователю состоит в файле другого пользователя ~ / .ssh / averalized_keys и, следовательно, изменяя вашу возможность отозвать и аудит доступ, но это неизбежно, если вы выделяете полный корню.

Заключение

Каждый пользователь теперь является членом группы Sudo и имеет полный доступ к паролюисту в корневой оболочке. У этих пользователей нет паролей для их учетных записей и могут войти в систему, удаленно используя SSH-ключей.

Если вы потеряете одного из своих сотрудников, вы можете удалить его / ее аккаунт. Если один из ноутбуков ваших сотрудников будет украден, вы можете удалить клавишу SSH ноутбука из этого пользователя файла authorized_keys . Если у вас есть нарушение безопасности, у вас есть журналы, показывающие, кто вошел в систему.

1
27.01.2020, 19:56

Теги

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