Архив рубрики: Публикации

Типы криптографии

Криптография — это наука сокрытия информации таким образом, чтобы никто, кроме предполагаемого получателя, не мог ее раскрыть. Криптографическая практика включает использование алгоритма шифрования, который преобразует открытый текст в зашифрованный текст. Получатель дешифрует зашифрованный текст с помощью общего или определенного ключа.

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

Типы шифрования зависят от количества и роли ключей, используемых для шифрования. Следовательно, классификация, основанная на ключах, представляет собой алгоритмы симметричного шифрования и асимметричного ключа шифрования. Криптографические протоколы, которые не содержат ключей и являются необратимыми, известны как хэш-функции. В этой статье представлены типы криптографии на основе различного количества и роли ключей, используемых при шифровании.

 

Симметричное шифрование

Криптография с симметричным или секретным ключом использует один/идентичный общий ключ для процесса шифрования и дешифрования. Отправитель и получатель, использующие этот криптографический метод, решают тайно поделиться симметричным ключом перед инициированием зашифрованной связи, чтобы использовать его позже для дешифрования зашифрованного текста. Некоторые из примеров алгоритмов шифрования с симметричным ключом: AES, DES, 3DES. Еще одна технология, использующая общие ключи, — это Kerberos, который использует стороннюю компанию, известную как Центр распространения ключей, для безопасного обмена ключами.

Ключ, которым обмениваются взаимодействующие стороны, может быть паролем или кодом. Это также может быть случайная строка чисел или символов, которая должна быть сгенерирована с использованием безопасной генерации псевдослучайных чисел (PRNG).

Размер ключа напрямую зависит от надежности криптографического алгоритма. То есть ключ большого размера усиливает шифрование с меньшими шансами на успешный взлом. Например, стандарт шифрования данных (DES) с размером 56 бит больше не является безопасным стандартом шифрования из-за его небольшого размера ключа.

Типы симметричных алгоритмов

Симметричные алгоритмы шифрования бывают двух типов:

 

1. Потоковые алгоритмы

В отличие от блочных алгоритмов потоковые алгоритмы не разделяют данные на блоки. Он шифрует по одному байту во время потоковой передачи данных, а не сохраняет их в памяти.

2. Блочные алгоритмы Алгоритмы

блочного шифрования разделяют сообщение на блоки данных фиксированного размера, а затем шифруют по одному блоку данных за раз с помощью определенного секретного ключа. Блочные шифры используют различные режимы, такие как электронная кодовая книга (ECB), обратная связь по выходу (OFB), цепочка блоков шифра (CBC) и т. д., которые инструктируют, как разделить блок и зашифровать данные.

Некоторые популярные примеры алгоритмов симметричного шифрования:

  • AES (расширенный стандарт шифрования)
  • DES (стандарт шифрования данных)
  • IDEA (международный алгоритм шифрования данных)
  • Blowfish
  • RC4 (Rivest Cipher 4)
  • RC5
  • RC6

Здесь RC4 — алгоритм потокового шифрования. Остальные примеры представляют собой алгоритмы блочного шифрования. Например, AES использует 128/256-битный блок шифра.

 

Применение симметричного шифрования

Несмотря на то, что оно используется уже много лет, симметричное шифрование по-прежнему вызывает восхищение и используется ради эффективности и скорости. Симметричное шифрование потребляет относительно мало системных ресурсов по сравнению с другими методами шифрования. Благодаря этим свойствам организации используют симметричное шифрование для быстрого шифрования больших объемов данных, например баз данных.

Наиболее распространенными областями применения симметричного шифрования являются банковское дело и приложения с карточными транзакциями для обеспечения высокой защиты от кражи личных данных. В банковском секторе личная идентификационная информация должна храниться в строжайшей тайне. Также желательно подтвердить, является ли отправитель тем человеком, за которого он себя выдал.

Более того, AES, преемник Triple-DES, является идеальным алгоритмом для беспроводной сети, которая включает протокол WPA2 и приложения удаленного управления. AES является предпочтительным выбором для быстрой передачи зашифрованных данных на USB, для шифрованной файловой системы Windows (EFS) и используется для методов шифрования дисков.

 

