Восстановление после chown смены пользователя на все файлы в Linux

Обратились ко мне с просьбой восстановить сервер после того, как командой chown * -R username.username поменяли все файлы в Ubuntu. Выполнили эту команду в корне ФС, произошло то, что все файлы в папках начиная от bin до var поменялись пользователь и группа.  Сервисы как Apache, Mysql, Postfix, Dovecot и т.п. перестали работать.

Бэкапа всей файловой системы нет, и руками искать ошибки не хотелось.

Решение, если у Вас есть похожая система, т.е. уже настраивали Postfix, Dovecot на другой машине, то с помощью утилиты можно записать данные пользователя, группы, прав и установить их на проблемной машине.

Читать дальше

Установка apache2-mpm-itk в Ubuntu 16.04

Модуль apache2-mpm-itk для Apache нужен для того чтобы запускать виртуальные хосты vhosts под своим UID или GID, проще говоря, скрипты сайта должны быть недоступны для других хостов даже для чтения (в случае взлома одного сайта не смогли взломать другой сайт находящихся на этом сервере).

Я уже давно использую apache2-mpm-itk на своих серверах, но после попытки установить apache2-mpm-itk в Ubuntu 16.04, понял что многое изменилось.

Теперь apache2-mpm-itk является отдельным модулем в Apache2 и устанавливается как модуль.

Читать дальше

Request exceeded the limit of 10 internal redirects due to probable configuration error

После переноса сайта wordpress на другой хостинг сайт не загружался, внутренние страницы показывались с ошибкой 500 Internal Server Error, а в логах Apache появились вот такие ошибки:

Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.

А все из-за того что не правильно написан .htaccess.

А чтобы точно найти ошибку, включим debug для mod_rewrite.

Читать дальше

Переустановить MySQL в Linux

mysql

Слетела таблица Innodb в MySQL, а так как есть бэкапы базы данных, принято решение переустановить MySQL.

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

Для удаления MySQL в Linux, я использовал следующие команды, внимательно смотрите какие пакеты будут удалены:

sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get remove --purge mysql-client-core-5.5
sudo apt-get autoremove
sudo apt-get autoclean
sudo rm -rf /var/lib/mysql   # Будут удалены все базы данных

Далее, мы устанавливаем mysql сервер и клиент:

sudo apt-get install mysql-server mysql-client
sudo apt-get install phpmyadmin

Вот так мы переустановили MySQL и она стала как новенькая.

fail2ban ssh ubuntu 14.04

При установке fail2ban на Ubuntu 14.04, блокирование ssh должно работать по умолчанию, но недавно заметил что это не так. Давайте исправим это.

Установка Fail2ban

sudo apt-get install fail2ban

Немного изменив файл /etc/fail2ban/jail.conf ужесточаем правила

