Сам KVM ничего не делает кроме выполненного, VM. iptables правила помещаются на месте libvirt, (или qemu-ifup сценарии при выполнении вещей хардкор и руководство),
В любом случае, если Вы хотите избежать iptables сложности, не используйте VMs в конфигурации NAT и переключайтесь на использование моста или OVS вместо этого.
Каким бы ни был пользователь, необходимо учитывать любые политики по сложности пароля. Если доступ осуществляется только через SSH и PasswordAuthentication
имеет значение no
в sshd _ config
, то значение пароля не имеет. Также обратите внимание, что записи в shadow
являются зашифрованными паролями, поэтому значения !
и *
не являются паролями - но последовательности не являются допустимыми зашифрованными значениями, что предотвращает вход в систему на основе пароля.
Да. Ну, я сделал быстрый тест в своей системе, монтируя 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-users
(или любое другое имя) и установите соответствующую директиву в sshd _ config
. Убедитесь, что root
является или не является членом этой группы в соответствии с выбранной политикой на основе приведенной выше информации.
AllowGroups ssh-users
В sshd _ config
после этого убедитесь, что пользователи не могут избежать /home
и для них отключена определенная функциональность.
Match group sftponly
ChrootDirectory /home
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
PasswordAuthentication no
Так что да, PAM должен быть добавлен в качестве соображения, если в Linux.
Также разрешите ли агент пересылку или оставьте это пользователям.
И последнее, но не менее важное, следует ли разрешить им пересылку портов или X11 соединений. Особенно порты могут быть нежелательными, поскольку они позволяют пользователю использовать ваш сервер в качестве прокси-сервера.
Директива Match
позволяет также ограничить количество пользователей, к которым они подключаются (это может сделать брандмауэр или оболочки TCP).
Хотите ли вы, чтобы вашим пользователям было разрешено управлять ключами или вы хотите абстрагироваться от этого и сделать прямой доступ к авторизованным ключам _
недоступным для них?
Есть, безусловно, больше аспектов, но они в основном на более тонком уровне детализации и как таковые вариации вышеупомянутых точек.
Все, что пользователь не хочет этого, учитывая любые политики на сложность пароля. Если единственным доступом является через SSH и PasswordAuthentication
NO
в SSHD_Config
, то не имеет значения, что является паролем. Также обратите внимание, что записи в Shadow
зашифрованы пароли, поэтому значения !
и
не являются паромами - но строки, которые не являются допустимыми зашифрованными значениями, тем самым предотвращая паролем входа в систему.
Еще одно важное вознаграждение - это пароль истечение срока действия пароля. Просто потому, что SSH устанавливается для обеспечения проверки аутентификации PhanceBleble, не означает, что процесс входа в систему будет игнорировать пароли, если это сообщает, чтобы проверить срок действия.
Это чрезвычайно важно, потому что нет способа SSH на сервер с учетной записью пользователя, которая имеет срок действия истекший пароль (из моего собственного опыта).
Срок действия пароля может быть определен или установлен в ряде мест, включая файл PassWD, файл входа в систему, вход в систему авторизации PAM, а также другие места (например, база данных E.g. базы данных). Важно проверить, какова политика пароля в вашей системе и вашей организации.
Пара пути вокруг этого может быть до 1) Разрешить пароли для некоторых пользователей в SSHD_Config и / или 2) Попытка иметь определенные пользователи, которые не имеют их паролей истечения. Этот второй вариант вполне вероятно возможен в средах, когда пароли установлены, чтобы истечь из глобальной конфигурации, например, вход в систему .Defs и файлы PAM AUTH.
Если это UNIX (HP UX) машина, а не Linux, то вам нужно добавить rcommand
к вашему pam.conf под учетной записью sshd.
sshd account sufficient /usr/lib/security/libpam_ldap.1 rcommand
Иначе Вы получите приглашение на ввод пароля, которое не будет учтено при попытке ssh войти на машину.
Да, это возможно, но есть возможность изменить пароль, запустив новый файл паролей в /etc/passwd
. Если нет, попробуйте, наверное, более эффективную, менее стабильную опцию шутить с sshd_config
, но я бы не рекомендовал ее, если только вы сейчас не делаете то, что делаете.
Предполагая, что вы запускаете что-то похожее на RHEL / CENTOS W / OPENSSH, это то, что я обычно делаю, когда идут на паролях:
Pubkeyauthentication да,
PasswordAuthicaticate NO, ChallengerSessonsuateentication No, UsePam NO
) Chappaswd -e 'Pubkey !! <имя пользователя>
) Shage -M -1 <имя пользователя>
) % CASSWD ALL = (ALL) NOPASSWD: все
) UserAdd -p 'pubkey !! -k max_pass_days = -1 <имя пользователя>
) Перед блокировкой доступа пароля Сделайте вдвойне уверены, что вы сможете успешно аутентифицироваться через Pubkey. Убедитесь, что ваш / домашний раздел не находится на сетевом креплении (или что-то еще, что может не всегда быть доступно). Есть несколько вещей хуже, чем потерять доступ к вашему серверу, потому что он не может добраться до вашего вулки. Если система без головы, убедитесь, что у вас есть возможность быстро получить прямой доступ к консоли в случае чрезвычайной ситуации (KVM, виртуальная консоль, авартировать тележку и т. Д.).
Сообщенное, что все говорится, я бы подумал о том, чтобы вывести пароль на счет кого угодно с полным доступом Sudo и настроить Sudoers для требуния пароля от них. Если все остальное настроено, как указано выше, они до сих пор не смогут войти в сервер с помощью этого пароля, но оно даст вам небольшую дополнительную защиту от кого-то, сидящего в их командной строке и делать «плохие вещи (тм)» Отказ