Управление пользователями Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:руководство_по_ubuntu_server:безопасность:user_management [2012/06/16 14:44]
[Где суперпользователь?]
wiki:руководство_по_ubuntu_server:безопасность:user_management [2012/06/16 22:47] (текущий)
[Иные соображения безопасности]
Строка 27: Строка 27:
  2. Для блокирования учетной записи root используйте следующий синтаксис passwd:  2. Для блокирования учетной записи root используйте следующий синтаксис passwd:
 <​code>​sudo passwd -l root</​code>​ <​code>​sudo passwd -l root</​code>​
- 3. Вы можете прочитать больше по sudo вызвав ее man страницу:​+ 3. Вы можете прочитать больше по **sudo** вызвав ее man страницу:​
 <​code>​man sudo</​code>​ <​code>​man sudo</​code>​
  
-By defaultthe initial user created by the Ubuntu ​installer is a member of the group "​admin" ​which is added to the file /​etc/​sudoers ​as an authorized ​sudo userIf you wish to give any other account full root access through ​sudo, simply add them to the admin group.+По умолчанию изначальный пользовательсозданный установщиком ​Ubuntu ​является членом группы %%"​admin"​%%, которая добавлена в файл ​/​etc/​sudoers ​как авторизованные ​sudo пользователиЕсли вы желаете разрешить другой учетной записи полный доступ суперпользователя через **sudo**просто добавьте ее в группу **admin**.
  
 ====Добавление и удаление пользователей==== ====Добавление и удаление пользователей====
  
-The process for managing local users and groups is straight forward and differs very little from most other GNU/​Linux ​operating systems. Ubuntu ​and other Debian ​based distributions,​ encourage the use of the "​adduser" ​package for account management.+Процесс управления локальными пользователями и группами простой и мало отличается от большинства других операционных систем ​GNU/Linux. Ubuntu ​и другие дистрибутивы на основе ​Debian ​поощряют использование пакета %%"​adduser"​%% для управления учетными записями.
  
-    To add a user accountuse the following syntax, and follow the prompts to give the account a password and identifiable characteristics such as a full name, phone number, etc.+ 1. Для добавления учетной записи пользователя используйте следующий синтаксис и следуйте подсказкам для указания пароля и опознавательных характеристик таких как полное имятелефон и пр.: 
 +<​code>​sudo adduser username</​code>​ 
 + 2. Для удаления пользователя и его первичной группы используйте следующий синтаксис:​ 
 +<​code>​sudo deluser username</​code>​ 
 +Удаление пользователя не удаляет связанный с ним домашний каталог. Оставлено на ваше усмотрение хотите ли вы удалить каталог вручную или оставите его в соответствии с вашими политиками хранения
  
-    sudo adduser username+Помните,​ что любой пользователь,​ добавленный позднее с теми же UID/GID, как и предыдущий,​ получит доступ к этому каталогу если вы не предпримете необходимых мер предосторожности.
  
-    To delete a user account and its primary group, use the following syntax: +Вы можете захотеть изменить эти значения ​UID/​GID ​каталога на что-то более подходящеекак, например,​ значения суперпользователя и, возможнопереместить каталог для предотвращения будущих конфликтов
- +<​code>​ 
-    sudo deluser username +sudo chown -R root:root /​home/​username/​ 
- +sudo mkdir /​home/​archived_users/​ 
-    Deleting an account does not remove their respective home folder. It is up to you whether or not you wish to delete the folder manually or keep it according to your desired retention policies. +sudo mv /​home/​username /​home/​archived_users/​ 
- +</​code>​ 
-    Remember, any user added later on with the same UID/​GID ​as the previous owner will now have access to this folder if you have not taken the necessary precautions. + 3. Для временного блокирования или разблокирования используйте следующий синтаксис
- +<​code>​ 
-    You may want to change these UID/GID values to something more appropriatesuch as the root accountand perhaps even relocate the folder to avoid future conflicts+sudo passwd -l username 
- +sudo passwd -u username 
-    sudo chown -R root:root /​home/​username/​ +</​code>​ 
-    sudo mkdir /​home/​archived_users/​ + 4. Для добавления или удаления персональной группы используйтесоответственноследующий синтаксис
-    sudo mv /​home/​username /​home/​archived_users/​ +<​code>​ 
- +sudo addgroup groupname 
-    To temporarily lock or unlock a user account, use the following syntax, respectively+sudo delgroup groupname 
- +</​code>​ 
-    sudo passwd -l username + 5. Для добавления пользователя в группуиспользуйте
-    sudo passwd -u username +<​code>​sudo adduser username groupname</​code>​
- +
-    To add or delete a personalized groupuse the following syntaxrespectively+
- +
-    sudo addgroup groupname +
-    sudo delgroup groupname +
- +
-    To add a user to a groupuse the following syntax+
- +
-    ​sudo adduser username groupname+
  
 ====Безопасность профиля пользователя==== ====Безопасность профиля пользователя====
  
-When a new user is createdthe adduser ​utility creates a brand new home directory named /​home/​username, respectivelyThe default profile is modeled after the contents found in the directory of /​etc/​skel, ​which includes all profile basics.+Когда создается новый пользовательутилита ​adduser ​создает,​ соответственно,​ новый именной каталог **/​home/​username**Профиль по умолчанию формируется по содержимому,​ находящемуся в каталоге ​/​etc/​skel, ​который включает все основы для формирования профилей.
  
-If your server will be home to multiple usersyou should pay close attention to the user home directory permissions to ensure confidentialityBy default, user home directories in Ubuntu are created with world read/execute permissionsThis means that all users can browse and access the contents of other users home directoriesThis may not be suitable for your environment.+Если ваш сервер является домашним для множества пользователейвы должны уделять пристальное внимание правам доступа на пользовательские домашние каталоги для поддержания конфиденциальностиПо умолчанию пользовательские домашние каталоги создаются с правами чтения/выполнения для всехЭто означает,​ что все пользователи просматривать и получать доступ к содержимому других домашних каталоговЭто может не подходить для вашего окружения.
  
-    To verify your current users home directory permissionsuse the following syntax:+ 1. Для проверки прав доступа на домашние каталоги существующих пользователей используйте такой синтаксис:​ 
 +<​code>​ls -ld /home/​username</​code>​ 
 +Следующий вывод показываетчто каталог /​home/​username имеет доступ на чтение для всех: 
 +<​code>​drwxr-xr-x ​ 2 username username ​   4096 2007-10-02 20:03 username</​code>​ 
 + 2. Вы можете удалить права чтения для всех, используя следующий синтаксис:​ 
 +<​code>​sudo chmod 0750 /​home/​username</​code>​ 
 +<​note>​Некоторые склоняются к тенденции использовать опцию рекурсии (-R) без разбора,​ которая изменяет все дочерние каталоги и файлы, хотя это необязательно и может приводить к иным нежелательным последствиям. Родительский каталог сам по себе запретит неавторизованный доступ к любому своему содержимому.</​note>​
  
-    ls -ld /​home/​username +Более эффективный подход к данному вопросу будет в изменении глобальных прав доступа по умолчанию для **adduser** при создании домашних каталоговПросто отредактируйте файл ​/​etc/​adduser.conf, изменив переменную ​DIR_MODE ​на что-то более подходящеепосле чего все новые домашние каталоги будут получать корректные права доступа
- +<​code>​DIR_MODE=0750</​code>​ 
-    The following output shows that the directory /​home/​username has world readable permissions:​ + 3. После исправления прав доступа к каталогам,​ используя любую из ранее упоминавшихся методикпроверьте результаты используя следующую команду
- +<​code>​ls -ld /​home/​username</​code>​ 
-    drwxr-xr-x ​ 2 username username ​   4096 2007-10-02 20:03 username +Результат ниже показывет,​ что права на чтение для всех удалены
- +<​code>​drwxr-x--- ​  2 username username ​   4096 2007-10-02 20:03 username</​code>​
-    You can remove the world readable permissions using the following syntax: +
- +
-    sudo chmod 0750 /​home/​username +
- +
-    Some people tend to use the recursive option (-R) indiscriminately which modifies all child folders and files, but this is not necessary, and may yield other undesirable results. The parent directory alone is sufficient for preventing unauthorized access to anything below the parent. +
- +
-    A much more efficient approach to the matter would be to modify the adduser ​global default permissions when creating user home foldersSimply edit the file /​etc/​adduser.conf ​and modify the DIR_MODE ​variable to something appropriateso that all new home directories will receive the correct permissions+
- +
-    ​DIR_MODE=0750 +
- +
-    After correcting the directory permissions using any of the previously mentioned techniquesverify the results using the following syntax+
- +
-    ​ls -ld /​home/​username +
- +
-    The results below show that world readable permissions have been removed+
- +
-    ​drwxr-x--- ​  2 username username ​   4096 2007-10-02 20:03 username+
  
 ====Политика паролей==== ====Политика паролей====
  
-A strong password policy is one of the most important aspects of your security postureMany successful security breaches involve simple ​brute force and dictionary attacks against weak passwordsIf you intend to offer any form of remote access involving your local password systemmake sure you adequately address minimum password complexity requirementsmaximum password lifetimesand frequent audits of your authentication systems.+Строгая политика паролей - один из наиболее важных аспектов вашего подхода к безопасностиМного удачных прорывов безопасности использовали для атак простейший взлом (brute force) и подбор паролей по словарю против слабых паролейЕсли вы намереваетесь использовать любую форму удаленного доступа с использованием вашей локальной системы паролейубедитесьчто вы назначили адекватные минимальные требования к паролюмаксимальное время жизни пароля и часто проверяете вашу систему аутентификации.
  
-===Minimum Password Length===+===Минимальная длина пароля===
  
-By default, ​Ubuntu ​requires a minimum password length of charactersas well as some basic entropy checksThese values are controlled in the file /​etc/​pam.d/​common-password, ​which is outlined below.+По умолчанию ​Ubuntu ​требует минимальную длину пароля в символовтакже как и некоторые основные проверки на разброс значенийЭти параметры управляются файлом ​/​etc/​pam.d/​common-password ​и приведены ниже: 
 +<​code>​password ​       [success=2 default=ignore] ​     pam_unix.so obscure sha512</​code>​ 
 +Если вы хотите установить минимальную длину в 8 символовизмените соответствующую переменную на min=8Изменения приведены ниже: 
 +<​code>​password ​       [success=2 default=ignore] ​     pam_unix.so obscure sha512 min=8</​code>​ 
 +<​note>​Базовые проверки на качество и минимальную длину пароля не применяются к администратору,​ использующего команды уровня sudo для настройки нового пользователя.</​note>​
  
-password ​       [success=2 default=ignore] ​     pam_unix.so obscure sha512+===Время жизни пароля===
  
-If you would like to adjust the minimum length to 8 characters, change the appropriate variable to min=8The modification is outlined below. +При создании учетных записей пользователей вы должны создать политику минимального и максимального времени жизни пароля чтобы заставлять пользователей менять их пароли по истечении определенного времени.
- +
-password ​       [success=2 default=ignore] ​     pam_unix.so obscure sha512 min=8 +
- +
-Basic password entropy checks and minimum length rules do not apply to the administrator using sudo level commands to setup a new user. +
- +
-===Password Expiration=== +
- +
-When creating user accounts, you should make it a policy to have a minimum and maximum password age forcing users to change their passwords when they expire. +
- +
-    To easily view the current status of a user account, use the following syntax: +
- +
-    sudo chage -l username +
- +
-    The output below shows interesting facts about the user account, namely that there are no policies applied:+
  
 + 1. Для простого просмотра текущего статуса учетной записи пользователя используйте следующий синтаксис:​
 +<​code>​sudo chage -l username</​code>​
 +Вывод, приведенный ниже, показывает интересные факты об учетной записи пользователя,​ а именно что нет никаких примененных политик:​
 +<​code>​
     Last password change ​                                   : Jan 20, 2008     Last password change ​                                   : Jan 20, 2008
     Password expires ​                                       : never     Password expires ​                                       : never
Строка 133: Строка 111:
     Maximum number of days between password change ​         : 99999     Maximum number of days between password change ​         : 99999
     Number of days of warning before password expires ​      : 7     Number of days of warning before password expires ​      : 7
- +</​code>​ 
-    To set any of these values, simply use the following syntax, and follow the interactive prompts+ 2. Для установки этих значений просто используйте следующую команду и следуйте интерактивным подсказкам
- +<​code>​sudo chage username</​code>​ 
-    ​sudo chage username +Далее также пример того, как можно вручную изменить явную дату истечения действия пароля ​(-E) на 01/​31/​2008 ​(американский вариант даты - прим. пер.)минимальный срок действия пароля ​(-m) на днеймаксимальный срок действия ​(-M) на 90 днейпериод бездействия ​(-I) на дней после истечения срока пароля и период предупреждений ​(-W) на 14 дней до истечения срока пароля
- +<​code>​sudo chage -E 01/31/2011 -m 5 -M 90 -I 30 -W 14 username</​code>​ 
-    The following is also an example of how you can manually change the explicit expiration date (-E) to 01/​31/​2008, ​minimum password age (-m) of daysmaximum password age (-M) of 90 daysinactivity period ​(-I) of days after password expiration, and a warning time period ​(-W) of 14 days before password expiration+ 3. Для проверки изменений используйте ту же командучто и упоминалась выше
- +<​code>​sudo chage -l username</​code>​ 
-    ​sudo chage -E 01/31/2011 -m 5 -M 90 -I 30 -W 14 username +Вывод команды ниже показывает новые политики,​ которые применяются к учетной записи
- +<​code>​
-    To verify changesuse the same syntax as mentioned previously+
- +
-    ​sudo chage -l username +
- +
-    The output below shows the new policies that have been established for the account+
     Last password change ​                                   : Jan 20, 2008     Last password change ​                                   : Jan 20, 2008
     Password expires ​                                       : Apr 19, 2008     Password expires ​                                       : Apr 19, 2008
