Архив метки: Скрипты

🖧 Как проверить IPv4-адреса в скрипте

Проверка IP-адресов – распространенная задача в сетевом и системном администрировании.

В этом уроке мы узнаем, как проверить IPv4-адреса с помощью скрипта оболочки.

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

IPv4 против IPv6: В чем разница между IPv4 и IPv6

Понимание формата адресов IPv4

IPv4-адрес состоит из четырех октетов, каждый из которых имеет значение от 0 до 255 и разделен точками.

Например, 192.168.1.1 – это правильный IPv4-адрес.

Bash-скрипт для проверки адреса IPv4

Откройте свой любимый текстовый редактор и запустите новый файл.

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

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

#!/bin/bash

# Filename: validate_ip.sh



validate_ip() {

    local ip=$1

    local stat=1



    if [[ $ip =~ ^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$ ]]; then

        OIFS=$IFS

        IFS='.'

        ip=($ip)

        IFS=$OIFS

        [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]]

        stat=$?

    fi



    return $stat

}



echo -n "Enter IPv4 address: "

read ip_address



if validate_ip $ip_address; then

    echo "${ip_address} is a valid IPv4 address."

else

    echo "${ip_address} is a invalid IPv4 address."

fi

Проверка скрипта

  • Сделайте скрипт исполняемым: chmod +x validate_ip.sh
  • Запустите скрипт: ./validate_ip.sh
  • Введите IPv4-адрес, когда появится запрос.

Заключение

С помощью этого простого скрипта вы можете легко проверять IPv4-адреса.

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

Не стесняйтесь модифицировать и расширять его в соответствии с вашими потребностями.

Например, вы можете захотеть обрабатывать несколько IP-адресов из файла или включить дополнительное протоколирование недействительных вводов.

см. также:



2023-12-25T12:21:55
Скрипты

🐍 Вычисление контрольных сумм с помощью Python и Hashlib

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

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

В Python есть удобный модуль hashlib, который позволяет вычислять различные алгоритмы контрольных сумм, такие как MD5, SHA1 и SHA256.

В этой статье мы расскажем вам о процессе вычисления контрольных сумм с помощью Python и модуля hashlib.

Шаг 1: Импортируйте необходимый модуль

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

import hashlib

Шаг 2: Определение функции

Далее мы определяем функцию compute_checksums, которая принимает в качестве параметра file_path.

Эта функция будет вычислять контрольные суммы MD5, SHA1 и SHA256 для заданного файла.

def compute_checksums(file_path):

    hash_md5 = hashlib.md5()

    hash_sha1 = hashlib.sha1()

    hash_sha256 = hashlib.sha256()

Шаг 3: Открываем файл

Теперь мы открываем файл, указанный в file_path, с помощью оператора with, чтобы обеспечить правильную обработку и закрытие файла.

with open(file_path, "rb") as f:

Шаг 4. Чтение и обновление контрольных сумм

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

Такой подход эффективен для работы с большими файлами.

for chunk in iter(lambda: f.read(4096), b""):

            hash_md5.update(chunk)

            hash_sha1.update(chunk)

            hash_sha256.update(chunk)

Шаг 5: Возврат контрольных сумм

После обработки всего файла мы возвращаем вычисленные контрольные суммы в виде словаря, содержащего значения MD5, SHA1 и SHA256.

return {"md5": hash_md5.hexdigest(), "sha1": hash_sha1.hexdigest(), "sha256": hash_sha256.hexdigest()}

Полный код: Здесь представлен полный код, который вы можете скопировать и использовать в своей работе:

import hashlib



def compute_checksums(file_path):

    hash_md5 = hashlib.md5()

    hash_sha1 = hashlib.sha1()

    hash_sha256 = hashlib.sha256()



    with open(file_path, "rb") as f:

        for chunk in iter(lambda: f.read(4096), b""):

            hash_md5.update(chunk)

            hash_sha1.update(chunk)

            hash_sha256.update(chunk)



    return {"md5": hash_md5.hexdigest(), "sha1": hash_sha1.hexdigest(), "sha256": hash_sha256.hexdigest()}

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

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

