Другой цвет у комментариев админа

После несложных манипуляций можно получить другое визуальное оформление комментариев оставленных администратором сайта.
Все делается всего в два действия:
1. В файле comment.tpl в следующие строчки:
<div id="comment_id_{$oComment->getId()}" class="comment {if !$oUserCurrent or ($oUserCurrent and !$oUserCurrent->isAdministrator())}not-admin{/if} {if $oComment->getDelete()} deleted{elseif $oUserCurrent and $oComment->getUserId()==$oUserCurrent->getId()} self{elseif $sDateReadLast<=$oComment->getDate()} new{/if}" >

добавляем:
{if $oUser->isAdministrator()}admin{else}user{/if}

получаем:
<div id="comment_id_{$oComment->getId()}" class="comment {if !$oUserCurrent or ($oUserCurrent and !$oUserCurrent->isAdministrator())}not-admin{/if} {if $oComment->getDelete()} deleted{elseif $oUserCurrent and $oComment->getUserId()==$oUserCurrent->getId()} self{elseif $sDateReadLast<=$oComment->getDate()} new{/if} {if $oUser->isAdministrator()}admin{else}user{/if}"  >

2. В файле comments.css добавляем стиль:
.comment.admin  { background: #желаемый цвет; }

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

VPS-2012: СКИДКА 50% на тариф VZ/2 при оплате на год

Технические характеристики тарифа VPS-2012:
  • Система виртуализации: OpenVZ Linux
  • Процессор Xeon/Opteron, CPU 2000 МГц
  • Дисковое пространство, RAID-10 HDD, 30 Гб
  • Оперативная память, RAM 1024 Мб
  • Панель управления: ISPmanager Lite предоставляется на всё время использования заказа бесплатно!
  • Поддержка DNS (master+slave) — бесплатно для любого числа доменов!
На каждый заказ предоставляется 1 IP адрес. Возможно подключение до трёх дополнительных IP по цене 100 руб/мес/IP.

Стоимость тарифного плана 6000 руб за 1 год (500 руб/мес). 50% скидка получается.
*При досрочном отказе от заказа (удаление, смена тарифа и т.д.) происходит перерасчёт оплаты исходя из фактического использованного времени по цене 1000 руб/мес.

Тариф доступен для заказа и перехода для всех клиентов. Заказать VPS.
Если вы уже являетесь клиентом. То можете просто «Изменить настройки тарифа».

В 2х словах. Суть акции в том, чтобы сразу прокредитовать их оплатой на год, но с 50% скидкой получается. Кто так или иначе собирался или пользуется, да не против оплатить на 1 год, дерзайте.

Если почитать мой опыт, за 2011 год. То ihc я рекомендую. Можете довериться им и на год!

Некоторые способы борьбы с DDoS

log2ban
Как работает log2ban
Для обнаружения ботов, каждый запрос к серверу, отмечается идентификатором из свойств запроса (например из IP адреса и URL: «1.2.3.4/login.php»). Когда количество обращений с определенным ID достигает установленного предела, в пределах временного окна обнаружения, IP клиента передается в качестве аргумента для внешней команды (BAN_IP_COMMAND) или собранных для пакетной блокировки (см. «Блокировка списков»).

Log2ban работает над логами сервера в реальном времени, и не предназначен для использования в качестве анализатора архива логов. Следует использовать средства файрволла, чтобы произвести саму блокировку (настройки и скрипты для ipset прилагаются в примере).

Скрипт читает лог в реальном времени, с помощью, например «tail -f» или аналогичную команду, как указано в конфигурации. Если команда посылает EOF, log2ban завершит свою работу. Если команда прекратить писать записи журнала на стандартный вывод, процесс log2ban будет висеть вечно.

Настройка
По умолчанию поддерживается шаблон логов Apache/Nginx. Изменения, внесенные в формат должны быть отражены в переменной ACCESS_LOG_RECORD_FORMAT.

Можно также настроить правила обнаружения. Наиболее важным параметром является TOLERANCE_MARGIN (количество хитов в окне). Второй наиболее важными являются WINDOW_SIZE (размер окна в слотах) и SLOT_INTERVAL. (размер слота в секундах) Более короткий интервал и увеличенный размер означает лучшее обнаружение (и худшую производительность).

Чтобы изменить правила вычисления ID, измените функцию «create_server_hit_id».

Чтобы изменить правила пропуска строки в логи, измените функцию «skip». По умолчанию пропускаются запросы на статические типы файлов.

Блокировка списков
Для использования блокировки по спискам, включите базу данных, обработайте логи какое-то время, а затем выполните
python log2ban.py print (banned | allbanned)

распечатать собранные IP-адреса на stdout. «banned» будет печатать только новые IP-адреса (с момента прошлого print banned), в то время как «allbanned» будет печатать каждый запрещённый IP, независимо от того, был он ранее напечатан или нет.

После нескольких дней IP-адреса будут разбанены, для получения их списка:
python log2ban.py print (unbanned)

Эта команда напечатает каждый IP, который был забанен в период current_time — DAYS_UNBAN, и удалит записи из базы данных.

Производительность
log2ban достаточно быстр сам по себе, но для очень быстрорастущих логов обработка запросов может стать проблемой. Рассмотрите возможность отключения регистрации запросов на статические ресурсы, такие как изображения, скрипты и таблицы стилей. Дальнейшая оптимизация может включать в себя более простой формате логов (CSV), вместо того чтобы использовать формат по умолчанию, который обрабатывается модулем apachelog через регулярные выражения.

Установка и интеграция с файрволлом
Процесс описан для Debian Squeeze 6.0, для других дистрибуций может отличаться.
Установите ipset:
sudo apt-get install module-assistant xtables-addons-source

sudo module-assistant prepare

sudo module-assistant auto-install xtables-addons-source

depmod -a

Проверьте что он работает
ipset -L

Если вы получаете не пустой ответ, например ошибки 'Module ip_set not found', то ipset не установлен правильно. Погуглите на предмет решения этой проблемы для вашей конкретной инсталляции. Общая идея в том, что модуль ядра ip_set должен быть локально скомпилирован и загружен в ядро.

Установите MongoDB, Python и PIP:
sudo apt-get install mongodb python-pip

Установите модули для питона:
sudo pip install apachelog pexpect pymongo

Склонируйте репозиторий log2ban:
git clone git://github.com/unicodefreak/log2ban.git

В файле log2ban.py, настройте следующую команду, если необходимо.
ECHO_LOG_COMMAND = "tail -f /var/log/nginx/access.log" 

Добавьте следующий текст в /etc/logrotate.d/nginx:
/var/log/nginx/*log {

 daily

 rotate 10

 missingok

 notifempty

 compress

 sharedscripts

 postrotate

 [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`

 /etc/init.d/log2ban stop

 /etc/init.d/log2ban start

 endscript

}

Установите скрипты
sudo mkdir /opt/log2ban

sudo cp log2ban/log2ban.py /opt/log2ban/

sudo cp log2ban/ipset-control.sh /opt/log2ban/

sudo cp log2ban/init-scripts/log2ban-debian.sh /etc/init.d/log2ban

sudo chmod +x /etc/init.d/log2ban

sudo chmod +x /opt/log2ban/ipset-control.sh


Запустите MongoDB
sudo /etc/init.d/mongodb start

Запустите log2ban
sudo /etc/init.d/log2ban start


Добавьте в root cron script следующую команду, например для обновления адресов каждые 5 минут
*/5 * * * * /opt/log2ban/ipset_control.sh update


Пусть поработает какое-то время. Проверьте, если какие-либо IPs are blocked:
sudo ipset -L

Если список похож на правду, то остался последний шаг — подключить iptables.
Добавьте строку:
-A INPUT -m set --match-set autoban src -j DROP

в файл /etc/firewall.conf и выполните
sudo /etc/init.d/networking restart

Как настроить cron для jimbot?

Смысл скрипта состоит в том, нужно периодически перезапускать бота, так как из-за утечек ресурсов через некоторое время бот создаст излишнюю нагрузку на систему.

При этом необходимо определять что бот уже запущен, чтобы не запускать лишних копий.
Скачать скрипт вы можете отсюда: bot.sh
Не забываем менять переменные в bot.sh, на ваши:
JAVA=/usr/bin/java //установленная java стандартно
JAR_HOME=/home/home/chat //записываем путь до папки с нашим ботом
JAR=jimb.jar //имя самого jar файла бота

Затем предоставьте ему(bot.sh) права на запуск.
chmod 777 bot.sh

1) Затем вводим команду crontab –e в putty
2) Появится редактор vi
3) Нажимаете кнопку INSERT на клавиатуре
4) Вводите задание (команду)
Например:
/home/bot/bot.sh // ПУТЬ до bot.sh

