Showing posts with label https. Show all posts
Showing posts with label https. Show all posts

Monday, 27 April 2026

LM Studio или Ollama Server?

Всем привет. 

Если вы еще не решили что же лучше LM STUDIO или OLLAMA server для локалки.

Оба инструмента решают одну задачу, но созданы для разных подходов:

• Ollama - минималистичный и невероятно легкий движок, идеальный для фоновой работы и жесткой экономии ресурсов.

• LM Studio - мощный визуальный комбайн для тех, кто любит кастомизацию, ручной контроль и поиск моделей напрямую с HuggingFace.


⚙️ ЧЕМ ОНИ ОТЛИЧАЮТСЯ ТЕХНИЧЕСКИ?

База у них общая - библиотека llama.cpp (написана на C++) для максимальной скорости инференса. 

1. Ollama: Работает как системный процесс (демон). Она сама управляет загрузкой слоев в видеопамять (VRAM) и автоматически выгружает модель из памяти при простое.

2. LM Studio: Базируется на фреймворке Electron. Распределение слоев нейросети между процессором (CPU) и видеокартой (GPU) настраивается вручную через интерфейс.


📦 В КАКОМ ФОРМАТЕ ХРАНЯТСЯ МОДЕЛИ? 

• В LM Studio модели используются в виде открытых файлов формата .gguf. Вы их скачиваете и сразу видите в папке.

• В Ollama под капотом используются те же файлы .gguf, но система скрывает их в своей служебной директории, переименовывая в кэшированные файлы (blobs) без расширения, чтобы удобно управлять версиями.


Можно поставить и то и то для сравнения, но вот модели они не делят между собой. Однако можно их делегировать (копировать) не перекачивая повторно с интернет.

Tuesday, 7 January 2025

Домашний GenАI сервер.

Всем привет.

Как-то под Новый год мне не удалось попасть физически на свой компьютер (с Windows 10, но далее назовем его гордо GenАI-сервер) который и выступает собственно в роли GenАI. А вот ноутбук оказался доступен. И чертовски захотелось поработать творчески...

Тут я вспонимл про то что почти все генераторы могут работать по сети.  В конце концов gradio тот же web frontend, a волшебный ключик --listen творит чудеса.

Что мы имеем в таком случае? У себя на нотубуке в web-браузере мы можем запустить тот же ComfyUI как https://GenAI_ip_adr:8187 и начинать творить. Все ресурсы для генерации, CPU+RAM+VRAM, будут использованы на удаленном сервере. Отлично. 

А что в минусах? 

Первое - у нас нет консоли (backend) самого генератора, иногда полезно и туда заглядывать, хотя для ComfyUI автор эту проблему уже решил: хитрая панелька снизу в окне web-браузера.

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

Какие есть варианты?

Самый простой это использовать RDP сеанс к своему серверу. Теперь в отдельном окне у меня Desktop сервера со всеми вытекающими плюсами. Если здесь минус? Практически нет, за исключением небольших настроек для RDP.  Но можно пойти еще дальше.

Friday, 1 July 2022

Про Xplico.

Всем привет.

Есть такой парень Xplico - это инструмент анализа сетевой криминалистики (NFAT). Цель Xplico в извлечении из захваченного интернет трафика данных приложения протокола, и он может распознавать протоколы с помощью метода под названием Port Independent Protocol Identification (PIPI).

Например, из файла pcap Xplico извлекает каждый email (протоколы POP, IMAP и SMTP), всё содержимое HTTP, каждый звонок VoIP (SIP), FTP, TFTP и т. д. Xplico не является анализатором сетевого протокола.  Повторюсь, что Xplico - это криминалистический инструмент анализа сети.

Домашняя страница: http://www.xplico.org/. Автор: Gianluca Costa, Andre de Franceschi. Лицензия: GPLv2

