Архив метки: shell

Как мы сайт от вируса лечили

БактерияОдин мой знакомый пожаловался, что его сайт периодически подглючивал. Стоит отметить, что сайт работал под управлением CMS Joomla. Я стал исследовать сервер, и мое внимание зацепила вот такая строка кода в одном из php-файлов:

<?php eval(base64_decode("DQplcn...KfQ=="));

Внутри этого base64-кода скрывался редирект на сайт сомнительного содержания. Стало очевидно, что сайт подвергся заражению, и надо было его лечить. Беглый подсчет показал, что заражены практически все php-файлы сайта — вхождений такой строки было около 16 тысяч. Под катом несколько шагов, которые я предпринял для устранения этой проблемы.
Читать далее Как мы сайт от вируса лечили

DROP ALL TABLES в MySQL

Заголовок у этой заметки немного неправильный. В MySQL нет такой команды, а хотелось бы, чтоб она была. Иногда возникают задачи, в которых мы хотим удалить все таблицы из БД, но не ее саму (чтобы остались ее параметры, такие как права доступа, кодировки и т.п.). Решить такую проблему можно с помощью однострочника на shell:

mysqldump -u$DB_USER -p$DB_PASS --add-drop-table --no-data $DB_NAME | grep ^DROP | mysql -u$DB_USER -p$DB_PASS $DB_NAME

Первой командой конвейера мы создаем «дамп» базы данных, состоящий из всевозможных DROP TABLE, но без данных. Второй командой выбираем только строки, начинающиеся с DROP, и наконец последней, заливаем полученные команды в MySQL.

rkhunter — Differences found between sockstat and netstat output

На своих серверах столкнулся с такими ежедневными ложными срабатываниями rkhunter:

Warning: Differences found between sockstat and netstat output:
         Sockstat output (ports in use): 139 2094 2095 21 22 25 3306 445 47763 80
         Netstat output (ports in use): 139 2094 2095 21 22 25 3306 445 80

Естественно, немного надоедает, и я решил в чем тут может быть причина, потому что хакеров у меня на серверах вроде бы нет 🙂
Читать далее rkhunter — Differences found between sockstat and netstat output