Рубрики
Наследие

Обзор коммерческого ПО для организации хостинга

На сегодняшний день существует ряд коммерческого ПО для создания собственного хостинга, среди которого выступает ряд фаворитов, пользующихся достаточной известностью, а именно:
HSphere, cPanel, Plesk, DirectAdmin.
Каждая из этих панелей имеет как свои преимущества, так и недостатки. Рассмотрим каждую из панелей более детально:

HSphere — неплохой вариант, позволяет управлять множеством серверов с единого интерфейса, подключая новые серверы при необходимости. Панель достаточно сложная, имеет собственный биллинг, систему поддержки, регистрацию доменов и т.п.
Данная панель достаточно дешевая, так как оплачивается или лицензия на владельца, или на использование ее клиентами.
Стоимость начинается от 3.5$ за одну лицензию. Оплачивается один раз, минимум 50 лицензий.
Лицензия на клиента привязывается к биллингу и не ограничивает число серверов и доменов, работающих на HSphere.

cPanel — индустриальный стандарт. При массе дополнительных опций и настроек это одна из самых незащищенных панелей. Связано это с тем, что данное ПО очень популярно и в силу своей популярности пользуется повышенным вниманием со стороны хакеров. Лицензирование и цена на панель очень сильно зависят от реселлеров.

Plesk — многие находят данную панель достаточно стабильной, интерфейс удобным, а цену доступной. Однако панель распространяется с жестко фиксированными сборками ПО без возможности их переконфигурации штатными средствами.
Конфигурация хранится в базе mysql, и при каждой работе с панелью происходит регенерация конфигурационных файлов для того аккаунта, с которым идет работа. Это исключает любые нестандартные действия с конфигами.

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

Следует отметить, что существует такое ПО, как xpanel, стоимость которого составляет всего 100$ одноразово. Панель имеет мерчанты для 2checkout и PayPal, неплохой функционал. Есть тематический форум на сайте разработчика.

Рубрики
Старье

Дополнительные скрипты для cPanel

Немногие знают, что основной плюс WHM/cPanel — это множество дополнительных скриптов, как платных, так и свободных.
Сегодня мы обсудим ряд бесплатных скриптов от cplicensing.net.

chkcpaccts — Скрипт проверяет присоединенные к серверу домены и выявляет те, которые перенесены на другой сервер. Этот скрипт помогает найти ошибки в конфигурировании доменов, а также выдает список аккаунтов, которые были перемещены на другой сервер. Такие аккаунты можно удалять;
chkformmailver — скрипт сканирует сервер на наличие уязвимых скриптов formmail, которыми может воспользоваться спамер;
chkphpbbver — скрипт сканирует сервер на наличие уязвимых форумов phpBB;
cleanbackups — скрипт удаляет старые бэкапы удаленных аккаутов;
fix404errors — скрипт создает страницу ошибки 404.shtml для каждого пользователя, который ее не имеет;
fixmailboxhardlinks — Скрипт исправляет ошибки почтовых ящиков, связанные со спецификой hardlink;
portwatch — скрипт подсчитывает число соединений от каждого IP к указанному порту. Позволяет определить простейший вид DoS;
rebuildnamedzones — скрипт пересоздает все доменные зоны в /var/named;
updateserial — скрипт позволяет обновить серийную запись для всех доменных имен;
watchmysql — скрипт позволяет лимитировать использование mysql и убивать слишком долгие запросы (однако портятся таблицы);
whocompiled — скрипт определяет, кто в ssh вызывал компилятор gcc или cc;

Скачать скрипты можно по адресу http://www.cplicensing.net/scripts.php.
Большинство данных скриптов можно использвать на серверах без WHM/cPanel.

Рубрики
Старье

Stress Kit — тестируем железо

Порой бывает так, что выделенный сервер имеет ряд аппаратных проблем, которые проявляются не сразу, а только при нагрузке. Избежать ситуации, когда сервер, нагруженный серьезными задачами, вдруг начинает сбоить, поможет набор специализированного ПО и скриптов:
stress is a simple tool that imposes certain types of compute stress on UNIX-like operating systems.
memtester — userspace utility for testing the memory subsystem for faults. It’s portable and should compile and work on any 32- or 64-bit Unix-like system. (Yes, even weird, proprietary Unices).
И специальный скрипт, который тестирует в несколько стадий: вначале «разогревает» сервер 5 минут, после чего проверяет память. Это позволяет выявить проблемы, связанные с микротрещинами на платах, так как эти проблемы проявляют себя в процессе «остывания» после большой нагрузки.
Далее идет параллельный «разогрев» и тестирование памяти, для тестирования памяти под нагрузкой.
Следующий этап тестирует дисковую подсистему, процессор и память путем создания большого файла, трудно поддающегося компрессии, его сжатия и распаковки. Обычно уже на этом этапе проблемные дедики выдают ошибку вроде «Data integrity error when decompressing.»
Затем тестируется процессор, в это время загрузка системы (load) достигает 253, и температура процессора значительно повышается. Если существуют проблемы с охлаждением, они себя проявят во время пика загрузки. Тест длится минуту.
И, наконец, последняя стадия — тестирование дисковой подсистемы и параллельно пятикратная проверка памяти.
Если во время прохождения теста не проявилась ни одна ошибка — с сервером все в порядке.

Установка и запуск Stress Kit:

wget http://dedic.ru/files/stress.tar.gz
tar xzf stress.tar.gz
cd stress
rm -r memtester-4.0.5
rm -r stress-0.18.6
./makeall.sh
./stress.sh ЧислоОперативнойПамяти_в_Мегабайтах