[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 4
bantime = 6000

Как и писал выше, ssh в fail2ban не работает в Ubuntu 14.04 по умолчанию, а все из-за того что fail2ban ищет в /var/log/auth.log дату в формате YYYY.MM.DD а на самом деле Jan 18.

Исправляем:

cp /etc/fail2ban/filter.d/common.conf /etc/fail2ban/filter.d/common.local

Заменить в /etc/fail2ban/filter.d/common.local на:

__bsd_syslog_verbose = (<[^.]+ [^.]+>)

Перегружаем:

/etc/init.d/fail2ban restart

В логах /var/log/fail2ban.log

2016-01-18 12:01:29,507 fail2ban.actions: WARNING [ssh] Ban 162.243.104.16
2016-01-18 12:01:29,513 fail2ban.actions: WARNING [ssh] Ban 192.255.41.92

OpenDKIM ошибка no signature data

Две причины если появляется ошибка no signature data в логах почты:

Jan 12 12:04:00 mail opendkim[10261]: 19DC8213F5: no signature data

1. Проверьте директиву InternalHosts в /etc/opendkim.conf

InternalHosts      file:/etc/postfix/dkim/internal

InternalHosts: определяет перечень внутренних хостов, чьи письма должны быть подписаны

Поэтому необходимо добавить в /etc/postfix/dkim/internal все внутренние хосты или подсети:

root@mail:/etc/postfix/dkim# cat internal
192.168.1.0/24

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

2.  Правильные ли пути до ключей в /etc/opendkim.conf:

KeyTable              file:/etc/postfix/dkim/keytable
SigningTable          file:/etc/postfix/dkim/signingtable

При установке php 5.3.1 undefined reference to `SSLv2_server_method

Вот такую ошибку получил при установки из исходников PHP 5.3.1:

/usr/src/php-5.3.1/ext/openssl/xp_ssl.c:324: undefined reference to `SSLv2_client_method'
/usr/src/php-5.3.1/ext/openssl/xp_ssl.c:344: undefined reference to `SSLv2_server_method'
collect2: error: ld returned 1 exit status
make: *** [sapi/cgi/php-cgi] Ошибка 1

Скачиваем patch в /usr/src/php-5.3.1/ext/openssl

# wget -O disable_SSLv2_for_openssl_1_0_0.patch https://raw.githubusercontent.com/omega8cc/boa/master/aegir/patches/disable_SSLv2_for_openssl_1_0_0.patch

Устанавливаем патч:

# patch xp_ssl.c disable_SSLv2_for_openssl_1_0_0.patch

Запускаем make

Выключить pjsip в Asterisk

Отключить pjsip в Asterisk можно отредактировав добавил следующие строки в modules.conf  /etc/asterisk/
noload = res_pjsip.so
noload = res_pjsip_pubsub.so
noload = res_pjsip_session.so
noload = chan_pjsip.so
noload = res_pjsip_exten_state.so
noload = res_pjsip_log_forwarder.so

И перегрузите Asterisk.

Как удалить FreePBX — Решено!!!

В статье описывается два метода удаления FreePBX:

С помощью срипта install_amp --uninstal, но для этого нужны исходники FreePBX:

root@asterisk:/usr/src/freepbx# ./install_amp --uninstall
Checking for PEAR DB..OK
Checking for PEAR Console::Getopt..OK
Remove /etc/amportal.conf?: [y] y
Removing /etc/amportal.conf.....Done!
Remove /etc/freepbx.conf?: [y] y
Removing /etc/freepbx.conf.....Done!
Remove /usr/local/sbin/amportal?: [y] y
Removing /usr/local/sbin/amportal.....Done!
Remove All FreePBX Tools in /var/lib/asterisk/bin?: [y] y
Removing /var/lib/asterisk/bin/archive_recordings.....Done!
Removing /var/lib/asterisk/bin/freepbx_engine.....Done!
Removing /var/lib/asterisk/bin/gen_amp_conf.php.....Done!
Removing /var/lib/asterisk/bin/retrieve_conf.....Done!
Removing /var/lib/asterisk/bin/freepbx-cron-scheduler.php.....Done!
Removing /var/lib/asterisk/bin/freepbx_setting.....Done!
Removing /var/lib/asterisk/bin/generate_hints.php.....Done!
Removing /var/lib/asterisk/bin/module_admin.....Done!
Removing /var/lib/asterisk/bin/retrieve_parse_amportal_conf.pl.....Done!
Removing /var/lib/asterisk/bin/audio-email.pl.....Done!
Removing /var/lib/asterisk/bin/backup.php.....Done!
Removing /var/lib/asterisk/bin/callback.....Done!
Removing /var/lib/asterisk/bin/freepbx_engine_hook_dahdiconfig.....Done!
Removing /var/lib/asterisk/bin/freepbx_engine_hook_ucp.....Done!
Removing /var/lib/asterisk/bin/one_touch_record.php.....Done!
Removing /var/lib/asterisk/bin/opencnam-alert.php.....Done!
Removing /var/lib/asterisk/bin/restore.php.....Done!
Removing /var/lib/asterisk/bin/stoprecording.php.....Done!
Remove /home/websites/asterisk.rusrating.ru/www?: [y] y
Removing /home/websites/asterisk.rusrating.ru/www......Done!
Uninstall Freepbx's Asterisk Database?: [y] y
Erasing FreePBX Asterisk Database...Done
Uninstall Freepbx's CDR Database?: [y] y
Erasing FreePBX CDR Database...Done
Successfully Uninstalled FreePBX

Читать дальше