Преимущества и недостатки симметричного шифрования

Симметричное шифрование обеспечивает довольно высокий уровень безопасности для обмена сообщениями и общения. Небольшой размер ключа способствует быстрому шифрованию, а дешифрование сообщений делает его относительно простым по сравнению с другими типами методов шифрования.

Что делает его еще более благоприятным, так это улучшение его безопасности за счет простого увеличения размера ключа. Каждый новый бит, добавляемый к ключу, затрудняет взлом или раскрытие с помощью грубой силы.

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

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

 

Асимметричное шифрование

Асимметричное шифрование или шифрование с открытым ключом — это тип криптографии, который использует пару связанных ключей для шифрования данных. Один из них — открытый ключ, а другой — закрытый. Открытый ключ известен всем, кто хочет отправить секретное сообщение, чтобы защитить его от несанкционированного доступа. Сообщение, зашифрованное открытым ключом, можно расшифровать только с использованием закрытого ключа получателя.

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

Использование асимметричного шифрования

Самым распространенным использованием асимметричного шифрования является безопасная передача симметричного ключа и цифровых подписей. Использование асимметричного шифрования в цифровых подписях помогает обеспечить неотказуемость при обмене данными. Это происходит с помощью цифровой подписи отправителя данных с помощью своего закрытого ключа, в то время как получатель расшифровывает их с помощью открытого ключа отправителя. Следовательно, это помогает достичь целостности и неопровержимости.

Цифровая подпись — это цифровой эквивалент отпечатка пальца, печати или собственноручной подписи. Он используется в промышленности для аутентификации цифровых документов и данных. Они также используются в зашифрованных электронных письмах, где открытый ключ шифрует данные, а закрытый ключ расшифровывает их.

Еще одно применение асимметричного шифрования — это криптографические протоколы SSL/TLS, которые помогают устанавливать безопасные связи между веб-браузерами и веб-сайтами. Он использует асимметричное шифрование для совместного использования симметричного ключа, а затем использует симметричное шифрование для быстрой передачи данных. Криптовалюты, такие как Биткойн, также используют шифрование с открытым ключом для безопасных транзакций и связи.

Преимущества и недостатки асимметричного шифрования

В отличие от шифрования с симметричным ключом, проблема управления ключами не существует при асимметричном шифровании. Поскольку ключи связаны математически, их безопасность повышается с минимальными затратами. Однако это более медленный процесс. Следовательно, он не подходит для шифрования данных большого размера.

Более того, если закрытый ключ утерян, получатель не сможет расшифровать сообщение. Предполагается, что пользователи должны подтвердить право собственности на открытый ключ, поскольку открытые ключи не аутентифицируются. Без подтверждения никогда нельзя быть уверенным, принадлежит ключ указанному лицу или нет. Но эта проблема решается с помощью цифровых сертификатов, поскольку они привязывают открытый ключ к сертификату, сгенерированному доверенным сторонним центром сертификации ЦС.

Примеры асимметричного шифрования

Наиболее широко признанный и используемый алгоритм асимметричного шифрования — это алгоритм Ривеста, Шамира и Адлемана (RSA). Он встроен в протоколы SSL/TLS для обеспечения безопасности в компьютерных сетях. RSA считается сильным алгоритмом из-за вычислительной сложности факторизации больших целых чисел. RSA использует ключ размером 2048–4096 бит, что делает его вычислительно трудным для взлома.

Однако криптография на основе эллиптических кривых (ECC) также набирает популярность как альтернатива RSA. ECC использует теорию эллиптических кривых для создания небольших и быстрых ключей шифрования. Процесс генерации ключа требует, чтобы все участвующие стороны согласовали определенные элементы/точки, которые определяют график. Следовательно, нарушение ECC требует нахождения правильных точек на кривой, что является сложной задачей. Это делает криптографию на основе эллиптических кривых относительно более сильной и более предпочтительной по сравнению с другими алгоритмами.

Хеш-функции

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

Свойства хеш-функций.

Это свойства, которые влияют на безопасность хеширования и хранилища учетных данных.

  • Это необратимо. После создания хэша файла или пароля с помощью хеш-функции невозможно восстановить / расшифровать текст, в отличие от шифрования, оно не включает использование ключей. Надежная хеш-функция должна сильно усложнять взлом хешированных учетных данных / файлов до их прежнего состояния.
  • Это следует за лавинным эффектом. Незначительное изменение пароля должно непредсказуемо и существенно повлиять на пароль в целом.
  • Один и тот же ввод генерирует один и тот же хэш-вывод.
  • Свойство непредсказуемости должно делать хэш непредсказуемым на основе учетных данных.
  • Надежная хеш-функция гарантирует, что два хэша паролей не имеют одного и того же значения дайджеста. Это свойство называется сопротивлением столкновению.

Использование криптографических хеш-функций.

Хеш-функции широко используются для защищенных информационных транзакций в криптовалютах с соблюдением анонимности пользователя. Биткойн, самая большая и самая аутентичная платформа для криптовалюты, использует SHA-256. В то время как платформа IOTA для Интернета вещей использует собственную криптографическую хеш-функцию под названием curl.

Однако он играет жизненно важную роль во многих других секторах вычислений и технологий для обеспечения целостности и аутентичности данных. Такое использование возможно благодаря свойству детерминизма. Он также находит свое применение при создании и проверке цифровой подписи. Его также можно использовать для проверки подлинности файлов и сообщений.

 

Необходимость различных типов криптографических протоколов

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

Точно так же шифрование с секретным ключом предназначено для секретности и конфиденциальности сообщений. Кроме того, это обеспечивает быстрое вычисление и доставку больших файлов. Следовательно, безопасность сообщений, передаваемых по сети, обеспечивается шифрованием с секретным ключом. Никакой злоумышленник не может вторгаться в сообщения, зашифрованные с помощью алгоритма надежного секретного ключа, пока ключ не разглашается.

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

 

Заключение

Подводя итог, можно сказать, что криптография — это необходимость, более чем когда-либо, в эпоху цифровой трансформации. Хотя доступ людей к цифровой информации за последние несколько лет резко вырос, потенциал киберугроз и кибератак является тревожным звонком как для частных лиц, так и для предприятий. Следовательно, становится необходимым не только изучать криптографические протоколы, но и использовать их в повседневной жизни.

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



2021-09-28T17:54:26
Безопасность

Как добавить в начало списка в Python

В этой статье мы увидим, как мы можем вставить элемент в начало списка в Python. Кроме того, мы будем использовать только целочисленные концепции, чтобы их было легко понять, а другие типы данных будут аналогичными, как показано в этой статье. Итак, мы собираемся обсудить следующие методы:

  1. Функция List.Insert
  2. Метод оператора сложения
  3. Метод нарезки
  4. Итеративный метод распаковки

Итак, давайте подробно обсудим каждый метод.

 

Метод 1. Использование функции list.insert

Первый метод, который мы собираемся обсудить, — это функция вставки. Эта функция принимает два параметра: index_position и значение. В приведенном ниже коде мы вставляем переменную val в позицию индекса 0:

#python list_insert_method.py



if __name__ == '__main__':



lst = [12, 33, 45, 56,47]

val = 1



lst.insert(0, val)

print(lst)  



# prints [1, 12, 33, 45, 56, 47]

 

Вывод: python list_insert_method.py

[ 1 , 12 , 33 , 45 , 56 , 47 ]

 

Строка 5: Мы создали список целых чисел (lst).

Строка 6: Мы создали переменную val и присвоили ей значение 1, которое мы хотим вставить в начало списка.

Строка 8: Теперь мы вызываем метод insert и передаем два параметра (index_position, value). Первый параметр — это index_position, куда мы хотим вставить значение, поэтому мы оставляем его 0. Другой параметр — это значение, которое мы хотим вставить в index_position 0.

