- 🏳️🌈 Три способа заблокировать и разблокировать учетную запись пользователя в Linux
- Способ 1: Как заблокировать, разблокировать и проверить состояние данной учетной записи пользователя в Linux с помощью команды passwd?
- Способ 2: Как заблокировать, разблокировать и проверить состояние данной учетной записи пользователя в Linux с помощью команды usermod?
- Метод 3: Как отключить, включить SSH доступ к данной учетной записи пользователя в Linux с помощью команды usermod?
- Как заблокировать, разблокировать и проверить состояние многопользовательской учетной записи в Linux с помощью скрипта?
- Защита Linux-сервера. Что сделать в первую очередь
- Содержание
- Нерутовый юзер
- Ключи вместо паролей SSH
- Файрвол
- Fail2Ban
- Автоматические обновления безопасности
- Смена портов по умолчанию
- На правах рекламы
- Как заблокировать и разблокировать пользователя в Linux
- 3 способа блокировки и разблокировки учетных записей пользователей в Linux
- Способ 1: блокировка и разблокировка пользователей с помощью команды passwd
- А как насчет входа через SSH?
- Способ 2: блокировка и разблокировка пользователей с помощью команды usermod
- Способ 3: блокировка и разблокировка пользователей с помощью команды chage
🏳️🌈 Три способа заблокировать и разблокировать учетную запись пользователя в Linux
Если политика паролей уже внедрена в вашей организации, вам не нужно искать эти опции.
Однако, если вы установили период блокировки на 24 часа, в этом случае вам может потребоваться разблокировать учетную запись пользователя вручную.
Этот учебник поможет вам вручную заблокировать и разблокировать учетную запись пользователя в Linux.
Это можно сделать с помощью следующих двух команд Linux тремя способами.
- passwd: команда passwd используется для обновления токенов аутентификации пользователя. Эта задача достигается путем вызова API Linux-PAM и Libuser
- usermod: команда usermod используется для изменения / обновления данных учетной записи пользователя. Она используется для добавления пользователя в определенную группу и т. д.,
Чтобы выяснить этот вопрос, мы выбираем учетную запись Daygeek.
Давайте посмотрим, как это сделать шаг за шагом.
Обратите внимание, вы должны использовать соответствующую учетную запись пользователя, которую вам нужно заблокировать или разблокировать вместо нашей.
Вы можете проверить, доступна ли данная учетная запись пользователя в системе или нет, с помощью команды id.
Да, мой аккаунт доступен в системе:
Способ 1: Как заблокировать, разблокировать и проверить состояние данной учетной записи пользователя в Linux с помощью команды passwd?
Команда passwd является одной из часто используемых команд администратором Linux очень часто.
Используется для обновления токенов аутентификации пользователя в файле /etc/shadow.
Запустите команду passwd с ключом -l, чтобы заблокировать данную учетную запись пользователя.
Вы можете проверить статус заблокированной учетной записи либо командой passwd, либо grep указанного имени пользователя из файла /etc/shadow.
Проверка статуса заблокированной учетной записи пользователя с помощью команды passwd.
Это выведет краткую информацию о статусе пароля для данной учетной записи.
- LK: пароль заблокирован
- NP: нет пароля
- PS: пароль установлен
Проверка статуса заблокированной учетной записи пользователя с помощью файла /etc/shadow.
Два восклицательных знака будут добавлены перед паролем, если учетная запись уже заблокирована.
Запустите команду passwd с ключом -u, чтобы разблокировать данную учетную запись пользователя.
Способ 2: Как заблокировать, разблокировать и проверить состояние данной учетной записи пользователя в Linux с помощью команды usermod?
Даже команда usermod также используется администратором Linux очень часто.
Команда usermod используется для изменения / обновления данных учетной записи пользователя.
Она используется для добавления пользователя в определенную группу и т. д.,
Запустите команду usermod с ключом -L, чтобы заблокировать данную учетную запись пользователя.
Вы можете проверить статус заблокированной учетной записи либо командой passwd, либо grep указанного имени пользователя из файла /etc/shadow.
Проверка статуса заблокированной учетной записи пользователя с помощью команды passwd.
Это выведет краткую информацию о статусе пароля для данной учетной записи.
- LK: пароль заблокирован
- NP: нет пароля
- PS: пароль установлен
Проверка статуса заблокированной учетной записи пользователя с помощью файла /etc/shadow.
Два восклицательных знака будут добавлены перед паролем, если учетная запись уже заблокирована.
Запустите команду usermod с ключом -U, чтобы разблокировать данную учетную запись пользователя.
Метод 3: Как отключить, включить SSH доступ к данной учетной записи пользователя в Linux с помощью команды usermod?
Альтернативно это может быть сделано путем назначения оболочки nologin данному пользователю. Для этого выполните команду ниже.
Вы можете проверить данные заблокированной учетной записи пользователя, извлекая имя пользователя из файла /etc/passwd.
Мы можем разрешить пользователю доступ по ssh, назначив обратно старую оболочку.
Как заблокировать, разблокировать и проверить состояние многопользовательской учетной записи в Linux с помощью скрипта?
Если вы хотите заблокировать / разблокировать более одной учетной записи, вы можете использовать скрипт.
Да, мы можем написать небольшой скрипт для этого. Для этого используйте следующий скрипт оболочки.
Создайте список пользователей. Каждый пользователь должен быть в отдельной строке.
Используйте следующий скрипт оболочки для блокировки учетной записи нескольких пользователей в Linux.
Установите права на запуск для файла user-lock.sh.
Наконец, запустите скрипт, чтобы добиться этого.
Используйте следующий скрипт оболочки для проверки заблокированной учетной записи пользователя в Linux.
Установите исполняемое разрешение для файла user-lock-status.sh.
Наконец, запустите скрипт, чтобы добиться этого.
Используйте следующий скрипт оболочки, чтобы разблокировать учетную запись нескольких пользователей в Linux.
Установите права на запуск для файла user-unlock.sh.
Наконец, запустите скрипт, чтобы добиться результата
Источник
Защита Linux-сервера. Что сделать в первую очередь
Habib M’henni / Wikimedia Commons, CC BY-SA
В наше время поднять сервер на хостинге — дело пары минут и нескольких щелчков мыши. Но сразу после запуска он попадает во враждебную среду, потому что открыт для всего интернета как невинная девушка на рокерской дискотеке. Его быстро нащупают сканеры и обнаружат тысячи автоматически скриптовых ботов, которые рыскают по сети в поисках уязвимостей и неправильных конфигураций. Есть несколько вещей, которые следует сделать сразу после запуска, чтобы обеспечить базовую защиту.
Содержание
Нерутовый юзер
Первым делом нужно завести для себя нерутового юзера. Дело в том, что у пользователя root абсолютные привилегии в системе, а если разрешить ему удалённое администрирование, то вы сделаете половину работы для хакера, оставив для него валидный username.
Поэтому нужно завести другого юзера, а для рута отключить удалённое администрирование по SSH.
Новый пользователь заводится командой useradd :
Затем для него добавляется пароль командой passwd :
Наконец, этого пользователя нужно добавить в группу, которая имеет право выполнять команды с повышением привилегий sudo . В зависимости от дитрибутива Linux, это могут быть разные группы. Например, в CentOS и Red Hat юзера добавляют в группу wheel :
В Ubuntu он добавляется в группу sudo :
Ключи вместо паролей SSH
Брутфорс или утечка паролей — стандартный вектор атаки, так что аутентификацию по паролям в SSH (Secure Shell) лучше отключить, а вместо неё использовать аутентификацию по ключам.
Есть разные программы для реализации протокола SSH, такие как lsh и Dropbear, но самой популярной является OpenSSH. Установка клиента OpenSSH на Ubuntu:
Установка на сервере:
Запуск демона SSH (sshd) на сервере под Ubuntu:
Автоматический запуск демона при каждой загрузке:
Нужно заметить, что серверная часть OpenSSH включает в себя клиентскую. То есть через openssh-server можно подключаться к другим серверам. Более того, со своей клиентской машины вы можете запустить SSH-туннель с удалённого сервера на сторонний хост, и тогда сторонний хост будет считать удалённый сервер источником запросов. Очень удобная функция для маскировки своей системы. Подробнее см. статью «Практические советы, примеры и туннели SSH».
На клиентской машине обычно нет смысла ставить полноценный сервер, чтобы не допускать возможность удалённого подключения к компьютеру (в целях безопасности).
Итак, для своего нового юзера сначала нужно сгенерировать ключи SSH на компьютере, с которого вы будете заходить на сервер:
Публичный ключ хранится в файле .pub и выглядит как строка случайных символов, которые начинаются с ssh-rsa .
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ3GIJzTX7J6zsCrywcjAM/7Kq3O9ZIvDw2OFOSXAFVqilSFNkHlefm1iMtPeqsIBp2t9cbGUf55xNDULz/bD/4BCV43yZ5lh0cUYuXALg9NI29ui7PEGReXjSpNwUD6ceN/78YOK41KAcecq+SS0bJ4b4amKZIJG3JWm49NWvoo0hdM71sblF956IXY3cRLcTjPlQ84mChKL1X7+D645c7O4Z1N3KtL7l5nVKSG81ejkeZsGFzJFNqvr5DuHdDL5FAudW23me3BDmrM9ifUmt1a00mWci/1qUlaVFft085yvVq7KZbF2OP2NQACUkwfwh+iSTP username@hostname
Затем из-под рута создать на сервере директорию SSH в домашнем каталоге пользователя и добавить публичный ключ SSH в файл authorized_keys , используя текстовый редактор вроде Vim:
Наконец, установить корректные разрешения для файла:
и изменить владение на этого юзера:
На стороне клиента нужно указать местоположение секретного ключа для аутентификации:
Теперь можно залогиниться на сервер под именем юзера по этому ключу:
После авторизации можно использовать команду scp для копирования файлов, утилиту sshfs для удалённого примонтирования файловой системы или директорий.
Желательно сделать несколько резервных копий приватного ключа, потому что если отключить аутентификацию по паролю и потерять его, то у вас не останется вообще никакой возможности зайти на собственный сервер.
Как упоминалось выше, в SSH нужно отключить аутентификацию для рута (по этой причине мы и заводили нового юзера).
На CentOS/Red Hat находим строку PermitRootLogin yes в конфигурационном файле /etc/ssh/sshd_config и изменяем её:
На Ubuntu добавляем строку PermitRootLogin no в конфигурационный файл 10-my-sshd-settings.conf :
После проверки, что новый юзер проходит аутентификацию по своему ключу, можно отключить аутентификацию по паролю, чтобы исключить риск его утечки или брутфорса. Теперь для доступа на сервер злоумышленнику необходимо будет достать приватный ключ.
На CentOS/Red Hat находим строку PasswordAuthentication yes в конфигурационном файле /etc/ssh/sshd_config и изменяем её следующим образом:
На Ubuntu добавляем строку PasswordAuthentication no в файл 10-my-sshd-settings.conf :
Инструкцию по подключению двухфакторной аутентификации по SSH см. здесь.
Файрвол
Файрвол гарантирует, что на сервер пойдёт только тот трафик по тем портам, которые вы напрямую разрешили. Это защищает от эксплуатации портов, которые случайно включились с другими сервисами, то есть сильно уменьшает поверхность атаки.
Перед установкой файрвола нужно убедиться, что SSH внесён в список исключений и не будет блокироваться. Иначе после запуска файрвола мы не сможем подключиться к серверу.
С дистрибутивом Ubuntu идёт Uncomplicated Firewall (ufw), а с CentOS/Red Hat — firewalld.
Разрешение SSH в файрволе на Ubuntu:
На CentOS/Red Hat используем команду firewall-cmd :
После этой процедуры можно запустить файрвол.
На CentOS/Red Hat запускаем сервис systemd для firewalld:
На Ubuntu используем такую команду:
Fail2Ban
Сервис Fail2Ban анализирует логи на сервере и подсчитывает количество попыток доступа с каждого IP-адреса. В настройках указаны правила, сколько попыток доступа разрешено за определённый интервал — после чего данный IP-адрес блокируется на заданный отрезок времени. Например, разрешаем 5 неудачных попыток аутентификации по SSH в промежуток 2 часа, после чего блокируем данный IP-адрес на 12 часов.
Установка Fail2Ban на CentOS и Red Hat:
Установка на Ubuntu и Debian:
В программе два конфигурационных файла: /etc/fail2ban/fail2ban.conf и /etc/fail2ban/jail.conf . Ограничения для бана указываются во втором файле.
Джейл для SSH включён по умолчанию с дефолтными настройками (5 попыток, интервал 10 минут, бан на 10 минут).
Кроме SSH, Fail2Ban может защищать и другие сервисы на веб-сервере nginx или Apache.
Автоматические обновления безопасности
Как известно, во всех программах постоянно находят новые уязвимости. После публикации информации эксплоиты добавляются в популярные эксплоит-паки, которые массово используются хакерами и подростками при сканировании всех серверов подряд. Поэтому очень важно устанавливать обновления безопасности как только они появляются.
На сервере Ubuntu в конфигурации по умолчанию включены автоматические обновления безопасности, так что дополнительных действий не требуется.
На CentOS/Red Hat нужно установить приложение dnf-automatic и включить таймер:
Смена портов по умолчанию
SSH был разработан в 1995 году для замены telnet (порт 23) и ftp (порт 21), поэтому автор программы Тату Илтонен выбрал порт 22 по умолчанию, и его утвердили в IANA.
Естественно, все злоумышленники в курсе, на каком порту работает SSH — и сканируют его вместе с остальными стандартными портами, чтобы узнать версию программного обеспечения, для проверки стандартных паролей рута и так далее.
Смена стандартных портов — обфускация — в несколько раз сокращает объём мусорного трафика, размер логов и нагрузку на сервер, а также сокращает поверхность атаки. Хотя некоторые критикуют такой метод «защиты через неясность» (security through obscurity). Причина в том, что эта техника противопоставляется фундаментальной архитектурной защите. Поэтому, например, Национальный институт стандартов и технологий США в «Руководстве по безопасности сервера» указывает необходимость открытой серверной архитектуры: «Безопасность системы не должна полагаться на скрытность реализации её компонентов», — сказано в документе.
Теоретически, смена портов по умолчанию противоречит практике открытой архитектуры. Но на практике объём вредоносного трафика действительно сокращается, так что это простая и эффективная мера.
Номер порта можно настроить, изменив директиву Port 22 в файле конфигурации /etc/ssh/sshd_config. Он также указывается параметром -p
в sshd. Клиент SSH и программы sftp тоже поддерживают параметр -p
можно использовать для указания номера порта при подключении с помощью команды ssh в Linux. В sftp и scp используется параметр -P
(заглавная P). Указание из командной строки переопределяет любое значение в файлах конфигурации.
Если серверов много, почти все эти действия по защите Linux-сервера можно автоматизировать в скрипте. Но если сервер только один, то лучше вручную контролировать процесс.
На правах рекламы
Закажи и сразу работай! Создание VDS любой конфигурации и с любой операционной системой в течение минуты. Максимальная конфигурация позволит оторваться на полную — 128 ядер CPU, 512 ГБ RAM, 4000 ГБ NVMe. Эпичненько 🙂
Источник
Как заблокировать и разблокировать пользователя в Linux
Главное меню » Операционная система Linux » Как заблокировать и разблокировать пользователя в Linux
3 способа блокировки и разблокировки учетных записей пользователей в Linux
Может быть несколько причин, по которым вы хотите отключить пользователя в вашей многопользовательской среде Linux. Возможно, сотрудник покинул организацию и вместо того, чтобы полностью удалить пользователя, заблокирует учетную запись для архивных целей.
В этой статье мы покажем вам три способа блокировки пользователя в командной строке Linux. Мы также расскажем, как разблокировать пользователя.
Способ 1: блокировка и разблокировка пользователей с помощью команды passwd
Команда passwd в Linux работает с паролями учетной записи пользователя. Вы также можете использовать эту команду для блокировки учетной записи пользователя.
Команда в основном работает с файлом /etc/passwd. Вы можете вручную изменить этот файл, но мы не советуем этого делать.
Чтобы заблокировать пользователя с помощью команды passwd, вы можете использовать опцию -l или –lock следующим образом:
Проверьте статус пользователя с помощью команды passwd
Вы можете узнать, заблокирован или разблокирован пользователь, используя опцию -S или –status команды passwd.
passwd -S user_name
Посмотрите на второе поле в выводе. Вот что это значит:
– P или PS: пароль установлен (пользователь разблокирован)
– L или LK: пользователь заблокирован
– N или NP: пароль не требуется пользователю
Вот пример вывода команды passwd:
standard P 10/14/2019 0 99999 7 -1
Чтобы разблокировать пользователя с помощью команды passwd, вы можете использовать опцию -u или –unlock:
В Ubuntu вы увидите такой вывод как для блокировки, так и для разблокировки пользователя:
А как насчет входа через SSH?
Существует серьезная проблема с блокировкой пользователей таким способом. Поскольку он работает только с файлом /etc/passwd, заблокированный пользователь все равно сможет войти через ключи SSH (если установлен вход через ключ SSH). Мы покажем вам, как с этим бороться в следующем разделе.
Способ 2: блокировка и разблокировка пользователей с помощью команды usermod
Вы также можете использовать команду usermod. Команда в основном используется для изменения учетных записей пользователей в Linux. Вы также можете изменить состояние пользователя, заблокировав или разблокировав его с помощью usermod.
Чтобы заблокировать пользователя, вы можете использовать опцию -L следующим образом:
Чтобы разблокировать пользователя, вы можете использовать опцию -U:
Как проверить, заблокирован ли пользователь или нет? Команда usermod также работает с файлом /etc/passwd, поэтому вы можете использовать команду passwd -S user_name для проверки статуса пользователя.
Но usermod также работает с файлом /etc/passwd, так что заблокированный пользователь все еще может войти в систему через ключи SSH, верно? Верно. Но есть способы преодоления этой проблемы.
Например, вы можете изменить оболочку пользователя на nologin, и это не позволит пользователю войти в оболочку.
Другой метод заключается в блокировке пользователя и предоставлении даты истечения в прошлом. Что он делает, так это то, что он отключает учетную запись в прошлую дату, а затем блокирует ее.
Убедитесь, что прошедшая дата находится между 1970-01-02 и текущей датой.
Вы можете отменить это с помощью этой команды:
Существует аналогичный способ блокировки пользователя в Linux с помощью команды chage. Давайте посмотрим на это в следующем разделе.
Способ 3: блокировка и разблокировка пользователей с помощью команды chage
Команда chage используется для изменения информации об истечении срока действия пароля пользователя. Его можно использовать для автоматической блокировки неактивного пользователя после определенного количества дней бездействия.
По сути, то, что вы сделали с помощью команды usermod в предыдущем разделе, может быть достигнуто с помощью команды chage:
По сути, вы установили дату истечения срока действия 1970-01-02. Вы можете увидеть детали, как это:
Вы можете удалить дату истечения срока действия и, таким образом, разблокировать пользователя следующим образом:
Как всегда, есть разные способы выполнить задачу в командной строке Linux. Мы показали здесь три способа блокировки и разблокировки пользователей в Linux. Вы знаете лучший способ или у вас есть рекомендации по блокировке пользователей? Поделитесь в разделе комментариев.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник