Системный администратор в Черногории и по всему миру

Администрирование серверов, разработка плагинов к хостинг-панелям

DomainMonitoring - ispmanager / billmanager плагин мониторинга реестров

Плагин добавляет функционал проверки всех доменов и ip адресов сервера в реестре запрещенных сайтов, также проверяются ip адреса сервера в популярных спам-блеклистах (zen.spamhaus.org, cbl.abuseat.org, bl.spamcop.net).

Для версии ispmanager проверяются локальные адреса и домены на хостинге, для billmanager проверяются все подчиненные панели ispmanager, подключенные услуги vds хостинга и все домены шаред-хостинга.

Скриншот настроек ISPsystem 4
domainmonitoring

Скриншот настроек ISPsystem 5
ispmanager 5
(далее…)

BanIp - плагин для Ispmanager 4 (lite/pro)

Плагин добавляет возможность просмотра и блокировки ip адресов или подсетей.
Добавляет раздел "Блокировки ip" в блок "Инструменты". Выводит список ip адресов и количество соединений с них, хостнейм и страну.
Позволяет блокировать в ручном режиме выбранные ip адреса на произвольный промежуток времени.

ipban1

Возможна автоматическая блокировка в соответствии с настраиваемой логикой работы.

ipban2

Для минимизации ошибок в работе, плагин не позволяет заблокировать ip адрес сервера или ip текущего администратора с правами root.

Системные требования:
PHP 5+
Ispmanager 4 (Lite или Pro)
Iptables

Ручная установка:
cd /usr/local/ispmgr
wget https://montenegro-it.com/files/banip.tar.gz
tar -xzf banip.tar.gz
killall -9 ispmgr

Автоматическая установка:
Добавьте источник расширений https://montenegro-it.com/files/plugins.xml и установите плагин BanIp

Скачать плагин (версия: 1.0.2 от 16.02.2016)

Раздел на GitHub

Версия 1.0.2
Добавлена возможность отключать геозапросы
Добавлена возможность ограничивать число портов.
banip4

Changepasswd - плагин для Billmanager 4

Данный плагин добавляет возможность генерации нового пароля и отсылки его пользователю в открытом виде.
Плагин добавляет кнопку в раздел "Пользователи" панели Billmanager 4, при нажатии на которой, администратору высвечивается новый сгенерированный пароль пользователю, при подтверждении операции, пароль изменяется и высылается в регистрационном письме пользователю.
Шаблон письма можно изменять в xml файле, изначально поддерживается русский, английский и немецкие языки.

billmanager plugin

Системные требования:
PHP 5+
Billmanager 4

Ручная установка:
cd /usr/local/ispmgr
wget https://montenegro-it.com/files/changepasswd.tar.gz
tar -xzf changepasswd.tar.gz
killall -9 billmgr

Автоматическая установка:
Добавьте источник расширений https://montenegro-it.com/files/plugins.xml и установите плагин Changepasswd

Скачать плагин (версия: 1.0.0 от 8.11.2015)

Раздел на GitHub

Антивирусный плагин к ispmanager

Разработал антивирусный плагин к ispmanager 4, подходит к lite и pro версии. Плагин использует для проверки модуль детектирования от компании https://revisium.com/ai/

ссылка на github: https://github.com/crnagora/ispmanager_aibolit

Удаление BOM меток в файлах

Иногда на хостинг прилетают php (как пример) файлы с bom метками, из-за чего возникает проблемы, например, если в скрипте используются header или session_start, то результатом будет ошибка уровня warning, решение:

find /path/ -name '*.php' -type f -exec sed '1s/^\xEF\xBB\xBF//' -i.bak {} \; -exec rm {}.bak \;

Деанонимизация днс серверов

Для одного из заказчиков сделал скрипт деанонимизации днс-серверов. Подробнее на гитхабе.

Системные требования:
PHP 5+
Bind 9

Скрипт на github

Программисты

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

Смотрю таблицу, на полмиллона строк, все параметры в text, даже бедное поле ip, индексами и не пахнет. Почему, почему почти все php программисты при чтении книг по php, пропускали пару параграфов про mysql, а книжки по mysql  вообще игнорировали.

type_sql

Веб-кластер для бедных #2

Продолжение публикации Веб-кластер для бедных.

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

Решения в данной области стандартные и если речь идет о двух серверах, то достаточно master - master репликации mysql.

Документации в сети полно, поэтому просто скину решение которое использую я.
Будем считать, что на node1 из предыдущего поста у нас рабочая система, а на node2 будем делать копию, и всё это будет работать как master-master репликация.
(далее…)

Тэги: , , ,

Веб-кластер для бедных

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

Если выделить типовые задачи, которые можно решить путем создания веб-кластера, это:
1) возможность распределить нагрузку по серверам путем обычного round robin на уровне dns;
2) возможность "вынести" сервер поближе к пользователям, когда для одной страны/города, трафик отдается с одного сервера, а для остальных, с другого;
3) возможность делать бэкапы на узле который не участвует в отдаче трафика, но тем не менее, содержит на себе всю актуальную информацию и т.п.
(далее…)

Тэги: , , , , , ,

Неудавшийся опыт

Что будет, если попытаться сфотографировать ночью движущийся со скоростью 10 узлов океанский лайнер?

Правильно, гребаное ничего.

_DSC2527