Настройка безопасности сервера Debian
Обновлено: 21.11.2024
Когда вы впервые создаете новый сервер Debian 11, есть несколько шагов по настройке, которые вы должны выполнить как часть базовой настройки. Это повысит безопасность и удобство использования вашего сервера и даст вам прочную основу для последующих действий.
В этом руководстве мы узнаем, как войти на наш сервер в качестве пользователя root, создать нового пользователя с правами администратора и настроить базовый брандмауэр.
Шаг 1. Вход в систему с правами root
Чтобы войти на сервер, вам необходимо знать общедоступный IP-адрес вашего сервера. Вам также понадобится пароль или, если вы установили ключ SSH для аутентификации, закрытый ключ для учетной записи пользователя root. Если вы еще не вошли на свой сервер, вы можете следовать нашему руководству о том, как подключиться к вашей капле с помощью SSH, в котором этот процесс подробно описан.
Если вы еще не подключены к своему серверу, войдите в систему как пользователь root, используя следующую команду (замените выделенную часть команды общедоступным IP-адресом вашего сервера):
Примите предупреждение о подлинности хоста, если оно появляется. Если вы используете аутентификацию по паролю, укажите свой пароль root для входа в систему. Если вы используете ключ SSH, защищенный парольной фразой, вам может быть предложено ввести парольную фразу при первом использовании ключа в каждом сеансе. Если вы впервые входите на сервер с паролем, вам также может быть предложено изменить пароль root.
О корневом каталоге
Пользователь root — это пользователь с правами администратора в среде Linux с очень широкими привилегиями. Из-за повышенных привилегий учетной записи root вам не рекомендуется использовать ее на регулярной основе. Это связано с тем, что часть силы, присущей учетной записи root, заключается в возможности вносить очень разрушительные изменения, даже случайно.
Следующий шаг — настроить альтернативную учетную запись пользователя с ограниченной областью влияния для повседневной работы. Позже мы объясним, как получить дополнительные привилегии в те моменты, когда они вам нужны.
Шаг 2 — Создание нового пользователя
После того как вы вошли в систему как root, мы готовы добавить новую учетную запись пользователя, которую мы будем использовать для входа в дальнейшем.
В этом примере создается новый пользователь с именем sammy, но вы должны заменить его именем пользователя, которое вам нравится:
Вам будет задано несколько вопросов, начиная с пароля учетной записи.
Введите надежный пароль и, при желании, укажите любую дополнительную информацию. Это не обязательно, и вы можете просто нажать ENTER в любом поле, которое хотите пропустить.
Далее мы настроим этого нового пользователя с правами администратора.
Шаг 3. Предоставление прав администратора
Теперь мы создали новую учетную запись пользователя с правами обычной учетной записи. Однако иногда нам может понадобиться выполнять с ним административные задачи.
Чтобы избежать необходимости выходить из обычного пользователя и снова входить под учетной записью root, мы можем настроить так называемые суперпользователя или привилегии root для нашей обычной учетной записи. Это позволит нашему обычному пользователю запускать команды с правами администратора, поместив слово sudo перед командой.
Чтобы добавить эти привилегии нашему новому пользователю, нам нужно добавить нового пользователя в группу sudo. По умолчанию в Debian 11 пользователям, принадлежащим к группе sudo, разрешено использовать команду sudo.
От имени пользователя root выполните эту команду, чтобы добавить нового пользователя в группу sudo (замените выделенное слово новым пользователем):
Теперь, войдя в систему как обычный пользователь, вы можете ввести sudo перед командами, чтобы запустить команду с правами суперпользователя.
Шаг 4 — Настройка базового брандмауэра
Серверы Debian могут использовать брандмауэры, чтобы разрешить только определенные подключения к определенным службам. В этом руководстве мы установим и будем использовать брандмауэр UFW для настройки политик брандмауэра и управления исключениями.
Мы можем использовать диспетчер пакетов apt для установки UFW. Обновите локальный индекс, чтобы получить последнюю информацию о доступных пакетах, а затем установите программное обеспечение брандмауэра UFW, введя:
Примечание. Если ваши серверы работают в DigitalOcean, вы можете дополнительно использовать облачные брандмауэры DigitalOcean вместо брандмауэра UFW. Мы рекомендуем использовать только один брандмауэр одновременно, чтобы избежать конфликтующих правил, которые могут быть трудны для отладки.
Профили брандмауэра позволяют UFW управлять именованными наборами правил брандмауэра для установленных приложений. Профили для некоторых распространенных программ по умолчанию связаны с UFW, и пакеты могут регистрировать дополнительные профили в UFW в процессе установки. OpenSSH, служба, позволяющая нам теперь подключаться к нашему серверу, имеет профиль брандмауэра, который мы можем использовать.
Чтобы получить список всех доступных профилей приложений, введите:
Нам нужно убедиться, что брандмауэр разрешает подключения SSH, чтобы мы могли снова войти в систему в следующий раз. Мы можем разрешить эти подключения, набрав:
После этого мы можем включить брандмауэр, набрав:
Введите y и нажмите ENTER, чтобы продолжить. Вы можете увидеть, что SSH-соединения по-прежнему разрешены, набрав:
Поскольку брандмауэр в настоящее время блокирует все соединения, кроме SSH, при установке и настройке дополнительных служб вам потребуется настроить параметры брандмауэра, чтобы разрешить прохождение приемлемого трафика. Вы можете узнать о некоторых распространенных операциях UFW в нашем руководстве по основам UFW.
Шаг 5. Включение внешнего доступа для вашего обычного пользователя
Теперь, когда у нас есть обычный пользователь для повседневного использования, нам нужно убедиться, что мы можем напрямую войти в аккаунт по SSH.
Примечание. Пока вы не убедитесь, что вы можете войти в систему и использовать sudo с новым пользователем, мы рекомендуем оставаться в системе как пользователь root. Таким образом, если у вас возникнут проблемы, вы сможете устранить неполадки и внести необходимые изменения как root. Если вы используете дроплет DigitalOcean и у вас возникли проблемы с корневым SSH-подключением, вы также можете войти в дроплет с помощью консоли DigitalOcean.
Процесс настройки доступа SSH для вашего нового пользователя зависит от того, использует ли корневая учетная запись вашего сервера пароль или ключи SSH для аутентификации.
Если учетная запись root использует аутентификацию по паролю
Если вы вошли в свою корневую учетную запись используя пароль, для SSH включена аутентификация по паролю. Вы можете подключиться по SSH к своей новой учетной записи пользователя, открыв новый сеанс терминала и используя SSH с вашим новым именем пользователя:
После ввода пароля вашего обычного пользователя вы войдете в систему. Помните, что если вам нужно запустить команду с правами администратора, введите sudo перед этим:
Вам будет предложено ввести пароль обычного пользователя при первом использовании sudo в каждом сеансе (и периодически после этого).
Чтобы повысить безопасность вашего сервера, мы настоятельно рекомендуем настроить ключи SSH вместо аутентификации по паролю. Следуйте нашему руководству по настройке ключей SSH в Debian 11, чтобы узнать, как настроить аутентификацию на основе ключей.
Если учетная запись root использует аутентификацию по ключу SSH
Если вы вошли в свою корневую учетную запись, используя ключи SSH, аутентификация по паролю отключена для SSH. Вам нужно будет добавить копию вашего локального открытого ключа в файл ~/.ssh/authorized_keys нового пользователя для успешного входа в систему.
Поскольку ваш открытый ключ уже находится в файле ~/.ssh/authorized_keys корневой учетной записи на сервере, мы можем скопировать этот файл и структуру каталогов в нашу новую учетную запись пользователя в нашем существующем сеансе с помощью команды cp. После этого мы можем настроить права собственности на файлы с помощью команды chown.
Обязательно измените выделенные части команды ниже, чтобы они соответствовали имени вашего обычного пользователя:
Команда cp -r копирует весь каталог в домашний каталог нового пользователя, а команда chown -R меняет владельца этого каталога (и всего в нем) на указанное имя пользователя: имя_группы (Debian создает группу с то же имя, что и ваше имя пользователя по умолчанию).
Теперь откройте новый сеанс терминала и войдите через SSH под своим новым именем пользователя:
Вы должны войти в новую учетную запись пользователя без использования пароля. Помните, что если вам нужно запустить команду с правами администратора, введите sudo перед ней следующим образом:
Вам будет предложено ввести пароль обычного пользователя при первом использовании sudo в каждом сеансе (и периодически после этого).
Куда идти дальше?
На данный момент у вас есть прочная основа для вашего сервера. Теперь вы можете установить на свой сервер любое необходимое программное обеспечение.
Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!
Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.
Узнайте, как защитить сервер Linux и защитить данные от хакеров
Безопасность сервера — это программное обеспечение, инструменты и процессы, используемые для защиты корпоративного сервера от несанкционированного доступа и других киберугроз. Это ключевое требование для большинства системных администраторов и специалистов по кибербезопасности.
Безопасность Linux считается хорошей из-за жесткой структуры разрешений по умолчанию в операционной системе. Тем не менее, вы все равно должны применять передовые методы, чтобы обеспечить безопасную и эффективную работу ваших серверов.
Независимо от того, работает ли ваш сервер Linux под управлением Ubuntu, Debian или другого дистрибутива, выполните следующие действия, чтобы усилить конфигурацию вашего сервера Linux по умолчанию.
1. Устанавливайте только необходимые пакеты
Вы должны устанавливать только те пакеты, которые необходимы вашему бизнесу для защиты функциональности вашего сервера.
В серверных дистрибутивах Linux уже установлено множество распространенных пакетов, таких как adduser и base-passwd.Во время установки пользователи могут установить дополнительные пакеты, включая сервер Open SSH, DNS-сервер, стек LAMP и сервер печати.
Вы также можете добавить дополнительные пакеты через систему управления пакетами по умолчанию. Пакеты можно извлекать из официальных репозиториев или путем добавления PPA (персональных архивов пакетов), репозиториев, созданных пользователями Linux, чтобы получить доступ к более широкому выбору программ.
Однако чем больше пакетов вы устанавливаете, особенно из сторонних репозиториев, тем больше уязвимостей вы можете внести в систему. Сведите установленные пакеты к разумному минимуму и периодически удаляйте ненужные.
2. Отключить вход root
В дистрибутивы Linux входит суперпользователь с именем root, обладающий повышенными правами администратора. Включение входа в систему root может представлять угрозу безопасности и снизить безопасность облачных ресурсов малого бизнеса, размещенных на сервере, поскольку хакеры могут использовать эти учетные данные для доступа к серверу. Чтобы усилить безопасность вашего сервера, вы должны отключить этот логин.
Процесс отключения учетной записи root зависит от того, какой дистрибутив Linux вы используете. Сначала вы должны создать новую учетную запись пользователя и назначить повышенные права доступа (sudo), чтобы у вас по-прежнему была возможность устанавливать пакеты и выполнять другие действия администратора на сервере. Кроме того, вы можете назначить эти разрешения существующему пользователю, чтобы обеспечить безопасный вход на сервер.
3. Настроить двухфакторную аутентификацию
Двухфакторная аутентификация (2FA) значительно повышает безопасность доступа пользователей, требуя пароль и второй токен, прежде чем пользователи смогут войти на сервер.
Чтобы настроить двухфакторную аутентификацию на сервере Debian и дистрибутивах, производных от Debian, необходимо установить пакет libpam-google-authenticator. Пакет может отображать QR-код или создавать секретный токен, который можно добавить к программному устройству аутентификации, например Google Authenticator или Authy.
Двухфакторную аутентификацию можно использовать в сочетании с SSH (Secure Shell) для принудительного применения требования о наличии второго удостоверения при входе на сервер. SSH — это протокол, который создает зашифрованное текстовое соединение с удаленным сервером. В совокупности это делает сервер более устойчивым к грубой силе, попыткам несанкционированного входа в систему и может повысить безопасность облака для малого бизнеса.
4. Обеспечьте надлежащую гигиену паролей
Надлежащая гигиена паролей важна не только для пользователей, выполняющих вход на свои персональные компьютеры или в приложения SaaS. Для серверов администраторы также должны убедиться, что пользователи используют достаточно надежные пароли. Эта практика делает их гораздо более устойчивыми к атакам.
Обеспечение минимальной криптографической стойкости
Пароли, используемые вашим персоналом, должны быть выше определенной криптографической стойкости, например, не менее 12 символов со случайным сочетанием букв, цифр и символов. Чтобы внедрить это в вашем бизнесе, рассмотрите возможность внедрения инструмента управления паролями, который может проверять уровень безопасности пароля или генерировать пароль достаточной сложности.
Принудительная регулярная ротация паролей
Убедитесь, что ваши сотрудники регулярно обновляют все свои пароли для приложений и логинов, особенно для тех, у кого есть административный доступ к серверу.
Большинство дистрибутивов Linux по умолчанию содержат утилиту для изменения срока действия пароля и информации о сроке действия. Эта программа может заставить пользователя регулярно сбрасывать пароль. Chage — один из таких CLI (интерфейс командной строки).
Администраторы могут заставить пользователей сменить пароль через определенное количество дней, например, с помощью оператора -W:
Изменить -W 10 дениэль
Выполните эту команду с повышенными правами доступа. Эта команда заставит пользователя daniel сменить пароль по прошествии 10 дней. Принудительная смена пароля также может быть применена как купание или при входе в систему.
5. Серверное антивирусное программное обеспечение
Хотя компьютеры Linux считаются относительно устойчивыми к вирусам, вредоносным программам и другим формам кибератак, все конечные устройства Linux, включая настольные компьютеры, должны иметь антивирусную защиту. Антивирусные продукты улучшат защитные возможности любого сервера, на котором они работают.
Серверный антивирус для Linux нового поколения от Avast Business поддерживает как 32-разрядное, так и 64-разрядное оборудование, а также включает сканирование по запросу, запускаемое через интерфейс командной строки.
6. Обновляйте регулярно или автоматически
Не храните старые неисправленные пакеты, так как они создают в системе критические уязвимости, которыми могут воспользоваться киберпреступники. Чтобы избежать этой проблемы, убедитесь, что ваш сервер или пул серверов регулярно обновляются.
Многие дистрибутивы Linux, в частности Ubuntu, также обновляются в непрерывном цикле распространения как долгосрочными (LTS), так и краткосрочными версиями.Ваши специалисты по безопасности должны с самого начала решить, хотят ли они использовать новейшее или стабильное программное обеспечение на своих компьютерах, и настроить соответствующие политики обновления.
Кроме того, многие дистрибутивы Linux содержат инструменты для применения автоматических обновлений. Пакет автоматических обновлений, доступный для Debian, например, будет запрашивать обновления с фиксированным интервалом и автоматически применять их в фоновом режиме.
7. Включить брандмауэр
На каждом сервере Linux должен быть установлен брандмауэр в качестве начальной линии защиты от несанкционированных или злонамеренных запросов на подключение. UFW (несложный брандмауэр) — это обычный базовый брандмауэр Linux. Вам следует проверить политику брандмауэра, чтобы убедиться, что она подходит для операционной среды вашего бизнеса.
В наши дни атаки распределенного отказа в обслуживании (DDoS) также представляют угрозу для некоторых операторов. Серверы Linux с выходом в Интернет могут быть размещены за прокси-службой для проверки и очистки входящего трафика, обеспечивая защиту от DDoS. Кроме того, существуют сценарии с открытым исходным кодом, которые можно установить непосредственно на сервер.
8. Сделайте резервную копию вашего сервера
Всегда что-то может пойти не так, когда дело доходит до компьютерных систем, а пакеты могут создавать проблемы с зависимостями и другие проблемы. Поэтому крайне важно сохранить возможность отката изменений на сервере.
Надежный подход к резервному копированию должен включать создание двух копий, одной за пределами площадки, для каждого основного защищенного устройства. Для серверов Linux доступны более простые инструменты отката системы, которые могут помочь автоматизировать этот процесс и обеспечить более быстрое аварийное восстановление (DR).
Помните о безопасности
Linux может быть лучшим сервером для вашего малого бизнеса или предприятия, поскольку в дистрибутивах обычно автоматически настраивается достойный уровень безопасности. Однако, чтобы значительно усилить вашу защиту и свести к минимуму вероятность того, что злоумышленники получат доступ, вы должны укрепить свой сервер Linux, применяя передовые практические советы.
Использование серверного антивирусного инструмента, такого как Avast Business Linux Antivirus, всегда должно быть частью многоуровневой политики безопасности. Ознакомьтесь с нашим антивирусным решением для Linux сегодня.
Как защитить сервер Linux
Расширяющееся практическое руководство по обеспечению безопасности сервера Linux, которое, надеюсь, также расскажет вам о безопасности и о том, почему это важно.
Оглавление
Цель этого руководства – научить вас защищать сервер Linux.
Существует много вещей, которые вы можете сделать для защиты сервера Linux, и в этом руководстве мы постараемся охватить как можно больше из них. Дополнительные темы/материалы будут добавляться по мере моего изучения или по мере того, как будут добавляться другие материалы.
Зачем защищать свой сервер
Я предполагаю, что вы используете это руководство, потому что, надеюсь, вы уже понимаете, почему важна хорошая безопасность. Это тяжелая тема сама по себе, и ее разбор не входит в задачи данного руководства. Если вы не знаете ответа на этот вопрос, советую сначала изучить его.
На высоком уровне, если устройство (например, сервер) находится в открытом доступе, т. е. становится видимым для внешнего мира, оно становится мишенью для злоумышленников. Незащищенное устройство — это площадка для злоумышленников, которые хотят получить доступ к вашим данным или использовать ваш сервер в качестве еще одного узла для своих крупномасштабных DDOS-атак.
Что еще хуже, без хорошей защиты вы можете никогда не узнать, был ли взломан ваш сервер. Злоумышленник мог получить несанкционированный доступ к вашему серверу и скопировать ваши данные, ничего не изменив, чтобы вы никогда об этом не узнали. Или ваш сервер мог быть частью DDOS-атаки, и вы не знали. Посмотрите на множество сообщений о крупномасштабных утечках данных в новостях — компании часто не обнаруживали утечку данных или вторжение, пока злоумышленники не исчезли.
Вопреки распространенному мнению, злоумышленники не всегда хотят что-то изменить или заблокировать доступ к вашим данным за деньги. Иногда они просто хотят использовать данные на вашем сервере для своих хранилищ данных (большие данные — это большие деньги) или тайно использовать ваш сервер в своих гнусных целях.
Почему еще одно руководство
Это руководство может показаться дублирующим или ненужным, потому что в Интернете есть бесчисленное множество статей, в которых рассказывается, как защитить Linux, но информация разбросана по разным статьям, которые охватывают разные темы и разными способами. У кого есть время просматривать сотни статей?
Проводя исследования по сборке Debian, я вел записи. В конце концов я понял, что, помимо того, что я уже знал и чему учился, у меня были задатки руководства. Я решил разместить его в Интернете, чтобы помочь другим узнать и сэкономить время.
Я никогда не находил ни одного руководства, которое бы охватывало все – это моя попытка.
Многие вещи, описанные в этом руководстве, могут быть довольно простыми/тривиальными, но большинство из нас не устанавливает Linux каждый день, и об этих основных вещах легко забыть.
Инструменты автоматизации ИТ, такие как Ansible, Chef, Jenkins, Puppet и т. д., помогают справиться с утомительной задачей установки/настройки сервера, но, по моему мнению, они лучше подходят для развертывания нескольких или больших масштабов. ИМХО, накладные расходы, необходимые для использования таких инструментов автоматизации, совершенно не нужны для одноразовой установки одного сервера для домашнего использования.
Есть много руководств, предоставленных экспертами, лидерами отрасли и самими дистрибутивами. Непрактично, а иногда и против авторских прав, включать все из этих руководств. Я рекомендую вам ознакомиться с ними перед началом работы с этим руководством.
- Пользовательские джейлы для Fail2ban
- MAC (обязательный контроль доступа) и модули безопасности Linux (LSM)
- Безопасность Linux/SELinux
Об этом руководстве
Существует множество типов серверов и различных вариантов использования. Хотя я хочу, чтобы это руководство было как можно более общим, некоторые вещи могут не применяться ко всем/другим вариантам использования. При изучении этого руководства руководствуйтесь здравым смыслом.
Чтобы помочь понять контекст многих тем, затронутых в этом руководстве, мой вариант использования/конфигурация:
- Настольный компьютер.
- С одной сетевой картой.
- Подключение к маршрутизатору потребительского класса.
- Получение динамического IP-адреса WAN, предоставленного интернет-провайдером.
- С WAN+LAN на IPV4.
- И локальная сеть с использованием NAT.
- Я хочу иметь возможность подключаться по SSH удаленно с неизвестных компьютеров и из неизвестных мест (например, из дома друга).
Редактирование файлов конфигурации — для ленивых
Я очень ленив и не люблю редактировать файлы вручную, если мне это не нужно. Я также предполагаю, что все остальные такие же, как я. :)
Поэтому, когда и где это было возможно, я предоставлял фрагменты кода для быстрого выполнения необходимых действий, например добавления или изменения строки в файле конфигурации.
В фрагментах кода используются основные команды, такие как echo , cat , sed , awk и grep . То, как работают фрагменты кода, например, что делает каждая команда/часть, выходит за рамки этого руководства — вам помогут справочные страницы.
Примечание. Фрагменты кода не подтверждают правильность внесения изменений, то есть строку действительно добавили или изменили. Оставлю проверочную часть в твоих умелых руках. Шаги, описанные в этом руководстве, включают создание резервных копий всех файлов, которые будут изменены.
Не все изменения можно автоматизировать с помощью фрагментов кода. Эти изменения требуют доброго, старомодного ручного редактирования. Например, вы не можете просто добавить строку в файл типа INI. Используйте свой любимый текстовый редактор Linux.
Я хотел разместить это руководство на GitHub, чтобы облегчить совместную работу. Чем больше людей внесут свой вклад, тем лучше и полнее будет это руководство.
Чтобы внести свой вклад, вы можете разветвить и отправить запрос на включение или отправить новую проблему.
Прежде чем начать
Определите свои принципы
Прежде чем вы начнете, вы должны определить, каковы ваши Принципы. Какова ваша модель угроз? Несколько моментов для размышления:
- Почему вы хотите защитить свой сервер?
- Насколько высокий уровень безопасности вам нужен или не нужен?
- Насколько удобство вы готовы пожертвовать ради безопасности и наоборот?
- От каких угроз вы хотите защититься? В чем особенности вашей ситуации? Например:
- Является ли физический доступ к вашему серверу/сети возможным вектором атаки?
- Будете ли вы открывать порты на маршрутизаторе, чтобы иметь доступ к серверу из-за пределов дома?
- Будете ли вы размещать общую папку на своем сервере, который будет установлен на настольном компьютере? Какова вероятность заражения настольного компьютера и, в свою очередь, заражения сервера?
Это всего лишь несколько вещей, о которых следует подумать. Прежде чем вы начнете защищать свой сервер, вы должны понять, от чего вы пытаетесь защититься и почему, чтобы знать, что вам нужно делать.
Выбор дистрибутива Linux
Это руководство не зависит от дистрибутива, поэтому пользователи могут использовать любой дистрибутив по своему усмотрению. При этом следует помнить о нескольких вещах:
Вам нужен такой дистрибутив.
-
<ли>. стабильно. Если вам не нравится отладка проблем в 2 часа ночи, вам не нужно автоматическое обновление или ручное обновление пакета/системы, чтобы сделать ваш сервер неработоспособным. Но это также означает, что вы можете не использовать новейшее, лучшее, передовое программное обеспечение.
<ли>. всегда в курсе обновлений безопасности. Вы можете защитить все на своем сервере, но если основная ОС или приложения, которые вы используете, имеют известные уязвимости, вы никогда не будете в безопасности.
<ли>. вы знакомы с. Если вы не знаете Linux, я бы посоветовал вам поиграть с ним, прежде чем пытаться его защитить. Вам должно быть комфортно с ним, и вы должны знать, как устанавливать программное обеспечение, где находятся файлы конфигурации и т. д.
<ли>. хорошо поддерживается. Даже самый опытный администратор время от времени нуждается в помощи.Наличие места, куда можно обратиться за помощью, сохранит ваше здравомыслие.
Установка Linux выходит за рамки данного руководства, поскольку в каждом дистрибутиве она выполняется по-разному, а инструкции по установке обычно хорошо задокументированы. Если вам нужна помощь, начните с документации вашего дистрибутива. Независимо от дистрибутива процесс высокого уровня обычно выглядит следующим образом:
- скачать ISO-образ
- запишите/скопируйте/перенесите его на установочный носитель (например, на компакт-диск или USB-накопитель)
- загрузите сервер с установочного носителя
- следуйте инструкциям по установке
По возможности используйте вариант экспертной установки, чтобы иметь более жесткий контроль над тем, что работает на вашем сервере. Устанавливайте только то, что вам абсолютно необходимо. Лично я кроме SSH ничего не устанавливаю. Кроме того, установите флажок «Шифрование диска».
Требования до и после установки
- Если вы открываете порты на маршрутизаторе, чтобы иметь доступ к серверу извне, отключите переадресацию портов, пока ваша система не будет включена и защищена.
- Если вы не выполняете все действия, связанные с физическим подключением к серверу, вам потребуется удаленный доступ, поэтому убедитесь, что SSH работает.
- Обновляйте свою систему (например, sudo apt update && sudo apt upgrade в системах на базе Debian).
- Убедитесь, что вы выполняете все задачи, характерные для вашей установки, например:
- Настройка сети
- Настройка точек подключения в /etc/fstab
- Создание первых учетных записей пользователей
- Установка основного программного обеспечения, которое вы хотите, как мужчина
- И т. д.
Другие важные примечания
- Это руководство пишется и тестируется в Debian. Большинство приведенных ниже вещей должны работать в других дистрибутивах. Если вы найдете что-то, что не так, пожалуйста, свяжитесь со мной. Главное, что отличает каждый дистрибутив, это его система управления пакетами. Поскольку я использую Debian, я предоставлю соответствующие команды apt, которые должны работать во всех дистрибутивах на основе Debian. Если кто-то захочет предоставить соответствующие команды для других дистрибутивов, я их добавлю.
- Пути к файлам и настройки также могут немного отличаться — при возникновении проблем обратитесь к документации вашего дистрибутива.
- Перед началом работы прочтите руководство полностью. Ваш прецедент и/или принципы могут потребовать ничего не делать или изменить порядок.
- Не копируйте и вставляйте вслепую, не понимая, что вы вставляете. Некоторые команды необходимо будет изменить в соответствии с вашими потребностями, прежде чем они заработают, например, имена пользователей.
Важное примечание перед внесением изменений через SSH
Настоятельно рекомендуется оставить второй терминал открытым для вашего сервера, прежде чем вносить и применять изменения конфигурации SSH. Таким образом, если вы заблокируете себя в своем первом сеансе терминала, у вас все еще будет подключен один сеанс, поэтому вы можете это исправить.
Спасибо Sonnenbrand за эту идею.
Открытые/закрытые ключи SSH
Использование открытых/закрытых ключей SSH более безопасно, чем использование пароля. Это также упрощает и ускоряет подключение к нашему серверу, поскольку вам не нужно вводить пароль.
Подробнее см. приведенные ниже ссылки, но на высоком уровне открытый и закрытый ключи работают, используя пару ключей для подтверждения личности.
- Один ключ, открытый ключ, может только шифровать данные, но не расшифровывать их.
- Другой ключ, закрытый ключ, может расшифровать данные.
Для SSH открытый и закрытый ключи создаются на клиенте. Вы хотите сохранить оба ключа в безопасности, особенно закрытый ключ. Несмотря на то, что открытый ключ должен быть общедоступным, разумно убедиться, что ни один ключ не попал в чужие руки.
Когда вы подключаетесь к серверу SSH, SSH будет искать открытый ключ, соответствующий клиенту, с которого вы подключаетесь, в файле ~/.ssh/authorized_keys на сервере, к которому вы подключаетесь. Обратите внимание, что файл находится в домашней папке идентификатора, к которому вы пытаетесь подключиться. Итак, после создания открытого ключа вам нужно добавить его в ~/.ssh/authorized_keys. Один из подходов — скопировать его на USB-накопитель и физически перенести на сервер. Другой подход — использовать ssh-copy-id для передачи и добавления открытого ключа.
После того, как ключи созданы и открытый ключ добавлен к ~/.ssh/authorized_keys на хосте, SSH использует открытый и закрытый ключи для проверки подлинности, а затем устанавливает безопасное соединение. Проверка личности — сложный процесс, но у Digital Ocean есть очень хорошее описание того, как это работает. На высоком уровне личность проверяется сервером, который шифрует сообщение с вызовом с помощью открытого ключа, а затем отправляет его клиенту. Если клиент не может расшифровать сообщение запроса с помощью закрытого ключа, личность не может быть проверена, и соединение не будет установлено.
Они считаются более безопасными, так как вам нужен закрытый ключ для установки SSH-соединения.Если вы установите значение PasswordAuthentication no в /etc/ssh/sshd_config , тогда SSH не позволит вам подключиться без закрытого ключа.
Вы также можете установить парольную фразу для ключей, которая потребует от вас ввода ключевой фразы при подключении с использованием открытых/закрытых ключей. Имейте в виду, что это означает, что вы не можете использовать ключ для автоматизации, потому что у вас не будет возможности отправить парольную фразу в своих скриптах. ssh-agent — это программа, поставляемая во многих дистрибутивах Linux (и обычно уже запущенная), которая позволит вам хранить незашифрованный закрытый ключ в памяти в течение настраиваемого периода времени. Просто запустите ssh-add, и он запросит вашу парольную фразу. Вам больше не будет предложено ввести кодовую фразу, пока не истечет настраиваемый период времени.
Он использует схему подписи на эллиптической кривой, которая обеспечивает лучшую безопасность, чем ECDSA и DSA. В то же время он также имеет хорошую производительность.
Безопасность сервера Linux находится на достаточном уровне с момента установки ОС. И это здорово знать, потому что… хакеры никогда не спят! Они что-то вроде цифровых вандалов. Получая удовольствие, а иногда и деньги, причиняя страдания случайным незнакомцам по всей планете.
Каждый, кто заботится о своем собственном сервере, ценит тот факт, что Linux обладает высокой степенью безопасности с самого начала. Естественно, он не является полностью герметичным. Но она обеспечивает вашу безопасность лучше, чем большинство других операционных систем.
Тем не менее, есть множество способов улучшить его. Итак, вот несколько практических способов, как вы можете удержать злые орды от ворот. Это, вероятно, поможет, если вы раньше возились под капотом веб-сервера. Но не думайте, что вам нужно быть техническим гуру или кем-то в этом роде.
Деактивировать сетевые порты, когда они не используются
Оставьте сетевой порт открытым, и вы можете поставить приветственный коврик для хакеров. Для обеспечения безопасности веб-узла вы можете использовать команду «netstat», чтобы сообщить вам, какие сетевые порты открыты в данный момент. А также какие сервисы их используют. Это должно закрыть еще один путь для атаки хакеров.
Вы также можете настроить «iptables» для деактивации открытых портов. Или просто используйте команду «chkconfig», чтобы отключить службы, которые вам не понадобятся. Брандмауэры, такие как CSF, позволяют автоматизировать правила iptables, так что вы можете просто это сделать. Если вы используете платформу Plesk в качестве программного обеспечения для управления хостингом, обратите внимание на эту статью о портах Plesk.
Порт SSH обычно имеет номер 22, и именно на нем хакеры могут его найти. Чтобы повысить безопасность сервера Linux, измените его на другой номер порта, который вы еще не используете для другой службы. Таким образом, злоумышленникам будет сложнее внедрить вредоносное ПО на ваш сервер. Чтобы внести изменения, просто перейдите в /etc/ssh/sshd_config и введите соответствующий номер.
Обновление программного обеспечения и ядра Linux
Половина битвы за безопасность Linux заключается в поддержании всего в актуальном состоянии, поскольку обновления часто добавляют дополнительные функции безопасности. Linux предлагает все инструменты, необходимые для этого, и обновление между версиями также простое. Каждый раз, когда становится доступным новое обновление для системы безопасности, вам необходимо просмотреть его и установить как можно скорее. Опять же, вы можете использовать менеджер пакетов RPM, такой как yum и/или apt-get и/или dpkg, чтобы справиться с этим.
Можно настроить RedHat/CentOS/Fedora Linux таким образом, чтобы получать уведомления об обновлениях пакетов yum на вашу электронную почту. Это отлично подходит для безопасности Linux, и вы также можете применять все обновления безопасности с помощью задания cron. Apticron можно использовать для отправки мер безопасности в Debian / Ubuntu Linux. Вы также можете использовать команду apt-get/apt для настройки автоматических обновлений для вашего сервера Debian/Ubuntu Linux:
$ sudo apt-get install unattended-upgrades apt-listchanges bsd-mailx
Сокращение избыточного программного обеспечения для повышения безопасности Linux
Отключите вход в систему root, чтобы улучшить безопасность сервера Linux
Серверы Linux по всему миру позволяют использовать «root» в качестве имени пользователя. Зная это, хакеры часто пытаются обойти безопасность веб-хостинга, чтобы узнать ваш пароль, прежде чем проникнуть внутрь. Именно из-за этого вы не должны входить в систему как пользователь root. На самом деле, вы действительно должны удалить его как вариант, создав еще один уровень сложности для хакеров. И, таким образом, помешать им обойти вашу защиту, просто угадав.
Итак, вам достаточно создать отдельное имя пользователя. Затем используйте специальную команду доступа «sudo» для выполнения команд корневого уровня.Sudo великолепен, потому что вы можете дать его любым пользователям, которым вы хотите иметь команды администратора, но не root-доступ. Потому что вы не хотите ставить под угрозу безопасность, предоставляя их оба.
Итак, вы деактивируете учетную запись root, но перед этим убедитесь, что вы создали и авторизовали нового пользователя. Затем перейдите в /etc/ssh/sshd_config в nano или vi и найдите параметр «PermitRootLogin». Измените настройку по умолчанию «да» на «нет», а затем сохраните изменения.
Шифрование GnuPG для безопасности веб-хостинга
Когда данные перемещаются по вашей сети, хакеры часто пытаются нарушить безопасность сервера Linux, перехватив их. Всегда убедитесь, что все, что идет на ваш сервер и с него, имеет шифрование паролей, сертификаты и ключи. Один из способов сделать это — использовать инструмент шифрования, такой как GnuPG. Он использует систему ключей, чтобы гарантировать, что никто не сможет получить доступ к вашей информации во время передачи.
Изменить/загрузить только для чтения
Все файлы, относящиеся к ядру на сервере Linux, находятся в каталоге «/boot». Стандартный уровень доступа к каталогу — «чтение-запись», но рекомендуется изменить его на «только чтение». Это не позволит никому изменить ваши чрезвычайно важные загрузочные файлы.
Просто отредактируйте файл /etc/fstab и добавьте значения по умолчанию LABEL=/boot /boot ext2, строки 1 и 2 внизу. Это полностью обратимо, так что вы можете вносить будущие изменения в ядро, вернув его обратно в режим «чтение-запись». Затем, когда вы закончите, вы можете вернуться к режиму "только для чтения".
Улучшенная политика паролей повышает безопасность веб-хостинга
Пароли всегда представляют собой проблему безопасности, потому что таковыми являются люди. Люди не могут утруждаться придумывать много разных паролей — или, может быть, они не могут. Так что же происходит? Они используют одни и те же в разных местах. Или еще хуже — легко запоминающиеся комбинации, вроде «пароль» или «абкде». По сути, подарок хакерам.
Обязать пароли содержать буквы верхнего и нижнего регистра, цифры и символы. Вы можете включить устаревание пароля, чтобы пользователи сбрасывали предыдущие пароли через фиксированные промежутки времени. Также подумайте о запрете старых паролей, чтобы, как только люди использовали один, он исчезал навсегда. Команда «faillog» позволяет вам установить ограничение на количество разрешенных неудачных попыток входа в систему и заблокировать учетные записи пользователей. Это идеально подходит для предотвращения атак грубой силы.
Поэтому всегда используйте надежный пароль
Пароли — это ваша первая линия защиты, поэтому убедитесь, что они надежны. Многие люди на самом деле не знают, как выглядит хороший пароль. Что он должен быть сложным, но в то же время достаточно длинным, чтобы сделать его максимально сильным.
На уровне администратора вы можете помочь пользователям, защитив Plesk Obsidian и обеспечив использование надежных паролей, срок действия которых истекает через определенное время. Пользователям это может не понравиться, но вы должны дать им понять, что это спасает их от многих возможных душевных страданий.
Каковы же «лучшие методы» при настройке паролей?
- Используйте пароли максимально возможной длины
- Избегайте слов, встречающихся в словаре (например, "синий виноград").
- Избегайте замены чисел, которые легко угадать (например, "h3ll0").
- Не упоминайте поп-культуру (например, ТАРДИС).
- Никогда не используйте пароль более одного раза
- Регулярно меняйте пароль и используйте разные пароли для каждого веб-сайта.
- Не записывайте пароли и не делитесь ими. Ни с кем. Всегда!
Выбранные вами пароли должны повышать безопасность веб-хостинга, поскольку они неясны и их нелегко подобрать. Вы также поможете своим усилиям по обеспечению безопасности, если вы дадите своему логину root (Linux) или RDP (Windows) собственный уникальный пароль.
Безопасности Linux нужен брандмауэр
Брандмауэр необходим для обеспечения безопасности веб-хостинга, потому что это ваша первая линия защиты от злоумышленников, и у вас есть выбор. NetFilter встроен в ядро Linux. В сочетании с iptables вы можете использовать его для защиты от DDos-атак.
TCPWrapper – это система списков управления доступом (ACL) на основе хоста, которая фильтрует доступ к сети для различных программ. Он имеет проверку имени хоста, стандартизированное ведение журнала и защиту от спуфинга.Брандмауэры, такие как CSF и APF, также широко используются, и они также поставляются с плагинами для популярных панелей, таких как cPanel и Plesk.
Блокировка учетных записей пользователей после неудачного входа
Для безопасности Linux команда faillog показывает неудачные попытки входа в систему и может назначать ограничения на то, сколько раз пользователь может неправильно ввести свои учетные данные для входа, прежде чем учетная запись будет заблокирована. faillog форматирует содержимое журнала сбоев из файла /var/log/faillog базы данных/журнала. Чтобы просмотреть неудачные попытки входа, введите:
Чтобы открыть заблокированную таким образом учетную запись, выполните:
faillog -r -u имя_пользователя
Помня о безопасности Linux, помните, что вы можете использовать команду passwd для блокировки и разблокировки учетных записей:
Читайте также: