Реальные ip-адреса клентов в логах apache, находящимся за nginx

14 Август 2012 Comments off

Связка Apache-бекенд, Nginx-фронтенд достаточно популярна, но в этом случае в логах апача вместо реальных ip клиентов мы видим ip-адрес, с которого обращается Nginx. Исправить ситуацию поможет модуль rpaf. Включив модуль, в его конфиг надо прописать следующее:


RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1

В опции RPAFproxy_ips необходимо прописать ip-адрес, с которого обращается Nginx.
В конфиге сайта в Nginx также нужно добавить строку

proxy_set_header X-Forwarded-For $remote_addr;
Categories: apache

Логирование запросов и ответов средствами апача

13 Август 2012 Comments off

Иногда возникает необходимость посмотреть приходящие на сервер http-запросы и ответы вместе с заголовками, например, для выяснения причин некорректной работы сервиса. В этом случае можно перехватывать трафик снифером, но если трафик шифрованный, просмотреть его становится непросто. Если мы имеем дело с веб-сервером Apache, то на помощь приходит модуль dumpio. Его необходимо включить и добавить в конфиг хоста, который нас интересует, следующее:

DumpIOInput On
DumpIOLogLevel warn

Это заставит апач логировать входящие запросы с заголовками в ErrorLog хоста, если LogLevel для хоста выставлен в warn (до версии 2.2.4 Apache будет логировать запросы только при LogLevel debug). Если также необходимо логировать ответы апача, то нужно еще добавить:

DumpIOOutput On
Categories: apache

Печать фотографий в Picplum

12 Август 2012 Comments off

Буквально вчера попробовал сервис печати фотографий — picplum. Сервис американский, но есть возможность высылать фотографии по всему миру (стоимость доставки в Россию у меня вышла 2.25$, что сравнимо с отчественным сервисом netprint). В целом сервис порадовал, все сделано удобно и грамотно.  Есть несколько вариантов размеров, возможность подписывать фотографии с обратной стороны, загрузка файлов методом drag & drop, можно высылать нескольким адресатам, а также к фотографиям прилагается отдельная открытка с произвольным текстом. Из минусов — достаточно дорогие фотографии (от 50 центов) и время доставки (будет известно, когда получу). Теперь остается дождаться фотографий, чтобы оценить качество печати и сроки доставки.

Надо заметить, что с первого раза отправить заказ у меня не получилось — при нажатии кнопки завершения заказа, появлялось сообщение о неудаче. Я даже слегка разочаровался в понравившемся сервисе, но к их чести, они исправились. На следующий день я получил письмо, в котором сервис принес извенения за недоступность (у них было обновление оказывается) и сообщил, что теперь я могу сделать заказ. И правда — я лишь нажал кнопку заказа и все успешно прошло, не пришлось заново выбирать фотографии, указывать адрес отправки и данные кредитки, сервис все помнил.

Categories: разное

Смешанные правила доступа к хосту в Apache

20 Сентябрь 2010 Comments off

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

Order deny,allow
Deny from all
Allow from 192.168.0.0/24
AuthUserFile /etc/apache2/users.pwd
AuthType Basic
AuthName auth
Require valid-user
Satisfy any

в данном случае пользователи из сети 192.168.0.0/24 будут иметь доступ к хосту без пароля, для всех остальных требуется логин/пароль, которые есть в /etc/apache2/users.pwd.

Categories: apache

Установка mod-security в Debian Lenny

20 Июль 2010 Comments off

Посольку mod-security нет в стандартных репозитариях Debina Lenny, нужно подключить backports. Для этого добавим в /etc/apt/sources.lists:

deb http://www.backports.org/debian lenny-backports main contrib non-free

затем обновим список пакетов и импортируем ключи нового репозитария:

apt-get update
apt-get install debian-backports-keyring

устанавливаем необходимые пакеты

apt-get install libapache-mod-security libxml2

и создаем нужные папки и ссылки

mkdir /etc/apache2/conf.d/modsecurity
cp /usr/share/doc/libapache-mod-security/examples/rules/base_rules (modsecurity_crs_10_config.conf modsecurity_crs_10_global_config.conf) /etc/apache2/modsecurity
ln -s /var/log/apache2 /etc/apache2/logs

