Каковы Последствия Passwordless SSH

Сам KVM ничего не делает кроме выполненного, VM. iptables правила помещаются на месте libvirt, (или qemu-ifup сценарии при выполнении вещей хардкор и руководство),

В любом случае, если Вы хотите избежать iptables сложности, не используйте VMs в конфигурации NAT и переключайтесь на использование моста или OVS вместо этого.

Конфигурация OVS

Соединенные мостом сети

2
05.01.2015, 16:58
6 ответов

Каким бы ни был пользователь, необходимо учитывать любые политики по сложности пароля. Если доступ осуществляется только через SSH и PasswordAuthentication имеет значение no в sshd _ config , то значение пароля не имеет. Также обратите внимание, что записи в shadow являются зашифрованными паролями, поэтому значения ! и * не являются паролями - но последовательности не являются допустимыми зашифрованными значениями, что предотвращает вход в систему на основе пароля.

-121--119382-

Да. Ну, я сделал быстрый тест в своей системе, монтируя NTFS-раздел из Windows в каталог в XFS Linux-разделе, и это сработало нормально.

Вы должны выполнить эту операцию как root.

-121--161469-

Было бы хорошо сказать, какой SSH-сервер вы запрашиваете и какие (набор) Unix-систем.

! и * не являются паролями, если они отображаются в /etc/passwd или /etc/shadow (используйте getent для чтения этих записей).

Они являются маркерами, указывающими, имеет ли учетная запись пароль или нет и заблокирована ли она.

Это важное различие, в зависимости от конфигурации и версии PAM и дистрибутива, , если вы находитесь в Linux . Если вы заблокированы, это менее вероятно, что вам будет разрешено войти в систему, но, с другой стороны, возможно, что это работает вне коробки на старых системах (по крайней мере, это мой опыт).

Для блокировки учетной записи можно использовать (в качестве суперпользователя) passwd -l < имя > (! ) или passwd -d < имя > , чтобы удалить пароль из него ( * ), и вы также можете объединить их, что просто обеспечит удаление любого существующего пароля: passwd -dl < имя > .

Вы не говорите, но предполагая, что OpenSSH соответствующие директивы в /etc/ssh/sshd _ config (путь может варьироваться):

HostKey ...

Сервер должен иметь ключ хоста или либо RSA2, либо DSA (и более современная реализация также добавить две реализации эллиптических кривых). RSA1 давно отказались от всех общих реализаций SSH-сервера.

Тогда:

RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no

Я бы также всегда рекомендовал установить /etc/sudoers и полностью запретить root вход через SSH ( PermitRootLogin no ). Однако этот более безопасный вариант установки может быть незначительным недостатком, если диск заполнен, а ваш непривилегированный член sudo не может выполнить запись на диск, но root будет (из-за зарезервированного пространства). Итак, YMMV.

Еще две рекомендации

Назначьте группу для ограничения доступа SSH

Создайте группу ssh-users (или любое другое имя) и установите соответствующую директиву в sshd _ config . Убедитесь, что root является или не является членом этой группы в соответствии с выбранной политикой на основе приведенной выше информации.

AllowGroups ssh-users

Назначьте группу для ограничения пользователей только доступом SFTP

В sshd _ config после этого убедитесь, что пользователи не могут избежать /home и для них отключена определенная функциональность.

Match group sftponly
    ChrootDirectory /home
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
    PasswordAuthentication no

Вывод

Так что да, PAM должен быть добавлен в качестве соображения, если в Linux.

Также разрешите ли агент пересылку или оставьте это пользователям.

И последнее, но не менее важное, следует ли разрешить им пересылку портов или X11 соединений. Особенно порты могут быть нежелательными, поскольку они позволяют пользователю использовать ваш сервер в качестве прокси-сервера.

Директива Match позволяет также ограничить количество пользователей, к которым они подключаются (это может сделать брандмауэр или оболочки TCP).

Хотите ли вы, чтобы вашим пользователям было разрешено управлять ключами или вы хотите абстрагироваться от этого и сделать прямой доступ к авторизованным ключам _ недоступным для них?

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

8
27.01.2020, 21:50

