One place for hosting & domains

      April 2020

      MDR Requires Visibility and Vigilance


      Today we are pleased to welcome guest blogger Tony Bradley, Senior Manager of Content Marketing for Alert Logic, INAP’s trusted managed security partner and expert in cloud security for financial services customers.
      – Wendy Williams, Product Manager, INAP

      In an increasingly complex business environment, cybersecurity challenges have become more urgent as organizations accelerate their digital transformation. Rapid changes in technology and an ever-expanding threat landscape add extra strain to businesses that are already challenged to focus on productivity and customer needs. Working with a managed detection and response (MDR) provider is an effective way to address cybersecurity, but there is confusion about the value that MDR delivers, and the capabilities that solid MDR requires. Most importantly, effective MDR requires comprehensive visibility and 24/7 monitoring.

      No matter how large or small an organization is, where it’s located, or what industry it is in, there are some simple truths when it comes to cybersecurity: You can’t protect assets you’re not even aware of, and you can’t do security part-time.

      Comprehensive Visibility

      Most attacks are not targeted efforts to specifically compromise a given company or network. They use automated utilities that can identify, and then exploit,  vulnerable platforms and services. It’s the same with attacks against end users, where many of the most successful malware campaigns are highly automated, even where social engineering is involved. As a result, most systems and users are always potential targets, illustrating the need for insight.

      Even with the right preventative tools and processes in place, organizations are still vulnerable without comprehensive visibility. No CIO or security team will ever assert that they are 100 percent secure, and activities like vulnerability scans, timely patching and network monitoring are great, but it will be the systems you don’t patch or monitor that become your Achilles’ heel. Without a holistic view of the environment, there are likely devices on your network with open ports or critical vulnerabilities waiting to be discovered and exploited by attackers. Even if everything is locked tight today, without full visibility, that level of protection can change quickly—and without warning—if there are configuration errors or new vulnerabilities discovered in deployed software.

      When partnering with an outside vendor for security, it is important that the vendor has an understanding of your environment and your business objectives to ensure they understand the scope and context of an event. They must be able to identify new systems, detect vulnerabilities and inform your patching strategy and security best practices to protect you.

      Constant Vigilance

      Another crucial capability of effective MDR is 24/7 monitoring. Comprehensive visibility is imperative, but attackers don’t keep office hours. Cyber attackers live and operate around the world—when it’s 3 a.m. for you, it’s 1 p.m. somewhere else. Equally important, as mentioned above, most campaigns and tools are automated and executing around the clock.

      Sophisticated attacks do not occur as simple moment-in-time events, either. A campaign or exploit can be triggered at any time, and different elements of a complex campaign may execute at delayed time intervals designed to evade triggering alerts and avoid detection. Effective managed detection and response requires 24/7 effort to gather and analyze intelligence and expert insight from security professionals to continuously monitor the environment and ensure quick response to suspicious activity and security incidents.

      Learn More

      Join Alert Logic and INAP on May 5 to learn more. Jack Danahy, Chief Evangelist for Alert Logic, Jennifer Curry, Senior Vice President, Global Cloud Services for INAP, and Fran Howarth, Practice Leader, Security for Bloor Research will host a webcast titled, “Are You Providing Always-on, Pervasive Coverage and Visibility to Keep Your Entire Infrastructure Environment Safe and Secure?”

      Click here to register.

       

      Tony Bradley

      About the Author

      Tony Bradley is Senior Manager of Content Marketing for Alert Logic. Tony worked in the trenches as a network administrator and security consultant before shifting to the marketing and writing side of things. He is an 11-time Microsoft MVP in security and cloud and has been a CISSP-ISSAP since 2002. Tony has authored or co-authored a dozen books on IT and IT security topics, and is a prolific contributor to online media sites such as Forbes and DevOps.com.

      Wendy Williams
      • Product Manager, Private Cloud and Security Services


      READ MORE



      Source link

      Cómo instalar Python 3 y configurar un entorno de programación en CentOS 8


      Introducción

      Como lenguaje de programación versátil, Python puede usarse para muchos proyectos diferentes de programación. Inspirado en el grupo de comediantes británicos Monty Python, el equipo de desarrollo detrás de Python quería crear un lenguaje que fuese divertido de usar. Es un lenguaje cada vez más popular con muchas aplicaciones diferentes. Python es una gran opción para desarrolladores principiantes y experimentados.

      Este tutorial lo guiará en la instalación de Python 3 en un servidor en la nube CentOS 8 y en la configuración de un entorno de programación mediante la línea de comandos.

      Requisitos previos

      Necesitará un servidor CentOS 8 con una cuenta non-root superuser.

      Para configurarlo, siga nuestra Guía de configuración inicial de servidores para CentOS 8.

      Paso 1: Preparar el sistema

      Antes de comenzar con la instalación, nos aseguraremos de actualizar las aplicaciones predeterminadas del sistema para garantizar que tenemos disponibles las versiones más recientes.

      Usaremos la herramienta de gestor de paquetes de código abierto DNF, que significa Dandified YUM, la versión de próxima generación del Yellowdog Updater, Modified (es decir, Yum). DNF es un gestor de paquetes que, ahora, es el gestor de paquetes predeterminado para los sistemas Linux basados en Red Hat como CentOS. Le permitirá instalar, actualizar y eliminar paquetes de software en su servidor.

      Primero nos aseguraremos de que nuestro administrador de paquetes está actualizado ejecutando este comando:

      El indicador -y se usa para alertar al sistema de que sabemos que estamos realizando cambios, lo que evita que el terminal nos pida confirmar.

      Una vez que tengamos todo instalado, nuestra configuración estará lista y podremos instalar Python 3.

      Paso 2: Instalar y configurar Python 3

      CentOS se deriva de RHEL (Red Hat Enterprise Linux), que tiene la estabilidad como su enfoque principal. Debido a esto, las versiones probadas y estables de las aplicaciones son las que se encuentran más comúnmente en el sistema y en los paquetes descargables, de forma que, al usar el administrador de paquetes de CentOS, encontrará las versiones anteriores de Python, en vez de la versión más reciente.

      • sudo dnf install python3 -y

      Cuando se completa este proceso, podremos asegurarnos de que la instalación se realizó correctamente comprobando su número de versión con el comando python3:

      Con la versión de Python 3 correctamente instalada, obtendremos el siguiente resultado:

      Output

      Python 3.6.8

      A continuación, instalaremos las herramientas de desarrollo de CentOS, que se usan para crear y compilar software desde el código fuente:

      • sudo dnf -y groupinstall development

      Una vez instalado, veremos cómo configurar proyectos de desarrollo Python en la siguiente sección.

      Paso 3: Configurar un entorno virtual

      Con Python instalado y su sistema configurado, podemos crear nuestro entorno de programación con venv.

      Los entornos virtuales le permiten tener un espacio aislado en su equipo para proyectos de Python. Esto garantiza que cada uno de sus proyectos pueda tener su propio conjunto de dependencias que no alterará ninguno de sus otros proyectos.

      La configuración de un entorno de programación nos proporciona un mayor control sobre nuestros proyectos Python y sobre los diferentes paquetes y versiones. Esto tiene particular importancia al trabajar con paquetes de terceros.

      Puede configurar tantos entornos de programación Python como quiera. Cada entorno es básicamente un directorio o una carpeta en su servidor que tiene varias secuencias de comandos para que actúe como un entorno.

      Seleccione el directorio en el que quiera disponer sus entornos de programación de Python o cree un nuevo directorio con mkdir, como a continuación:

      • mkdir environments
      • cd environments

      Una vez que se encuentre en el directorio en el que desea que estén los entornos, puede crear uno ejecutando el siguiente comando: Debería usar un nombre de entorno que tenga sentido para usted; aquí lo llamaremos my_env.

      En este caso, el entorno es my_env, y este nuevo directorio contiene algunos elementos que podemos mostrar si usamos el comando ls en ese directorio:

      Output

      bin include lib lib64 pyvenv.cfg

      Juntos, estos archivos hacen que su trabajo Python esté aislado del contenido más amplio de su equipo local, de forma que los archivos del sistema y los del proyecto no se mezclen. Esta es una práctica recomendada para el control de versiones y para garantizar que cada uno de sus proyectos tenga acceso a los paquetes particulares que necesita.

      Para usar este entorno, debe activarlo escribiendo el siguiente comando que invoca la secuencia de comandos activate en el directorio bin:

      • source my_env/bin/activate

      Su símbolo del sistema ahora llevará como prefijo el nombre de su entorno; en este caso, el nombre es my_env.

      Este prefijo nos permite saber que el entorno my_env está actualmente activo, lo que significa que, cuando creemos programas aquí, estos usarán solo la configuración y los paquetes de este entorno en particular.

      El administrador de paquetes de Python pip ya está instalado. Usaremos pip, una herramienta para usar con Python, para instalar y administrar los paquetes de programación que deseemos usar en nuestros proyectos de desarrollo. Puede instalar paquetes Python escribiendo:

      • sudo pip install package_name

      Aquí, package_name puede referirse a cualquier paquete o biblioteca de Python, como Django para el desarrollo web o NumPy para la informática científica. Por lo tanto, si desea instalar NumPy, puede hacerlo con el comando pip install numpy.

      Nota: Dentro del entorno virtual de Python 3 puede usar el comando python, en vez de python3, y pip, en vez de pip3. Si usa Python 3 o pip3 en su equipo fuera de un entorno, deberá usar los comandos python3 y pip3 exclusivamente.

      Una vez completados estos pasos, su entorno virtual estará listo para usarse.

      Paso 4: Crear un “Hello, World!” Programa

      Ahora que hemos configurado nuestro entorno virtual, crearemos un programa tradicional de “Hello, World!“ para probar nuestra instalación. Esto garantizará que nuestro entorno está funcionando, y nos dará la oportunidad de familiarizarnos más con Python.

      Para ello, abriremos un editor de texto de línea de comandos como vi y crearemos un nuevo archivo:

      Una vez que el archivo de texto se abra en la ventana de nuestro terminal, tendremos que escribir i para entrar en el modo de inserción y, a continuación, podremos escribir nuestro primer programa:

      print("Hello, World!")
      

      Ahora pulse ESC para salir del modo de inserción. A continuación, escriba :x y, luego, ENTER para guardar y salir del archivo.

      Ahora estamos listos para ejecutar nuestro programa:

      El programa hello.py que acaba de crear debería hacer que su terminal genere el siguiente resultado:

      Output

      Hello, World!

      Para salir del entorno, escriba el comando deactivate . Con esto volverá a su directorio original.

      Conclusión

      ¡Felicitaciones! En este momento, tiene un entorno de programación Python 3 configurado en su servidor CentOS 8 y ya puede iniciar un proyecto de codificación.

      Con su equipo listo para el desarrollo de software, puede continuar aprendiendo más sobre cómo codificar en Python siguiendo nuestra serie Cómo codificar en Python, o descargando el libro electrónico gratuito Cómo codificar en Python.

      Para explorar los proyectos de aprendizaje automático en concreto, consulte nuestro libro electrónico Proyectos de aprendizaje automático de Python.



      Source link

      Установка программного обеспечения в кластерах Kubernetes с помощью диспетчера пакетов Helm 3


      Введение

      Helm — это диспетчер пакетов для Kubernetes, который облегчает для разработчиков и операторов настройку и развертывание приложений в кластерах Kubernetes.

      В этом обучающем руководстве мы настроим Helm 3 и научимся использовать его для установки, изменения конфигурации, отката изменений и последующего удаления экземпляра приложения Kubernetes Dashboard. Dashboard — это официальный графический пользовательский веб-интерфейс Kubernetes.

      С общим описанием Helm и его экосистемы пакетов можно ознакомиться в статье Знакомство с Helm.

      Предварительные требования

      В ходе данного обучающего руководства вам потребуется следующее:

      • Кластер Kubernetes с включенным контролем доступа на основе ролей (RBAC). Helm 3.1 поддерживает кластеры версий с 1.14 по 1.17. Дополнительную информацию можно найти на странице выпусков Helm.
      • Инструмент командной строки kubectl, установленный на локальном компьютере и настроенный для подключения к вашему кластеру. Дополнительную информацию об установке kubectl можно найти в официальной документации.

      Вы можете протестировать подключение с помощью следующей команды:

      Отсутствие ошибок означает, что вы успешно подключились к кластеру. Если у вас есть доступ к нескольким кластерам с kubectl, убедитесь, что вы выбрали правильный контекст кластера:

      • kubectl config get-contexts

      Output

      CURRENT NAME CLUSTER AUTHINFO NAMESPACE * do-fra1-helm3-example do-fra1-helm3-example do-fra1-helm3-example-admin

      В этом примере символ звездочки (*) показывает, что мы подключены к кластеру do-fra1-helm3-example. Чтобы переключаться между запущенными кластерами:

      • kubectl config use-context context-name

      Когда вы будете подключены к нужному кластеру, перейдите к шагу 1 для начала установки Helm.

      Шаг 1 — Установка Helm

      Сначала мы установим утилиту командной строки helm на локальном компьютере. Helm предоставляет скрипт, который отвечает за процесс установки на MacOS, Windows или Linux.

      Перейдите в директорию с возможностью записи и загрузите скрипт из репозитория Helm на GitHub:

      • cd /tmp
      • curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3

      Сделайте скрипт исполняемым с помощью команды chmod:

      Вы можете воспользоваться текстовым редактором, чтобы открыть скрипт и изучить его, чтобы убедиться в его безопасности. Когда вы будете удовлетворены, запустите его:

      Возможно, вам придется ввести пароль. Введите его и нажмите ENTER, чтобы продолжить.

      Итоговый результат будет выглядеть следующим образом:

      Output

      Downloading https://get.helm.sh/helm-v3.1.2-linux-amd64.tar.gz Preparing to install helm into /usr/local/bin helm installed into /usr/local/bin/helm

      Теперь мы установили Helm и готовы использовать его для установки первого чарта.

      Шаг 2 — Установка чарта Helm

      Пакеты программного обеспечения Helm называются чартами. Курируемый репозиторий чартов под названием stable в основном содержит распространенные чарты, которые можно посмотреть в их репозитории на GitHub. Helm не имеет соответствующих предварительных настроек, поэтому добавление следует выполнять вручную. Далее в качестве примера мы установим панель Kubernetes Dashboard.

      Добавьте репозиторий stable, запустив следующую команду:

      • helm repo add stable https://kubernetes-charts.storage.googleapis.com

      Результат будет выглядеть следующим образом:

      Output

      "stable" has been added to your repositories

      Затем используйте helm для установки пакета kubernetes-dashboard из репозитория stable:

      • helm install dashboard-demo stable/kubernetes-dashboard --set rbac.clusterAdminRole=true

      Параметр --set позволяет задавать переменные чарта, с помощью которых вы можете настраивать конфигурацию чарта. Здесь мы задаем для переменной rbac.clusterAdminRole значение true, чтобы предоставить Kubernetes Dashboard доступ ко всему кластеру целиком.

      Вывод будет выглядеть следующим образом:

      Output

      NAME: dashboard-demo LAST DEPLOYED: Tue Mar 31 15:04:19 2020 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: ...

      Обратите внимание на строку NAME, выделенную в примере вывода выше. В данном случае мы указали имя dashboard-demo. Это имя относится к выпуску. Выпуск Helm — это отдельное развертывание одного чарта с конкретной конфигурацией. Вы можете развернуть несколько выпусков одного чарта, используя отдельные конфигурации для каждого выпуска.

      Вы можете вывести список всех выпусков в кластере:

      Результат будет выглядеть примерно следующим образом:

      Output

      NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION dashboard-demo default 1 2020-03-31 15:04:19.324774799 +0000 UTC deployed kubernetes-dashboard-1.10.1 1.10.1

      Теперь вы можете использовать kubectl, чтобы подтвердить развертывание в кластере новой службы:

      Итоговый результат будет выглядеть следующим образом:

      Output

      NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE dashboard-demo-kubernetes-dashboard ClusterIP 10.245.115.214 <none> 443/TCP 4m44s kubernetes ClusterIP 10.245.0.1 <none> 443/TCP 19m

      Обратите внимание, что по умолчанию имя службы выпуска представляет собой комбинацию имени выпуска Helm и названия чарта.

      Мы развернули приложение и теперь используем Helm для изменения его конфигурации и обновления развертывания.

      Шаг 3 — Обновление выпуска

      Команду helm upgrade можно использовать для обновления выпуска с использованием нового или обновленного чарта или для обновления параметров (переменных) конфигурации.

      Мы внесем простое изменение в выпуск dashboard-demo, чтобы продемонстрировать процесс обновления и отката. Измените имя службы dashboard на kubernetes-dashboard вместо dashboard-demo-kubernetes-dashboard.

      Чарт kubernetes-dashboard предоставляет возможность настройки fullnameOverride для контроля имени службы. Чтобы переименовать выпуск, выполните команду helm upgrade со следующими параметрами:

      • helm upgrade dashboard-demo stable/kubernetes-dashboard --set fullnameOverride="kubernetes-dashboard" --reuse-values

      Благодаря аргументу --reuse-values ранее заданные переменные чарта не сбрасываются в процессе обновления.

      Вы увидите вывод, аналогичный выводу на шаге первоначальной команды helm install.

      Проверьте, отражают ли ваши службы Kubernetes обновленные значения:

      Результат будет выглядеть следующим образом:

      Output

      NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.245.0.1 <none> 443/TCP 38m kubernetes-dashboard ClusterIP 10.245.49.157 <none> 443/TCP 8s

      Обратите внимание, что имя службы было обновлено и получило новое значение.

      Примечание. На данный момент вы можете загрузить приложение Kubernetes Dashboard в браузере и проверить его работоспособность. Для этого нужно запустить следующую команду:

      Команда создает прокси, который позволяет вам получить доступ к удаленным ресурсам кластера с локального компьютера. В результате выполнения вышеперечисленных команд служба dashboard теперь имеет имя kubernetes-dashboard и работает в пространстве имен default. Теперь вы можете получить доступ к панели управления по следующему URL-адресу:

      http://localhost:8001/api/v1/namespaces/default/services/https:kubernetes-dashboard:https/proxy/
      

      Инструкции по использованию панели управления выходят за пределы темы данного руководства, но вы можете ознакомиться с официальной документацией по Kubernetes Dashboard для получения дополнительной информации.

      Теперь посмотрим на возможности отката и удаления выпусков в Helm.

      Шаг 4 — Откат и удаление выпуска

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

      Используйте команду helm list для просмотра выпуска:

      Вывод должен выглядеть так:

      Output

      NAME REVISION UPDATED STATUS CHART NAMESPACE dashboard-demo 2 Wed Aug 8 20:13:15 2018 DEPLOYED kubernetes-dashboard-0.7.1 default

      В столбце REVISION теперь говорится, что это вторая редакция.

      Используйте команду helm rollback для возврата к первой редакции:

      • helm rollback dashboard-demo 1

      Вы должны получить следующий вывод, показывающий, что откат изменений выполнен успешно:

      Output

      Rollback was a success! Happy Helming!

      В данный момент, если вы запустите kubectl get services еще раз, вы заметите, что имя службы изменилось и вернулось к предыдущему значению. Helm выполнил повторное развертывание приложения с конфигурацией 1-й редакции.

      Выпуски Helm можно удалять с помощью команды helm delete:

      • helm delete dashboard-demo

      Результат будет выглядеть следующим образом:

      Output

      release "dashboard-demo" uninstalled

      Вы можете попробовать вывести выпуски Helm в виде списка:

      Вы увидите, что их нет:

      Output

      NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION

      Теперь выпуск был действительно удален и вы можете использовать освободившееся имя выпуска.

      Заключение

      В этом обучающем руководстве мы установили инструмент командной строки helm и изучили возможность установки, обновления, отката и удаления чартов и выпусков Helm посредством управления чартом kubernetes-dashboard.

      Дополнительную информацию о Helm и чартах Helm см. в официальной документации по Helm.



      Source link