Опубликовано

Apache2 + PHP + FastCGI — горячее блюдо

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

На просторах интернетов есть очень много гайдов на тему установки и настройки mod_fastcgi, всё сводится к паре команд и добавлению стандартного конфига. Но не всегда всё обстоит так просто.

Итак, мы имеем связку Apache 2 (бэкенд), nginx (фронтенд), и PHP 5.3.x в режиме mod_php.

Задача: перевести PHP в режим FastCGI

Читать далее Apache2 + PHP + FastCGI — горячее блюдо

Опубликовано

How to add a new hdd in Centos

Очередная заметка про грабли, и болящую попу.

Допустим вы подключили новенький девственный hdd к своей шайтан-машине. Первым делом надо создать раздел:

fdisk /dev/sdx

n — создаем новый раздел

p — праймари

1 — номер раздела

t — тип файловой системы

83 — HEX код EXT3 (список кодов вы можете глянуть командой L)

w — сохранить изменения

проверьте всё ли верно создалось

fdisk -l

если да, двигаемся дальше и форматируем наш раздел

mkfs.ext3 /dev/sdx1

fsck -f -y /dev/sdx1

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

tune2fs -L /new-hdd /dev/sdx1

добавляем информацию в /etc/fstab

LABEL=/new-hdd    /new-hdd    ext3    defaults    1 2

пробуем смонтировать раздел

mount /new-hdd

df -h

если всё ок, то можно перезагружаться.

Если же во-время загрузки вы что-то напортачили и на горизонте маячит белый пушной зверёк, то вводим root пароль и переходим в режим Repair filesystem (: Но для того чтобы иметь возможность внести изменения в файл /etc/fstab надо сначала перемонтировать партицию с возможностью записи:

mount -w -o remount /

теперь открываем /etc/fstab и исправляем ошибки.

Читать далее How to add a new hdd in Centos

Опубликовано

Munin 1.4.x 95 percentage RRD patch

Сразу оговорюсь что велосипед не мой, но катается хорошо :D

Хостеры иногда предлагают клиентам так называймый burstable трафик, это когда можно на некоторое время зайти за лимит, скомпенсировав трафик во-время наименьшей нагрузки. Более подробно вы можете покурить педивикию, даже на русском!

Для того чтобы добавить сие решение к себе в munin придется немного попатчить RRD. Стоит отметить что пути от дистрибутива и версии могут отличаться, но смекалку никто не отменял ;)

Centos 5:

/usr/lib/perl5/vendor_perl/5.8.8/Munin/Master/GraphOld.pm

Centos 6:

/usr/share/perl5/vendor_perl/Munin/Master/GraphOld.pm

Я не буду приводить листинг кода тут, так как парсер может  его погрызть. Поэтому ссылочка на патчноуты Munin 1.4.x 95 percentage RRD patch или на оригинальный аттач в trac.

Опубликовано

Переброс порта ssh в CentOS 6

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

 

Итак, для того чтобы изменить стандартный порт доступа надо сделать 3 вещи:

1. открываем /etc/ssh/sshd_config и раскомментируем строку

Port 22

меняем 22 на выбранный вами порт. Если вы хотите чтобы ssh слушал только на IPv4, то раскомментируйте строку

ListenAddress 0.0.0.0

