День: 26.03.2015

PHP PARSE ERROR: SYNTAX ERROR, UNEXPECTED $END IN … *.PHP ON LINE XXX

Если при переносе блогов иди других скриптов у Вас не работает домен (пустой экран или еще как-то), в логах апача видно:

[Tue Dec 25 14:59:37 2012] [error] [client 127.0.0.1] PHP Parse error:  syntax error, unexpected $end in /home/raider/domains/domain.net/htdocs/wp-content/plugins/jexr.php on line 312
[Tue Dec 25 14:59:42 2012] [error] [client 127.0.0.1] PHP Parse error:  syntax error, unexpected $end in /home/raider/domains/domian.net/htdocs/wp-content/plugins/jexr.php on line 312

т.е. ругается на любой плагин или файл в с раширением php

делаем следующее:

в /etc/php.ini

в «short_open_tag» ставим значение  — On

и перезапускаем веб-сервер.

Установка Tinydns (djbdns) на linux

Так как нормальных rpm нет придется ставить из исходников.
Сначала ставим daemontools, который будет запускать сервис tinydns, следить за его состоянием и тд.

cd /root
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
tar zxvf ./daemontools-0.76.tar.gz
В src/conf-cc в строку с gcc добавляем -include /usr/include/errno.h
cd ./admin/daemontools-0.76/
./package/installcd /root
wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
tar zxvf ./ucspi-tcp-0.88.tar.gz
cd ./ucspi-tcp-0.88
В conf-cc в строку с gcc добавляем -include /usr/include/errno.h
make
make setup check

КАК ПРОВЕРИТЬ НА DNS ЗАПИСЬ SOA

Воспользоваться утилитой dig из командной строки Unix/Linux:

dig YOURDOMAIN.RU soa

если вы хотите опросить конкретный nameserver, укажите его с префиксом @:

dig @ns.nic.ru YOURDOMAIN.RU soa

сокращенный синтаксис

dig @ns.nic.ru YOURDOMAIN.RU soa +short

Whois: практическое руководство пользователя

Статья рассказывает о работе whois протокола, о существующих клиентских решениях и об особенностях коммуникации с различными whois серверами (а также о выборе правильного whois сервера). Ее основная задача — помочь в написании скриптов для получения whois информации для IP адресов и доменов.

Что такое whois?

Что такое и для чего нужен whois можно прочитать, например, здесь: http://en.wikipedia.org/wiki/Whois.

В нескольких словах, whois (от английского «who is» — «кто такой») – сетевой протокол, базирующийся на протоколе TCP. Его основное предназначение – получение в текстовом виде регистрационных данных о владельцах IP адресов и доменных имен (главным образом, их контактной информации). Запись о домене обычно содержит имя и контактную информацию «регистранта» (владельца домена) и «регистратора» (организации, которая домен зарегистрировала), имена DNS серверов, дату регистрации и дату истечения срока ее действия. Записи об IP адресах сгруппированы по диапазонам (например, 8.8.8.0 — 8.8.8.255) и содержат данные об организации, которой этот диапазон делегирован.

Часто whois используется для проверки, свободно ли доменное имя или уже зарегистрировано. Теоретически, это можно сделать просто открыв домен в браузере, однако на практике зарегистрированное имя не всегда используется.

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

Протокол подразумевает клиент-серверную архитектуру и используется для доступа к публичным серверам баз данных (как правило, самих регистраторов IP адресов и доменных имен). В некоторых случаях, whois сервер для определенного домена верхнего уровня содержит полную базу данных обо всех зарегистрированных доменах. В других случаях, такой whois сервер содержит лишь самую базовую информацию и отсылает к whois серверам конкретных регистраторов.

Остальные детали будут рассмотрены по ходу самой статьи. Информации, на самом деле, очень много, поэтому специально для тех, кто хочет получить лишь общее представление, не углубляясь в технические детали, есть ее «выжимка»: можете сразу переходить к последнему разделу статьи, который называется «Короткие итоги«.

Read More «Whois: практическое руководство пользователя»

ЗАЩИТА ОТ ЛЕГКОЙ FLOOD И DDOS АТАКИ ПО HTTP-ПРОТОКОЛУ ИСПОЛЬЗУЯ MOD_DOSEVASIVE

Защита от ddos mod_evasive — (mod_dosevasive) HTTP DoS or DDoS attack or brute force attack Apache модуль для организации защиты от DDoS атак.

Преамбула Не стоит думать что слабый ddos не сможет нанести ущерба вашему серверу. Например атакующих зомби-машин всего 50-150, все они с толстыми каналами, а вы уехали в командировку или у вас 10-ки серверов и вы не успеваете физически мониторить все. В таком случае даже не большое количество машин смогут зафлудить канал, или заставить выйти из строя веб сервер apache, mysql, etc. Другое дело когда администратор 24 часа в сутку мониторит сервер, и с легкостью обнаруживает атаки, далее с легкостью и в считанные секунды заносит несколько правил в таблицу фаервола при этом спокойно попивая кофе, продолжает заниматься своими делами. Но такое бывает редко, смотреть сутками и мониторить вывод комманд netstat, top, mtop убийственно для вашего мозга, и глаза устанут, не будет весело это точно, поэтому нужно автоматизировать процесс блокировки атакующих зомби-машин.

Один из методов как защитить свой сервер от флуд атак и слабого ddos-a по http протоколу это установить модуль для веб-сервера Apache — mod_dosevasive.

Установка и настройка mod_dosevasive

Read More «ЗАЩИТА ОТ ЛЕГКОЙ FLOOD И DDOS АТАКИ ПО HTTP-ПРОТОКОЛУ ИСПОЛЬЗУЯ MOD_DOSEVASIVE»

ПОПЫТКА ЗАЩИТЫ ОТ DDOS

Недавно озаботился поиском адекватного решения для защиты некоторых подконтрольных ресурсов от DDos атак.
Первое что посоветовали — Cisco Guard. Но так как требовалось что то легкое и не столь дорогое, то решил посмотреть в сторону софтверных продуктов.
После непродолжительного гугления наткнулся на небольшой скриптик (D)DoS-Deflate

Работает довольно просто — каждую минуту по крону запускается команда
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
и выбираются все айпишники число соединений с которых превышает заданное в конфиге ограничени(по умолчанию 150).
Время бана тоже настраивается в конфиге. Также можно выбрать с каким файрволом работать — iptables или apf(надстройка над iptables).

Решение довольно очевидное, словесные описания проскакивали и до этого, но такой готовой реализации ранее не встречал.

UPD: не забываем что этот скрипт в силу своей простоты не спасет от серьезных заказных атак, но большинство кулхацкеров остановит

УСТАНОВКА И НАСТРОЙКА СИСТЕМЫ ОБНАРУЖЕНИЯ И БЛОКИРОВАНИЯ ПОПЫТОК СКАНИРОВАНИЯ ПОРТОВ PSAD

Анализируя файлы событий системы любому системному администратору не раз приходилось сталкивается с фактами сканирования портов его системы.

В данной статье рассказывается о том, как с помощью psad (Port Scan Attack Detector) автоматически регистрировать и блокировать попытки сканирования портов вашего компьютера. Сайт проекта psad находится по адресу http://www.cipherdyne.org/

Установка psad в Fedora

Пользователи дистрибутивов Fedora могут установить psad из официальных репозиториев:

# yum install psad

Сборка psad из исходных текстов

На момент написания статьи последняя версия psad была 1.4.8.

1. Загрузите последнюю версию с сайта http://www.cipherdyne.org/psad/download/:

# wget http://www.cipherdyne.org/psad/download/psad-1.4.8-1.src.rpm

2. Произведите сборку RPM-пакета под ваш дистрибутив:

# rpmbuild -rebuild psad-1.4.8-1.src.rpm

3. Установите psad:

# rpm -ihv /usr/src/redhat/RPMS/i386/psad-1.4.8-1.i386.rpm

Read More «УСТАНОВКА И НАСТРОЙКА СИСТЕМЫ ОБНАРУЖЕНИЯ И БЛОКИРОВАНИЯ ПОПЫТОК СКАНИРОВАНИЯ ПОРТОВ PSAD»

УСТАНОВКА МОДУЛЯ GEOIP В АПАЧ, CENTOS

Первый способ:

И так, делаем слудующее:
bash# yum install GeoIP GeoIP-devel httpd-devel

Далее:
bash# wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
bash# gunzip GeoIP.dat.gz
bash# mv GeoIP.dat /var/lib/GeoIP/GeoIP.dat
bash# wget http://geolite.maxmind.com/download/geoip/api/mod_geoip2/mod_geoip2_1.2.5.tar.gz
bash# tar xzf mod_geoip2_1.2.5.tar.gz
bash# cd mod_geoip2_1.2.5

Если вдруг стоит 64 битная CentOS – то меняем /usr/lib -> /usr/lib64
bash# apxs -i -a -L/usr/lib -I/usr/include -lGeoIP -c mod_geoip.c

Открываем конфигурацию Apache:
bash# nano /etc/httpd/conf/httpd.conf

И роверяем присутствие загрузки модуля и указания месторасположения базы, если вдруг чего – то не совсем хватает — то добавляем следующее:
LoadModule geoip_module /usr/lib64/httpd/modules/mod_geoip.so
GeoIPEnable On
GeoIPDBFile /var/lib/GeoIP/GeoIP.dat

Перезапуск Apache:
bash# /sbin/service httpd restart

В вашей системе такое может быть service либо /bin/service, проверяйте командой whereis service.

Обязано показать [OK], в случае чего – то иного – тогда читаем ошибку и исправляем конфигурацию Apache.

Второй способ(очень простой, но не всем подойдёт):

Все намного проще:

rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
yum install mod_geoip

На это всё, установили!

Установка mod_rpaf Centos

Подготовим систему к компиляции модуля

# yum install -y httpd-devel gcc
# cd /usr/local/src

Скачаем архив с исходным кодом и скомпилим его.

# wget http://drupion.com/sites/default/files/mod_rpaf-0.6.tar_.gz
# tar zxvf mod_rpaf-0.6.tar_.gz
# cd mod_rpaf-0.6
# apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c



-- mod_rpaf-2.0.so должно появиться по адресу
# ls /usr/lib64/httpd/modules/mod_rpaf-2.0.so


Теперь конфигурируем: vi /etc/httpd/conf.d/00-rpaf.conf (вместо xx.xx.xx.xx вписываете айпи вашей машинки, если айпи много, то прописываете все через пробел)

LoadModule rpaf_module /usr/lib/httpd/modules/mod_rpaf-2.0.so # 32 битные ОС
LoadModule rpaf_module /usr/lib64/httpd/modules/mod_rpaf-2.0.so # 64 битные ОС
RPAFenable On
RPAFsethostname Off
RPAFproxy_ips xx.xx.xx.xx 127.0.0.1
RPAFheader X-Real-IP

/etc/init.d/httpd restart

В конфиге nginx в разделе http{} добавляем

 

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

 

/etc/init.d/nginx restart

Как проверить, работает ли установленный модуль.

На любом из доменов, которые расположены на Вашем сервере, разместите файл test.php с содержимым:

<?PHP
echo $_SERVER[‘REMOTE_ADDR’];
?>

Далее зайдите по ссылке http://domain.tld/test.php, где domain.tld — имя вашего домена. Если как результат отображается IP, отличающийся от IP вашего сервера, модуль работает корректно.

Тюнинг nginx, mysql, php на VPS (nginx web tune vps mysql php )

Введение

В настоящее время стало популярно вместо обычного хостинга, брать себе виртуальный сервер (VPS).
Дешево, по сравнению с настоящим сервером ( в 2-3 раза) и места много. Так мои друзья и поступили,
заказав себе VPS и отказались от обычного хостинга. Их ресурс был достаточно популярен, но к сожалению
часто был не доступен. Взяв VPS - они думали, что решили проблемы с надежностью - но не тут то было.
Так как у меня уже был опыт оптимизации таких серверов, они попросили меня посмотреть в чем причина тормозов.
Параметры VPS были такие 500 мГц CPU и 386M памяти, система Debian Etch 4. Веб сервер стоял на apache1.3, 
в качестве базы данных использовалась mysql5.0.
Работал VPS на базе Virtuozzo.

По следам оптимизации - была написана эта статья. Статья расчитана на опытных вебмастеров.

Предварительная настройка

Шаг 1. Установка nginx

Пришлось похоронить apache и заменить его на nginx. Причины как обычно, Read More "Тюнинг nginx, mysql, php на VPS (nginx web tune vps mysql php )"