Блог компании DinoHost.ru

Архив Декабрь 2008

IFTOP для проверки трафика в реальном режиме времени

Понедельник, 29 Декабрь, 2008

Необходимость знать, куда именно расходуется трафик, возникает очень часто. К сожалению, различные логи не могут представить полный отчет. А вот php-скрипт способен сгенерировать большой исходящий трафик, который не будет отражаться в логах веб-сервера.

Решить эту проблему можно с помощью iftop. Эта утилита позволит удобно наблюдать за расходом трафика.

Установка этой утилиты не требует установки библиотек libpcap и libcurses и очень проста:

wget -c http://www.ex-parrot.com/~pdw/iftop/download/iftop-0.16.tar.gz
cd iftop-0.16
./configure
make
make install


VDS - делим выделенный сервер

Понедельник, 29 Декабрь, 2008

VDS (Virtual Dedicated Server) – это программное обеспечение, которое позволяет создать на базе обычного сервера несколько “виртуальных”, отдельных от остальных, а также поровну распределить ресурсы сервера между ними.

Подробнее рассмотрим создание VDS на основе UML.
Дл примера создадим виртуальный выделенный сервер для пользователя vds1 с паролем myfirstvds.

mkdir /uml/
cd /uml
wget http://kernels.usermodelinux.org/kernels/linux-2.4.22-8um/linux
chmod +x /uml/linux
wget http://nrh-up2date.org/howto/uml/packages/host/uml_utilities-20030903-1.i386.rpm
rpm -i ./uml_utilities-20030903-1.i386.rpm
wget http://aleron.dl.sourceforge.net/sourceforge/user-mode-linux/root_fs.rh-7.2-full.pristine.20020312.bz2
unbzip2 ./root_fs.rh-7.2-full.pristine.20020312.bz2
adduser vds1
passwd vds1 myfirstvds
cp ./root_fs.rh-7.2-full.pristine.20020312 /home/vds1/root_fs
cp ./linux /home/vds1/linux
chown vds1 /home/vds1/linux
chown vds1 /home/vds1/root_fs
/home/vds1/linux ubd0=root_fs root=/dev/ubd0 mem=128m eth0=tuntap,,,192.168.0.254

Далее вы получите сообщение “The above line says: Boot the linux kernel, and the OS is in root_fs and make 128MB of ram available to the UML”. Оно подтверждает, что запуск VDS произведен успешно.

Для входа в такой VDS под настоящим root необходимо “зачрутиться” в VDS:

mount root_fs /mnt -o loop
chroot /mnt

здесь задаем пароль для VDS root и выполняем базовые настройки.

Чтобы изменить размер дискового раздела под VDS нужно использовать resize2fs:

mv rootfs rootfs.resize
dd if=/dev/zero of=rootfs.resize bs=1k count=1 seek=8G
e2fsck -p rootfs.resize
resize2fs rootfs.resize
e2fsck -p rootfs.resize

В конце необходимо остановить время изменения раздела VDS.


Русификация CPanel на сервере и настройка

Четверг, 25 Декабрь, 2008

Русифицировать CPanel можно двумя способами:

• Можно скачать оригинальный языковый файл, перевести его и переименовать, после чего установить на сервер. Но это не лучший способ.

• Можно закачать на сервер в директорию /usr/local/cpanel/lang свой языковый файл.

Затем зайти на сервер в SSH как root и исправить кодировки в файл-менеджере и в панели с помощью двух команд