Тест весьма продолжительный.

Рубрики
Наследие

Восстановление сервера после взлома

Итак, рассмотрим на примере сервера, который был взломан путем закачки эксплоита через ошибку в php скрипте, запуск через него же и получение доступа к shell с правами веб-сервера. Об этом красноречиво свидетельствуют «следы» в директориях, доступных на запись для всех: /tmp, /var/tmp, /dev/shm.
Взлома можно было бы избежать на этом этапе, примонтировав разделы для временных файлов без права запуска, отключением опасных функций php и просто более тщательным кодом в php. Однако ничего этого сделано не было.
Хакер не терял времени даром. Он закачал разнообразные эксплоиты, скомпилировал их и после запуска получил права суперпользователя root, воспользовавшись одной из уязвимостей.
И на этом моменте можно было бы его остановить, отключив wget и компиляторы для непривилегированных пользователей и поставив патч, запрещающий выполнение кода в стеке или libsafe. Но, увы, и это не было сделано.
Ситуация была неоднозначной. С одной стороны — очень важные данные, потеря которых критична, с другой стороны — проблема backdor, когда хакер мог бы зайти с помощью какого-то пользователя или выслав определенный набор пакетов демону, слушающему порт. Было принято решение о восстановлении сервера и дальнейшем тщательным наблюдении за ним.
Отключив ряд процессов, которые явно носили в себе нечто чуждое системе, первым делом был установлен, обновлен и запущен rkhunter — утилита для отлова троянов.
Вывод rkhunter был неутешительный — минимум два руткита, масса измененных бинарников.
В такой ситуации поможет только одно — замена зараженного руткитом бинарника на чистый. Однако необходимо знать, какие именно бинарники заменять. Но тут немного повезло. Хакер поставил на измененные файлы атрибуты, запрещающие изменение, удаление или замену файла при помощи команды chatter. Для неофитов, знакомых только с chmod, это создало бы эффект контроля над системой со стороны хакера — зараженные бинарники не переписываются, хотя права на запись стоят.
Создав список зараженных бинарников, все атрибуты удалось восстановить командами

chattr -iacsuASDd /bin/*
chattr -iacsuASDd /sin/*
chattr -iacsuASDd /sbin/*
chattr -iacsuASDd /usr/sbin/*
chattr -iacsuASDd /usr/bin/*
chattr -iacsuASDd /usr/local/bin/*
chattr -iacsuASDd /usr/local/sbin/*

Однако ряд бинарников, которые не были защищены от изменения, все-таки были заражены. Это показал rkhunter. Таким образом, стало ясно, что это неординарный взломщик, который специально оставил взломанные файлы с целью их восстановления. Соответственно, в системе установлен backdor.
Также не работал ряд команд, хотя rkhunter этого не показал. Например, top не выводил ряд присутствующих в системе процессов. По всей видимости, заражение было на уровне модуля ядра, что обеспечивало стелс-защиту зараженных бинарников.
Однако хакер не предусмотрел, что в rpm-based дистрибутивах Linux есть возможность узнать, был ли изменен файл или нет при помощи rpm.
Методика достаточно проста — сначала узнаем, где расположен подозрительный бинарник, например:

which top

Эта команда выдаст полный путь к утилите top — /usr/bin/top. Теперь с помощью rpm узнаем, к какому пакету относится данный файл:

rpm -qf /usr/bin/top

Эта команда сообщит, что утилита top входит в пакет procps. Переустановим его с помощью менеджера apt командой:

apt-get --reinstall install procps

Во время установки было сообщение, что предыдущий top был слинкован с библиотекой /lib/libext-2.so.7. Возможно, это и есть часть стелс-механизма. Запросив с помощью rpm информацию об библиотеке

rpm -qf /lib/libext-2.so.7

была получена информация, что данный файл не является частью системы. Естественно, что он был удален:

chattr -iacsuASDd /lib/*
rm /lib/libext-2.so.7

Далее обнаружилось несколько скрытых процессов, которые были убиты с помощью утилиты killall.
Естественно, что переустановить пришлось не только procps, но и ряд других пакетов, подозреваемых во взломе: util-linux, psmisc, net-tools, kernel, dev, initscripts и многие другие.
После замены ядра сервер был перезагружен и была проведена проверка изменения всех файлов с помощью команды

rpm -Va

Были замечены косвенные признаки наличия в системе backdor. После небольшого исследования системы бэкдор был обнаружен. Также было обнаружено, что у всех системных пользователей сменена оболочка на /bin/sh. Таким образом, это позволяло обратиться к backdor от имени любого пользователя. Для избегания такой ситуации был отключен ряд нежелательных сервисов и создан новый пользователь, который может заходить по сети в оболочку через ssh. Все остальные были отключены.
В настоящее время не замечено никаких попыток несанкционированного доступа, что свидетельствует о весьма высоком уровне взломщика и нежелании его засветиться.

Данная история описана с согласия владельца взломанного сервера. По его словам, все что он сделал, это добавил поддержку php в apache. О том, к каким последствиям это может привести, он даже и не подозревал.

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

Рубрики
Старье

Отключение spamd (SpamAssasin)

SpamAssasin — штука, безусловно, полезная, но довольно ресурсоемкая, и ее иногда требуется отключать.
Код для отключения:


touch /etc/spamdisable
mv /etc/chkserv.d/spamd ~/
service exim restart
service chkservd restart

и для включения:

rm /etc/spamdisable
mv ~/spamd /etc/chkserv.d/
service exim restart
service chkservd restart