5) После ввода задания(команды), нажимаем ESC на клавиатуре
6) Далее пишем (тем самым сохраняя изменения в cron)
!w:

7) Выходим с редактора vi
!q:

8) Набрав «crontab -l» можно убедиться, что наши задания добавлены.

Теперь наш бот будет перезагружаться каждые сутки в 4 часа утра.

Самые дешевые ssl

Самые дешевые SSL сертификаты лучше всего покупать тут.


ООО «Системные интеграции»

Так же, они продают ISP панели. Но цена как везде. Доменные имена у них есть.
И занимаются настройкой серверов. Так же, настройкой и установкой разных виртуализаций.
Я же хочу отметить, именно ssl. Банальный Rapid ssl 300р всего.

Директивы .htaccess

C помощью файла .htaccess можно быстро блокировать или, напротив, разрешать доступ как определенным IP-адресам, так и целым диапазонам, что требуется, — создать в требуемой папке текстовый файл .htaccess следующего содержания:
Order deny,allow
Deny from all
Allow from 62.148.3.4
Allow from 62.148.10

  • Строка «Order deny,allow» определяет, в какой последовательности выполняются запрещающие (deny) и разрешающие (allow) условия.
  • Строка «Deny from all» («запретить всем») полностью блокирует доступ к папке независимо от IP-адреса посетителя.
  • Строка Allow from 62.148.3.4 — разрешает подключение с одного единственного IP-адреса.
  • Строка Allow from 62.148.10 — открывает доступ для всех клиентов с адресами, начинающимися с 62.148.10.

