Yesterday

7 вещей, которые я проверяю сразу после входа на Linux-сервер, который я не настраивал

Это перевод оригинальной статьи 7 Things I Check Immediately After Logging Into a Linux Server I Didn’t Set Up.

Подписывайтесь на телеграм-канал usr_bin, где я публикую много полезного по Linux, в том числе ссылки на статьи в этом блоге.

Вступление:

Оказывались ли вы когда-нибудь в ситуации, когда вам передают управление Linux-сервером, который был настроен кем-то другим — без какой-либо документации и с неизвестной историей? Такая ситуация встречается чаще (и опаснее), чем вы думаете. Независимо от того, унаследовали ли вы сервер от другого администратора или проводите аудит клиентской системы, вот 7 первых вещей, которые я проверяю, чтобы быстро оценить уровень безопасности и стабильность системы.

1. Кто имеет доступ (и как)?

cat /etc/passwd | grep '/bin/bash'

🔍 Ищите неожиданных пользователей с логин-шеллами.
Затем проверьте наличие SSH-ключей:

ls -la /home/*/.ssh/authorized_keys

Тревожный сигнал: неизвестные пользователи, включен вход по паролю или ключи, которые не должны использоваться.

2. Что запущено на этом сервере?

ps aux --sort=-%mem | head -n 10

Проверьте наличие странных фоновых процессов. Обратите особое внимание на:

  • криптомайнеры
  • подозрительные бинарные файлы в /tmp или /dev/shm
  • долгоработающие скрипты Python

3. Применяются ли обновления?

# Ubuntu
sudo apt update && sudo apt list --upgradable
# Red Hat
sudo yum check-update

Если сервер полон устаревших пакетов — это ваш первый пункт для исправления.

4. Какие порты открыты (и почему)?

sudo ss -tuln

Сверьте прослушивающие сервисы со следующими источниками:

sudo systemctl list-units --type=service --state=running

Совет: если система прослушивает интернет, и вы не знаете, зачем, проведите расследование.

5. Что запланировано через Cron?

for user in $(cut -f1 -d: /etc/passwd); do sudo crontab -u $user -l 2>/dev/null; done

Не забудьте и о системных cron-задачах:

ls -l /etc/cron* /etc/anacrontab

Остерегайтесь base64, curl или wget в cron — это часто признак механизмов закрепления у вредоносного ПО.

6. Что в истории root?

sudo cat /root/.bash_history

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

7. Насколько безопасен SSH?

cat /etc/ssh/sshd_config | grep -E 'PermitRootLogin|PasswordAuthentication'
  • Отключите PermitRootLogin
  • Отключите PasswordAuthentication
  • Используйте только SSH-ключи.

Заключение:

Вход на загадочный Linux-сервер — это как вход в запертую комнату с разбитыми окнами: не стоит предполагать, что что-либо безопасно. Выполните проверки, укрепите сервер и задокументируйте всё, что найдёте.

На этом все! Спасибо за внимание! Если статья была интересна, подпишитесь на телеграм-канал usr_bin, где будет еще больше полезной информации.