Строка 155: Строка 127:
     Maximum number of days between password change ​         : 90     Maximum number of days between password change ​         : 90
     Number of days of warning before password expires ​      : 14     Number of days of warning before password expires ​      : 14
 +</​code>​
  
 ====Иные соображения безопасности==== ====Иные соображения безопасности====
  
-Many applications use alternate authentication mechanisms that can be easily overlooked by even experienced system administrators. Thereforeit is important to understand and control how users authenticate and gain access to services and applications on your server. +Многие приложения используют альтернативные механизмы аутентификациикоторые могут быть запросто пропущены даже опытными системными администраторамиПоэтому важно понимать и контролировать как пользователи авторизуются и получают доступ к сервисам и приложениям на вашем сервере.
- +
-===SSH Access by Disabled Users=== +
- +
-Simply disabling/​locking a user account will not prevent a user from logging into your server remotely if they have previously set up RSA public key authentication. They will still be able to gain shell access to the server, without the need for any password. Remember to check the users home directory for files that will allow for this type of authenticated SSH access. e.g. /​home/​username/​.ssh/​authorized_keys.+
  
-Remove or rename the directory .ssh/ in the user's home folder to prevent further ​SSH authentication capabilities.+===Доступ по SSH заблокированными пользователями===
  
-Be sure to check for any established ​SSH connections by the disabled useras it is possible they may have existing inbound or outbound connectionsKill any that are found.+Обычное отключение/​блокирование не исключает удаленного подключения пользователя к серверу,​ если ему предварительно была установлена аутентификация по открытому ключу RSA. Такие пользователи будут получать доступ к консольной оболочке (shell) на сервере без необходимости ввода какого-либо пароля. Не забывайте проверять пользовательские домашние каталоги на файлы, которые позволяют подобный тип авторизации по SSH, например,​ /​home/​username/​.ssh/​authorized_keys.
  
-Restrict SSH access to only user accounts that should have itFor example, you may create a group called "​sshlogin"​ and add the group name as the value associated with the AllowGroups variable located in the file /etc/ssh/sshd_config.+Удаление или переименование каталога ​.ssh/ в домашнем каталоге пользователя предотвратит дальнейшую способность аутентификации по SSH.
  
-AllowGroups sshlogin+Убедитесь что проверили любые установленные SSH соединения заблокированных пользователей,​ поскольку могут остаться входящие или исходящие соединения. Убейте все, которые найдете.
  
-Then add your permitted ​SSH users to the group "​sshlogin", ​and restart the SSH service.+Ограничьте ​SSH доступ только для учетных записей пользователей,​ которым они требуются. Например,​ вы можете создать группу с названием %%"​sshlogin"​%% и добавить имя группы в качестве значения для переменной AllowGroupsнаходящейся в файле /​etc/​ssh/​sshd_config. 
 +<​code>​AllowGroups sshlogin</​code>​
  
 +Затем добавьте ваших пользователей,​ которым разрешен SSH доступ,​ в группу %%"​sshlogin"​%% и перестартуйте SSH сервис.
 +<​code>​
 sudo adduser username sshlogin sudo adduser username sshlogin
 sudo service ssh restart sudo service ssh restart
 +</​code>​
  
-===External User Database Authentication===+===Аутентификация по внешней базе данных===
  
-Most enterprise networks require centralized authentication and access controls for all system resourcesIf you have configured your server to authenticate users against external databasesbe sure to disable the user accounts both externally and locallythis way you ensure that local fallback authentication is not possible.+Большинство корпоративных сетей требуют централизованной аутентификации и контроля доступа для всех системных ресурсовЕсли вы настроили свой сервер для аутентификации пользователей по внешней базе данныхубедитесьчто вы отключаете учетные записи как внешние,​ так и локальные,​ таким образом вы будете уверены что откат на локальную аутентификацию невозможен.
  
 ---- ----