Его особенности:

  • Поддерживаемые протоколы: HTTP, SIP, IMAP, POP, SMTP, TCP, UDP, IPv6;
  • Независимая идентификация портов протоколов (PIPI) для каждого протокола приложений:
  • Многопоточность;
  • Выводимые данные и информация в базе данных SQLite или базе данных database и/или файлах:
  • Все перекомпонованные в Xplico данные ассоциируются с файлом XML, который однозначно идентифицирует содержимое пересобранных данных потоков и pcap;
  • Проработка в реальном времени (зависит от количества потоков, типов протоколов и производительности компьютера — оперативной памяти, процессора, времени доступа к жёсткому диску и т. д.);
  • Сборка TCP с верификацией ACK для всех пакетов или программная ACK верификация
  • Обратный поиск DNS из содержащих DNS пакетов во входящих файлах (pcap), а не с внешнего DNS сервера;
  • Нет ограничения на размер входящих данных или на количество входящих файлов (ограничение только по размеру жёсткого диска);
  • Поддержка IPv4 и IPv6;
  • Модульность. Каждый компонент Xplico является модулем. Протокол ввода, протокол декодирования (Dissector) и интерфейс вывода (dispatcher) — это всё модули;
  • Возможность легко создавать любые типы dispatcher с помощью которых организовывать извлечение данных наиболее подходящим и полезным для вас путём.

Xplico использование:

xplico [-v] [-c <файл_конфигурации>] [-h] [-s] [-g] [-l] [-i <prot>] -m <модуль_захвата></prot>

-v версия

-c файл конфигурации

-h эта помощь

-i информация по протоколу 'prot' 

-g показать дерево-график протоколов

-l напечатать на экране всё содержимое логов

-s печатать каждую секунду статус декодирования

-m тип модуля захвата

Параметры должны следовать в этом порядке!

Friday, 17 June 2022

HTTP-запросы и парсинг web-страниц в PowerShell.

Всем привет.

Эта статья - гла­ва из кни­ги Андрея Попова «Сов­ремен­ный PowerShell», вышед­шей в изда­тель­стве «BHV» в мар­те это­го года. В кни­ге под­робно опи­сан язык PowerShell и работа с обо­лоч­кой Windows PowerShell в Windows Terminal, вза­имо­дей­ствие с фай­ловой сис­темой, струк­туриро­ван­ными дан­ными и веб-ресур­сами. 

Собственно я больше знаком с первой книгой автора "Введение в PowerShell" которую он издал еще в 2009-м. С нее и началось мое вхождение в мир PowerShell. Поэтому книга «Сов­ремен­ный PowerShell» мне будет не так интересна как первая, которую она повторяет на 80%. Но надо отдать должное автору, что его подача материала всегда отличается ясностью, практичностью и лаконичностью.

Поэтому сегодня мы вместе с Андреем напишем HTTP-запросы и пропарсим web-страницы через PowerShell.

В интернете есть множество сервисов, с которы­ми мож­но работать, обра­щаясь к их ресур­сам по про­токо­лу HTTP. Веб-раз­работ­чики пос­тоян­но работа­ют с такими HTTP-зап­росами для дос­тупа к фун­кци­ям внеш­них API или для тес­тирова­ния собс­твен­ных при­ложе­ний. PowerShell для обра­щения к вебу по HTTP пред­лага­ет два стан­дар­тных коман­дле­та: Invoke-WebRequest и Invoke-RestMethod.

КОМАНДЛЕТ INVOKE-WEBREQUEST

С помощью командлета Invoke-WebRequest можно направить веб-серверу HTTP-запрос и получить от него ответ.

Анализ HTML-страниц

Этот командлет хорошо подходит для анализа HTML-страниц. Еще он умеет сохранять страницы на локаль­ном дис­ке. В этом он похож на кон­соль­ную ути­литу wget и даже име­ет такой псев­доним:

PS C:\Script> Get-Alias wget

CommandType     Name

-----------     ----

Alias           wget -> Invoke-WebRequest

Об­ратим­ся с помощью Invoke-WebRequest к какой-нибудь прос­той стра­нице, нап­ример Example Domain. По умол­чанию Invoke-WebRequest выпол­няет HTTP-зап­рос с методом GET к ресур­су на веб-сер­вере, адрес ресур­са ука­зыва­ется в качес­тве зна­чения парамет­ра -Uri. В резуль­тате воз­вра­щает­ся объ­ект типа HtmlWebResponseObject, в котором хранит­ся информа­ция об отве­те сер­вера:

Friday, 1 April 2022

Диагностика сетевого взаимодействия.


Всем привет. 

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

Вы начинаете с получения полного доменного имени (FQDN), fully qualifed domain name своего хоста и значения IP адреса его DNS сервера, а затем проверяете работает ли этот сервер DNS.

Затем вы применяете сконфигурированный сервер DNS на предмет определения значений имён контроллеров домена в своём домене и убеждаетесь что способны достигать каждого контроллера домена как по порту 389 (LDAP), так и по 445 (для GPO). 