Изменение кодировок в спанели(ssh из root):
perl -pi -e ’s/charset\=iso\-8859\-1/charset\=windows\-1251/g;’ ls /usr/local/cpanel/base/frontend/*/stdheader.html

perl -pi -e ’s/charset\=iso\-8859\-1/charset\=windows\-1251/g;’ ls /usr/local/cpanel/base/frontend/*/files/*.html


Установка CP1251 locale на сервера Linux

Четверг, 25 Декабрь, 2008

linux’ах locale в разных версиях может располагаться либо/usr/lib/locale/, в либо /usr/share/locale/.
Это свидетельствует о том, что локаль уже присутствует в сборке i18n, нужно лишь сгенерировать из нее LC, которая будет установлена в /usr/share/locale/ru_RU.CP1251 или в /usr/lib/locale/ru_RU.CP1251 ( куда именно, зависит от типа вашей Linux)

Установить CP1251 locale можно следующим образом:
Выполняем: localedef -c -i ru_RU -f CP1251 ru_RU.CP1251, что приведет к созданию директории ru_RU.cp1251: /usr/share/locale/ru_RU.cp1251 или /usr/lib/locale/ru_RU.cp1251

Далее нужно переименовать ru_RU.cp1251 в ru_RU.CP1251
И проверить ее наличие в системе, для чего создаём на сервере файл:

<?
setlocale(LC_ALL, “ru_RU.CP1251″);
echo strtolower(”ABC_A??a?y”).”<br>”;
echo strftime (”%A %B %Z”).”<br>”;
?>

Вызывая этот файл, проверяем результат. Если после вызова файла в нижнем регистре появится строка типа ‘aёяаёя’, значит локаль работает. А для полной проверки работы локали во второй строке должно отобразиться реальное время в виде ‘День Месяц GMT’.


Настройка CPanel и ее безопасность с помощью SuExec

Четверг, 25 Декабрь, 2008

Многие из вас слышали об огромном количестве дыр в CPanel. Однако на самом деле все недостатки CPanel обусловлены лишь ее неправильной настройкой.
Для того, чтобы CPanel была в безопасности, а /tmp директории сервера были надежно защищены, нужно прежде всего изменить кое-какие настройки в Web Host Manager (WHM).

Для этого:
• Входим в WHM как root.
• Выбираем меню Server Setup, Tweak Security
• Разрешаем php open_basedir Tweak
• Разрешаем SMTP tweak.

А вот mod_userdir лучше всего запретить, ведь данная настройка позволяет пользователям зайти в аккаунт под видом www.ДОМЕН/~username без учета трафика…

Далее необходимо подключить SuExec
• Для этого входим в WHM как root.
• Выбираем меню Server Setup
• Выбираем enable/disable SuExec
• Отменяем enable SuExec

Часто для внедрения эксплоида используется директория /tmp. Ее применение оставляет без защиты путь к серверу и является настоящей проблемой для его владельца.

Для того чтобы обезопасить /tmp директории, необходимо:
• Войти по SSH как root.
• Ввести: /scripts/securetmp

Securetmp – это специальный скрипт, который используется для защиты /tmp директории в CPanel.


LogWatch – программа для контроля лог-файлов сервера

Вторник, 23 Декабрь, 2008

Если в вашем дата-центре при установке CPanel или DirectAdmin вам не поставили LogWatch – программу для контроля лог-файлов сервера, сделайте это самостоятельно. Эта прога будет работать на вас и на безопасность вашего сервера, не теряя ни единой минуты. Принцип работы LogWatch заключаются в следующем: программа пересматривает все логии и самые подозрительные из них присылает в ежедневном отчете администратору сервера.

Для установки LogWatch необходимо зайти на сервер как root (SSH)

• Скачать файл:
• wget ftp://ftp.kaybee.org/pub/redhat/RPMS/noarch/logwatch-5.1-1.noarch.rpm

• Установить LogWatch 5.0 выбрав обновления до последней версии:
• rpm -Uvh logwatch-5.1-1.noarch.rpm

• Удалить файл rpm:
• rm -rf logwatch-5.1-1.noarch.rpm

• Вручную запустить программу можно с помощью ввода:
• perl /etc/log.d/scripts/logwatch.pl

Для конфигурации и настроек LogWatch необходимо запустить файл logwatch :
pico -w /etc/log.d/conf/logwatch.conf

• Найти настройку отсылки логов.
• CTRL-W
• Введите: MailTo

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

• Далее необходимо выбрать детализацию логов:
• CTRL-W и ввести Detail

• Строку Detail = Low можно заменить параметрами Medium или High.
• Лучше всего конечно же выбирать параметр high, который позволит вам получить подробные отчеты.

• Затем сохраним изменения нажав: CTRL-X, Y, Enter


Как отключить TELNET?

Вторник, 23 Декабрь, 2008

• Для отключения TELNET необходимо ввести: pico -w /etc/xinetd.d/telnet
• Заменить disable = no строкой disable = yes.
• Затем сохранить - CTRL+x, нажать Y и записать при помощи нажатия клавиши ENTER.
• После чего необходимо перезапустить xinted путем ввода следующей команды: /etc/rc.d/init.d/xinetd restart.


Мониторинг сайта и его настройка

Вторник, 23 Декабрь, 2008

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

Для разрешения подключения с IP адреса типа xx.xx.xx.xx/34 (где xx.xx.xx.xx/34 – это айпи адрес провайдера) необходимо ввести:
pico -w /etc/apf/allow_hosts.rules, а в конце файла добавить: xx.xx.xx.xx/34

также необходимо xx.xx.xx.xx/34 заменить на IP сетку провайдера, например, 12.96.160.0/34.


Файрволл Advanced Policy Firewall и его установка

Вторник, 16 Декабрь, 2008

Файрволл на сервере просто необходим и лишний раз объяснять и доказывать его необходимость мы не будем. А просто предложим вам в качестве надежного и хорошо работающего файрволла установить файрвол Advanced Policy Firewall или APF.

Для установки APF необходимо:
• перейти в директорию /usr/src: cd /usr/src
• скачать последнюю версию APF: wget http://rfxnetworks.com/downloads/apf-current.tar.gz
• распаковать архив APF tar.gz: tar -xvzf apf-current.tar.gz
• удалить более не нужный tar.gz: rm -f apf-current.tar.gz
• выбрать дирректорию для APF: ls –la (директория apf-#.#/ где знаки #.# является версией APF, которая устанавливается вами)
перейти в директорию APF, для чего используйте выбранную вами директорию. Номер версии программы необходимо изменить, если скачанная вами версия APF самая последняя
• устанавливаем APF: sh ./install.sh
• переходим в /etc/apf директорию: cd /etc/apf
конфигурируем программу с помощью редакции файла conf.apf : pico -w conf.apf

Чтобы APF работал правильно, нужно отредактировать необходимые порты ввода/вывода. Эти порты обеспечивают работу сервисов ftp, mail,ssh.

Common ingress (inbound) ports
# Common ingress (inbound) TCP ports -IG_TCP_CPORTS=”21,22,25,53,80,110,143,443,2082,2083, 2086,2087, 2095, 2096,3000_3500, 9999″
#
# Common ingress (inbound) UDP ports
IG_UDP_CPORTS=”53″

Common egress (outbound) ports
# Common egress (outbound) TCP ports
EG_TCP_CPORTS=”21,25,80,443,43,2089″
#
# Common egress (outbound) UDP ports
EG_UDP_CPORTS=”20,21,53″

Для Enzim сервера это было бы:
Common ingress (inbound) ports
# Common ingress (inbound) TCP ports
IG_TCP_CPORTS=”21,22,25,53,80,110,143,443,19638″
#
# Common ingress (inbound) UDP ports
IG_UDP_CPORTS=”53″

Common egress (outbound) ports
# Common egress (outbound) TCP ports
EG_TCP_CPORTS=”21,25,80,443,43″
#
# Common egress (outbound) UDP ports
EG_UDP_CPORTS=”20,21,53″ )

• далее нужно записать файл и протестировать APF: CTRL-x , затем Y и enter
• запускаем APF: ./apf –start или: service apf start
если программа работает правильно, заменим параметр DEVM на 0 pico -w conf.apf
если же программа работает неверно, заменяем на DEVM=1, что позволяет перенастроить параметры файрволла даже после блокировки сервера. Параметр DEVM=1 отключает файрволл через пять минут.
• Далее записываем параметры и выделяем из Pico: CTRL-x, y, enter
• Перезагружаем файрволл с помощью команды service apf restart или /etc/rc.d/init.d/apf restart


Brute Force Detection (BFD) – программа для мониторинга взлома перебором паролей и ее установка

Понедельник, 15 Декабрь, 2008

BFD или Brute Force Detection - это модульное приложение, используемое для того, чтобы отследить попытки взлома сервера, произведенные при помощи перебора паролей. BFD - абсолютно надежный и простой скрипт, который можно быстро установить, сконфигурировать и настроить.

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

Для того, чтобы система работала, необходимо установить файрвол APF
1. Затем войти в систему как ROOT.
2. Ввести: wget http://www.rfxnetworks.com/downloads/bfd-current.tar.gz
3. После чего ввести: tar -xvzf bfd-current.tar.gz
4. И добавить: cd bfd*
5. Далее можно установить BDF на сервер.
Вводим:./install.sh в ответ на которое должно появиться сообщение:
**BFD installed
Install path: /usr/local/bfd
Config path: /usr/local/bfd/conf.bfd
Executable path: /usr/local/sbin/bfd **
6. Как только вы увидите такое сообщение, необходимо отредактировать конфигурационный файл и запустить скрипт. Для этого нужно ввести : pico -w /usr/local/bfd/conf.bfd
7. Ищем строку: ALERT_USR=”0″ и меняем ее на : ALERT_USR=”1″
Под ней не забудьте изменить свой email:
EMAIL_USR=”root” на EMAIL_USR=”емайл@вашдомен”
9. После чего необходимо записать изменения в файле, для чего необходимо нажать: CTRL-X потом Y потом “Enter”
10. Необходимо ввести IP, который не будет блокироваться:
Введите: pico -w /usr/local/bfd/ignore.hosts
11. Вводим собственный IP адрес, чтобы не получить блокировку при сбоях в работе системы или при других проблемах.
Для этого вводим: pico -w /etc/apf/allow_hosts.rules и собственный IP в конце
12. Сохраняем: CTRL-X
Вводим: pico -w /usr/local/bfd/ignore.hosts
Для предотвращения рассылки сообщений вводим в этот файл свой IP.
Сохраняем: CTRL-X , затем жмем Y для записи, и выбираем “Enter”
13. Запускаем BDF и вводим: /usr/local/sbin/bfd -s

После таких манипуляций малейшая попытка взлома вашего сервера перебором паролей будет пресечена блокировкой IP хакера и отправкой сообщения о проделанной работе на ваш имейл.