см. также:

 



2023-12-20T10:50:47
Скрипты

Для чего выполняется проверка AML?

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

Предотвращение финансовых преступлений

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

  • отмывание денег,
  • финансирование терроризма,
  • другие незаконные действия.

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

Соблюдение нормативных стандартов

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

Защита репутации

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

Избежание юридических последствий

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



2023-12-19T14:15:22
Скрипты

👥 Как создать быстрый кравлер веб-сайтов на PowerShell

Сегодня мы поговорим об очень интересной вещи – о том, как создать быстрый веб-кравлер с помощью PowerShell.

Возможно, вы зададитесь вопросом: “Что такое краулер веб-сайта?” и “Зачем использовать PowerShell для этого?”.

Мы ответим на эти вопросы и покажем вам весь процесс шаг за шагом.

Представьте, что у вас есть робот, который может посещать веб-сайты, как и вы.

Но этот робот очень быстрый и может посетить много-много сайтов за очень короткое время.

Это и есть краулер – он похож на паука, который “ползает” по Интернету, собирая информацию с разных сайтов.

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

Зачем использовать PowerShell?

PowerShell – это инструмент, который можно использовать на компьютерах под управлением Windows.

Это очень мощный инструмент для автоматизации задач.

Почему стоит использовать его для краулера?

Потому что он быстрый, встроен в большинство систем Windows и отлично подходит для работы с веб-данными.

Кроме того, если вы уже немного знакомы с PowerShell, это будет интересный способ применить свои навыки!

Создание кравлера сайта

Важные замечания:

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

Шаг 1: Настройка среды

Сначала откройте PowerShell на своем компьютере.

Вы можете найти его, задав поиск “PowerShell” в строке поиска Windows.

Убедитесь, что у вас есть необходимые разрешения на запуск скриптов.

Проверить это можно, выполнив команду Get-ExecutionPolicy.

Если в ней не указано ‘RemoteSigned’ или ‘Unrestricted’, выполните команду Set-ExecutionPolicy RemoteSigned.

Шаг 2: Напишите свой первый скрипт

Мы начнем с базового скрипта.

Введите следующее в PowerShell:

$url = 'https://example.com'

$webpage = Invoke-WebRequest -Uri $url

$webpage.Links

Этот скрипт задает адрес веб-сайта в переменную $url.

Затем он получает веб-страницу и отображает все ссылки на ней.

Шаг 3: Расширьте свой кравлер

Чтобы заставить кравлер посещать больше страниц, вам нужно добавить цикл.

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

Будьте осторожны – не пытайтесь посетить слишком много сайтов слишком быстро.

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

Шаг 4: Сохраните и запустите скрипт

После написания скрипта сохраните его с расширением .ps1, например mycrawler.ps1.

Запустите его, набрав .mycrawler.ps1 в PowerShell.

Шаг 5: Тестируйте и улучшайте

Запустив скрипт, посмотрите, что он делает.

Правильно ли он показывает ссылки?

Подумайте, что еще вы хотите, чтобы делал ваш краулер

Может быть, вы хотите, чтобы он находил конкретную информацию на каждом сайте?

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

Заключение

Вы только что изучили основы создания быстрого краулера веб-сайтов в PowerShell.

С этими навыками вы можете начать исследовать огромный мир веб-данных.

Помните, что практика делает совершенным, поэтому продолжайте экспериментировать со своими скриптами и посмотрите, какие удивительные вещи вы сможете открыть!

см. также:

 



2023-12-14T14:33:41
Скрипты

🐧 Как следить за каталогом на предмет создания новых файлов в Linux

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

Один из распространенных подходов – использование inotify-tools, утилиты, позволяющей отслеживать события файловой системы, в сочетании со скриптом оболочки.

Вот базовая схема того, как это можно настроить:

Шаг 1: Установите inotify-tools

Сначала вам нужно установить inotify-tools.

Обычно вы можете установить его с помощью менеджера пакетов.

Например, в системах на базе Ubuntu или Debian вы можете установить его, выполнив команду:

sudo apt update
sudo apt install inotify-tools

Ранее уже рассматривали его:

🐧 Как отслеживать события файловой системы в файлах и каталогах на Linux

Шаг 2: Создание скрипта

Далее создайте bash скрипт, который использует inotifywait (часть inotify-tools) для мониторинга каталога на предмет новых файлов и затем вызывает API при обнаружении нового файла.

Ниже приведен простой пример того, как может выглядеть этот скрипт:

#!/bin/bash



# Папка для мониторинг

MONITOR_DIR="/path/to/your/directory"



# Ваша команда

# CUSTOM_COMMAND="curl -X POST -d @newfile http://your.api.endpoint"



# Отслеживаем новые файлы и вызываем API

inotifywait -m -e create --format '%w%f' "$MONITOR_DIR" | while read NEWFILE

do

    echo "Новый файл: $NEWFILE"

    #Снимите комментарий, чтобы выполнять пользовательские команды и вызывать API

    #eval $CUSTOM_COMMAND

done

В этом скрипте замените /path/to/your/directory на путь к папке, которую вы хотите контролировать, а http://your.api.endpoint – на конечную точку API, которую вы хотите вызвать.

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

Шаг 3: Запустите скрипт

Сделайте скрипт исполняемым и запустите его.

Это можно сделать следующим образом:

  • Сохранить скрипт в файл, например monitor.sh.
  • Сделать его исполняемым: chmod +x monitor.sh
  • Запустить скрипт : ./monitor.sh

Шаг 4: Запуск скрипта в фоновом режиме

Если вы хотите, чтобы этот скрипт постоянно выполнялся в фоновом режиме, вы можете использовать nohup или запустить его в сеансе screen или tmux.

Например:

nohup ./monitor.sh &

Это позволит сохранить скрипт запущенным, даже если вы выйдете из сеанса.

Шаг 5: Запуск скрипт в качестве службы Systemd

Чтобы запустить скрипт в качестве службы systemd в системе Linux, выполните следующие действия:

Убедитесь, что ваш скрипт написан правильно и протестирован.

Поместите его в подходящий каталог, например /usr/local/bin/.

Для этого примера предположим, что ваш скрипт будет называться monitor.sh.

sudo mv monitor.sh /usr/local/bin/

Убедитесь, что он является исполняемым:

sudo chmod +x /usr/local/bin/monitor.sh

Создайте новый служебный файл systemd с помощью удобного для вас текстового редактора.

Например, с помощью nano:

sudo nano /etc/systemd/system/monitor.service

Добавьте в файл следующее содержимое:



[Unit]

Description=File Monitor Service



[Service]

ExecStart=/usr/local/bin/monitor.sh

Restart=always

User=nobody

Group=nogroup



[Install]

WantedBy=multi-user.target

  • Description: Краткое описание вашей службы.
  • ExecStart: Полный путь к вашему сценарию.
  • Restart (Перезапуск): Настраивает, должна ли служба перезапускаться после выхода. всегда означает, что служба будет перезапускаться независимо от кода выхода.
  • User and Group: Пользователь и группа, под которыми будет запущена служба. Возможно, вы захотите создать определенного пользователя в целях безопасности.

Сохраните и закройте файл.

Перезагрузите конфигурацию менеджера systemd:

sudo systemctl daemon-reload

Включите службу, чтобы она запускалась при загрузке:

sudo systemctl enable monitor.service

Запуск службы:

sudo systemctl start monitor.service

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

sudo systemctl status monitor.service

Дополнительные примечания:

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

см. также:



2023-12-13T09:51:42
Скрипты

Разница между PGP и GPG

1. Введение

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

Даже в этом случае часто существует уровень безопасности, хотя и внешний, помимо базовой реализации.

Фактически, основой электронных подписей и идентификации также является шифрование.

В этом руководстве мы рассмотрим стандарт OpenPGP (Open Pretty Good Privacy) как один из наиболее универсальных способов шифрования и GNU Privacy Guard (GnuPG, GPG) как одну из его основных реализаций. Читать