Итак, наш администратор Linux покинул наш проект, и внезапно я (веб-программист с базовыми знаниями Linux / сервера) отвечаю за наш выделенный сервер (Ubuntu Server), в основном работающий с веб-сайтом (apache / mysql / php) и почтой (Postfix). Наш администратор на самом деле не был профессиональным администратором Linux, а скорее каким-то парнем с базовыми знаниями Linux, который разбирался в вещах по ходу дела. Поэтому я ожидаю нестандартных конфигураций, небезопасных сервисов и т. Д.
Мои вопросы:
Как мне выполнить «аудит» сервера, чтобы выяснить его текущее состояние, убедиться, что все правильно настроено, что нет ненужных учетных записей пользователей, что мы не запускаем ненужные службы и т. Д. И т. Д.
Я не знаю, как сделать резервную копию нашего рабочего веб-сайта. Помимо фактических файлов CMS и db, существуют конфигурации apache, почтовые базы данных и многое другое, которые нуждаются в резервном копировании. Есть предложения о том, как это автоматизировать?
Какие самые важные повседневные обязанности администратора Linux я обязательно должен выполнять? Я знаю, это огромный вопрос.
Вот это да. Когда начать.
Я бы так и поступил, но, надеюсь, другие подбегут и предложат больше / лучше.
Сначала не паникуйте. Я предполагаю, что вы теперь root. В настоящее время вы представляете самую опасную угрозу для сервера, так как у вас много энергии, и вы не знаете, что с ней делать.
Запишите, какие службы должны работать на сервере. Вы знаете, что требуются apache, mysql и postfix. Я предполагаю, что у вас может быть ftp-сервер, и вы можете использовать ssh, поэтому вам нужно запустить sshd. Запишите, какие службы установлены. Самый быстрый способ узнать это, вероятно, перечислить /etc/init.d/*. Затем вам нужно узнать, что работает. Я не знаю, что эквивалентно Red Hat chkconfig, но в случае неудачи альтернативного ps -ef будет перечислено, какие процессы сейчас выполняются. Также узнайте, установлен ли брандмауэр (например, iptables) и как он настроен.
Затем получите список всех запущенных cronjobs. Вероятно, вам не нужно слишком беспокоиться о том, что они делают прямо сейчас, но вы должны иметь общее представление о том, что сервер делает в разное время.
Я бы снова все это записал.
Теперь запишите, у кого должен быть доступ к серверу, а кому разрешен доступ root. Получите список пользователей, у которых есть учетные записи, из / etc / passwd.
Сделайте то же самое для доступа к FTP и другим службам, если это необходимо, например, Subversion или удаленным соединениям MySQL.
Теперь вы знаете немного больше о том, что делает ваш сервер и кто имеет к нему доступ, вам следует перейти к тому, насколько хорошо он работает. Проверьте файлы журнала в / var / log, особенно / var / log / messages, и потратьте некоторое время на поиск ошибок.
Проверьте, есть ли какие-либо незавершенные обновления, используя apt-get update && apt-get upgrade
Когда будет предложено обновить, выберите пока нет.
Пока вы не должны были вносить никаких изменений.
Теперь вам нужно просмотреть собранную информацию и решить, что (если что-то) нужно исправить. Приоритеты - это попытки взлома в /var/log/auth.log, отключение ненужных служб и усиление межсетевого экрана.
Делайте копии всех файлов, прежде чем редактировать их, и часто проверяйте изменения, чтобы вы могли легко вернуться, если что-то сломается.
Резервные копии
Вам нужно будет решить, что нужно создать. Очевидные кандидаты - базы данных, / home / / etc / / var / log / / var / spool / cron / / var / www / и любые пользовательские скрипты, вызываемые crontabs. Затем большинство людей пишут сценарий оболочки для локального резервного копирования, а затем используют что-то вроде rsync для копирования файлов на USB-накопитель другой машины.
Повседневные обязанности будут включать в себя проверку файлов журналов на наличие проблем (проверьте logwatch, чтобы помочь вам), выполнение обновлений безопасности, проверку резервных копий и продвижение вперед, настройку мониторинга, такого как MRTG и Nagios, чтобы в конечном итоге снять тяжелую работу с администратора .
Хотя я бы не стал слишком волноваться. Это может показаться сложным, но это потому, что вы просите все сразу. С сервером, вероятно, все в порядке, следите за журналами и применяйте обновления по мере их выпуска, планируйте, что вы хотите сделать, и работайте над этим, предпринимайте небольшие шаги и старайтесь наслаждаться этим.
Некоторые вещи для начала:
найдите кого-нибудь, кто уже провел такой аудит - или, по крайней мере, знает некоторые распространенные ошибки при обслуживании сервера. Серьезно - это окупается.
Сделайте резервную копию как можно лучше и попытайтесь восстановить резервный сервер - может быть где-то виртуальный экземпляр - до тех пор, пока вы не будете уверены, что а) вы сделали резервную копию всего важного и б) вы можете восстановить резервный сервер из резервное копирование в кратчайшие сроки. Чтобы добавить карму: замените текущий производственный сервер своим запасным. Пока ты не продемонстрировал что вы можете восстановить из своей резервной копии, действуйте так, как будто у вас ее нет.
Обновляйте, читайте уведомления о безопасности, следите за файлами журналов и автоматизируйте все это, как только вы знаете, что искать.
Чтобы упростить работу с файлами журнала, вы можете рассмотреть возможность установки (или активации ... Я не знаю, есть ли в Ubuntu это по умолчанию) LOGWATCH. Очень приятно получать сводку, отправляемую по электронной почте каждый день. Обычно он подбирает какие-то фанковые вещи, которые может не раскрыть взгляд @ config.
Если вы цените свой сервер и его данные, получите помощь. Найдите кого-нибудь для аудита.
Если вы не знаете, как выглядит «правильно», тогда может быть трудно определить, где что-то «не так» (или, как вы выразились, «напуганное»). Когда-то кто-то сервер находится в заведомо исправном состоянии.
Используя что-то вроде VMWare Converter для сделать промежуточную виртуальную машину сервера является ЗДОРОВО идея, вы должны изучить это.
Затем вы можете покопаться в промежуточной виртуальной машине (копии сервера) и попытаться сделать все, что вас просят сделать на промежуточном сервере виртуальной машины, прежде чем на производственном сервере.
Сделав то, что говорит Ричард Холлоуэй; затем выполните сетевое сканирование системы, чтобы проверить, какие услуги предоставляются сервером, и сверьте это с данными, которые у вас есть. Действительно можно сделать интересный вещи с linux, которые трудно найти, просто просматривая журналы.
Я предлагаю использовать Zenmap из другой системы в той же сети и сначала получить все необходимые разрешения от начальства. Zenmap прост в установке, имеет графический интерфейс и не пытается использовать что-либо, что было найдено.