Строка 9: Оператор печати показывает, что наш val успешно вставлен в начало списка.

 

Метод 2: использование метода оператора сложения (+)

В этом методе мы собираемся изменить тип данных значения с целого числа на список, который мы хотим вставить в первую позицию списка. После этого мы используем оператор сложения и объединяем первый элемент списка, который является значением, с другим списком, как показано ниже в программе:

#python addition_operator_method.py



if __name__ == '__main__':



lst = [12, 33, 45, 56,47]

val = 1



lst = [val] + lst

print(lst)  # prints [1, 12, 33, 45, 56, 47]

 

Вывод: python addition_operator _method.py

[ 1 , 12 , 33 , 45 , 56 , 47 ]

 

Строка 8: Мы преобразуем значение в список, а затем с помощью оператора сложения добавляем первый список перед вторым.

Строка 9: Оператор печати показывает, что наш val успешно вставлен в начало списка.

 

Метод 3: использование метода среза

Другой метод, который мы собираемся обсудить, — это метод среза. Как мы знаем, list[: 1] напечатает элемент в позиции индекса 0, а list[: 2] напечатает два значения в позиции индекса 0 и 1. Поэтому любое значение, которое мы передаем в список слайсов [: n], будет print (n -1) элементов. Итак, если мы передадим список [: 0], он будет отображаться как пустой, потому что в списке нет такого значения индекса. Если мы вставим элемент в этот конкретный индекс, он добавится в начало списка, как показано в следующей программе:

# python slice_method.py



if __name__ == '__main__':



lst = [12, 33, 45, 56,47]

val = 1

print(lst[:0])

lst[:0] = [val]

print(lst)  # prints [1, 12, 33, 45, 56, 47]

 

Вывод: python slice_method.py

[ ]

[ 1 , 12 , 33 , 45 , 56 , 47 ]

 

Строка 7 : Мы печатаем lst[: 0], чтобы проверить, какие значения мы получим. По выходным данным print[] мы можем ясно сказать, что это пустой список.

Строка 8 : Мы присвоили список val пустому списку, как описано выше.

Строка 9 : Оператор печати показывает, что наш val успешно вставлен в начало списка.

 

Метод 4: Использование итеративного метода распаковки

Последний метод, который мы собираемся обсудить, — это оператор звездочки (*). Это итеративный метод, и он также вставляет значение в начало списка.

# python unpacking_operator_method.py



if __name__ == '__main__':



lst = [12, 33, 45, 56,47]

val = 1

print(*lst)

lst = [val, *lst]

print(lst)  # prints [1, 12, 33, 45, 56, 47]

 

Вывод: python unpacking_operator_method.py

12 33 45 56 47

[ 1 , 12 , 33 , 45 , 56 , 47 ]

 

Строка 7: Когда мы печатаем список звездочек, мы получаем все элементы, как показано на выходе. Таким образом, мы можем сказать, что он повторяемый.

Строка 8: Мы сохранили val и * list вместе в списке, а затем назначили его другому списку.

Строка 9: Оператор печати показывает, что наш val успешно вставлен в начало списка.

 

Заключение

Мы показали вам различные методы добавления элемента в начало списка. Мы видели разные методы, такие как Insert, Addition(+) Operator, Slice и Unpacking Asterisk. Все методы очень просты в использовании, но вместе с тем мы должны заботиться о времени обработки. Потому что, если данных меньше, нас это может не волновать. Однако, если у нас есть миллиарды данных, это может иметь значение. Исходя из этого, лучшим методом обработки является метод вставки.



2021-09-27T23:01:55
Python

Новое в информационной безопасности: подробный взгляд на ISO 27001 и 27002

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

ISO 27001 — это международный стандарт управления информационной безопасностью Международной организации по стандартизации. В настоящее время используются определения из документов 2013 года с обновлениями в 2014 и 2015 годах, это центральная структура для требований внедрения в СМИБ (Система управления информационной безопасностью). Организации могут пройти сертификацию по ISO 27001, используя стандарт управления для достижения соответствия. Новое третье издание стандарта ISO 27002, выпущенное в 2021 году, вводит свод правил для контроля безопасности, который соответствует требованиям ISO 27001.

