пятница, 26 сентября 2008 г.

Установка APF на сервера с панелью управления cPanel/WHM

В этой статье расскажу об установке APF фаервола на сервера под управлением Linux (тестировал на RHEL 4/5, cPanel), с панелью управления cPanel/WHM.

Довольно таки интересный продукт от RfxNetWorks.

APF (от англ. Advanced Policy Firewall) - продвинутый фаервол политик (брендмауер), основан на политиках разрешения и запрета на базе iptables(netfilter).

среда, 24 сентября 2008 г.

Ищем PHP спаммеров

Вообще, апач и пхп не в состоянии находить спаммеров своими штатными средствами. А спам может быть отправлен через PHP функцию mail(). И в заголовках письма не будет отображено откуда, кто отправил.

например:

вторник, 23 сентября 2008 г.

Домены - проще простого!

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

Восстановление прав на пользовательские директории на серверах

Очень часто после восстановления из бэкапов "теряются" владельцы файлов. Особенно этим страдает cPanel. Симптомы - не работают запароленные .htaccess, не подходят пароли к ftp и т.п.

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

Итак, рассмотрим на примере сервера, который был взломан путем закачки эксплоита через ошибку в php скрипте, запуск через него же и получение доступа к shell с правами веб-сервера. Об этом красноречиво свидетельствуют "следы" в директориях, доступных на запись для всех: /tmp, /var/tmp, /dev/shm.

Настраиваем ядро FreeBSD для WHM/cPanel

Итак, необходимо добавить поддержку нескольких процессоров, http-акселерации, фаервола и дисковых квот, а также выкинуть все лишнее.

Настройка фаервола (брандмауэра) IPF под хостинг-панель WHM/cPanel

Итак, в продолжение статьи о настройке ядра FreeBSD для WHM/cPanel рассмотрим создание правил для IPFILTER (IPF). Синтаксис очень прост, и мы рассмотрим готовый вариант правил для сервера с сетевой картой rl0 (необходимо заменить, если у Вас другая) и хостинг-панелью cPanel.

Борьба с воровством баз данных на виртуальном хостинге

Если сервер не защищен должным образом, то злоумышленник может получить список всех баз данных и определить те, кража которых ему интересна по определенным причинам.

 

пятница, 19 сентября 2008 г.

Шифрование архива данных используя openssl

Шифрование:

dd if=./target.tgz | openssl des3 -salt -kfile ./key.file| dd of=./target.tgz.des3

Расшифровка:

dd if=./target.tgz.des3 | openssl des3 -d -kfile ./key.file| dd of=./target.tgz

Заметки по использованию GPG

--verify source-name.asc
Проверить по сигнатуре
--gen-key
Сгенерировать новый PGP ключ (--quick-random - быстрая но не безопасная генерация)
--gen-revoke uid
Сгенерировать сертификат на случай забытия пароля.
...

Шифрование данных в Perl

Необратимое шифрование (хэш или fingerprint):
Модули (в порядке возрастания надежности) Digest::MD5, Digest::SHA1, Digest::HMAC_MD5, Digest::HMAC_SHA1
Пример: use Digest::SHA1 qw(sha1_base64);
$hash = sha1_base64("test");

Обратимое шифрование...

Генерация сертификатов для mod_ssl

В состав дистрибутива openssl входят скрипты CA.sh и CA.pl (/usr/local/openssl/misc)
создаем корневой сертификат

./CA.sh -newca

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

Как зашифровать файл используя mcrypt или openssl