остальные настройки по вкусу (:

 

2. добавляем правило для iptables (вы можете изменить стандартное правило для 22-го порта)

iptables-save > /path/to/rules.list

добавляем строку

-A INPUT -p tcp -m state —state NEW -m tcp —dport 1234 -j ACCEPT

и сохранив файлик обновляем правила

iptables-restore < /path/to/rules.list

НО, данный вариант будет работать только до первой перезагрузки! Если вы хотите добавить постоянное правило, изменения следует вносить в /etc/sysconfig/iptables

 

И вот казалось бы всё, но в этом случае перезапустив sshd вы рискуете потерять доступ к серверу, так как включенный по-умолчанию SELinux будет считать что негоже использовать иной порт. Так что переходим к пункту…

3. для того чтобы selinux не возникал, необходимо добавить ваш порт как порт для ssh

semanage port -a -t ssh_port_t -p tcp 1234

проверяем

semanage -l | grep ssh

 

Так же, вы можете столкнуться с проблемой когда центось вам скажет что знать не знает такой команды, тогда выполняем

yum whatprovides /usr/sbin/semanage

и получив ответ, устанавливаем нужный пакет. в моём случае это

yum install policycoreutils-python

 

Вот теперь можно смело (перепроверив не забыли ли вы чего!) перезапускать sshd и ломиться на новый порт

service sshd restart

Опубликовано

Free space and autostart

Парочка полезных команд:

чтобы глянуть какой бардак творится со свободным местом

df -h

 

добавление сервиса либо скрипта в автозагрузку

chkconfig —level 345 %scriptname% on

удаление из автозагрузки

chkconfig %scriptname% off

Wiki по run level (http://en.wikipedia.org/wiki/Runlevel)

0 — Halt (выключение)

1 — Single User mode

2 — Multi User mode (without networking)

3 — Multi-user mode (with networking, console logins only)

4 — User-definable

5 — Multi-user mode (with console, with display manager X11)

6 — reboot (перезагрузка)

Список сервисов

chkconfig —list

Опубликовано

Мыльная опера

Столкнулась с проблемой отказа некоторых серверов принимать мыло с серевера. Как вариант решила попробовать добавить SPF.

Итак, основная идея в том, что для всех доменов находящихся на сервере (и не только) указывается один MX сервер, который и занимается обработкой сообщений. Указывать надо именно тот домен, который прописан в PTR записи.

Если допустим в PTR записи указан домен main.com, то для обслуживаемых доменов днс записи будут следующие:

domain.ru. MX 10 mail.main.com
domain.ru. TXT «v=spf1 a:mail.main.com mx ptr -all»

Полезные ссылочки:
http://old.openspf.org/dns.html (примеры SPF записей)

Опубликовано

Logrotate @ CentOS

Небольшая заметка о ротации логов для себя.

/etc/logrotate.d/ — настройки для сервисов использующих ротацию логов. Особенно полезно если скажем логи апача хранятся в отдельной директории(ях) но надо чтобы они парсились вместе с основными.

Опубликовано

Юзвери и пингвины

# useradd [options] login_name
создаем нового пользователя
# usermod [options] login_name
редактируем параметры пользователя
# userdel [options] login_name
удаляет пользователя. Используйте -r опцию чтобы автоматически удалять домашний каталог и почтовый пул.
# passwd login_name
задаем пароль для пользователя
# groupadd [options] group_name
создаем группу
# groupmod [options] group_name
редактируем параметры группы
# groupdel group_name
удаляем группу

Опубликовано

Играем в сохраняшки

Первая заповедь гласит: всегда делай бекапы.

Сегодня мы и займемся соблюдением этой заповеди при помощи святой мощи rsync и бесовского паладина cwrsync.

Для начала настроим хост. Создаем файл /etc/rsyncd.conf и прописываем туда следующее:

uid=root
read only=true
use chroot=false
max connections=2
log file=/var/log/rsyncd.log
hosts allow=192.168.0.12

[backup]
comment=»Backup of host»
path=/path/to/data
list=true
auth users=%username%
secrets file=/etc/rsyncd.secrets
strict modes=true

Я не буду вдаваться в описание каждой настройки, всё это можно почитать тут. Если кратко, то мы запускаем rsync от рута (да-да, надо в чрут, но сейчас не про это) и разрешаем доступ с доверенного хоста. Заодно запрещая ему что-либо записывать. Ниже идет секция задания. В конфиге их может быть несколько. Там мы указываем что бекапить, и какому юзеру можно это делать.

Следующим шагом будет как раз добавление юзеров для работы с rsync. Тут всё предельно просто. Создаем файл /etc/rsyncd.secrets и добавляем туда пользователей и пароли для них вот в таком формате:

username:password

Настройки есть, пользователи тоже. Далее обезопасимся от еретиков и откроем врата. =)

# chown root:root /etc/rsyncd.*

# chmod 600 /etc/rsyncd.*

# rsync —daemon

Далее добавим правила для iptables:

-A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp —dport 873 -j ACCEPT
-A INPUT -p tcp -m tcp —dport 873 -j DROP

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

# getsebool -P rsync_disable_trans 1

На бекапной машине (в моём случае это форточки) мы ставим cwrsync открываем консоль и пишем следующее:

c:\path to\cwrsync\bin\rsync.exe xxx.xxx.xxx.xxx::

Если всё отлично, то результат будет в виде списка заданий. Вызвать задание можно следующим образом:

rsync —recursive —update —delete -v user@xxx.xxx.xxx.xxx::backup /cygdrive/X/path to/

В данном случае мы делаем рекурсивное сохранение с удалением несуществующих файлов на бекапной машине.

Опубликовано

Охотник на рутов

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

# yum install rkhunter

# rkhunter —update

# rkhunter —check

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

Файл /etc/rkhunter.conf директива MAIL-ON-WARINIG