Внедрение, сертификация и соблюдение стандартов ISO 27001 и 27702 открывают новые возможности для роста доходов. Согласовав безопасность данных со стандартами ISO, ваша организация будет работать в соответствии с передовой международной практикой. Инвесторы, заинтересованные стороны, а также новые и существующие клиенты могут быть уверены, что данные вашей организации защищены с помощью стандартов ISO.

Чтобы было ясно, ISO 27001 — это стандарт, по которому организации сертифицированы. ISO 27002 предоставляет дополнительные сведения для выбора, внедрения и управления средствами контроля информационной безопасности.

Различия указывают на новые и обновленные способы, которыми организация должна заниматься и управлять информационной безопасностью, чтобы в ближайшем будущем получить сертификат ISO 27001. Организации должны проходить повторную сертификацию каждые три года с ежегодным надзорным аудитом, с учетом периода конверсии при выпуске нового стандарта. Если ISO 27002 приведет к новому процессу повторной сертификации в 2021 или 2022 году, у организаций будет возможность повторно пройти сертификацию в соответствии со старым стандартом 2013 года, что даст время для обновления связанных процессов в соответствии с новыми элементами управления ISO 27002. К 2024 или 2025 году все организации будут использовать новый стандарт, но те, кто хочет его обновить, сделают это гораздо раньше.

ISO работает над обеспечением единообразия всех своих стандартов в различных областях бизнеса, таких как производство, цепочка поставок и финансовые услуги. Если ваша организация имеет другие сертификаты ISO, такие как управление рисками, финансовый менеджмент и т. д., Вполне вероятно, что эти стандарты будут обновлены, чтобы сократить старые процессы или добавить новые требования в ISO 27001. Ключом к управлению сертификацией ISO является обращение к нескольким стандартам с помощью взаимосвязанного согласованного процесса для минимизации повторяющихся или конфликтующих процессов между обновлениями.

Поскольку в наши дни информационная безопасность является одной из ключевых бизнес-практик и вызывает серьезную озабоченность у современных предприятий и их исполнительных советов, неудивительно, что стандарт ISO 27002 требует пересмотра.

Но достаточно контекста и самих элементов управления — что изменилось?

Средства управления информационной безопасностью теперь разделены на 4 категории:

  • Раздел 5. Организационный контроль
  • Раздел 6. Управление персоналом
  • Раздел 7. Физический контроль
  • Раздел 8. Технологический контроль

 

Это значительно сокращает текущие 14 категорий и, как отмечалось выше, обеспечивает большую согласованность и общность с другими стандартами ISO.

Общее количество элементов управления в ISO 27002 уменьшилось со 114 до 93, а шестнадцать устаревших элементов управления были удалены.

Отражая постоянно меняющийся ландшафт кибербезопасности, были введены двенадцать новых элементов управления, а именно:

  • Разведка угроз
  • Информационная безопасность при использовании облачных сервисов
  • Предотвращение утечки данных
  • Удаление информации и запутывание или маскирование данных в целях конфиденциальности
  • Готовность к непрерывности бизнеса
  • Управление идентификацией
  • Мониторинг физической безопасности
  • Безопасность конечных точек для пользовательских устройств
  • Управление конфигурацией
  • Веб-фильтрация
  • Безопасное кодирование

 

В рамках дальнейшего развития свойств безопасности конфиденциальности, целостности и доступности новый ISO 27001 детализирует новые атрибуты, упрощающие классификацию и управление. Контролям присваивается такой тип, как Превентивный, Детективный, Корректирующий, со свойствами информационной безопасности CIA, как и раньше.

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



2021-09-27T21:39:37
Безопасность

Как настроить mod_jk на HTTP-сервере Apache

