Изменение WWW домена на другой в ISPManager

К сожалению, в ISPManager’e нет функции, чтобы сменить имя домена в параметрах WWW домена. Приходится руками пересоздавать WWW домен, копировать файлы и папки и т.д.

Вот мой способ (делаем по SSH):

export OLD_DOMAIN=site_old.com
export NEW_DOMAIN=site.com

В Debian:

sed -i «s/$OLD_DOMAIN/$NEW_DOMAIN/» /etc/nginx/nginx.conf
sed -i «s/$OLD_DOMAIN/$NEW_DOMAIN/» /etc/apache2/apache2.conf
sed -i «s/$OLD_DOMAIN/$NEW_DOMAIN/» /usr/local/ispmgr/etc/rotate.conf
sed -i «s/$OLD_DOMAIN/$NEW_DOMAIN/» /usr/local/ispmgr/etc/ispmgr.conf

В CentOS:

sed -i «s/$OLD_DOMAIN/$NEW_DOMAIN/» /etc/nginx/nginx.conf
sed -i «s/$OLD_DOMAIN/$NEW_DOMAIN/» /etc/httpd/conf/httpd.conf
sed -i «s/$OLD_DOMAIN/$NEW_DOMAIN/» /usr/local/ispmgr/etc/rotate.conf
sed -i «s/$OLD_DOMAIN/$NEW_DOMAIN/» /usr/local/ispmgr/etc/ispmgr.conf

И переименовываем папку с www доменом:

mv /var/www/user_name/data/www/site_old.com /var/www/user_name/data/www/site.com

Отладка работы DNS сервера в Debian и CentOS

Бывают ситуации, когда не запускается DNS сервер или же просто не отдает информации о некоторых доменах, хотя записи существуют.

Вот, способ, как можно найти проблему:
В Debian выполняем:

# named -g -u bind

В CentOS:

# named -g -u named

И смотрим вывод сообщений.

Как вставить текст в Midnight Commander(MC), используя Putty

Как обычно — правой кнопкой мыши скопированный текст вставить не получится, т.к. мышь используется как xterm mouse. И копирование-вставка работает только с text-mode приложениями.

Чтобы решить данную задачу — переходим к подпункту Features пункта Terminal. И ставим галочку напротив Disable xterm-style mouse reporting.

После чего можем копировать и вставлять используя выделение и клик правой кнопкой мыши соответственно.

Установка и настройка munin в Debian

Обновляем информацию о пакетах и устанавливаем нужные:

# apt-get update && apt-get install munin munin-node  munin-plugins-extra -y

Скрипты находятся в папке /usr/share/munin

Конфигурация в папке: /etc/munin

Крон — /etc/cron.d/munin

Настройки сервера находятся в файле /etc/munin/munin.conf

Там ничего менять не будем, т.к. стандартно нас все устраивает (htmldir в /var/www/munin, сервер открыт только для localhost)

Далее настраиваем Apache:

# nano  /etc/apache2/conf.d/munin.conf

Приводим к виду:

Alias /munin /var/www/munin
<Directory /var/www/munin>
AllowOverride All
RemoveHandler .php
AddType application/x-httpd-php .php
php_admin_value upload_tmp_dir /tmp
php_admin_value session.save_path /tmp
php_admin_value safe_mode off
DirectoryIndex index.html
Order allow,deny
Allow from all
</Directory>

И перезапускаем munin и apache:

# invoke-rc.d apache2 reload && invoke-rc.d munin-node restart

Если файлов в папке /var/www/munin нет, то выполняем команду:

# /usr/share/munin/munin-html —force-root

После чего файлы должны появиться.

Все готово. Можем смотреть:

http://is.my.ip.server/munin

Для того, чтобы изменить частоту обновления графиков, лезем в файл /etc/cron.d/munin. По умолчанию опрос производится раз в 5 минут.
Могут быть проблемы с правами (графики не обновляются). Решаем так:

# chown -R munin:munin /var/www/munin /var/log/munin

Защита Apache 2 от HTTP флуда в Debian

Делаем защиту с помощью модуля evasive.

Для начала обновляем информацию о пакетах и устанавливаем нужный нам модуль:

# apt-get update && apt-get install  libapache2-mod-evasive

У данного модуля есть следующие настраиваемые параметры:

DOSHashTableSize — размер хэш-таблицы которая обрабатывает запросы.

DOSPageCount — число запросов к одной странице от одного и того же IP в течение указаного интервала времени

DOSSiteCount — число запросов ко всем страницам домена с одного и того же IP в течение указанного интервала времени

DOSPageInterval — интервал для директивы DOSPageCount (в секундах)

DOSSiteInterval — интервал для директивы DOSSiteCount (в секундах)

DOSBlockingPeriod — время блокировки IP (в секундах)

DOSEmailNotify — если какой-то IP заблокирован, можно отправить письмо на указанный email

DOSSystemCommand — команда, которая будет выполнена для блокировки IP. Напрмер, «/sbin/iptables -A INPUT -p tcp –dport 80 -s %s -j DROP»

Где %s — IP нашего потенциального флудера.

DOSWhiteList — список «белых» IP. Можно задавать маску, например 45.45.45.*

С параметрами разобрались, можно приступать к настройке.

Открываем файл настройки:

# vi /etc/apache2/mods-enabled/evasive.conf

И вставляем, к прмеру

<IfModule mod_evasive20.c>
DOSHashTableSize 5012
DOSPageCount 20
DOSSiteCount 80
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
DOSEmailNotify «[email protected]»
DOSSystemCommand «iptables -A INPUT -p tcp —dport 80 -s %s -j REJECT»
DOSWhiteList  127.0.0.* 192.168.0.*
</IfModule>

И перезапускаем Apache:

# invoke-rc.d apache2 restart

Определение сайта, на который идет DDoS

Данная статья имеет смысл, если на сервере установлен Nginx.

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

# vi /etc/nginx/nginx.conf

Меняем строку

access_log /var/log/nginx/access.log;

На

log_format main ‘$remote_addr — $remote_user [$time_local] $status «$host» «$request» $body_bytes_sent «$http_referer» «$http_user_agent» «$http_x_forwarded_for»‘;
access_log /var/log/nginx/access.log main;

И перезапускаем nginx:

# invoke-rc.d nginx restart

Если установлен Apache, то его желательно отключить, чтобы сервер не повис от нагрузки от атаки.

# invoke-rc.d apache2 stop

После чего ждем, чтобы access.log «поднакопил» данные от запросов.
Через некоторое время можно останавливать nginx и запускать следующую команду:

# tail -n 1000 /var/nginx/access.log | awk ‘{print $7}’ | sort | uniq -c | sort -n

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

# tail -n 1000 /var/log/nginx/access.log | awk ‘{print $1}’ | sort | uniq -c | sort -n

Есть и более простой вариант.

После того, как мы сделали свой log_format в Nginx и перезапустили его, можно просто запустить:
# tail -f /var/log/nginx/access.log

И мониторить запросы на наличие корректного браузера, реферрера и т.д.

Такие же манипуляции можно производить и с error.log’ом.

Установка и настройка Subversion (SVN) + mod_dav в Debian

Для начала обновляем информацию о пакетах:

# apt-get update

Устанавливаем subversion и mod_dav

# apt-get install subversion libapache2-svn

Создаем папку с репозиторием:

# mkdir /var/www/svn

Меняем владельца на www-data:

# chown www-data:www-data /var/www/svn

Настраиваем dav_svn

# nano /etc/apache2/mods-enabled/dav_svn.conf

Приводим к такому виду:

<Location /svn>
DAV svn
SVNParentPath /var/www/svn
AuthType Basic
AuthName «Subversion Repository»
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
</Location>
Создаем файл с пользователями
# touch /etc/apache2/dav_svn.passwd
Перезапускаем апач
# /etc/init.d/apache2 restart
Добавляем пользователя так:
# htpasswd /etc/apache2/dav_svn.passwd user_name
На этом все. Создаем репозиторий командой svnadmin create /var/www/svn/repo_name. Но об этом в другой статье.

Как разблокировать доступ к ISPManager по IP?

Если Вы ставили ограничение на вход в ISPmanager по IP и у Вас он сменился, достаточно просто изменить IP (в файле) или удалить этот файл:

/usr/local/ispmgr/var/userconf/ispmgr.root

Установка PEAR\HTTP_REQUEST в Debian

Сначала обновляем информацию о пакетах:

# apt-get update

Устанавливаем пакет php-pear

# apt-get install php-pear

Устанавливаем PEAR\HTTP_REQUEST

# pear install —alldeps HTTP_REQUEST

Перезапускаем апач:

# /etc/init.d/apache2 restart

Downgrade PHP 5.3 до PHP 5.2 в Debian

Вот, понадобилось вернуть стандартную для stable Debian версию PHP — 5.2.х.

Версия Debian 5.0.7

Для начала редактируем файл /etc/apt/sources.list

В моём случае нужно было удалить/закомментировать эти строчки:

deb http://php53.dotdeb.org stable all
deb-src http://php53.dotdeb.org stable all


Удаляем PHP:

# aptitude purge -y php5-cli php5-cgi php5-common

Далее обновляем информацию о пакетах:

# aptitude update

Обновляем кеш ISPManager’a:

# /usr/local/ispmgr/sbin/pkgctl cache

И устанавливаем PHP:

# /usr/local/ispmgr/sbin/pkgctl install php

Необходимо будет еще установить PHPMyAdmin и Webmail, если требуется.

ISPManager и MODx. Разрешение конфликтов

При заходе на http://site.com/manager — открывается ISPManager, а не админка MODx’a.

Решение такое.

Открываем ispmgr.inc:

# vi /usr/local/ispmgr/etc/ispmgr.inc

И меняем

Alias /manager /usr/local/ispmgr/bin/

На

Alias /ispmanager /usr/local/ispmgr/bin/

Сохраняем, закрываем.

Рестартим апач: (В Debian)

# /etc/init.d/apache2 restart

В CentOS:

# service httpd restart

Все. Теперь по адресу http://site.com/ispmanager — у нас будет открываться  ISPManager

apr_sockaddr_info_get() failed

Если появилась такая ошибка в error_log’e, значит у Вас неверный хостнейм.

Решаем так:

# echo ‘site.com’ > /proc/sys/kernel/hostname

Меняем хостнейм в /etc/hostname

И перезапускаем в Debian:

# /etc/init.d/apache2 restart

В CentOS:

# service httpd restart