в /etc/apache2/apache2.conf вставить:

Include /etc/apache2/modsecurity/*.conf
Include /etc/apache2/modsecurity/base_rules/*conf

Перезапускаем apache и mod-security работает )

Categories: apache

Парольные политики в линукс

17 Июнь 2010 Comments off

Возникла необходимость настроить политики паролей в линуксе, а именно:

  • срок действия паролей, неповторяемость паролей
  • длина и сложность пароля

Сначала устанавливаем libpam-cracklib, затем прописываем в /etc/pam.d/common-password:

password required pam_cracklib.so retry=3 minlen=8 difok=3 dcredit=-1 lcredit=-1 ucredit=-1
password required pam_unix.so use_authtok nullok md5 remember=4

Первая строка требует минимальную длину пароля 8 символов (minlen), требование наличия в пароле хотя одной цифры (dcredit), маленькой буквы (lcredit) и большой буквы (ucredit), а также старый пароль должен отличаться от нового не менее чем на 3 символа (difok). Параметр remember во второй строке говорит, что 4 последних пароля должны отличаться друг от друга.
Для блокировки пользователя на 30 минут при вводе неправильного пароля 6 раз подряд, необходимо в начало файла /etc/pam.d/common-password вставить строку

auth required pam_tally.so onerr=fail deny=6 unlock_time=1800

Ограничить срок действия пароля (60 дней) можно командой

chage -M 60 _имя_пользователя_

этого же можно добиться, прописав в файл /etc/login.defs до создания учетной записи следующее

PASS_MAX_DAYS 60
Categories: linux

репликация в MySql

22 Сентябрь 2009 Нет комментариев

Чтобы поднять master-slave репликацию в mysql нужно проделать следующее. Если на мастере уже есть какие-то данные, нужно их скопировать (файлы либо при помощи mysqldump) при этом запомнив значения File и Position, соответствующие дампу. Посмотреть их можно командой

mysql> show master status;

На мастере:
1) включить бинлоги, прописать server-id=1. Для этого в файл конфигурации mysql (my.cnf) добавить:

log_bin = /var/log/mysql/mysql-bin.log
server-id = 1

2) создать пользователя, от имени которого будет происходить репликация, наделив его соответствующими правами:

mysql> GRANT REPLICATION SLAVE ON *.* TO ‘repl’@’192.168.0.2’ IDENTIFIED BY ‘password’;

(192.168.0.2 — адрес слейва)
На слейве:
1) прописать server-id, отличный от мастера (в файл my.cnf)

server-id = 2

2) перезапустить mysql и указать параметры для подключения к мастеру командой

mysql> change master to MASTER_HOST=’192.168.0.1′,MASTER_USER=’repl’,MASTER_PASSWORD=’password’,MASTER_LOG_FILE=’mysql-bin.002990′,MASTER_LOG_POS=2864343;

(192.168.0.1 — адрес мастера)

Categories: mysql

Редирект с определённых URL в Apache

15 Июнь 2009 Comments off

Например, для того, чтобы перенаправить пользователя с адреса вида http://site.exp/page/тут_что-то_ещё на http://othersite.exp/page/тут_что-то_ещё, надо в конфиг, который относится к сайту http://site.exp, прописать следующее:

RedirectMatch ^/page/(.*) http://othersite.exp/page/$1
Categories: apache

Синхронизация времени в гостевой системе Xen

3 Июнь 2009 Comments off

Чтобы время в гостевой системе можно было устанавливать (в частности синхронизировать при помощи ntp) независимо от хозяина, нужно выполнить команду (в гостевом линуксе):

echo 1 > /proc/sys/xen/independent_wallclock
Categories: linux

Как определить, является ли ваш процессор 64-битным

2 Июнь 2009 Comments off

Запустить команду

lshw -class processor

и в выводе искать поле width. Для 64-битной системы оно будет выглядеть так:

width: 64 bits

Также для 64-битного процессора устанавливается флаг lm (список флагов можно посмотреть в выводе команды cat /proc/cpuinfo).

Categories: linux