Mod_jk — это модуль или коннектор Apache, который соединяет контейнер сервлетов Apache Tomcat с веб-серверами, такими как Apache, IIS и другими. Mod_jk — это полная замена старого модуля mod_jser, который обрабатывает связь между Tomcat и HTTP-серверами с использованием протокола Apache JServ.

Мы не будем углубляться в работу модуля mod_jk, поскольку это выходит за рамки данной статьи. Вместо этого мы сосредоточимся на том, как интегрировать его с HTTP-сервером Apache.

Узнайте больше о том, как работает mod_jk.

Примечание
В этой статье мы предполагаем, что у вас установлены и настроены серверы Apache Tomcat и Apache HTTPD. Если нет, просмотрите наши руководства по темам.

 

Шаг 1. Загрузите и установите mod_jk

Первым шагом является загрузка модуля mod_jk для Linux и его сборка для веб-сервера Apache. Если вы работаете в Windows, вы найдете предварительно созданный двоичный файл для настройки mod_jk.

Откройте терминал и введите команду:

wget https://dlcdn.apache.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz

 

После загрузки пакета распакуйте его как:

tar xvf tomcat-connectors-1.2.48-src.tar.gz

 

Затем перейдите в извлеченный каталог /native как:

cd tomcat-connectors-1.2.48-src/native/

 

Находясь в собственном каталоге, выполните команду:

./configure -with-apxs=/usr/bin/apxs

 

Приведенная выше команда устанавливает путь к инструментам apxs для HTTP-сервера Apache. Если вы не знаете расположение инструментов apxs, используйте команду which как:

which apxs

/usr/bin/apxs

 

Если вы получили пустой результат, вам необходимо установить пакет apache dev с помощью команды:

sudo apt install apache2-dev

# или

yum install httpd-devel

 

Следующим шагом является создание системного объектного файла для модуля mod_jk.

Используйте команду make в собственном каталоге.

make

 

После успешного завершения вы должны увидеть каталог apache-2.0, созданный в собственном каталоге.

Вы должны увидеть в каталоге файл mod_jk.so.

Скопируйте файл mod_jk.so в каталог модулей apache. Он должен находиться в /usr/lib/apache2/modules или /etc/httpd/modules.

sudo cp mod_jk.so /usr/lib/apache2/modules/

 

Шаг 2: Загрузите модуль mod_jk

После того, как мы добавили модуль mod_jk в каталог модулей Apache HTTPD, нам нужно загрузить его, отредактировав файл httpd.conf.

В каталоге conf отредактируйте файл httpd.conf с помощью вашего любимого текстового редактора? например Vim.

vim /etc/apache2/apache2.conf

 

Затем нам нужно добавить директиву include в файл конфигурации apache для загрузки модуля. Вы можете узнать, как загрузить модули, с помощью grep.

grep -i ^Include /etc/apache2/apache2.conf

 

Приведенная выше команда выдаст такой результат, как показано:

IncludeOptional mods-enabled/*.load

IncludeOptional mods-enabled/*.conf

Include ports.conf

IncludeOptional conf-enabled/*.conf

IncludeOptional sites-enabled/*.conf

 

Из файла конфигурации выше, модули расположены в каталоге с поддержкой модов.

Перейдите в каталог /etc/apache2/mods-enabled и создайте файл mod_jk.conf.

cd /etc/apache2/mods-enabled/ && sudo touch mods_jk.conf

 

Внутри файла добавьте следующие записи.

LoadModule jk_module "/usr/lib/apache2/modules/mod_jk.so"

JkWorkersFile /etc/apache2/conf-enabled/workers.properties

JkShmFile     /etc/apache2/logs/mod_jk.shm

JkLogFile /etc/apache2/logs/mod_jk.log

JkLogLev JkMount  /stat/*  stat

JkMount  /*  balancer el debug

JkLogOptions +forwardKeySize +ForwardURICompat -ForwardDirectories

 

В JkWorkersFile мы определяем информацию об узле.

JkLogFile определяет расположение файла журнала.

JkLogLevel устанавливает уровень журнала для отладки

 

Шаг 3: Настройка файла рабочих

В файле воркера, указанном по пути выше, мы определяем информацию о запущенных серверах приложений.

Вот пример конфигурации:

worker.list=stat

worker.jk-status.type=status

worker.jk-status.read_only=true



worker.tomcat_1.type=ajp13

worker.tomcat_1.port=9001

worker.tomcat_1.host=127.0.0.1



worker.tomcat_2.type=ajp13

worker.tomcat_2.port=9002

worker.tomcat_2.host=127.0.0.1



worker.tomcat_3.type=ajp13

worker.tomcat_3.port=9003

worker.tomcat_3.host=1270.0.0.1



worker.list=balancer

worker.balancer.type=lb

worker.balancer.balance_workers=tomcat_1,tomcat_2,tomcat_3

 

После этого у вас должен быть установлен и готов к работе модуль mod_jk на сервере Apache.

 

Заключение

В этой статье показано, как настроить и использовать модуль mod_jk на сервере HTTPD Apache. Вы можете узнать больше из официальных документов.



2021-09-26T22:08:14
Apache

Как включить ведение журнала отладки в Apache

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

Журналы позволяют собирать информацию о службах и приложениях, запущенных в вашей системе, и сохранять этот журнал в файл для использования в будущем.

Из этой статьи вы узнаете, как собрать подробную информацию о службе Apache Tomcat, включив режим DEBUG.

Примечание
В этой статье мы не рассматриваем установку Apache Tomcat. Ознакомьтесь с нашими руководствами по этой теме, чтобы узнать больше.

 

Как включить ведение журнала отладки Apache Tomcat в Linux

Чтобы включить ведение журнала отладки для Apache Tomcat в Linux, отредактируйте файл logging.properties. Файл находится в каталоге conf корневой установки Apache Tomcat.

Например:

vim /opt/tomcat/conf/logging.properties.

 

Найдите следующую запись:

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = FINE

 

Измените значение с FINE на ALL.

Последняя запись должна быть:

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = ALL

 

Сохраните файл и закройте. Вам нужно будет перезапустить Tomcat Service, чтобы включить уровни журнала.

Если вам не нужны все сообщения журнала от Tomcat, вы можете установить различные уровни, используя уровни журнала JULI, как:

  • SEVERE — Сообщения о серьезных сбоях
  • WARNING — возможные ошибки
  • INFO — Информационные журналы
  • FINE — Журналы трассировки
  • CONFIG — статические журналы конфигурации
  • FINEST — подробные журналы трассировки
  • FINER — подробные журналы трассировки
  • ALL — все сообщения (режим отладки)

 

Вы также можете включить ведение журнала для внутренних компонентов Apache Tomcat, изменив следующие значения на all:

org.apache.catalina.session.level=FINE

java.util.logging.ConsoleHandler.level=FINE

 

на:

org.apache.catalina.session.level=ALL

java.util.logging.ConsoleHandler.level=ALL

Как включить журнал отладки Apache Tomcat в Windows

Предположим, вы запускаете Apache Tomcat на машине с Windows. Вы можете использовать предоставленный интерфейс конфигурации для управления уровнями журнала.

Откройте меню «Пуск» и найдите «Настроить Tomcat».

Запустите приложение и перейдите на вкладку ведения журнала. Выберите уровень журнала и установите его на DEBUG.

Затем нажмите «Применить» и перейдите на вкладку «Общие». Наконец, нажмите «Остановить», а затем «Пуск», чтобы перезапустить службу Apache.

 

Заключение

В этой статье показано, как включить ведение журнала отладки для Apache Tomcat в системах Windows и Linux.

Спасибо за чтение.



2021-09-26T15:17:57
Apache

Настройка репликации PostgreSQL в контейнерах Docker

Мы рассмотрим процесс поднятия двух контейнеров с PostgreSQL и настройки репликации данных между ними. Использовать будем систему на базе Linux, однако, сам процесс настройки Docker и репликации не зависит от операционной системы.




Подготовка компьютера




На компьютере, где мы будем запускать наш кластер баз данных должен быть установлен Docker. Также мы сразу рассмотрим развертывание нужной нам инфраструктуры в docker-compose. Для установки необходимой одноименной платформы смотрим инструкцию Установка Docker на Linux.




После мы можем переходить к поднятию контейнеров.




Запуск контейнеров с СУБД




Как говорилось выше, мы будем поднимать наши контейнеры с помощью docker-compose.




Создадим каталог, в котором будем работать:




mkdir -p /opt/docker/postgresql




Переходим в него:




cd /opt/docker/postgresql




Создаем файл для docker-compose:




vi docker-compose.yml




---



services:



  postgresql_01:

    image: postgres

    container_name: postgresql_01

    restart: always

    volumes:

      - /data/postgresql_01:/var/lib/postgresql/data

    environment:

      POSTGRES_PASSWORD: postgres024



  postgresql_02:

    image: postgres

    container_name: postgresql_02

    restart: always

    volumes:

      - /data/postgresql_02/:/var/lib/postgresql/data

    environment:

      POSTGRES_PASSWORD: postgres024




* рассмотрим некоторый опции подробнее:







Запускаем наши контейнеры:




docker-compose up -d




Мы должны увидеть:




Creating postgresql_02 ... done

Creating postgresql_01 ... done




А если вывести список контейнеров:




docker ps




… мы должны увидеть наши два.




Теперь можно переходить к настройке репликации.




Настройка репликации




Условимся, что первичный сервер или master будет в контейнере с названием postgresql_01. Вторичный — postgresql_02. Мы будем настраивать потоковую (streaming) асинхронную репликацию.




Настройка на мастере




Подключаемся к контейнеру docker:




docker exec -it postgresql_01 bash




Заходим под пользователем postgres:




su - postgres




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




createuser --replication -P repluser




* в данном примере будет создаваться учетная запись repluser с правами репликации.




Система потребует ввода пароля. Придумываем его и набираем дважды.




Выходим из-под пользователя postgres:




exit




Выходим из контейнера:




exit




Открываем конфигурационный файл postgresql.conf:




vi /data/postgresql_01/postgresql.conf




Приводим к следующием виду некоторые параметры:




wal_level = replica

max_wal_senders = 2

max_replication_slots = 2

hot_standby = on

hot_standby_feedback = on




* где







Посмотрим подсеть, которая используется для контейнеров с postgresql:




docker network inspect postgresql_default | grep Subnet




В моем случае, ответ был:




"Subnet": "172.19.0.0/16",




Теперь открываем файл:




vi /data/postgresql_01/pg_hba.conf




И добавляем строку после остальных «host    replication»:




host    replication     all             172.19.0.0/16           md5




* в данном примере мы разрешили подключение пользователю replication из подсети 172.19.0.0/16 с проверкой подлинности по паролю.




Перезапустим докер контейнер:




docker restart postgresql_01




Настройка на слейве




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




rm -r /data/postgresql_02/*




* в данном примере мы удалим все содержимое каталога /data/postgresql_02.




Мы должны быть уверены, что в базе нет ничего важного. Только после этого стоить удалять данные.




Заходим внутрь контейнера postgresql_02:




docker exec -it postgresql_02 bash




Выполняем команду:




su - postgres -c "pg_basebackup --host=postgresql_01 --username=repluser --pgdata=/var/lib/postgresql/data --wal-method=stream --write-recovery-conf"




* где postgresql_01 — наш мастер; /var/lib/postgresql/data — путь до каталога с данными слейва.




Система должна запросить пароль для пользователя repluser — вводим его. Начнется процесс репликации, продолжительность которого зависит от объема данных.




Проверка




Смотрим статус работы мастера:




docker exec -it postgresql_01 su - postgres -c "psql -c 'select * from pg_stat_replication;'"




Смотрим статус работы слейва:




docker exec -it postgresql_02 su - postgres -c "psql -c 'select * from pg_stat_wal_receiver;'"




Источник: https://www.dmosk.ru/miniinstruktions.php?mini=postgresql-replication-docker