Все, что пользователь не хочет этого, учитывая любые политики на сложность пароля. Если единственным доступом является через SSH и PasswordAuthentication NO в SSHD_Config , то не имеет значения, что является паролем. Также обратите внимание, что записи в Shadow зашифрованы пароли, поэтому значения ! и не являются паромами - но строки, которые не являются допустимыми зашифрованными значениями, тем самым предотвращая паролем входа в систему.

1
27.01.2020, 21:50

Еще одно важное вознаграждение - это пароль истечение срока действия пароля. Просто потому, что SSH устанавливается для обеспечения проверки аутентификации PhanceBleble, не означает, что процесс входа в систему будет игнорировать пароли, если это сообщает, чтобы проверить срок действия.

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

Срок действия пароля может быть определен или установлен в ряде мест, включая файл PassWD, файл входа в систему, вход в систему авторизации PAM, а также другие места (например, база данных E.g. базы данных). Важно проверить, какова политика пароля в вашей системе и вашей организации.

Пара пути вокруг этого может быть до 1) Разрешить пароли для некоторых пользователей в SSHD_Config и / или 2) Попытка иметь определенные пользователи, которые не имеют их паролей истечения. Этот второй вариант вполне вероятно возможен в средах, когда пароли установлены, чтобы истечь из глобальной конфигурации, например, вход в систему .Defs и файлы PAM AUTH.

0
27.01.2020, 21:50

Если это UNIX (HP UX) машина, а не Linux, то вам нужно добавить rcommand к вашему pam.conf под учетной записью sshd.

sshd     account sufficient /usr/lib/security/libpam_ldap.1 rcommand

Иначе Вы получите приглашение на ввод пароля, которое не будет учтено при попытке ssh войти на машину.

0
27.01.2020, 21:50

Да, это возможно, но есть возможность изменить пароль, запустив новый файл паролей в /etc/passwd. Если нет, попробуйте, наверное, более эффективную, менее стабильную опцию шутить с sshd_config, но я бы не рекомендовал ее, если только вы сейчас не делаете то, что делаете.

0
27.01.2020, 21:50

Предполагая, что вы запускаете что-то похожее на RHEL / CENTOS W / OPENSSH, это то, что я обычно делаю, когда идут на паролях:

  • Настроить SSHD_CONFIG только принять только аутентификацию PUBKEY ( Pubkeyauthentication да, PasswordAuthicaticate NO, ChallengerSessonsuateentication No, UsePam NO )
  • Установите все существующие пользователи, чтобы иметь недействительный пароль ( Chappaswd -e 'Pubkey !! <имя пользователя> )
  • Удалить пароль Истечение от всех существующих пользователей ( Shage -M -1 <имя пользователя> )
  • Если использование Sudo убедитесь, что все технические характеристики пользователей отмечены NOPASSWD (например, % CASSWD ALL = (ALL) NOPASSWD: все )
  • Убедитесь, что процесс создания вашего пользователя будет поддерживать эти требования (например, UserAdd -p 'pubkey !! -k max_pass_days = -1 <имя пользователя> )

Перед блокировкой доступа пароля Сделайте вдвойне уверены, что вы сможете успешно аутентифицироваться через Pubkey. Убедитесь, что ваш / домашний раздел не находится на сетевом креплении (или что-то еще, что может не всегда быть доступно). Есть несколько вещей хуже, чем потерять доступ к вашему серверу, потому что он не может добраться до вашего вулки. Если система без головы, убедитесь, что у вас есть возможность быстро получить прямой доступ к консоли в случае чрезвычайной ситуации (KVM, виртуальная консоль, авартировать тележку и т. Д.).

Сообщенное, что все говорится, я бы подумал о том, чтобы вывести пароль на счет кого угодно с полным доступом Sudo и настроить Sudoers для требуния пароля от них. Если все остальное настроено, как указано выше, они до сих пор не смогут войти в сервер с помощью этого пароля, но оно даст вам небольшую дополнительную защиту от кого-то, сидящего в их командной строке и делать «плохие вещи (тм)» Отказ

0
27.01.2020, 21:50

Теги

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