По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Может так случиться, что вы забудете или потеряете свой root пароль MySQL, но не стоит отчаиваться – его можно сбросить и восстановить доступ. Что нам нужно знать так это то, что пароль хранится в таблице пользователей. Это означает, что нам нужно найти способ обойти аутентификацию MySQL, чтобы мы могли обновить запись пароля.
К счастью, это легко сделать, и это руководство проведет вас через процесс восстановления или сброса пароля root в версии MySQL 8.0.
Согласно документации по MySQL, существует два способа сброса корневого пароля MySQL и в этой статье мы рассмотрим оба.
Сброс MySQL root пароля с использованием –init-file
Один из способов сброса пароля root - создать локальный файл, а затем запустить службу MySQL, используя параметр --init-file, как показано ниже:
# vim /home/user/init-file.txt
Важно убедиться, что файл доступен для чтения пользователю mysql. В этот файл вставьте следующее и измените «new_password» на пароль, который вы хотите использовать:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
Теперь убедитесь, что служба MySQL остановлена. Вы можете сделать следующее:
# systemctl stop mysqld.service # для дистрибутивов использующих systemd
# /etc/init.d/mysqld stop # для дистрибутивов использующих init
Далее запустите следующее:
# mysqld --user=mysql --init-file=/home/user/init-file.txt --console
Это запустит службу MySQL и во время процесса выполнит созданный вами файл инициализации, и, следовательно, пароль для пользователя root будет обновлен. Обязательно удалите файл после сброса пароля.
После этого обязательно остановите сервер и запустите его как обычно.
# systemctl stop mysqld.service # для дистрибутивов использующих system
# systemctl restart mysqld.service # для дистрибутивов использующих systemd
# /etc/init.d/mysqld stop # для дистрибутивов использующих init
# /etc/init.d/mysqld restart # для дистрибутивов использующих init
Теперь вы должны иметь возможность подключиться к серверу MySQL от имени пользователя root, используя новый пароль.
# mysql -u root -p
Сброс MySQL root пароля с использованием –skip-grant-tables
Второй вариант - запустить службу MySQL с параметром --skip-grant-tables. Это менее безопасно, так как пока служба запускается таким образом, все пользователи могут подключаться без пароля.
Если сервер запущен --skip-grant-tables, опция для --skip-network активируется автоматически, поэтому удаленные подключения не будут доступны.
Сначала убедитесь, что служба MySQL остановлена.
# systemctl stop mysqld.service # для дистрибутивов использующих systemd
# /etc/init.d/mysqld stop # для дистрибутивов использующих init
Затем запустите службу с помощью следующей опции.
# mysqld --skip-grant-tables --user=mysql &
Теперь вы можете подключиться к серверу MySQL, просто используя:
# mysql
Поскольку управление учетными записями отключается при запуске службы с параметром --skip-grant-tables, нам придется перезагрузить гранты. Таким образом, мы сможем изменить пароль позже:
# FLUSH PRIVILEGES;
Теперь вы можете выполнить следующий запрос, чтобы обновить пароль. Обязательно замените «new_password» реальным паролем, который вы хотите использовать.
# ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';
Теперь остановите сервер MySQL и запустите его как обычно.
# systemctl stop mysqld.service # для дистрибутивов использующих system
# systemctl restart mysqld.service # для дистрибутивов использующих systemd
# /etc/init.d/mysqld stop # для дистрибутивов использующих init
# /etc/init.d/mysqld restart # для дистрибутивов использующих init
Теперь вы сможете подключиться с новым паролем:
# mysql -u root –p
Пайплайн CI/CD – это основа разработки программного обеспечения и один из основных компонентов конвейера DevOps. Процесс непрерывной интеграции/доставки (или развертывания) определяет ряд шагов, которые специалисты по программному обеспечению должны выполнить для создания новых программ.
Несмотря на то, что CI/CD повышает эффективность производства, этот процесс пренебрегает безопасностью. Базы данных, проприетарный код, учетные данные, ключи, учетные цифровые идентификационные данные и пароли, используемые в производственных и тестовых средах, также являются угрозой для безопасности.
Данная статья рассказывает о безопасности CI/CD, проблемах и рекомендациях по обеспечению безопасности производственного конвейера программного обеспечения.
Что такое безопасность CI/CD?
Безопасность CI/CD – это определенные шаги по защите конвейера автоматизированного производства программного обеспечения. И хотя общая безопасность производства программного обеспечения важна, линия доставки обновлений и устранений ошибок в программном обеспечении также должна быть надежной.
Пайплайн (или конвейер) CI/CD – это поток автоматической интеграции и доставки (или развертывания) приложений. Метод реализует обновления и исправления ошибок в соответствии с потребностями клиентов. Как итог, основное внимание уделяется полной автоматизации доставки программного обеспечения для непрерывного производства.
Однако в конвейере CI/CD упускается из виду его безопасность. Путем использования автоматизации тестирования и постоянного мониторинга администраторы безопасности должны проводить оценку уязвимостей на различных этапах разработки программного обеспечения.
Общие проблемы безопасности в конвейере CI/CD
Существует множество проблем безопасности, которые следует учитывать при защите конвейера CI/CD:
Серьезной проблемой является соблюдение требований к данным в непроизводственной среде. Чем больше людей работает над одним проектом, тем больше появляется возможных точек нарушения безопасности.
Необходимо выработать четко определенные правила контроля доступа и политики паролей для всех пользователей. В случае компрометации должен существовать заранее подготовленный план реагирования на различные инциденты.
Автоматизация и оркестровка занимают немалую часть программного обеспечения и для них требуются множество единичных фрагментов программного кода.
Быстро меняющаяся среда с постоянными обновлениями оставляет большой простор для различного рода инцидентов и непреднамеренных компрометаций. Лучшей политикой безопасности здесь будет встраивание безопасности непосредственно в конвейер.
Рекомендации по обеспечению безопасности конвейера CI/CD
Наилучшие методы обеспечения безопасности CI/CD зависят от инфраструктуры DevOps. Ниже приведены десять основных руководств по защите конвейера при работе в среде CI/CD.
1. Моделирование угроз безопасности
Проведите исследование в области потенциальных угроз безопасности. Определите точки, где необходимо обеспечить дополнительные уровни безопасности, попробуйте смоделировать эти угрозы и разработайте упражнения для повышения уровня информированности о потенциальных проблемах безопасности.
Большинство угроз безопасности находятся в точках стыковки. Все, что подключается к конвейеру, должно регулярно исправляться и обновляться. Блокируйте любые устройства, не соответствующие требованиям безопасности.
2. Проверка безопасности до фиксации
Проводите проверки безопасности до фиксации кода в системе контроля версий. Большинство IDE предоставляют подключаемые модули безопасности и предупреждают об уязвимостях кода по мере его ввода.
Проводите независимую оценку работ неопытных разработчиков перед отправкой кода в Git. Используйте небольшие фрагменты программного кода и список контрольных вопросов, чтобы убедиться в том, что код соответствует всем протоколам и стандартам безопасности. Помимо этого, избегайте копирования и публикации ключей API, токенов и других конфиденциальных данных.
3. Проверяйте зафиксированный код
После фиксации кода проверьте его еще раз, чтобы убедиться в том, что все в порядке. Используйте инструменты статистического анализа кода, чтобы получить отчет об ошибках. Инструменты анализа не требуют, чтобы приложение было запущено, а многие их них вместе с отчетом предоставляют полезные советы.
Отправьте отчеты о сканировании кода в службу безопасности, чтобы узнать, требуется ли какая-либо доработка. Используйте системы отслеживания ошибок и регистрируйте результаты, чтобы вы могли убедиться, что все ошибки исправлены. Кроме того, проанализируйте историю Git на предмет подозрительных действий.
4. Защитите свой Git
Git – это приоритетная цель для хакеров. Убедитесь в том, что разработчики осведомлены о том, как использовать Git, и постоянно информируются о действиях компании.
Используйте файл .gitignore, чтобы исключить случайную фиксацию стандартных и сгенерированных кэшированных файлов. Имейте локально сохраненную и защищенную резервную копию
5. Проверяйте наличие уязвимостей в библиотеках с открытым исходным кодом
Библиотеки с открытым исходным кодом – это важный компонент при создании приложений. Однако программное обеспечение сторонних разработчиков может быть подвержено изменениям кода, что может косвенно повлиять на безопасность вашего приложения.
Обязательно анализируйте и сканируйте пакеты с открытым исходным кодом на наличие известных проблем безопасности. Используйте инструменты анализа композиции программного обеспечения для анализа стороннего программного обеспечения, компонентов или файлов.
И в конце пометьте все выявленные проблемы, чтобы сохранить качество кода на максимальном уровне.
6. Автоматизируйте обеспечение безопасности с помощью IaC
Инфраструктура, представленная как код (IaC) обеспечивает согласованные условия разработки и тестирования. В отличие от ручной настройки среды инструменты IaC, такие как Ansible, Terraform или Puppet, помогают автоматически обеспечивать безопасность инфраструктуры.
Дополнительное преимущество заключается в том, что IaC безупречно работает в цепочке инструментов DevOps. Постоянное тестирование конфигураций многократного применения и обеспечение исполнения установленных процедур гарантируют отличные производственные результаты и высокое качество программного обеспечения.
7. Мониторинг приложения после развертывания
После развертывания приложения постоянно сканируйте его и контролируйте с целью предотвратить любые угрозы. Мониторинг помогает отслеживать и устранять подозрительную активность на основе предоставляемых данных.
Используйте такие инструменты, как Grafana или Kibana, для создания интерактивных визуальных информационных панелей, чтобы получать уведомления о любых подозрительных действиях.
8. Распределите задачи и создайте ролевую модель доступа
Наделение пользователей правами доступа может замедлить и даже помешать процессу тестирования. Тем не менее, установление и применение ролевой модели доступа для выполнения только основных задач имеет решающее значение с точки зрения безопасности.
Когда дело доходит до Git, определите роли доступа для каждого репозитория и установите двухфакторную аутентификацию для каждого зафиксированного участка кода. Попробуйте применить систему разделения задач, чтобы обеспечить безопасность конвейера, сохраняя при этом непрерывную доставку.
9. Храните персональные данные в безопасности
Защитите все персональные данные, которые обеспечивают доступ к программному обеспечению и службам, такие как токены API, пароли, ключи SSH, ключи шифрования и т.д. Ненадежная защита персональных данных может дать возможность хакерам «нанести удар», что может привести к утечке данных и краже интеллектуальной собственности.
Поэтому используйте платформу управления ключами защиты для безопасного и автоматизированного доступа к ключам. Программное обеспечение обеспечивает использование учетных цифровых идентификационных данных только при явном запросе. Для управления несколькими сложными паролями используйте соответствующее программное обеспечение для управления паролями.
10. Наводите порядок
В среде CI/CD все процессы и задачи протекают быстро и без надлежащей очистки. Обязательно закрывайте все временные ресурсы, такие как виртуальные машины, контейнеры или процессы. Помимо этого, обеспечьте надлежащую безопасность в целом и удалите лишние утилиты и инструменты.
Заключение
Безопасность конвейера CI/CD – это процесс, который меняется от системы к системе. В данной статье была представлена процедура обеспечения безопасности конвейера CI/CD.
Сейчас вы точно прочувствуете важное команды screen. Бывало ли у вас такое, что вы выполняете (очень долго) команду в консоли - CLI на удаленной машине, будучи подключенным через SSH? Команда долго выполняется и близится к завершению как вдруг пропадает подключение, рвется SSH подключение и все, что вы делали - пропало?
Прости, что напомнили. Знаем, это болезненно. Что же, вытрем слезы. Для этих ситуаций есть команда screen о которой мы и поговорим.
Немножко теории
Так называемый screen это терминальный мультиплексор (нас тоже пугает это слово). Другими словами, оно дает нам возможность внутри действующей сессии открыть сколько угодно много виртуальных окон/терминалов. Что важно - процесс, запущенный внутри сессии через screen, будет продолжаться даже тогда, когда вы отключитесь от самой первой сессии.
Установка screen в Linux
Вообще, пакет screen предустановлен на большинстве современных Linux - дистров. Проверить можно командой:
screen --version
Screen version 4.00.03 (FAU) 23-Oct-06
Если случилось так, что у вас его нет - это можно быстро исправить простой установкой.
Установка screen в Ubuntu и Debian
apt install screen
Установка screen в CentOS и Fedora
yum install screen
Запуск screen в Linux
Чтобы запустить screen в консоли, просто наберите screen. Что может быть проще, не правда ли?
screen
У вас откроется новая сессия в новом окне. Уже здесь вы можете вводить все нужные shell команды. Находясь в режиме скрина (screen) вы можете посмотреть список доступных вам команд управления этим режимом. Вот так:
Ctrl+a и ?
Если не получается нажать указанную выше комбинацию, можно поступить проще: нажмите отдельно Ctrl+a, отпустите, а затем в консоль наберите ? и нажмите Enter
Сессия screen с именем
Ну очень удобная фича. Если вы делаете несколько процессов параллельно, просто обзовите их так, чтобы потом понять, что и где выполняется. Синтаксис такой:
screen -S имя_сессия_скрин
Например, вы можете запустить ping - замер хоста с 1С и назвать сессию так:
screen -S pings_towards_1C
Всегда используйте скрин именно так. Будет значительно удобнее.
Как правильно работать с окнами в Windows
Как мы уже сказали, когда вы создаете новую screen - сессию, вы создадите новое окно с shell оболочкой внутри. И что интересно - внутри скрин сессии вы можете создать множество дополнительных окон. Чтобы это сделать, воспользуйтесь командой (внутри скрина) Ctrl+a и c. Новому окну будет назначен номер от 0 до 9 (первый свободный).
Ниже мы собрали все команды, которые понадобятся вам для управления скринами:
Ctrl+a и c - создать дополнительное окно ;
Ctrl+a и " - показать список всех имеющихся окон;
Ctrl+a и 0 - переключиться на окно с номером 0 (номер может быть иной);
Ctrl+a и A - переименовать текущее окно;
Ctrl+a и S - разделить окно по горизонтали на две области;
Ctrl+a и | - разделить окно по вертикали на две области;
Ctrl+a и tab - переключить рабочий фокус на следующую область разделенного окна;
Ctrl+a и Ctrl+a - переключить рабочий фокус на предыдущую область разделенного окна;
Ctrl+a и Q - закрыть все разделенные области кроме;
Ctrl+a и X - закрыть текущую область;
Выход из screen сессии
Вы можете легко выйти из screen - сессии набрав:
Ctrl+a и d
Самое важное: запущенная вами в этот момент команда не остановится и будет продолжать свое выполнение.
Возврат к screen сессии
Чтобы вернуть к screen - сессии используйте команду:
screen -r
Если у вас запущено больше чем одна screen - сессия, то после ключа r нужно указать ее ID. Узнать его просто с помощью команды:
screen -ls
Вывод этой команды будет выглядеть вот так:
screen -ls
There are screens on:
32328.pings_towards_1C (Detached)
32482.wiki.merionet.ru_is_one_love (Detached)
2 Sockets in /var/run/screen/S-root.
В выводе выше мы выделили ID - сессий. Например, чтобы вернуться к сессии 32328 (pings_towards_1C), дайте команду:
screen -r 32328
Немножко кастомизации screen под вас
Когда screen запускается, он считывает свои конфигурационные параметры из /etc/screenrc и ~/.screenrc, если файл присутствует. Так вот - мы можем легко перенастроить предпочтения использования screen и сделать это в файле .screenrc.
Посмотрите пример с комментариями, как мы закастомили screen для себя:
# Выключаем приветствие
startup_message off
# включаем визуальный звонок
vbell off
# буфер для сохраненных строк делаем 10000
defscrollback 10000
# кастомим строку состояния
hardstatus alwayslastline
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m-%d %{W}%c %{g}]'
Типовой сценарий использования screen
Общий случай, так сказать. Обычно он состоит из следующих шагов:
После SSH подключения к серверу, набираем screen;
Запускаем интересующую нас команду в режиме screen - сессии;
Выполняем команду Ctrl + a и d, чтобы выйти из режима работы с экран-сессией
Через какое-то время возвращаемся к запущенному ранее экрану командой screen -r
Выводы
Мы разобрались, как создавать screen сессии, управлять ими внутри, открывая новые окна, выходить из их режима управления (без прекращения выполнения команды), делить горизонтально и вертикально экраны.
Ах да, ещё мы научились кастомизировать screen под себя. Профит!