Ограничение доступа к серверу Linux бывшему сотруднику
Недавно заметил, что два моих бывших сотрудника все еще пытаются зайти на один из наших Linux компьютеров. Старые пользовательские аккаунты (учетные записи) мы не удаляли, потому, что в них содержатся важные файлы. Но если аккаунт все-таки нужно удалить, то как убедиться, что файлы и вся переписка (почты) не потеряются? Можете ли вы описать политику закрытия доступа к пользовательскому аккаунту, включая все почты, адреса пересылки, ssh / ftp, и доступ к VPN на сервере Red Hat Enterprise Linux?
Уволенные работники могут захотеть отомстить, поэтому удаляйте и деактивируйте все нежелательные аккаунты. Как только работник ушел из компании, вы можете тут же заблокировать ему доступ, введя следующую команду:
1 |
passwd -l username |
Опция -l деактивирует аккаунт меняя его пароль на значение, не известное пользователю и ставит значение 1 в поле ограничения срока действия аккаунта. Это дает гарантию, что пользователь не получит доступ к серверу. Вы можете удалить пользовательский аккаунт без перемещения файлов следующим образом:
1 |
# userdel username |
Вы также можете задать команду userdel, чтобы удалит домашнюю директорию и все ее содержимое: # userdel -r username
Все файлы из домашней директории будут удалены вместе с самим каталогом и почтой.
Файлы, находящиеся не в корневом каталоге нужно будет искать и удалять вручную. Дополнительная чистка файлов производится уже администратором.
Рекомендованные процедуры по удалению пользовательского аккаунта:
Далее рассмотрим рекомендованные процедуры по удалению пользователя.
Аккаунты Linux / UNIX сервера остаются действующими, пока пользователь работает на вас или вашу компанию. Сотрудники, которые уходят из компании по тем или иным причинам, теряют доступ к своим аккаунтам и данным. Прежде чем блокировать пользователя, все же лучше сначала проконсультируйтесь с юристом или отделом кадров по поводу местных законов и политике конфиденциальности.
№1. Деактивация аккаунта
Для начала, отключите аккаунт пользователя и ограничьте доступ к консоли (shell, bash), ftp и ssh командой
1 |
passwd -l username |
№2. Сканирование и поиск руткитов (вредоносных программ)
Просканируйте файлы на вирусы, ошибки и руткиты. Если пользователь заходил на ваш сервер из ОС Windows или Mac, то воспользуйтесь инструментами Microsoft / Mac os и антивирусной программой. Программа сканирования вирусов ClamAV доступна и может применяться для сканирования файловых систем Linux / Unix на вирусы, заражающие и другие ОС. Это необходимо сделать перед созданием резервных копий данных. Потому, что некоторые пользователи оставляют после себя руткиты и вирусы, для последующего проникновения в систему (на сервер).
№3. Создание резервных копий данных.
Обычно сохраняются резервные копии следующих данных:
- Домашней директории
- Почты
- Директорий FTP
- Cron jobs (планировщика задач)
- Файлов вэб-сервера
- Файлов CVS
- Базы данных MySQL / PGSQL и т.д.
Создайте архив домашнего каталога и почтовой переписки пользуясь кроном (cron), сохраните его в безопасном месте в другой директории:
1 2 3 4 5 6 7 8 9 10 11 |
<i># DEST=/path/to/safe/delete_accounts/user/data_$(date +"%d-%m-%Y_%H_%M_%P").tar.gz</i> <i># SHOME=/home/$user</i> <i># SMAILBOX=/usr/local/mailboxes/domain.com/$user</i> <i># SCRON=/var/spool/cron/crontabs/$user</i> <i># SFTP=/var/spool/ftp/$user</i> <i># tar -zcvf $DEST $SHOME $SMAILBOX $SCRON $SFTP</i><i></i> |
Поменяйте $user и другие пути на ваши значения.
№4 Список файлов в других директориях (каталогах).
Пользователи могли хранить файлы также и в других директориях.
Чтобы получить полный список файлов, находящихся у пользователя vivek, задайте следующую команду:
1 |
# find / -user vivek -print0 > /root/viveksfiles.txt 2>/root/error.log & |
Вы можете сделать резервную копию файлов или просто изменить право собственности на них с помощью команды itself. Все файлы пользователя удалятся из /tmp, /var/tmp и других мест временного хранения файлов.
№4 Удаление аккаунта
Теперь вы можете удалить пользовательский аккаунт вместе со всеми файлами.
1 |
# userdel -r $user |
Убедитесь, что вы удалили имя пользователя из всех групп, к которым оно принадлежало. Посмотреть список групп можно в папке /etc/group.
№5.Удаление Crontab пользователя
Для создание резервной копии и удаления запланированных задач пользователя введите команду :
1 2 3 |
<i># crontab -u username -l > /path/to/safe/delete_accounts/user/crontab.bak</i> <i># crontab -u username –r</i> |
№6 Удаление отложенных задач
Чтобы посмотреть список отложенных задач пользователя, введите команду atq. Эту команду не рекомендуется применять для суперпользователя, так как, в этом случае, она выдаст список задач всех пользователей системы.
1 2 3 4 5 |
<i># atq | less</i> <i># atq > /path/to/safe/delete_accounts/user/at.bak</i> <i># atrm jobid </i> |
№7. Удаление всех процессов
Нужно отправить SIGKILL (-9) всем процессам, принадлежавшим пользователю. Например, чтобы послать KILL процессу или всем процессам пользователя vivek, нужно сначала получить информацию об этих процессах. Следующий запрос выдаст вам подробную информацию о запущенных процессах:
1 |
<i># ps -fp $(pgrep -u vivek)</i> |
Получите все PID:
1 2 3 |
<i># pgrep -u vivek</i> <i># pkill -9 -u vivek pid1 pid2</i> |
ИЛИ
1 |
<i># killall -KILL -u vivek</i> |
№8 Отключение доступа к почте
Настройте почтовый сервер на переадресацию или отключите доступ к электронной почте. Обычно это делается с помощью редактирования файлов базы данных (mysql) или LDAP. Удалите письма (входящие, исходящие и черновики) и все файлы протоколов передачи данных ( POP / IMAP), принадлежащие пользователю (см. каталог /var/mail или /var/spool/mail)
Вы также можете переадресовывать входящие письма или просто удалить ящик с помощью Postfixadmin.
№9. Отключение прокси-сервера и VPN уделенного доступа:
Еще раз обновите вашу центральную базу данных логинов (например, LDAP) и отключите весь доступ к системе.
№10. Файлы и электронные письма:
Как правило, любые файлы или электронные письма, оставшиеся в системе, в случае необходимости, могут быть переданы руководителю.
№11. Решение проблемы доступа к профилю главного администратора (корневого доступа)
Если бывший сотрудник имел рут доступ (доступ к профилю главного администратора) нужно проверить систему на следующие вещи:
- Трояны (самопроизвольно распространяющиеся вредоносные программы)
- Бэкдоры (программы для повторного получения доступа к системе) скрытые в ядре
- Руткиты
- Cron может использоваться для запуска произвольных скриптов shell с целью вернуть себе суперправа.
- Некоторые файлы могут использоваться для запуска произвольных скриптов
- Нежелательные или скрытые сетевые сервисы.
- Доступ к SSH, пароли, ключи и т.д.
- Подозрительные двоичные файлы SUID/SGID
- Настройки iptables (фаервола системы)
- Удаляются все сообщений, общие элементы памяти и семафоры, принадлежащие пользователю.
Использование identity manager
Стороннее приложение identity manager может легко включать и отключать доступ к множеству сервисов. Вы можете настроить различные политики, основываясь на степени занятости пользователя или политику входа в систему в выходные дни, используя автоматизированное программное обеспечение инициализации.
Автоматизация
Для автоматизации процесса, вы можете написать Perl или SHELL (BASH) скрипт, чтобы отключить доступ к пользовательским аккаунтам и создавать резервные копии файлов / писем в другом безопасном месте.