Затем вы проверяете доступность шлюза по умолчанию. В конце, уже опционально, вы тестируете возможность достижения удалённого хоста по порту 80 (http) и по порту 443 (HTTP поверх SSL/ TLS). 

В приницпе весь рецепт диагностики состоит из кода Powershell для версии 7.0.

# Получаем значение имени DNS данного хоста

$DNSDomain = $Env:USERDNSDOMAIN

$FQDN      = "$Env:COMPUTERNAME.$DNSDomain"

# Получаем значение адреса этого DNS сервера

$DNSHT = @{

  InterfaceAlias = "Ethernet"

  AddressFamily  = 'IPv4'

}

$DNSServers = (Get-DnsClientServerAddress @DNSHT).ServerAddresses

$DNSServers

# Убеждаемся в доступности этих DNS серверов

Foreach ($DNSServer in $DNSServers) {

  $TestDNS = Test-NetConnection -Port 53 -ComputerName $DNSServer   

  $Result  = $TestDNS ? "Available" : ' Not reachable'

  "DNS Server [$DNSServer] is $Result"

}

Sunday, 20 March 2022

Пишем диссектор Wireshark на Lua.

Всем привет.

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

К счастью, можно использовать плагин Wireshark Protocol Dissectors, чтобы добавить в Wireshark анализ дополнительного протокола. Раньше для этого требовалось создание диссектора на языке С, чтобы работать с конкретной версией Wireshark, но современные версии Wireshark поддерживают язык сценариев Lua. Сценарии, которые вы пишете на Lua, также будут работать с инструментом командной строки tshark.

Давайте рассмотрим как разработать простой диссектор на Lua для протокола SuperFunkyChat, который поддерживает открытый чат по протоколу 12345.

Перед разработкой диссектора убедитесь, что ваша копия Wireshark поддерживает Lua, проверив диалоговое окно "О программе" Wireshark в разделе Help → About Wireshark. Если вы запускаете Wireshark от имени привилегированного пользователя в Unix-подобной системе, то обычно поддержка Lua отключена по соображениям безопасности, и вам нужно будет настроить Wireshark для запуска от имени непривилегированного пользователя, чтобы перехватывать и запускать сценарии на Lua. Можно разрабатывать диссекторы практически для любого протокола, с которым будет работать Wireshark, включая TCP и UDP. Гораздо проще разработать диссекторы для протоколов UDP, чем для TCP, потому что каждый перехваченный пакет UDP обычно имеет все, что нужно диссектору. 

SuperFunkyChat поддерживает режим UDP, передавая клиенту параметр командной строки --udp при запуске, что довольно удобно. Отправьте этот параметр во время перехвата и увидите пакеты, подобные тем, что показаны на скриншоте. Обратите внимание, что Wireshark по ошибке пытается проанализировать трафик, используя протокол GVSP, как показано в столбце Protocol. Реализация собственного диссектора исправит эту ошибку.


Один из способов загрузить файлы Lua – поместить свои сценарии в каталог %APPDATA%\ireshark\plugins в Windows или каталог ~/.config/wirehark/plugins в Linux и macOS. Также можно загрузить сценарий Lua, указав его в командной строке следующим образом, заменив информацию о пути на расположение сценария:

Wireshark.exe -X lua_script:chat2.lua

Есть и другой способ - это в файле Init.lua проверить значение параметра

disable_lua = false

а в конце того же файла добавить ссылку на сам скрипт:

dofile(DATA_DIR.."chat2.lua")

Wednesday, 20 October 2021

PowerShell Security book #1.

Hi all.

Today I would like to present for your eyes the best e-book of authors Michael Pietroforte and Wolfgang Sommergut "PowerShell Security".

These authors describe in details security features in Powershell:

  • Control execution of scripts using execution policy, code signing and constrained language mode
  • Secure PowerShell remoting with SSH und TLS
  • Delegate administrative tasks with JEA
  • Audit and analyze PowerShell activities, encrypt logs
  • Improve code quality following best practices.

PowerShell is a powerful tool for system administration and as such also a perfect means for hackers. Due to the tight integration into the system, attempts to simply block PowerShell provide a false impression of security. The best protection is provided by PowerShell's own mechanisms. PowerShell offers almost unlimited access to the resources of a Windows computer and also can automate numerous applications such as Exchange. Users aren't limited to the many modules and cmdlets, but can also integrate .NET classes, Windows APIs, and COM objects. These capabilities are particularly dangerous in the hands of attackers. Since many versions of With Windows Server, Microsoft avoids to activate any roles and features on a freshly installed machine in order to minimize the attack surface. On such a locked down system users must explicitly add all required services.



So, now I try to explain for you these features in practically. Let's go.

# Execution scripts.

We can define policies for execution Powershell scripts on the host by:

  • GPO
  • signing our script
  • set constrained language mode.

# Execution policy.

I prefer set RemoteSigned mode. It means that Scripts downloaded from the Internet must be signed by a trusted publisher.

How it set?

  • Set-ExecutionPolicy RemoteSigned
  • Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
  • $env:PSExecutionPolicyPreference

How it check?

Get-ExecutionPolicy -List | ft -AutoSize

We can set Turn on Poweshell script execution by GPO.

How it set?

mmc: Policies => Administrative Templates => Windows Components => Windows PowerShell and is called Turn on Script Execution.

Result: powershell.exe -ExecutionPolicy "Unrestricted" doesn't work!

However you can bypass it as following:

a) If a user decides to circumvent this policy, he simply copies the contents of a script to the ISE and runs it there. 

b) RemoteSigned allows unsigned scripts downloaded from the Internet to be started if you unblock the file using Unblock-File.

c) Another bypass consists of encoding the script in Base64 and transferring it to PowerShell.exe via the EncodedCommand parameter. 

To limit possible damage caused by such activities, it is recommended to use the Constrained Language Mode.

Friday, 27 August 2021

Используем PowerShell Remoting.

Всем привет.

Такая мега-полезная фича как PowerShell Remoting основана на реализации протокола Web Services for Management (WS-Management), а для связи использует службу  Windows Remote Management (WinRM). Связь между компьютерами осуществляется по HTTP или HTTPS. Весь трафик между двумя компьютерами шифруется на уровне протокола (за исключением случаев, когда используется SSL). Поддерживаются несколько методов аутентификации, включая NTLM и Kerberos.

В отличие от утилит, использующих различные программные интерфейсы, PS Remoting работает следующим образом: команды, вводимые на локальном компьютере, передаются на удаленный компьютер и там выполняются, затем результат передается обратно. Поскольку все команды выполняются локально, нет необходимости заботится о совместимости. Кроме того, для работы PS Remoting нужен всего один открытый порт 5985(или 5986) на брандмауэре.

Но сперва надо подготовить удаленный хост PC1 к внешним запросам:

Enable-PSRemoting -Force

Эта комадна устанавливает следующее:

- WinRM start automatically

- WinRM accept remoting requests

- Firewall allow remoting requests

Также следует изменить тип сети на частную (private) так:

Get-NetConnectionProfile | Set-NetConnectionProfile -NetworkCategory Private

или использовать команду:

Enable-PSRemoting –SkipNetworkProfileCheck

Также нужно включить правило Window Defender Firewall, которое разрешает доступ к WinRM в общедоступных сетях:

Set-NetFirewallRule -Name 'WINRM-HTTP-In-TCP' -RemoteAddress Any

Чтобы проверить подключение к удаленному компьютер через PowerShell Remoting используется команда:

Test-WsMan PC1

Точно также вы можете протестировать, можно ли подключится через PowerShell Remoting к компьютеру локально:

Test-WSMan localhost

Tuesday, 15 December 2020

Как пользоваться ncat.

Всем привет.

Поднимая тему создания шеллов обязательно натыкаешся на использования такой утилиты как Ncat. Программа Netcat - это полезная сетевая утилита, с помощью которой можно анализировать и моделировать работу многих сетевых протоколов, можно выполнять команды на удалённой машине и закачивать или скачивать с неё файлы, перенаправлять трафик с одного порта на другой или с одной машины на другую. Безусловно, пентестеру (аудитору сетевой безопасности) нужно хорошо разбираться в сетевых протоколах и уметь использовать Netcat в процессе обучения.

Поэтому для того чтобы самому знать о чем речь в дальнейшем я собрал полигон (Ubuntu+Windows10) и на бегу проверил примеры ниже.

1) Читаем HTTP-заголовки:

ncat.exe -v google.com 80 <head.txt

- где head.txt:

HEAD /index.php HTTP/1.0

Host: google.com

ncat.exe -v google.com 80 <get.txt

- где get.txt:
GET / HTTP/1.0
Host: google.com

2) Копирование файлов:

ncat -l -p 43210 < readme.txt

ncat -l -p 43210 > 2readme.txt

3) Копирование файлов с поддержкой SSL:

ncat -l --ssl -p 6666 --send-only < test.txt

4) Мини вариант Web-server:

ncat -l 8080 < hello.http

ncat -lk -p 8080 --sh-exec "echo HTTP/1.1 200 OK& echo(&type index.html"

- где hello.http:

HTTP/1.1 200 OK

<html>

  <body>

    <h1>Hello, world!</h1>

  </body>

</html>

Friday, 10 July 2020

Ansible и его соединения.

Всем привет.

Вы знаете Ansible  как одну из систем управления конфигурациями (оркестратор).

Особенность Ansible в наличии управляющего сервера (master), с которого отправляются команды или наборы инструкций (playbooks) на удаленные хосты посредством протокола SSH, или HTTPS.

Ansible решает следующие задачи:

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

Ansible не требует установки на удаленные хосты клиента, так как подключается к ним по протоколу SSH за исключением настройки службы WinRM где подключение идет по HTTPS.

Но хватит теории. Волею случая мне довелось проверить все возможности соединения с помощью Ansible. В моем тесте участвовали:

  • Homediver, Desktop Windows 10
  • ec2-54-197-120-211.compute-1.amazonaws.com, AWS MS Server 2019
  • ec2-54-88-28-8.compute-1.amazonaws.com, AWS Ubuntu
  • appliance, VirtualBox CentOS 8
  • Ansible master, VirtualBox Debian 9


Monday, 11 November 2019

Как пользоваться curl.

Всем привет.

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

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

ЧТО ТАКОЕ CURL?

На самом деле, curl - это больше чем просто утилита командной строки для Linux или Windows. Это набор библиотек, в которых реализуются базовые возможности работы с URL страницами и передачи файлов. Библиотека поддерживает работу с протоколами: FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, LDAP, а также POP3, IMAP и SMTP. Она отлично подходит для имитации действий пользователя на страницах и других операций с URL адресами.

Поддержка библиотеки curl была добавлена в множество различных языков программирования и платформ. Утилита curl - это независимая обвертка для этой библиотеки. Именно на этой утилите мы и остановимся в этой статье.

КОМАНДА CURL

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

$ curl опции ссылка

Теперь рассмотрим основные опции:

-# - отображать простой прогресс-бар во время загрузки;
-0 - использовать протокол http 1.0;
-1 - использовать протокол шифрования tlsv1;
-2 - использовать sslv2;
-3 - использовать sslv3;
-4 - использовать ipv4;
-6 - использовать ipv6;
-A - указать свой USER_AGENT;
-b - сохранить Cookie в файл;
-c - отправить Cookie на сервер из файла;
-C - продолжить загрузку файла с места разрыва или указанного смещения;
-m - максимальное время ожидания ответа от сервера;
-d - отправить данные методом POST;
-D - сохранить заголовки, возвращенные сервером в файл;
-e - задать поле Referer-uri, указывает с какого сайта пришел пользователь;
-E - использовать внешний сертификат SSL;
-f - не выводить сообщения об ошибках;
-F - отправить данные в виде формы;
-G - если эта опция включена, то все данные, указанные в опции -d будут передаваться методом GET;
-H - передать заголовки на сервер;
-I - получать только HTTP заголовок, а все содержимое страницы игнорировать;
-j - прочитать и отправить cookie из файла;
-J - удалить заголовок из запроса;
-L - принимать и обрабатывать перенаправления;
-s - максимальное количество перенаправлений с помощью Location;
-o - выводить контент страницы в файл;
-O - сохранять контент в файл с именем страницы или файла на сервере;
-p - использовать прокси;
--proto - указать протокол, который нужно использовать;
-R -  сохранять время последнего изменения удаленного файла;
-s - выводить минимум информации об ошибках;
-S - выводить сообщения об ошибках;
-T - загрузить файл на сервер;
-v - максимально подробный вывод;
-y - минимальная скорость загрузки;
-Y - максимальная скорость загрузки;
-z - скачать файл, только если он был модифицирован позже указанного времени;
-V - вывести версию.

Это далеко не все параметры curl linux, но здесь перечислено все основное, что вам придется использовать.

Saturday, 2 November 2019

Возможности wget в Linux.

Всем привет.

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

Для для выполнения закачек из Интернет по протоколам HTTP или FTP в Linux существует специализированная утилита - wget. Она управляется из командной оболочки, имеет простой синтаксис, а также богатый функционал, позволяющий гибко выполнять закачки в самых различных ситуациях. В подавляющем большинстве дистрибутивов Linux wget изначально предустановлена в системе.

Утилита wget обладает рядом особенностей, делающих её самым эффективным и популярным инструментом для организации загрузок, в особенности среди системных администраторов:

  • утилита является стандартным инструментом для дистрибутивов на базе Не нужно предварительно ничего устанавливать, настраивать или компилировать (если, конечно не нужно использовать самую актуальную версию wget), достаточно просто начать использование;
  • wget поддерживает работу в фоновом режиме;
  • утилита самостоятельно контролирует соединения и поэтому способна осуществлять докачку при потере соединений или плохой связи;
  • поддержка рекурсивного режима работы wget позволяет автоматически выполнять закачки из множества ресурсов, например, закачивая несколько HTML-страниц или поддиректорий с FTP-сервера.

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

Опции
-V (—version) — вывести версию программы
-h (—help) — вывести справку
-b (—background) — работать в фоновом режиме
-o файл (—out-file) — указать лог файл
-d (—debug) — включить режим отладки
-v (—verbose) — выводить максимум информации о работе утилиты
-q (—quiet) — выводить минимум информации о работе
-i файл (—input-file) — прочитать URL из файла
—force-html — читать файл указанный в предыдущем параметре как html
-t (—tries) — количество попыток подключения к серверу
-O файл (—output-document) — файл в который будут сохранены полученные данные
-с (—continue) — продолжить ранее прерванную загрузку
-S (—server-response) — вывести ответ сервера
—spider — проверить работоспособность URL
-T время (—timeout) — таймаут подключения к серверу
—limit-rate — ограничить скорость загрузки
-w (—wait) — интервал между запросами
-Q (—quota) — максимальный размер загрузки
-4 (—inet4only) — использовать протокол ipv4
-6 (—inet6only) — использовать протокол ipv6
-U (—user-agent)— строка USER AGENT отправляемая серверу
-r (—recursive)- рекурсивная работа утилиты
-l (—level) — глубина при рекурсивном сканировании
-k (—convert-links) — конвертировать ссылки в локальные при загрузке страниц
-P (—directory-prefix) — каталог, в который будут загружаться файлы
-m (—mirror) — скачать сайт на локальную машину
-p (—page-requisites) — во время загрузки сайта скачивать все необходимые ресурсы
wget в примерах

Saturday, 3 August 2019

Схлопывание (flapping) событий в Zabbix.

Всем привет. 

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

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

Оценить производительность системы можно так:
{server:system.cpu.load.last()} > 5

Производительность системы с 10-ти минутной историей:
{server:system.cpu.load.min(10m)} > 5

Оценить доступность сервиса по http можно так:
{server:net.tcp.service[http].last()} = 0

Доступность сервиса с 10-ти минутной историей:
{server:net.tcp.service[http].max(5m)} = 0
OR
{server:net.tcp.service[http].max(#3)} = 0

Как преодолеть схлопывание (Flapping) события? Это связано с количеством оповещений в рамках данной проблемы.

Исходное условие пишется так:
{server:system.cpu.load.last()} > 5

А должно быть так:
({TRIGGER.VALUE}=0 and {server:system.cpu.load.last()}>5)
OR
({TRIGGER.VALUE}=1 and {server:system.cpu.load.last()}>1)

Для оценки производительности системы:
({TRIGGER.VALUE}=0 and {server:system.cpu.load.min(5m)}>3)
OR
({TRIGGER.VALUE}=1 and {server:system.cpu.load.max(2m)}>1)

Для оценки свободного места:
({TRIGGER.VALUE}=0 and {server:vfs.fs.size[/,pfree].last()}<10)
OR
({TRIGGER.VALUE}=1 and {server:vfs.fs.size[/,pfree].min(10m)}<30)

Для оценки доступности SSH-сервиса:
({TRIGGER.VALUE}=0 and {server:net.tcp.service[ssh].max(#3)}=0)
OR
({TRIGGER.VALUE}=1 and {server:net.tcp.service[ssh].min(#10)}=0)

Для оценки аномалии производительности системы в течении недели:
{server:system.cpu.load.avg(1h)} > 2 *
{server:system.cpu.load.avg(1h,7d)}

На сегодня все.

Monday, 17 June 2019

Настройка https соединения для сервера Zabbix.

Всем привет.

Продолжаем тему HTTPS. Прошлый раз у нас был NetFlow Analyzer, а сегодня будет сервер Zabbix.

Защищенное HTTPS соединение, в настоящее время, является важным элементом для обеспечения безопасной передачи данных между клиентом и сервером. Для создания такого соединения необходимо установить на сервер SSL-сертификат, который можно или купить, или создать самому, используя собственный центр сертификации.

Для начала необходимо скопировать на сервер с Zabbix сертификат и закрытый ключ в директорию /etc/ssl/:

#копируем сам сертификат в директорию /etc/ssl/certs/ 
cp server.pem /etc/ssl/certs/ 
#копируем закрытый ключ в директорию /etc/ssl/private/
cp server.key /etc/ssl/private/
#делаем доступным файл закрытого ключа только для Администратора
chmod 0600 /etc/ssl/private/server.key

Необходимо активировать mod_ssl и включить HTTPS по умолчанию. Для этого в консоли LInux (из-под root) вводим следующие команды:
a2enmod ssl
a2ensite default-ssl

Для включения Alias (для настройки редиректа с http и https) необходимо выполнить команду:
a2enmod alias

Осталось настроить конфиги и перезапустить сервер. 

В файле /etc/apache2/sites-available/000-default.conf вносим следующие изменения:
 ServerName zabbix.forza.com
 ServerAlias www.zabbix.forza.com
 Redirect permanent / https://forza.com
 DocumentRoot /usr/share/zabbix

В файле /etc/apache2/sites-available/default-ssl.conf включаем SSLEngine и указываем путь до сертификата и закрытого ключа:
 SSLEngine on
 SSLProtocol all -SSLv2
 SSLCertificateFile      /etc/ssl/certs/server.pem
 SSLCertificateKeyFile /etc/ssl/private/server.key
 DocumentRoot /usr/share/zabbix

В файле Ports.conf комментируем строку чтобы наш сервер больше не слушал http:
#Listen 80

В принципе настройка HTTPS на этом завершена, перезапускаем сервис Apache:
service apache2 restart

Все готово.

Monday, 11 March 2019

Zabbix and LDAP secure authethincation.

Hi everybody.

As you know Zabbix has authethincation methods via Internal, LDAP and HTTP. And how about Secure LDAP? Yes, sure. It can be true also.

So as you can see on the snapshot you have to type in the "LDAP host" field the value as "ldaps://myDC" and in the "Port" field as 636.


If you have a problem with reset authethincation to Internal by Zabbix frontend you can do it in mysql:

mysql -u root -p
UPDATE 'zabbix'.'config' SET 'authentication_type' = '0' WHERE 'config'.'configid' = 1;

See you later.

Thursday, 15 March 2018

Implementing Windows PowerShell Security.

Hi there.

Recently I have well done online great course about PowerShell Security. This course is on EDX web-portal and his name is "INF251x: Implementing Windows PowerShell Security".

To my mind it was one of the best free courses about PowerShell. I got many new features about scripting technology. 

The Windows PowerShell team has put significant effort into securing and hardening its product. This effort included a comparative analysis of security across most popular shells and scripting languages. The analysis was based on the following criteria:
  • Event Logging – The engine logs audit events of important operational events.
  • Transcription – The engine logs application inputs and outputs.
  • Dynamic Evaluation Logging – The engine logs the content of all content evaluation, including those generated or composed at runtime.
  • Application Whitelisting – The engine allows enforcement of code integrity / application whitelisting policies, including user-authored documents / scripts.
  • Antimalware Integration – The engine actively integrates with antimalware software to evaluate the safety of code generated at runtime.
  • Local Sandboxing – The engine allows sandboxing of behavior for local and interactive use.
  • Remote Sandboxing – The engine allows sandboxing of behavior when accessed remotely.
  • Untrusted Input Tracking – The engine allows script developers to track and make security decisions based on whether a variable or input was influenced by user input.


Also I would like to pay your attention to one moment - authors of course give us some examples about PowerShell penetration cases. It's wonderful. 

Версия на печать

Популярное