заметки об администрировании и программировании (python, ruby, php). Траблшутинг в «примерах» и HOWTO.

😎 О себе | 📚 Литература и ресурсы | ⚡ Все посты | 📮 E-mail
6 заметок с тегом

WordPress

Настройка NGINX для работы с WordPress в ISPmanager v5 Lite

Настройка NGINX для работы с WordPress в ISPmanager v5 Lite
Для корректной работы WordPress в связке nginx + php-fpm при использовании панели управления ISPmanager v5 Lite. Если же не использовать данную правку, то можно сказать «пока» ЧПУ-ссылкам.

Нам необходимо привести главный location к следующему виду (не забываем, что если используется SSL-сертификат для домена, то будет 2 виртуальных хоста для домена, поэтому правку нужно сделать и там, и там):


location / {
  try_files $uri $uri/ /index.php?$args;
  location ~ [^/]\.ph(p\d*|tml)$ {
    try_files /does_not_exists @php;
  }
}


Правка вносится в файле /etc/nginx/vhosts/USER_NAME/domain.conf
Ну и далее перезапускаем nginx. Если нет желаения лезть в файлы, то переходим WWW-домены, выбираем домен и далее «Конфиг». Перезапускаем через Система — Службы — nginx — Рестарт

 Нет комментариев    192   2018   ISPmanager v5 Lite   nginx   WordPress

Защита от WordPress pingback-атаки (DDoS) с помощью fail2ban

Защита от WordPress pingback-атаки (DDoS) с помощью fail2ban

Не идеальный вариант, да и других способов отражения подобной атаки много, но иногда бывают обстоятельства, когда необходимо выполнить задачу в жестко установленных рамках. Поэтому потребовалось произвести настройку fail2ban для отражения pingback-атаки с помощью fail2ban на CentOS 7

В файле /etc/fail2ban/jail.local указываем следующее:

Создаем файл фильтрующий запросы /etc/fail2ban/filter.d/apache-wordpress.conf и в нем указываем правило

После перезапускам fail2ban


systemctl restart fail2ban


Смотрим лог


tail -f /var/log/fail2ban.log


В моем случае он содержал следующее


2018-04-15 13:33:18,749 fail2ban.actions        [10383]: NOTICE  [apache-wordpress] 207.244.76.51 already banned
2018-04-15 13:33:19,751 fail2ban.actions        [10383]: NOTICE  [apache-wordpress] 54.84.86.151 already banned
2018-04-15 13:33:20,753 fail2ban.actions        [10383]: NOTICE  [apache-wordpress] 104.131.102.198 already banned
2018-04-15 13:33:21,754 fail2ban.actions        [10383]: NOTICE  [apache-wordpress] 212.114.133.93 already banned
2018-04-15 13:33:22,756 fail2ban.actions        [10383]: NOTICE  [apache-wordpress] 148.251.111.101 already banned
2018-04-15 13:33:23,757 fail2ban.actions        [10383]: NOTICE  [apache-wordpress] 188.65.119.119 already banned
2018-04-15 13:33:24,759 fail2ban.actions        [10383]: NOTICE  [apache-wordpress] 198.154.197.9 already banned
2018-04-15 13:33:25,761 fail2ban.actions        [10383]: NOTICE  [apache-wordpress] 87.229.73.142 already banned


По сути все.

 Нет комментариев    58   2018   attack   CentOS 7   DDoS   fail2ban   WordPress

Ошибка #1273 — Unknown collation: ’utf8mb4_unicode_520_ci’

Ошибка #1273 - Unknown collation: 'utf8mb4_unicode_520_ci'

Ошибке #1273 — Unknown collation: ’utf8mb4_unicode_520_ci’ может сопутствовать также ошибка #1115 — Unknown character set: ’utf8mb4’

Они означают, что дамп базы данных был снят с сервера, где работает более новая версия MySQL или MariaDB и загружается на сервер с более старой версией MySQL. В основном данная ошибка встречается у сайтов на WordPress

Чтобы подобных ошибок не возникало, следует делать дамп в режиме совместимости mysql40, тогда подобной ошибки не будет. Если же дамп снимается через mysqldump, то следует задать параметр —compatible=mysql40

Пример:


mysqldump -uUSER -pPASSWD --compatible=mysql40 database_name > database_name.sql


Но если дамп уже снят, то просто делаем замену:


sed -i 's/utf8mb4_unicode_520_ci/utf8_general_ci/g' database_name.sql
sed -i 's/utf8mb4/utf8/g' database_name.sql


ps: при замене всегда делайте копию, а вдруг конец света

 Нет комментариев    108   2018   MySQL   mysqldump   utf8   utf8mb   WordPress

NGINX: upstream response is buffered to a temporary file

  Проблема вызвана с некорректными правами на директорию, куда сбрасывается кеш. Для решения можно указать в секции http{ следующий параметр
proxy_max_temp_file_size 0;
Это позволит nginx забирать данные не подкидывая их в буфер.
 Нет комментариев    45   2018   WordPress

Защита wp-login.php с помощью CloudFlare

Защита wp-login.php CloudFlare

На одном из зарубежных сайтов нашел интересный и простой способ защиты от брутфорса wp-login.php в WordPress с помощью всего лишь CloudFlare .  Краткий перевод и инструкция к действию представлена далееCloudFlare - является мощным и условно-бесплатным сервисом CDN, также предоставляющим защиту и от DDoS-атак с помощью фильтрации трафика. Конечно бесплатный сервис несколько ограничен и полные возможности можно "вкусить" только заказав платные подписки или оплатив некоторые опции, но для большинства рядовых пользователей бесплатного функционала хватает с лихвой. С помощью этой сиситемы мы и произведем защиту сайта от атак на  wp-login.php. Ну что ж, приступим.
  1. Перейдем или зарегистрируемся в системе CloudFlare
  2. Проверим включена ли фильтрация трафика для А-записи домена в разделе DNS, и если ее нет, то настраиваем (создаем записи в DNS,   изменяем NS-записи у регистратора)
  3. Переходим в раздел Page Rules Защита wp-login.php CloudFlare
  4. Далее создаем правило (бесплатно предоставляется возможность создать всего 3 правила):
  • в качестве ссылки указываем http://domain.name/wp-login.php* или https://domain.name/wp-login.php* , где domain.name имя Вашего домена. Лично я добавил правило как по http, так и по https, т.к. ломятся везде.
  • В опциях выбираем:Browser Integry Check -> On Security Level -> I'm Under Attack
  • Далее -> Save and Deploy
Вот и все, все запросы, которые приходят на URL wp-login.php будут предварительно проверяться. Оригинал статьи https://guides.wp-bullet.com/block-wp-login-brute-force-attacks-with-cloudflare-page-rule/
 Нет комментариев    35   2017   CloudFlare   WordPress   wp-login.php
 Нет комментариев    45   2016   Apache2   nginx   WordPress