Для того чтобы уведомить посетителя, что доступ запрещен, необходимо переобозначить страницы с сообщением об ошибке 403 (доступ запрещен): создай новою страницу с пояснением о закрытии доступа и сохрани ее в данном каталоге под именем warning.html (имя может быть любым)
Далее открываем уже имеющийся файл .htaccess и добавляем туда следующую строчку: ErrorDocument 403 /warning.htm
Необходимость в создании дополнительной страницы warning.html отпадает, если вместо этой строки ввести следующее: ErrorDocument 403 «Доступ запрещен! Вы забанены по IP-адресу».

Плагин Amason S3

После активации, обеспечит хранение загруженных картинок на серверах amason s3.

Фотографии сперва ресайзатся, потом заливаются на сервер амазон.
Поддерживаются: всавка изображения в топики, комментарии к ним, аватарки, фотка в профайле, и фотосет.

Скачать: 2me.be/z/amasons3_0.1.1.zip

Установка reCAPTCHA на LiveStreet

Итак, идем сюда и получаем ключи: Public Key и Private Key. Public будем вставлять в JavaScript и он может быть найден в исходном коде, Private нужно хранить в секрете и использовать только на стороне сервера.
Итак, приступаем к замене каптчи. Идем в /templates/skin/название-темы/actions/ActionRegistration и открываем файл index.tpl, в котором заменяем
<img src="{cfg name='path.root.engine_lib'}/external/kcaptcha/index.php?{$_sPhpSessionName}={$_sPhpSessionId}" onclick="this.src='{cfg name='path.root.engine_lib'}/external/kcaptcha/index.php?{$_sPhpSessionName}={$_sPhpSessionId}&n='+Math.random();" />
 
		<p><input type="text" name="captcha" value="" maxlength="3" class="input-100" /></p>

