Автоматические обновления безопасности
Мне они нравятся. Они не идеальны, но это лучше, чем пропустить патчи после их выхода.
apt-get install unattended-upgrades vim /etc/apt/apt.conf.d/10periodic
Обновите этот файл следующим образом:
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::AutocleanInterval "7"; APT::Periodic::Unattended-Upgrade "1";
Я в целом согласен с Брайаном, что лучше отключить обычные обновления, а оставить только обновления безопасности. Идея в том, что будет не очень хорошо, если приложение внезапно перестанет работать из-за обновления какого-то пакета с зависимостями, в то время как обновления безопасности очень редко создают проблемы с зависимостями на уровне приложения.
vim /etc/apt/apt.conf.d/50unattended-upgrades
Отредактируйте файл следующим образом:
Unattended-Upgrade::Allowed-Origins { "Ubuntu lucid-security"; //"Ubuntu lucid-updates"; };
Всё готово.
Замена стандартного порта SSH
Эффективность: ️ ️
Один из самых простых способов защититься от неумелых атакующих и тупых ботов – это изменение дефолтного порта подключения по SSH. Большинство ботов сканируют только дефолтный порт, сменив его вы защититесь от ботов работающих на дурака.
Перед сменой порта разберитесь, какой firewall стоит на вашей системе. Например на CentOS 8 это скорее всего firewalld.
Вам необходимо открыть новый порт для ssh, и закрыть старый. Например, если у вас установлен firewalld, а порт вы выбрали 58291, то команды для открытия порта будут такие:
Для изменения порта нужно отредактировать файл . В этой статье мы будем часто этим заниматься. Всякий раз, когда вам нужно отредактировать этот файл, используйте следующую команду:
В открывшемся файле найдите следующую строку: #Port 22 Удалите решетку и измените номер порта, например на 58291. Номер не должен превышать 65535. Рекомендую выбрать пятизначное значение.
Также удостоверьтесь, что выбранное вами значение не конфликтует с другими сервисами в системе, например mysqld использует порт 3306, httpd — 80, ftpd — 21.
После этого необходимо перезапустить службу ssh:
Для входа с использованием нового порта используйте следующий флаг:
Config SSH
Чтобы не запоминать порты ко всем своим серверам, можно воспользоваться файлом . Создайте этот файл, если его нет на вашей локальной машине.
Пример .ssh/config
Настройка службы SSH
Запрещаем авторизацию от пользователя root. Ваша учетная запись должна быть в группе sudo или wheel (в зависимости от ОС) для того чтобы выполнять команды от суперпользователя, как это сделать указано выше. Для непосредственного выполнения команд следует перед командой использовать служебную команду sudo.
Например:
Также для перехода в режим суперпользователя можно использовать одну из двух команд:
либо
Во всех случаях система запросит пароль.
Теперь отключим авторизацию под пользователем root.
Открываем на редактирование файл sshd_config. В Debian/Ubuntu это выглядит так:
Находим строчку:
PermitRootLogin и заменяем его значение на no.
Запрещаем аутентификацию по паролю
Важно это сделать, если у вас уже успешно выполняется подключение по ключу
Открываем все тот же файл sshd_config.
Находим строку:
Заменяем значение “yes” на “no”.
Строка может быть закомментирована (т.е. перед ней стоит символ “#”), в этом случае ее надо раскомментировать.
Важно! Вы можете оставить авторизацию как по паролю, так и по ключу. По окончании настроек любого из пунктов, перезапускаем сервер
По окончании настроек любого из пунктов, перезапускаем сервер.
Либо
Либо
№ 14: Отключите IPv6
Версия 6 протокола Интернет (IPv6), которая заменяет версию 4 (IPv4), представляет собой новый слой организации протокола TCP/IP, что дает массу преимуществ. В настоящее время нет хороших инструментальных средств, с помощью которых можно было бы проверить безопасность системы, работающей через сеть по протоколу IPv6. В большинстве дистрибутивов Linux протокол IPv6 по умолчанию включен. Взломщики могут воспользоваться и перенаправить трафик по IPv6, поскольку большинство администраторов не осуществляют его мониторинг. Если конфигурация сети не требует использования протокола IPv6, то отключите его, в противном случае сконфигурируйте брандмауэр Linux для работы с IPv6:
1. Настройка общей памяти
По умолчанию весь объем общей памяти /run/shm доступен для чтения и записи с возможностью выполнения программ. Это считается брешью в безопасности и многие эксплойты используют /run/shm для атак на запущенные сервисы. Для большинства настольных, а особенно серверных устройств рекомендуется монтировать этот файл в режиме только для чтения. Для этого нужно добавить такую строчку в /etc/fstab:
Но, тем не менее, некоторые программы не будут работать, если /run/shm доступен только для чтения, одна из них — это Google Chrome. Если вы используете Google Chrome, то мы должны сохранить возможность записи, но можем запретить выполнение программ, для этого добавьте такую строчку вместо предложенной выше:
№ 11: Сконфигурируйте Iptables и используйте TCPWrapper-ы
Iptables является пользовательским приложением, которое позволит вам сконфигурировать брандмауэр (Netfilter), имеющийся в ядре Linux. Используйте брандмауэр для фильтрации и пропуска только нужного трафика. Также используйте TTCPWrapper-ы — кросс-хостинговые сетевые системы ACL (листы контроля доступа), применяемые для фильтрации доступа из сети в Интернет. С помощью Iptables Вы сможете предотвратить многие атаки вида «denial of service» (отказ в обслуживании):
- Распределение трафика с помощью Lighttpd: ограничение числа соединений с одного IP (ограничение скорости).
- How to: Как с помощью Iptables в Linux блокировать типичные атаки.
- psad: Обнаружение и блокирование в Linux в режиме реального времени атак сканирования портов.
Установка файрвола
Обычно здесь два лагеря. Одни используют IPtables напрямую, а другие применяют удобный интерфейс под названием , который представляет собой слой над IPtables для упрощения процесса настройки. Более простой вариант обычно предпочтительнее с точки зрения безопасности. ufw действительно неплох и помогает в основных вещах.
установлен по умолчанию на Ubuntu, а на Debian достаточно запустить команду
apt-get install ufw.
По умолчанию должен отказывать во всех входящих подключениях и разрешать все исходящие, однако, он не будет запущен (потому что иначе как бы вы подключились?). Мы пройдёмся и явно разрешим соединения, которые считаются нормальными.
Во-первых, следует убедиться в поддержке IPv6. Откройте конфигурационный файл.
vim /etc/default/ufw
Установите IPv6 в значение .
IPV6=yes
Для остальных портов, которые мы собираемся открыть, можно просто использовать инструмент из командной строки, что очень удобно.
sudo ufw allow from {your-ip} to any port 22 sudo ufw allow 80 sudo ufw allow 443 sudo ufw disable sudo ufw enable
Первое — это избыточная мера, которая гарантирует, что только соединения с нашего IP-адреса могут соединяться по SSH (стандартный порт SSH) Но Мнения расходятся, назначать ли для соединений SSH стандартный или нестандартный порт. См. здесь и здесь аргументы обеих сторон.. Вторая и третья команда открывают трафик http и https.
Примечание: Спасибо chrisfosterelli за замечание, что если вы собираетесь установить первое правило (а вам следует это сделать), то убедитесь, что у вас статичный IP-адрес или безопасный VPN, к которому вы подключаетесь. Динамический IP-адрес оставит вас без доступа к серверу когда-нибудь в будущем.
Установка RedHat Codeready Studio на ОС RedHat Enterprise Linux 8.4 (RHEL 8.4)
Red Hat CodeReady Studio — это бесплатная для участников программы RedHat Developer open source интегрированная среда (IDE), предоставляет широкий набор функционала разработки для нескольких платформ Red Hat, которые включают контейнеры CodeReady (развертывание через OpenShift4), Quarkus, JAX-RS, внедрение зависимостей контекстов (CDI) и инструменты Red Hat Fuse. Студия включает последние версии Eclipse и Web Tools Project (WTP), предоставляет инструменты для JEE и веб-разработки, такие как: инструменты Java EE, JSF и JSP; инструменты JPA; серверные инструменты; веб-сервисы и инструменты WSDL; инструменты HTML , CSS и JavaScript; инструменты XML , XML Schema и DTD. Студия Code Ready Studio также поддерживает популярные технологии, такие как Enterprise Application Platform (EAP 7.3) — платформа корпоративных приложений Red Hat, Hibernate и Wildfly 21, и обеспечивает встроенное усиление для Kubernetes, OpenShift (включая S2i), docker и клиента REST для микропрофайлов.
Системные обновления
Своевременно устанавливать обновления для ОС — хорошая привычка. Разумеется, бывают случаи, когда обновление влечет за собой негативные последствия, но это происходит крайне редко. Данный процесс можно упростить, если использовать автообновления системы.
В разных дистрибутивах это делается по-своему:
Debian/Ubuntu используют пакет unattended upgrades для автоматических обновлений
CentOS использует yum-cron
В дистрибутиве Fedora используется
Если сервер под критической нагрузкой, то следует использовать штатные средства.
Ubuntu/Debian:
Fedora/Centos:
Важно! Обновление коснется только тех пакетов и приложений которые не были установлены путем компилирования и получены как исполняемые файлы
3. Heartbleed
В 2014 году была обнаружена одна из самых серьезных по масштабу и последствиям уязвимость. Она была вызвана ошибкой в модуле heartdead программы OpenSSL, отсюда и название Heartbleed. Уязвимость позволяла злоумышленникам получить прямой доступ к 64 килобайтам оперативной памяти сервера, атаку можно было повторять, пока вся память не будет прочитана.
Несмотря на то, что исправление было выпущено очень быстро, пострадало очень много сайтов и приложений. Фактически уязвимыми были все сайты, использующие HTTPS для защиты трафика. Злоумышленники могли получить пароли пользователей, их личные данные и все что находилось в памяти в момент атаки. Уязвимость получила код CVE-2014-0160.
Режим совместимости конфигурации 1С
Приветствую, коллеги! В этой статье будет сделан обзор функции совместимости конфигурации 1С с другими версиями конфигураций 1С, а также рассмотрено, как выбрать и настроить режим совместимости конфигурации с версией 1С 8.3.
Во-первых, разберём главное понятие в этой статье: режим совместимости в конфигурации – это устройство, благодаря которому выводится номер версии системы, под которую станет открыто приложение 1С:Предприятие. Данный режим существует на платформе 1С начиная с версий 8.2 и 8.3 (платформа версии 1С:Предприятие 8.3 совместима с платформой версии 1С:Предприятие 8.2).
POSIX ACL
Описание: разграничение прав доступа к файлам на основе их атрибутов (Discretionary Access Control, DAC).
Механизм работы: Система (в частности, менеджер файловой системы) считывает атрибуты файла, к которому обращается пользователь (или программа, работающая от имени какого-либо пользователя), после чего решает, предоставлять ли доступ на основе этих атрибутов. При ошибке доступа приложению возвращается соответствующий код ошибки.
Пример использования: чтобы запретить/разрешить доступ остальных пользователей к своему файлу, можно поменять его атрибуты через chmod, и поменять владельца/группу через chown и chgrp (либо использовать более общую команду setfacl). Текущие права доступа можно посмотреть через ls и getfacl.
🔐 Используйте SSH ключ вместо пароля
Эффективность: ️ ️ ️ ️ ️ ️
Сервер OpenSSH поддерживает различную аутентификацию. Пароли можно угадывать, взламывать или подбирать методом перебора. Ключи SSH не подвержены таким атакам.
Когда вы генерируете ключи SSH, вы создаете пару ключей. Один из них — открытый ключ, другой — закрытый. Открытый ключ устанавливается на серверах, к которым вы хотите подключиться. Закрытый ключ, хранится в безопасности на вашем компьютере.
Когда вы делаете запрос на подключение, удаленный компьютер использует свою копию вашего открытого ключа для создания зашифрованного сообщения, которое отправляется обратно на ваш компьютер. Поскольку он был зашифрован с помощью вашего открытого ключа, ваш компьютер может расшифровать его с помощью вашего закрытого ключа.
Затем ваш компьютер извлекает из сообщения некоторую информацию, в частности идентификатор сеанса, шифрует ее и отправляет обратно на сервер. Если сервер может расшифровать его с помощью своей копии вашего открытого ключа, и если информация внутри сообщения совпадает с тем, что сервер отправил вам, ваше соединение будет подтверждено как исходящее от вас.
Схематичный процесс авторизации по SSH ключу
Создание ssh ключей
И так, генерация ключей ssh выполняется командой:
Утилита предложит вам выбрать расположение ключей. По умолчанию ключи располагаются в папке ~/.ssh/. Лучше ничего не менять, чтобы все работало по умолчанию и ключи автоматически подхватывались. Секретный ключ будет называться id_rsa, а публичный id_rsa.pub.
Затем утилита предложит ввести пароль для дополнительного шифрования ключа на диске. Его можно не указывать, если не хотите.
Теперь у вас есть открытый и закрытый ключи SSH и вы можете использовать их для проверки подлинности. Дальше нам осталось разместить открытый ключ на удаленном сервере.
Никогда и никому не передавайте свой закрытый ключ.
Загрузка ключа на сервер
Самый простой способ скопировать ключ на удаленный сервер — это использовать утилиту . Она входит в пакет программ OpenSSH. Но для работы этого метода вам нужно иметь пароль доступа к серверу по SSH.
Синтаксис команды:
Если вы хотите указать путь до публичного ключа, используйте команду:
При первом подключении к серверу система может его не распознать, поэтому вам нужно ввести yes. Затем введите ваш пароль пользователя на удаленном сервере. Утилита подключится к удаленному серверу, а затем использует содержимое ключа id_rsa.pub для загрузки его на сервер в файл ~/.ssh/authorizedkeys. Дальше вы можете выполнять аутентификацию с помощью этого ключа.
Если такой способ по какой-либо причине для вас не работает, вы можете скопировать ключ по ssh вручную. Мы создадим каталог , а затем поместим наш ключ в файл с помощью символа , это позволит не перезаписывать существующие ключи:
Здесь вам тоже нужно набрать yes, если вы подключаетесь к новому серверу, а затем ввести пароль.
Также необходимо убедиться, что имеется возможность входа по ssh ключу. Для этого в файле должна присутствовать строка .
После этого вы можете использовать созданный ключ для аутентификации на сервере:
Если вы не захотели создать ssh ключ с доступом по паролю, то вы сразу же будете авторизованы, что очень удобно. Иначе, сначала вам придется ввести фразу-пароль для расшифровки ключа.
Chroot
Описание: операция, ограничивающая доступ процесса к файловой системе, изменяя её корень в контексте процесса.
Механизм работы: запускает программу (по умолчанию /bin/sh) с контекстом, в котором переопределён корневой каталог файловой системы. Теперь все обращения вызванной программы не могут выйти за пределы корневого каталога (т. е. программа работает в весьма условной «песочнице»). Обойти данный механизм не составляет труда, особенно из под рута, так что это средство не рекомендуется для обеспечения безопасности. Настоящую песочницу сможет обеспечить только виртуализация.
Пример использования: создаётся специальный каталог, в него копируется необходимое для работы окружение (также можно использовать команду mount —bind). Далее делается chroot на этот каталог, и запущенная программа работает только с предварительно подготовленным окружением. Для упрощения можно использовать различные jail-инструменты, доступные в дистрибутивах.
№ 20: Защитите файлы, директории и почтовые ящики
В Linux предлагаются различные варианты защиты против несанкционированного доступа к данным. Использование и методика MAC (Mandatory Access Control — принудительное управление доступом) предотвращают несанкционированный доступ к данным. Однако, права доступа, устанавливаемые Linux, бесполезны, если атакующий имеет физический доступ к компьютеру и может перенести жесткий диск компьютера на другую систему с тем, чтобы скопировать и проанализировать интересующие его данные. Вы можете легко защитить в Linux файлы и дисковые разделы с помощью следующих инструментальных средств:
3: Предупреждения Lynis
Результаты аудита в Lynis не всегда содержат раздел предупреждений, но если это случилось, вы должны знать, как устранить возникшие проблемы.
Предупреждения перечислены после результатов. Каждое предупреждение начинается с текста предупреждения, рядом в скобках указывается тест, который его сгенерировал. Следующая строка содержит предлагаемое решение проблемы, если оно существует. Последняя строка – это URL-адрес, по которому вы сможете найти дополнительные рекомендации по устранению возникшей проблемы. К сожалению, URL-адрес не всегда предоставляет полезные инструкции, поэтому иногда вам придётся самостоятельно проводить дополнительные исследования.
Рассмотрим следующий пример предупреждений:
Первое предупреждение сообщает о том, что приложение Lynis необходимо обновить. Это также означает, что аудит проведён с помощью устаревшей версии Lynis, поэтому результаты могут быть неполными. Этого можно было бы избежать, если бы перед запуском аудита была проведена проверка обновлений (как показано в разделе 3). Устранить ошибку очень просто: достаточно обновить Lynis.
Второе предупреждение указывает, что сервер необходимо перезагрузить. Вероятно, это предупреждение возникло потому, что недавно было выполнено системное обновление, связанное с ядром. Чтобы устранить предупреждение, просто перезапустите систему.
Если какое-либо предупреждение или результат тестирования вызывает у вас сомнения, вы можете получить больше информации, запросив id теста Lynis. Эта команда использует следующий формат:
Например, чтобы получить больше информации о втором предупреждении, id которого KRNL-5830, нужно запустить:
Команда выведет подробные данные об этом конкретном тесте. Так вы сможете лучше понять процесс, который выполняет Lynis для каждого такого теста. Lynis также предоставляет конкретную информацию о компоненте, который вызвал предупреждение.
Третье предупреждение (с id PKGS-7392) сообщает об уязвимых пакетах. Запросите подробности:
Вывод даёт больше информации о пакетах, которые необходимо обновить:
Решением подобной проблемы является обновление базы данных пакетов и обновление системы.
Исправив компоненты, которые вызвали предупреждения, вы должны повторить аудит. Полученный результат не должен содержать таких предупреждений, хотя могут появиться новые предупреждения. В таком случае исправьте новые предупреждения и снова запустите аудит.
9. Уязвимость в OpenJDK
Это очень серьезная уязвимость linux 2016 в Java машине OpenJDK с кодом CVE-2016-0636, она затрагивает всех пользователей, работающих с Oracle Java SE 7 Update 97 и 8 Update 73 и 74 для Windows, Solaris, Linux и Mac OS X. Эта уязвимость позволяет злоумышленнику выполнить произвольный код за пределами Java машины, если вы откроете специальную страницу в браузере с уязвимой версией Java.
Это позволяло злоумышленнику получить доступ к вашим паролям, личным данным, а также запускать программы на вашем компьютере. Во всех версиях Java ошибка была очень оперативно исправлена, она просуществовала с 2013 года.
Дополнительные настройки безопасности
Есть и другие рекомендуемые конфигурации, чтобы избежать нежелательных подключений к нашему SSH-серверу. Эти соединения:
- Войти : Мы установим время, необходимое для ввода пароля, чтобы злоумышленнику не приходилось «много думать».
- MaxAuthTries : Количество разрешенных попыток при вводе пароля перед отключением.
- MaxStartups : Количество одновременных входов в систему с IP-адреса, чтобы избежать использования грубой силы в нескольких сеансах одновременно.
- AllowUsers : Это для создания белого списка пользователей. Этот параметр позволяет нам настроить пользователей, которые смогут подключиться. Это очень ограничительная мера, но в то же время очень безопасная, поскольку она блокирует все подключения пользователей, которых нет в списке. Пользователи, которые у нас здесь, смогут подключиться, а остальные — нет.
- DenyUsers : Аналогично предыдущему, но теперь мы создаем черный список. Пользователи, которые у нас здесь, не смогут подключиться, а остальные подключатся.
- AllowGroups / DenyUsers : Точно так же, как указано выше, но вместо создания черного / белого списка пользователей это группы пользователей.
Например, файл конфигурации для sshd_config будет следующим:
Дополнительной мерой безопасности является настройка алгоритмов обмена ключами, симметричного шифрования, а также конфигурации HMAC для проверки целостности. В настоящее время рекомендуется применять следующую конфигурацию для обеспечения очень высокой безопасности:
С этой конфигурацией у нас будут лучшие криптографические наборы для сервера, однако старые клиенты могут не иметь возможности подключиться, поскольку они не поддерживают эти алгоритмы
Мы должны принять во внимание эту деталь и проверить, какие алгоритмы совместимы, а какие нет
Если мы создали новые ключи RSA или DSA для ключей с большей битовой длиной, мы должны поместить их в файл конфигурации (или заменить предыдущие, и, таким образом, нам не придется трогать файл конфигурации), таким образом мы получим дополнительная безопасность, если, например, мы используем ключи RSA длиной 4096 бит или выше.
Чтобы сгенерировать новые 4096-битные ключи RSA, нам просто нужно выполнить следующую команду:
Если мы хотим сгенерировать новые ключи ECDSA (с максимальной длиной 512 бит) или ED25519, нам нужно будет ввести следующие команды:
Linux, MacOS, Windows 10
Создание SSH-ключей
Запустите терминал или Windows PowerShell на вашем компьютере и выполните команду:
ssh-keygen
Вы увидите примерно следующее сообщение:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Нажмите Enter — ключ будет сохранен в указанную директорию по умолчанию.
Далее вам будет предложено задать пароль (кодовую фразу) для ключа. Вы можете задать ее или оставить пустой, просто нажав Enter
Обратите внимание, что если вы зададите кодовую фразу, ее потребуется вводить при каждой авторизации по ключу.
Процедура создания ключей завершена, ключи сохранены в директории ~/.ssh/ в файлах id_rsa и id_rsa.pub. Теперь их необходимо скопировать на сервер.
Копирование ключей на сервер
-
Выполните в терминале следующую команду, указав вместо user имя пользователя, созданного на сервере, а вместо server — IP-адрес вашего сервера:
ssh-copy-id user@server #Например: ssh-copy-id admin@2.59.43.145
-
В результате содержимое файла с публичным ключом id_rsa.pub будет скопировано в файл ~/.ssh/authorized_keys на сервере, и в дальнейшем вы сможете устанавливать соединение с сервером, используя команду:
ssh user@server #Например: ssh admin@2.59.43.145
Деактивация вируса в Linux
Попробуем собрать всё воедино и убрать службы из автозагрузки, удалить все исполнимые файлы и файлы автозапуска, сразу после этого перезагружаем компьютер, чтобы процесс вируса (если он ещё активен), не успел создать всё это заново:
sudo systemctl disable pwnrige.service pwnrigl.service && sudo rm /bin/sysdr /bin/bprofr /bin/crondr /etc/systemd/system/pwnrige.service /usr/lib/systemd/system/pwnrigl.service /etc/cron.d/root /etc/cron.d/nginx /etc/cron.d/apache /var/spool/cron/root /root/.bash_profile && reboot
Вместо успешного завершения блока команд и перезагрузки компьютера мы получили ошибку «Операция не позволена» для ряда файлов.
Причина в том, что с помощью атрибута файла «i» файлы заблокированы от удаления даже с помощью sudo. Подробности смотрите в статье «Атрибуты файлов в Linux». Чтобы разблокировать файлы, нужно использовать команду вида:
sudo chattr -ai ФАЙЛ
Получаем новую последовательность команд для деактивации вируса:
sudo systemctl disable pwnrige.service pwnrigl.service && sudo chattr -ai /bin/sysdr /bin/bprofr /bin/crondr /etc/systemd/system/pwnrige.service /usr/lib/systemd/system/pwnrigl.service /etc/cron.d/root /etc/cron.d/nginx /etc/cron.d/apache /var/spool/cron/root /root/.bash_profile && sudo rm /bin/sysdr /bin/bprofr /bin/crondr /etc/systemd/system/pwnrige.service /usr/lib/systemd/system/pwnrigl.service /etc/cron.d/root /etc/cron.d/nginx /etc/cron.d/apache /var/spool/cron/root /root/.bash_profile && reboot
Если процесс вируса ещё активен, то в дополнение к команда очистки, можно завершить процесс вредоносного ПО с помощью kill.
Инструментарий:
- В чём различия и как пользоваться командами kill, pkill и killall
- Почему команда kill не убивает процесс?
Безопасность linux сервера. Часть 2
3 апреля 2011
langator
В первой части статьи мы рассматривали больше физическую защиту. Но куда более опасной является сама сеть, ведь от туда гораздо легче добраться до вашего сервера, чем пробираться в серверную и пытаться исполнить свои черные замыслы. Скорее всего персонально вас ломать никто не будет, просто Вы попадете под «горячую» руку очередного бота сканирующего все подряд. В плане исключения на вас может кто-то сильно рассердиться и захочет таким образом отомстить.
Сколько не говори о необходимости использования надежных и уникальных паролей, всегда лень будет брать свое, что в свою очередь может очень негативно сказаться на вашей безопасности. Стоит добавить пару слов по выбору пароля. Длина не менее 8-ми символов, а лучше не менее 12. Должен включать числа, буквы разного регистра, знаки препинания и арифметические знаки. Не следует забывать о периодической смене.
Если вам лень придумывать, то можно сгенерировать случайный:
base64 < devurandom | head -n 1
и выбрать понравившийся кусочек.
Или сразу фиксированной длины:
base64 < devurandom | head -n 1 | cut -c-20
Хотя есть еще очень удобный метод составления пароля — это принцип «шокирующего абсурда», т.е. придумывается какая-нибудь абсурдная матерная фраза, которую сложно забыть. Вот здесь действительно есть куда разгуляться и пароль точно будет криптографически стойким. Например, «3 гондона на суку в**бали козу» . Записать все это дело латиницей без пробелов и конечно со звездочками.
Если желаете проверить надежность пароля, то есть следующие онлайн сервисы для проверки:
testyourpassword.com, passwordmeter.com и comparitech.com
Так как администрирование всегда проходит удаленно, то следует отказаться от небезопасных протоколов передачи данных. В противном случае пароли будут передаваться в открытом виде и могут быть легко перехвачены. Всегда используйте ssh, а для web — https. Для ssh желательно отключить root`a или разрешить вход с определенных адресов. Для веб сервера и не только, установить строгие права доступа на файлы и каталоги.
Вот пример настройки ssh.
# Правим файл /etc/ssh/sshd_config# Сменим стандартный порт;
Port 9022# Оставим только вторую версию протокола;
Protocol 2# Запретим root`a;
PermitRootLogin no
Следите за обновлением программного обеспечения, могут быть важные исправления безопасности, иначе вас смогут наказать за расторопность, применив очередной эксплоит.
Так же следует отключить все не нужные службы, оставив только необходимые. А настройку существующих производить из соображений безопасности — все что не разрешено, то запрещено.
Дальше пойдет речь о вещах просто не способных уместится в данной статье, и я решил, что лучше сюда включить лишь их описание, а остальное вынести в отдельные статьи.
Использование фаервола категорически обязательно. Как раз его настройку можно увидеть здесь, желательно, по умолчанию, запретить весь трафик и разрешить только необходимый, не забывая про ограничение количества коннектов. Iptables(netfilter) не отменяет использование tcp wrappers, IDS и различные антируткиты.
Нельзя забывать про мониторинг системы и журнальных файлов дабы предупредить возможные неполадки и быть в курсе работы сервера.
Резервное копирование — как манна небесная для любого сервера, ведь никогда не знаешь, когда все потеряешь. И тут нет полностью готового решения на все случаи жизни, конечно зачастую ситуации довольно типичны, но все-равно требуют индивидуального подхода. Так же более подробно рассмотрю тут.
Пока вот такой половинчатый вариант статьи, но по написании отдельных подразделов обязательно будет обновлена и дополнена.
Продолжение следует…
Categories: Manual linux, ssh, безопасность