На будущее: если отваливается Windows Update с ошибкой 0xc80003f3
Пуск -> cmd (от админа):
regsvr32 MSXML3.dll /s
net stop wuauserv
cd /d %windir%\SoftwareDistribution
rd /s /q DataStore
net start wuauserv
regsvr32 softpub.dll
regsvr32 mssip32.dll
Всяческий IT-секас
На будущее: если отваливается Windows Update с ошибкой 0xc80003f3
Пуск -> cmd (от админа):
regsvr32 MSXML3.dll /s
net stop wuauserv
cd /d %windir%\SoftwareDistribution
rd /s /q DataStore
net start wuauserv
regsvr32 softpub.dll
regsvr32 mssip32.dll
Не секрет что в Windows 7 RC была свистоперделка отправляющие данные мелкосаксам для «улучшения качества ПО». Но после релиза она всё ещё может быть включена, поэтому исправляем это недоразумение:
Пуск -> набираем в строке поиска: customer (или ‘улучше’ для русскоязычной седьмой) в найденном окне отказываемся от участия в этой фигне.
Так же, для полноты эффекта отключаем\удаляем задания свистоперделки:
Control panel -> Administrative tools -> Task Scheduler -> \Microsoft\Windows\Customer Experience Improvement Program ПКМ и Disable либо Delete.
Profit!
Порой даже элементарная задача приносит кучу новых знаний и требует индивидуального подхода.
На просторах интернетов есть очень много гайдов на тему установки и настройки mod_fastcgi, всё сводится к паре команд и добавлению стандартного конфига. Но не всегда всё обстоит так просто.
Итак, мы имеем связку Apache 2 (бэкенд), nginx (фронтенд), и PHP 5.3.x в режиме mod_php.
Задача: перевести PHP в режим FastCGI
Очередная заметка про грабли, и болящую попу.
Допустим вы подключили новенький девственный 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
пробуем смонтировать раздел
mkdir /new-hdd mount /new-hdd df -h
если всё ок, то можно перезагружаться.
Если же во-время загрузки вы что-то напортачили и на горизонте маячит белый пушной зверёк, то вводим root пароль и переходим в режим Repair filesystem (: Но для того чтобы иметь возможность внести изменения в файл /etc/fstab надо сначала перемонтировать партицию с возможностью записи:
mount -w -o remount /
теперь открываем /etc/fstab и исправляем ошибки.
Сразу оговорюсь что велосипед не мой, но катается хорошо :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.
Во второй версии dovecot’а есть возможность указывать разные сертификаты для разных доменов (IP адресов и протоколов).
Для этого создаем шаблон:
[ req ]
default_bits = 1024
encrypt_key = yes
distinguished_name = req_dn
x509_extensions = cert_type
prompt = no[ req_dn ]
# country (2 letter code)
#C=FI# State or Province Name (full name)
#ST=# Locality Name (eg. city)
#L=Helsinki# Organization (eg. company)
#O=Dovecot# Organizational Unit Name (eg. section)
OU=IMAP server# Common Name (*.example.com is also possible)
CN=imap.example.com# E-mail contact
emailAddress=postmaster@example.com[ cert_type ]
nsCertType = server
и сертификат:
# openssl req -new -x509 -nodes -config cert.cnf -out dovecot-domain-crt.pem -keyout dovecot-domain-key.pem -days 365
перемещаем сертификат и ключ куда надо, задаем права на файлы и т.д.
# mv dovecot-crt.pem /etc/pki/dovecot/cert/dovecot-domain-crt.pem
# mv dovecot-key.pem /etc/pki/dovecot/private/dovecot-domain-key.pem
# chmod 0600 /etc/pki/dovecot/cert/dovecot-domain-crt.pem
# chmod 0600 /etc/pki/dovecot/private/dovecot-domain-key.pem
# openssl x509 -subject -fingerprint -noout -in /etc/pki/dovecot/certs/dovecot-domain-crt.pem
далее необходимо поправить конфигурацию ssl для dovecot /etc/dovecot/conf.d/10-ssl.conf находим
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
и НИЖЕ ДОБАВЛЯЕМ
local xx.xx.xx.xx {
protocol pop3 {
ssl_cert = </etc/pki/dovecot/certs/dovecot-domain-crt.pem
ssl_key = </etc/pki/dovecot/private/dovecot-domain-key.pem
}
}
Стандартную секцию необходимо оставить, иначе вы будете получать ошибку doveconf: Error: ssl enabled, but ssl_cert not set
вместо local <ваш IP> можно использовать local_name domain.tld, в этом случае секция с protocol pop3 не нужна, но вам понадобится поддержка TLS SNI (Server Name Indication)!
Настраивая что-нибудь в центоси вы обязательно огребете проблем если у вас включен SELinux.
Таким замечательным примером может служить настройка Postfix с SASL аутентификацией в Dovecot. Вы спокойно сделали конфиги, всё проверили, рестартанули сервисы, а в результате нижуя не работает! WTF? Это няши, SELinux.
Идем в лог /var/log/maillog и любуемся такой вот ошибкой:
localhost postfix/smtpd: warning: SASL: Connect to private/auth failed: Permission denied
Благодарим это чудо за чудесную ночь секаса или же берем клаву и ставив на место это безобразие (:
grep smtpd_t /var/log/audit/audit.log | audit2allow -M postfixsasl
коротко о команде — найти smtpd_t в логе аудита и создать на основе этого правило для selinux
semodule -i posfixsasl.pp
добавляем правило в проклятый selinux, перезапускаем сервис(ы) и всё няшно. Эх, если бы я нашла эту фичку год назад…
Иногда может случиться так, что вы вроде бы всё добавили (например, модули для munin), а что-то всё ещё не работает из-за SELinux’a. Причиной этому может быть то, что события блокировки попадают под donotaudit события. В этом случае можно временно включить donotaudit события командой:
semodule -DB
и потом вернуть обратно
semodule -B
Так же, помимо описанного выше способа поиска для создания правил. Можно воспользоваться командой:
ausearch -m avc -ts today | audit2allow -M myfix
Которая автоматически поищет все события и создаст правила для их разрешения.
p.s.
Вот тут: гайд как это работает + ещё примеры для тех кто любит и пожестче.
Вот думала что писала уже про это, а нет, заметки не оказалось. Между тем, для непосвященных няшек это может стать небольшой проблемой, так как стандартные мануалы не подразумевают наличия 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
Парочка полезных команд:
чтобы глянуть какой бардак творится со свободным местом
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
Изначально планировалась заметка о том, как поставить и настроить «лёгкий» и удобный почтовый сервер, но увы, задача оказалась сильнее меня. Поэтому публикую некоторые грабли с которыми успела познакомиться в процессе и решить.
Если в логах появляется следующая XYетень, то 90% что виноват в этом SELinux.
Mar 2 02:08:14 nyaa dovecot: POP3(xxx@yyy.zz): mkdir(/var/vmail/yyy.zz/xxx/cur) failed: Permission denied
Mar 2 02:08:14 nyaa dovecot: POP3(xxx@yyy.zz): Couldn’t open INBOX: Internal error occurred. Refer to server log for more information.
Берём резиновый дрын и со всей душой анально караем его за сотни минут потраченных на решение данной проблемы.
ВАРН! — Это решение работает частично, так как далее возникает затык с пермишенами при создании файлов писем и там полная жопа. Лечится по слухам добавлением специального типа пермишенов для довкота либо отключением SELinux’а, но на практике не проверяла.
# semanage fcontext -a -t dovecot_spool_t ‘/var/vmail(/.*)?’
# restorecon -Rv /var/vmail
Если у вас появляется ошибка:
postfix/cleanup[4486]: warning: connect to mysql server localhost: Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’
Можете смело пиздить тех умников, которые пишут localhost в манах. Разницу постфикс имеет, мой юный падаван!
Правим все hosts=localhost на hosts=127.0.0.1 опля!