- Ubuntu Security: Security and compliance for the full stack
- Engineering series
- Management ‘big-picture’ series
- Compliance tech & tooling
- IoT & Device security
- Multi-cloud infrastructure security
- Securing public cloud
- Security patching
- Защита Linux-сервера. Что сделать в первую очередь
- Содержание
- Нерутовый юзер
- Ключи вместо паролей SSH
- Файрвол
- Fail2Ban
- Автоматические обновления безопасности
- Смена портов по умолчанию
- На правах рекламы
Ubuntu Security:
Security and compliance for the full stack
Ubuntu is more than just Linux, patching security vulnerabilities from kernel to applications and providing support and managed services for open source across multi-cloud environments.
Get the full Ubuntu security story through our security webinar series and see how our teams are securing all your open source, from cloud to edge.
Engineering series
This webinar series is for DevSecOps, DevOps, Security, Systems and Cloud Engineers to dig into security best practices, tooling demos and more from the Ubuntu Security Team.
FIPS certification and CIS compliance with Ubuntu
Learn about Ubuntu CIS and FIPS certified components to enable operating under compliance regimes like FedRAMP, HIPAA, PCI and ISO. Get all of your compliance questions answered to ensure you and your team are, and remain, compliant.
Best practices for securing open source
In this webinar learn about the common security and compliance issues with open source, five best practices the Ubuntu Security Team implements and how you can ensure the security integrity of your Ubuntu systems.
Securing Linux Machines with AppArmor
AppArmor provides a crucial layer of security around applications. By providing the capability to allowlist an application’s permissible actions, AppArmor enables administrators to apply the principle of least privilege to applications.
Management ‘big-picture’ series
This webinar series is for CSO, CISO, VPs and Senior Security Engineers and management to find solutions to big picture infrastructure security and management problems.
Securing open source across multi-cloud environments
Join this webinar to see how you can ensure performant open source in production environments and achieve maximum availability by reducing downtime and providing access to high and critical CVE fixes.
Furthermore, learn how Ubuntu helps organisations remain compliant with government and industry standards and regulations, including Common Criteria EAL2 with FIPS 140-2 Level 1 certified crypto modules.
How to manage risk with secure managed service providers
Many organisations utilise managed service providers for IT infrastructure and application performance and reliability at scale. With current economic times forcing companies to also rely on outsourcing to reduce costs with infrastructure and app operations, it is critical to ensure standards of excellence are met and exceeded.
Learn common issues companies face with MSPs and the standards and control objects that should be met with a certified MSP provider.
Security, Cloud Native & Confidential Computing on IBM Z & LinuxONE with 20.04
With constant threats of cyber attacks and data breaches, now more than ever there is a need for workload isolation, data encryption, trusted execution environments and other security practices and tools to protect systems and containers.
In this webinar, learn how Ubuntu enables Confidential Computing and IBM Z & LinuxONE capabilities to secure cloud service providers and public cloud consumers.
Ubuntu Core: A cybersecurity analysis
We provide substantial documentation and content to share and support the Ubuntu Core architecture and approach, but we don’t want anyone to have to take our word for it when choosing Ubuntu: We brought in Rule4 for an independent, third-party review of Ubuntu Core’s security architecture controls.
Compliance tech & tooling
This webinar series is for those operating in heavily-regulated industries looking to meet FedRAMP, HIPAA, PCI and ISO compliance regimes.
FIPS certification and CIS compliance with Ubuntu
Learn about Ubuntu CIS and FIPS certified components to enable operating under compliance regimes like FedRAMP, HIPAA, PCI and ISO. Get all of your compliance questions answered to ensure you and your team are, and remain, compliant.
Securing open source across multi-cloud environments
Join this webinar to see how you can ensure performant open source in production environments and achieve maximum availability by reducing downtime and providing access to high and critical CVE fixes.
Furthermore, learn how Ubuntu helps organisations remain compliant with government and industry standards and regulations, including Common Criteria EAL2 with FIPS 140-2 Level 1 certified crypto modules.
Ubuntu Pro FIPS on AWS
This webinar introduces our FIPS certified Ubuntu Pro images available now on AWS to enable operating under compliance regimes like FedRAMP, HIPAA, PCI and ISO. Register to put your FIPS public cloud compliance concerns at ease.
Ubuntu Pro FIPS on Azure
This webinar introduces our FIPS certified Ubuntu Pro images available now on Microsoft Azure to enable operating under compliance regimes like FedRAMP, HIPAA, PCI and ISO. Register to learn how you can get compliance made easy on Azure.
IoT & Device security
This webinar series is for those interested in ensuring the security of IoT devices.
Securing Linux machines with AppArmor
AppArmor provides a crucial layer of security around applications. By providing the capability to allowlist an application’s permissible actions, AppArmor enables administrators to apply the principle of least privilege to applications.
Ubuntu Core: A cybersecurity analysis
We provide substantial documentation and content to share and support the Ubuntu Core architecture and approach, but we don’t want anyone to have to take our word for it when choosing Ubuntu: We brought in Rule4 for an independent, third-party review of Ubuntu Core’s security architecture controls.
Multi-cloud infrastructure security
This webinar series is for those interested in securing the full stack, from private and public cloud infrastructure to applications.
Securing open source across multi-cloud environments
Join this webinar to see how you can ensure performant open source in production environments and achieve maximum availability by reducing downtime and providing access to high and critical CVE fixes.
Furthermore, learn how Ubuntu helps organisations remain compliant with government and industry standards and regulations, including Common Criteria EAL2 with FIPS 140-2 Level 1 certified crypto modules.
Security, Cloud Native & Confidential Computing on IBM Z & LinuxONE with 20.04
With constant threats of cyber attacks and data breaches, now more than ever there is a need for workload isolation, data encryption, trusted execution environments and other security practices and tools to protect systems and containers.
In this webinar, learn how Ubuntu enables Confidential Computing and IBM Z & LinuxONE capabilities to secure cloud service providers and public cloud consumers.
Securing public cloud
This webinar series is for those interested in compliance and security for their AWS and Azure public cloud instances.
Ubuntu Pro FIPS on AWS
This webinar introduces our FIPS certified Ubuntu Pro images available now on AWS to enable operating under compliance regimes like FedRAMP, HIPAA, PCI and ISO. Register to put your FIPS public cloud compliance concerns at ease.
Ubuntu Pro FIPS on Azure
This webinar introduces our FIPS certified Ubuntu Pro images available now on Microsoft Azure to enable operating under compliance regimes like FedRAMP, HIPAA, PCI and ISO. Register to learn how you can get compliance made easy on Azure.
Securing open source across multi-cloud environments
Join this webinar to see how you can ensure performant open source in production environments and achieve maximum availability by reducing downtime and providing access to high and critical CVE fixes.
Furthermore, learn how Ubuntu helps organisations remain compliant with government and industry standards and regulations, including Common Criteria EAL2 with FIPS 140-2 Level 1 certified crypto modules.
Security patching
This webinar series is for those interested in ensuring open source systems are secure with patch management and tooling demos and best practices.
Best practices for securing open source
In this webinar learn about the common security and compliance issues with open source, five best practices the Ubuntu Security Team implements and how you can ensure the security integrity of your Ubuntu systems.
Securing public cloud instances
Tracking high and critical CVEs on the public cloud can be difficult, but Ubuntu Pro images on AWS and Azure include security coverage for all software packages shipped with Ubuntu. These premium images are ideal for teams that have embraced open source and need to remain compliant with government and industry standards and regulations. Register for our upcoming webinars and be confident when rolling out packages to production with Ubuntu Pro, and Ubuntu Pro FIPS images
Источник
Защита Linux-сервера. Что сделать в первую очередь
Habib M’henni / Wikimedia Commons, CC BY-SA
В наше время поднять сервер на хостинге — дело пары минут и нескольких щелчков мыши. Но сразу после запуска он попадает во враждебную среду, потому что открыт для всего интернета как невинная девушка на рокерской дискотеке. Его быстро нащупают сканеры и обнаружат тысячи автоматически скриптовых ботов, которые рыскают по сети в поисках уязвимостей и неправильных конфигураций. Есть несколько вещей, которые следует сделать сразу после запуска, чтобы обеспечить базовую защиту.
Содержание
Нерутовый юзер
Первым делом нужно завести для себя нерутового юзера. Дело в том, что у пользователя root абсолютные привилегии в системе, а если разрешить ему удалённое администрирование, то вы сделаете половину работы для хакера, оставив для него валидный username.
Поэтому нужно завести другого юзера, а для рута отключить удалённое администрирование по SSH.
Новый пользователь заводится командой useradd :
Затем для него добавляется пароль командой passwd :
Наконец, этого пользователя нужно добавить в группу, которая имеет право выполнять команды с повышением привилегий sudo . В зависимости от дитрибутива Linux, это могут быть разные группы. Например, в CentOS и Red Hat юзера добавляют в группу wheel :
В Ubuntu он добавляется в группу sudo :
Ключи вместо паролей SSH
Брутфорс или утечка паролей — стандартный вектор атаки, так что аутентификацию по паролям в SSH (Secure Shell) лучше отключить, а вместо неё использовать аутентификацию по ключам.
Есть разные программы для реализации протокола SSH, такие как lsh и Dropbear, но самой популярной является OpenSSH. Установка клиента OpenSSH на Ubuntu:
Установка на сервере:
Запуск демона SSH (sshd) на сервере под Ubuntu:
Автоматический запуск демона при каждой загрузке:
Нужно заметить, что серверная часть OpenSSH включает в себя клиентскую. То есть через openssh-server можно подключаться к другим серверам. Более того, со своей клиентской машины вы можете запустить SSH-туннель с удалённого сервера на сторонний хост, и тогда сторонний хост будет считать удалённый сервер источником запросов. Очень удобная функция для маскировки своей системы. Подробнее см. статью «Практические советы, примеры и туннели SSH».
На клиентской машине обычно нет смысла ставить полноценный сервер, чтобы не допускать возможность удалённого подключения к компьютеру (в целях безопасности).
Итак, для своего нового юзера сначала нужно сгенерировать ключи SSH на компьютере, с которого вы будете заходить на сервер:
Публичный ключ хранится в файле .pub и выглядит как строка случайных символов, которые начинаются с ssh-rsa .
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ3GIJzTX7J6zsCrywcjAM/7Kq3O9ZIvDw2OFOSXAFVqilSFNkHlefm1iMtPeqsIBp2t9cbGUf55xNDULz/bD/4BCV43yZ5lh0cUYuXALg9NI29ui7PEGReXjSpNwUD6ceN/78YOK41KAcecq+SS0bJ4b4amKZIJG3JWm49NWvoo0hdM71sblF956IXY3cRLcTjPlQ84mChKL1X7+D645c7O4Z1N3KtL7l5nVKSG81ejkeZsGFzJFNqvr5DuHdDL5FAudW23me3BDmrM9ifUmt1a00mWci/1qUlaVFft085yvVq7KZbF2OP2NQACUkwfwh+iSTP username@hostname
Затем из-под рута создать на сервере директорию SSH в домашнем каталоге пользователя и добавить публичный ключ SSH в файл authorized_keys , используя текстовый редактор вроде Vim:
Наконец, установить корректные разрешения для файла:
и изменить владение на этого юзера:
На стороне клиента нужно указать местоположение секретного ключа для аутентификации:
Теперь можно залогиниться на сервер под именем юзера по этому ключу:
После авторизации можно использовать команду scp для копирования файлов, утилиту sshfs для удалённого примонтирования файловой системы или директорий.
Желательно сделать несколько резервных копий приватного ключа, потому что если отключить аутентификацию по паролю и потерять его, то у вас не останется вообще никакой возможности зайти на собственный сервер.
Как упоминалось выше, в SSH нужно отключить аутентификацию для рута (по этой причине мы и заводили нового юзера).
На CentOS/Red Hat находим строку PermitRootLogin yes в конфигурационном файле /etc/ssh/sshd_config и изменяем её:
На Ubuntu добавляем строку PermitRootLogin no в конфигурационный файл 10-my-sshd-settings.conf :
После проверки, что новый юзер проходит аутентификацию по своему ключу, можно отключить аутентификацию по паролю, чтобы исключить риск его утечки или брутфорса. Теперь для доступа на сервер злоумышленнику необходимо будет достать приватный ключ.
На CentOS/Red Hat находим строку PasswordAuthentication yes в конфигурационном файле /etc/ssh/sshd_config и изменяем её следующим образом:
На Ubuntu добавляем строку PasswordAuthentication no в файл 10-my-sshd-settings.conf :
Инструкцию по подключению двухфакторной аутентификации по SSH см. здесь.
Файрвол
Файрвол гарантирует, что на сервер пойдёт только тот трафик по тем портам, которые вы напрямую разрешили. Это защищает от эксплуатации портов, которые случайно включились с другими сервисами, то есть сильно уменьшает поверхность атаки.
Перед установкой файрвола нужно убедиться, что SSH внесён в список исключений и не будет блокироваться. Иначе после запуска файрвола мы не сможем подключиться к серверу.
С дистрибутивом Ubuntu идёт Uncomplicated Firewall (ufw), а с CentOS/Red Hat — firewalld.
Разрешение SSH в файрволе на Ubuntu:
На CentOS/Red Hat используем команду firewall-cmd :
После этой процедуры можно запустить файрвол.
На CentOS/Red Hat запускаем сервис systemd для firewalld:
На Ubuntu используем такую команду:
Fail2Ban
Сервис Fail2Ban анализирует логи на сервере и подсчитывает количество попыток доступа с каждого IP-адреса. В настройках указаны правила, сколько попыток доступа разрешено за определённый интервал — после чего данный IP-адрес блокируется на заданный отрезок времени. Например, разрешаем 5 неудачных попыток аутентификации по SSH в промежуток 2 часа, после чего блокируем данный IP-адрес на 12 часов.
Установка Fail2Ban на CentOS и Red Hat:
Установка на Ubuntu и Debian:
В программе два конфигурационных файла: /etc/fail2ban/fail2ban.conf и /etc/fail2ban/jail.conf . Ограничения для бана указываются во втором файле.
Джейл для SSH включён по умолчанию с дефолтными настройками (5 попыток, интервал 10 минут, бан на 10 минут).
Кроме SSH, Fail2Ban может защищать и другие сервисы на веб-сервере nginx или Apache.
Автоматические обновления безопасности
Как известно, во всех программах постоянно находят новые уязвимости. После публикации информации эксплоиты добавляются в популярные эксплоит-паки, которые массово используются хакерами и подростками при сканировании всех серверов подряд. Поэтому очень важно устанавливать обновления безопасности как только они появляются.
На сервере Ubuntu в конфигурации по умолчанию включены автоматические обновления безопасности, так что дополнительных действий не требуется.
На CentOS/Red Hat нужно установить приложение dnf-automatic и включить таймер:
Смена портов по умолчанию
SSH был разработан в 1995 году для замены telnet (порт 23) и ftp (порт 21), поэтому автор программы Тату Илтонен выбрал порт 22 по умолчанию, и его утвердили в IANA.
Естественно, все злоумышленники в курсе, на каком порту работает SSH — и сканируют его вместе с остальными стандартными портами, чтобы узнать версию программного обеспечения, для проверки стандартных паролей рута и так далее.
Смена стандартных портов — обфускация — в несколько раз сокращает объём мусорного трафика, размер логов и нагрузку на сервер, а также сокращает поверхность атаки. Хотя некоторые критикуют такой метод «защиты через неясность» (security through obscurity). Причина в том, что эта техника противопоставляется фундаментальной архитектурной защите. Поэтому, например, Национальный институт стандартов и технологий США в «Руководстве по безопасности сервера» указывает необходимость открытой серверной архитектуры: «Безопасность системы не должна полагаться на скрытность реализации её компонентов», — сказано в документе.
Теоретически, смена портов по умолчанию противоречит практике открытой архитектуры. Но на практике объём вредоносного трафика действительно сокращается, так что это простая и эффективная мера.
Номер порта можно настроить, изменив директиву Port 22 в файле конфигурации /etc/ssh/sshd_config. Он также указывается параметром -p
в sshd. Клиент SSH и программы sftp тоже поддерживают параметр -p
можно использовать для указания номера порта при подключении с помощью команды ssh в Linux. В sftp и scp используется параметр -P
(заглавная P). Указание из командной строки переопределяет любое значение в файлах конфигурации.
Если серверов много, почти все эти действия по защите Linux-сервера можно автоматизировать в скрипте. Но если сервер только один, то лучше вручную контролировать процесс.
На правах рекламы
Закажи и сразу работай! Создание VDS любой конфигурации и с любой операционной системой в течение минуты. Максимальная конфигурация позволит оторваться на полную — 128 ядер CPU, 512 ГБ RAM, 4000 ГБ NVMe. Эпичненько 🙂
Источник