mcrypt (http://mcrypt.sourceforge.net)

Зашифровать:

Как вытащить из SSL сервиса серверный сертификат

Команда для того, чтобы вытащить из ssl-enabled сервиса серверный сертификат:

Как в DNS прописать два образа одной и той же зоны для внутренней и внешней сети

Прописуем одну и ту же зону для внутренней и внешней сети:

Как запретить Bind показывать свою версию для внешнего мира

Узнать версию можно через:

dig @ns.test.ru version.bind chaos txt

Чтобы запретить,

Настройка динамического обновления DNS зон

Генерируем ключи:

dnssec-keygen -a HMAC-MD5 -b 512 -n USER foo22.bar44.com

Далее...

Пример ведения расширенных логов в named


# named.conf
# для более делаьной информации о трансферах расскомментируйте "severity info"

DNS

DNS (англ. Domain Name System — система доменных имён— распределённая система (распределённая база данных), способная по запросу, содержащему доменное имя хоста (компьютера или другого сетевого устройства), сообщить IP адрес или (в зависимости от запроса) другую информацию. DNS работает в сетях TCP/IP. Как частный случай, DNS может хранить и обрабатывать и обратные запросы, определения имени хоста по его IP адресу: IP адрес по определённому правилу преобразуется в доменное имя, и посылается запрос на информацию типа "PTR".

Источник: wikipedia.org

[ad#ad-5]

Технология повышения качества виртуального хостинга

Как можно повысить качество виртуального хостинга при ограниченном бюджете

Чистка очереди Exim

Почитстить очередь Exim, довольно просто:

Хостинг: Linux или Windows?

Как известно, традиционный ответ на этот вопрос - "Free BSD лучше". Однако правильный ответ зависит от требований, предоставляемых к возможностям размещения сайтов.

Возможности Windows.

Краткий обзор технологий виртуализации

Итак, сабж:
Краткий обзор технологий виртуализации - достоинства и недостатки
Обзор: Xen, OpenVz, MS Virtual Server, HyperVM

Установка Zend Optimizer под WHM/cPanel

Необходимо зайти в консоль суперпользователем, он же root. Далее ....

MySQL, кодировка и вопросики вместо русских букв

В предыдущей статье о русификации MySQL было написано как заставить mysql корректно работать с кодировкой cp1251.

Но как быть если предположим есть два сервера и на одном из них mysql в cp1251 а на другом - в стандартной кодировке?

Для решения этой проблемы предлагаем два очень простых скрипта - первый создает дампы всех баз, за исключением системных, а второй - заменяет существующие базы с неправильной кодировкой на правильную. Скрипт предназначен прежде всего для WHM/cPanel но в принципе пойдет на любых серверах.

Сначала создадим архив с дампами баз mysql с помощью первого скрипта:


for i in `mysqlshow | grep -v + | grep -v '| Databases |' | cut -d ' ' -f2 | grep -v horde| grep -v mysql | grep -v eximstats`; do mysqldump -f --compatible=mysql40 $i > $i.sql; done; tar czf dump1251.tgz *.sql; rm *.sql


В результате будет создан файл dump1251.tgz - архив со всеми дампами sql в нормальной кодировке. Его необходимо перенести на другой сервер и восстановить с помощью второго скрипта:

for i in `ls *.sql`;do b=`basename $i .sql`;yes | mysqladmin drop $b; mysqladmin create $b; mysql --default-character-set=cp1251 $b


После этого вместо вопросительных знаков появятся русские буквы. Приятной работы :)

Установка cPanel на VDS (VPS)

В общем, возникла ситуация, когда требуется установить cPanel на виртуальный выделенный сервер.

Особенно заметно это проявляется на VDS (виртуальном выделенном сервере) по технологии Virtuozzo.

Виртуальный сервер на базе шаблона Fedora Core 4 поставляется без yum, а следовательно штатным образом никакое ПО на такой VDS поставить нельзя. Итак, делаем следущее:

Ремонтируем DNS зоны

На одном из серверов под управлением ISP System был обнаружен досадный сбой - панель создала файлы зон, где для субдомена WWW был указан некорректный IP. В результате сайты без www открывались нормально, а с www - нет.
Для исправления этой проблемы было использовано:

1. Замена некорректных IP адресов в доменных зонах при помощи perl:

Смена кодировки у базы MySQL и всех ее таблиц из командой строки

Предположим у нас есть база mydb, в неверной кодировке (latin1) по умолчанию. Необходимо выставить ее в cp1251. для этого используем скрипт:

четверг, 18 сентября 2008 г.

Установка Fantastico

Необходимо зайти в консоль как root и выполнить:

Обзор скриптов WHM/cPanel (/scripts)

[ad#ad-5]

WHM имеет много скриптов в директории /scripts. Давайте рассмотрим самые полезные:

adddns - добавляет DNS зону;
addfpmail - добавляет mail-расширение Frontpage для тех доменов, у которых оно отсутствует;
addnetmaskips - добавляет маску 255.255.255.0 ко всем IP, у которых нет маски;
addpop - добавляет POP аккаунт;

Защищаем сервер от взлома через upload

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


Немного теории о том, как это происходит и как от этого защититься.

Быстрое восстановление аккаунтво cpanel

Предположим, что в /home находится множество резервных копий аккаунтов в формате cpanel и их необходимо максимально быстро восстановить

Перенос аккаунтов в WHM/cPanel без даунтаймов

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

Прежде всего создаем копии аккаунтов при помощи скрипта /scripts/pkgacct, который создает в /home архив аккаунта вида cpmove-имя.tar.gz
Переносим все аккаунты на новый сервер и восстанавливаем их при помощи /scripts/restorepkg

На старом сервере меняем IP со старого на новый для всех DNS записей:

[code lang="bash"]

perl -pi.bak -e "s/старыйIP/новыйIP/g" /etc/namedb/*.db

[/code]

С помощью утилиты zsu можно автоматически увеличить serial запись - без этого IP не обновится: zsu -fn etc/namedb/*.db
После этого...

Хостинг WEB 2.0

Сейчас все говорят WEB 2.0, а вот что такое будет следующее поколение хостинга, который будет предназначен для WEB 2.0?

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

Концепт WEB 2.0 заключен в том, что ...

Что такое выделенный сервер или почему дедик?

Dedicated Server - выделенный сервер (англ.).
Дедик - выделенный сервер (жарг.).
Dedicated хостинг, в отличие от виртуального, где множество сайтов различных клиентов размещены на одном сервере и обслуживаются провайдером, представляет собой выделенный сервер, расположенный в специальном месте - дата-центре, где ему обеспечивается подача питания, канал и место в стойке.

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

По обслуживанию серверы делятся на две категории: unmanaged (необслуживаемые) и managed (обслуживаемые). Техподдержка unmanaged серверов сводится к двум действиям - перезагрузке сервера по запросу (тикету) и переустановке ОС в случае выхода ее из строя по причине неграмотного обращения или взлома с последующим захватом суперпользователем и подменой критично важных файлов.

Техподдержка managed весьма расплывчата и зависит от уровня самого персонала, предоставляемых часов рабочего времени, гарантированной сетевой доступности (SLA), гарантированного времени реакции и сложности проблемы.

Техподдержка (support) делится на уровни (levels).

В круг задач support level 1 входят ребуты, ответы на часто задаваемые вопросы, а также оттягивание времени разными глупыми уточнениями, пока тикет обрабатывает саппорт с более высоким уровнем. Иногда в штате нет такого специалиста и решение проблемы может затянуться надолго. В приличных дата-центрах support level 1 передает тикет, а сам честно пишет, что не смог справиться с проблемой и передал ее более квалифицированному специалисту. Это называется эскалацией тикета. Иногда время перехода эскалации может занимать 24 часа. Поинтересуйтесь в датацентре, какой у них период эскалации.

В круг задач support level 2 входит решение типичных проблем - установка и настройка штатного ПО, пополнение базы знаний для support level 1, небольшой траблшутинг. Например, если cgi скрипт на perl требует модуль Image::Magick, support level 2 в силах это понять и поставить его. Однако он не делает траблшутинг, и в случае неудачи делает эскалацию.

Support level 3 занимается решением глобальных проблем - траблшутингом. Когда сервер медленно работает или происходит частая пиковая загрузка, какое-то ПО не желает устанавливаться или не работает после установки, если есть подозрения на аппаратные проблемы - все это входит в компетенцию support level 3.

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

Следующая важная характеристика - это количество предоставляемого времени. Типичная практика дата-центров в случае какой-либо проблемы - это использование предоставленного времени специалистами низкого уровня, так как разделение по времени каждого уровня обычно не предоставляют. Типичная ситуация для неискушенного владельца дедика - "накрутка" времени разными уточнениями со стороны support level 1. Поэтому тикеты должны быть максимально информативными, предоставляющими всю, возможно даже, избыточную информацию. Или наоборот - предельно простыми, но с четкими требованиями, например, установить firewall, открыв 25,110 и 80-ые порты.
Обычно перезагрузки сервера - free, и время за них не списывается. В некоторых случаях даже предоставляется доступ к специальному оборудованию, которое способно выполнить перезагрузку сервера. Но, тем не менее, не найдя сочетания Free Reboots, поинтересуйтесь в дата-центре - сколько времени требуется на перезагрузку и будет ли оно учитываться. В среднем ребут занимает 5 - 15 минут.

Вполне возможно, что Вам предложат иной режим работы - по числу тикетов. В этом случае предоставляется какое-то число запросов (20-100), на которые будут отвечать бесплатно, сверх лимита - придется оплачивать. Следует также учитывать, что это могут быть тикеты для support level 1, а за остальные придется доплачивать отдельно.

SLA - уровень сетевой доступности. Он означает, что отправленный тикет будет прочитан даже в выходной день в полночь, и, соответственно, обработан в указанные сроки. Следует учесть, что несмотря на заверения и красующуюся надпись SLA 99%, на практике может выйти абсолютно не так.

Гарантированное время реакции дата-центры сообщают с большой неохотой, и это вполне естественно. Невозможно приставить к каждому серверу по специалисту. Однако, если в контракте есть пометка, что реакция на urgent ticket - ребут, например, - 24 часа, стоит призадуматься. Это означает, что сервер может простаивать целые сутки при малейшей проблеме.

Но что же такое особенное предоставляет дедик? Во-первых, это все ресурсы, а во-вторых, это нестандартные возможности. Например, для создания высокоскоростного доступа к сайтам на движках типа phpnuke могут быть использованы 2 веб-сервера, причем не обязательно на одном и том же дедике. Первый сервер - backend - предоставляет обычный апач, с php, mysql и т.п. Второй - frontend, представляющий собой простой кешируюший веб-сервер (http-ускоритель), который способен выдержать нагрузку в несколько сотен посещений одновременно.

На что же еще требуется обращать внимание при выборе дедика?

На суммарную толщину каналов, наличие их резерва. Порт, которым подключен сервер, также играет немаловажную роль. Не срезает ли дата-центр порты или протоколы, не отключает ли за излишнюю сетевую активность и каков ее порог? Возможность докупить дополнительные IP из другой подсети необходима только для NS доменов в зоне RU. Возможность в дальнейшем поставить больше памяти, дополнительный жесткий диск. Также следует обратить внимание на список панелей, их цену, а еще на список возможных ОС.

среда, 3 сентября 2008 г.