на
<script type="text/javascript" src="http://api.recaptcha.net/challenge?k=ЗДЕСЬ_ВАШ_Public_Key">
</script><noscript>Включите JavaScript или обновите ваш браузер!</noscript>

Только не забудьте заменить ЗДЕСЬ_ВАШ_Public_Key на полученный ранее Public Key. Перед этим еще можно добавить
<script type="text/javascript">
        var RecaptchaOptions = {
                custom_translations : {
                        instructions_visual : "Введите два слова:",
                        instructions_audio : "Введите что вы слышите",
                        play_again : "Включить заново",
                        cant_hear_this : "Скачать в формате MP3",
                        visual_challenge : "Визуальный режим",
                        audio_challenge : "Режим аудио",
                        refresh_btn : "Обновить",
                        help_btn : "Помощь",
                        incorrect_try_again : "Неверно. Пожалуйста, попробуйте еще раз.",
                },
                lang : 'ru', // Unavailable while writing this code (just for audio challenge)
                theme : 'white' // Make sure there is no trailing ',' at the end of the RecaptchaOptions dictionary
        };
		</script>

для русификации. Подробнее о кастомизации каптчи смотрите здесь.

Далее качаем саму библиотеку каптчи отсюда, распаковываем и кладем её содержимое в /engine/lib/external/recaptcha. Далее идем в /classes/actions, открываем файл ActionRegistration.class.php. Добавляем в начало файла подключение библиотеки
require_once ($_SERVER['DOCUMENT_ROOT']."/engine/lib/external/recaptcha/recaptchalib.php");

Затем удаляем или комментируем
if (!isset($_SESSION['captcha_keystring']) or $_SESSION['captcha_keystring']!=strtolower(getRequest('captcha'))) {
				$this->Message_AddError($this->Lang_Get('registration_captcha_error'),$this->Lang_Get('error'));
				$bError=true;

и добавляем
$resp = null;
if (array_key_exists('recaptcha_response_field',$_POST)){
$resp = recaptcha_check_answer ('ЗДЕСЬ_ВАШ_Private_Key',$_SERVER["REMOTE_ADDR"],$_POST["recaptcha_challenge_field"],$_POST["recaptcha_response_field"]);}
if ($resp==null or !$resp->is_valid){
$this->Message_AddError($this->Lang_Get('registration_captcha_error'),$this->Lang_Get('error'));
$bError=true;
}

dianhost.com



Используют ДЦ WFC (г.Ванкувер, Канада)

Подробнее:
  • ISP manager панель, дается легко, за дополнительную плату. в тариф не_включено.
  • Дополнительные ip = 1$ за шт. 2шт максимум можно прилепить.
  • Резервное копирование = нет. как платная услуга.
  • Отношение к абузам = среднее. разрешен adult.
  • Тех поддержка — отвечает хорошо, помогает.
  • Отношение к ддосу — нейтральное. клиент сам настраивает свой vds, от школо-ддосов.
  • Способы оплаты — практически все электронные деньги, через робокассу. или прямые webmoney. с ЮЛ не_работают.

Акции:
До 1 декабря 2011 года для всех новых клиентов действует скидка 20% на услуги хостинга и VDS на первый месяц обслуживания. Чтобы получить скидку, при заказе нужно ввести промокод "dianhost20" (без кавычек).


upd 08.02.2013
Контора умерла. За год совсем пропала и ушла с рынка. Не выдержала конкуренции. Рак с говно форумов затроллил создателя.

Обновление 2ns.info = ssl + isp



Теперь там есть ssl.
Можно купить домены, через партнера reg.ru
И самое главное, купить вечные ISP manager лицензии. Цена самая дешевая, из реселлерских.
Если помните, то вечные лицензии, предоставляются по таким цена, в отличии от официальных, без поддержки, и менять ip сервера можно только через партнера. Т.е. менять ip можно раз в месяц, на сайте 2ns.info