Превратите ваш WordPress в Форт-Нокс
Как превратить WordPress в защищенную крепость, такую как Форт Нокс
English version: Turn your WordPress into Fort Knox
В этой статье предполагается, что мы хотим получить пуленепробиваемый защищенный веб-сайт на платформе WordPress. Не обязательно делать все следующие шаги дословно и точно так, как описано. Но я рекомендую, если вы хотите создать свой собственный Форт Нокс.
Некоторые из следующих шагов могут быть причиной некоторых проблем несовместимости с некоторыми странными плагинами, которые пытаются изменить файлы непосредственно в папках WordPress. Я рекомендую игнорировать любые плагины такого рода, потому что их использование может привести к множеству проблем и проблем безопасности сразу или в будущем, когда хакеры изучат дыры в плагинах или теме, установленной на вашем сайте. Я создал эту статью в надежде, что она будет полезна, но без каких-либо гарантий.
Примечание: эта статья не применима, если вы используете виртуальный хостинг. Вы должны иметь, как минимум, VPS хостинг сайт.
Требования: root-доступ к серверу Linux, на котором размещен ваш сайт. Если у вас нет доступа к оболочке с правами root, вы не сможете сделать что-нибудь полезное для создания действительно защищенного сайта. Нет никакого способа или какого-либо плагина, который может защитить WordPress и файлы в его каталогах на уровне PRO. Все плагины безопасности имеют тот же уровень привилегий (разрешений), что и хакеры и боты. Не исключение Если какой-либо плагин безопасности внес некоторые изменения в файлы вашего сайта, чтобы защитить их, любой хакер или вредоносный код может ОТМЕНИТЬ эти изменения или снять защиту.
Вот несколько важных моментов о моем подходе
- Все файлы кода (код PHP) и все файлы .htaccess должны быть защищены от записи. Не исключение
- Нам нужно изменить все значения по умолчанию (папка, файлы cookie, путь входа в систему, любые другие ориентиры) на разные значения
- Мы не должны использовать плагины или темы, которые работают с и пытаться изменить файлы PHP или .htaccess в папках WordPress.
Первый шаг. Установка WordPress
Не используйте префикс wp_
по умолчанию для таблиц базы данных. Вместо этого используйте пару или три символа алфавита. Некоторые атаки и нападающие на WordPress предполагают, что префикс таблицы – wp_
. Изменение префикса помогает нам блокировать некоторые атаки SQL-инъекций.
Шаг второй. Укрепление сайта на уровне WordPress
- Переместите папку для загрузки на один уровень вверх из / wp-content / folder в корень установочной папки WordPress.
- Переименуйте папку загрузки на носитель (или что-то в этом роде, как хотите).
- Переименуйте папку wp-content в content (или что-то в этом роде, как хотите).
- Переименуйте папку плагинов в мод (или что-то в этом роде, как хотите).
- Добавьте следующие строки в начало файла wp-config.php , не забудьте изменить медиа , контент , мод на фактические значения, которые вы ранее выбрали .
define ('AUTOMATIC_UPDATER_DISABLED', true); // да, это безопасно делать вручную
define ('DISALLOW_FILE_EDIT', true); // мы никогда не позволяем никому трогать ваши файлы
define ('DISALLOW_FILE_MODS', true); // да, это безопасно делать вручную
define ('FS_METHOD', 'direct'); // нет FTP конечно
define ('WP_HTTP_BLOCK_EXTERNAL', true);
определить («ЗАГРУЗКИ», « СМИ »); // мы переименовали загрузки и переместили их на уровень выше
define ('WP_CONTENT_DIR', '/ path / to / wordpress / dir / content '); // нет имени хоста, нет косой черты
define ('WP_CONTENT_URL', 'http://example.com/ content ');
define ('WP_PLUGIN_DIR', '/ path / to / wordpress / dir / content / mod '); // нет имени хоста, нет косой черты
define ('WP_PLUGIN_URL', 'http://example.com/ content / mod ');
ini_set ( 'display_errors', 0); // отключаем отображение ошибок PHP на интерфейсе
Шаг третий. Изменить имя куки по умолчанию.
Добавьте эти строки в начало файла wp-config.php
define ('USER_COOKIE', 'my_user_cookie'); // изменить его на что-то другое
define ('PASS_COOKIE', 'my_pass_cookie'); // изменить его на что-то другое
define ('AUTH_COOKIE', 'my_auth_cookie'); // изменить его на что-то другое
define ('SECURE_AUTH_COOKIE', 'my_sec_cookie'); // изменить его на что-то другое
define ('LOGGED_IN_COOKIE', 'my_logged_cookie'); // изменить его на что-то другое
define ('TEST_COOKIE', 'my_test_cookie'); // изменить его на что-то другое
Шаг четвертый. Установите плагин безопасности сразу после установки WordPress
Защитите свою страницу входа с WP Cerber Security . Даже с этими шагами защиты хакеры будут пытаться применить атаки методом подбора (попытки входа в систему), чтобы взломать дверь на вашем сайте WordPress. Скройте и закройте эту дверь с помощью WP Cerber.
Шаг пятый. Укрепление сайта на уровне сервера.
На этом этапе я предполагаю, что вы используете сервер с Apache в качестве http-сервера. Нам нужно сменить владельца всех файлов WordPress, включая плагины и темы. По умолчанию этот пользователь apache . Нам нужно изменить его на другого пользователя, которого вы создали ранее. Допустим, этот пользователь является cerber .
- Поместите файл .htaccess в папку мультимедиа (ваша новая папка для загрузки) со следующей директивой. Это не позволяет веб-сайту выполнять загруженный вредоносный код PHP.
двигатель php_flag выключен
Примечание. Файл конфигурации Apache должен содержать директиву
AllowOverride Options
для вашей папки загрузки или любой из ее родительских папок, чтобы эта директива работала. - Для всего каталога сайта (/ path / to / wordpress / dir) измените владельца и разрешения для всех файлов. Для этого выполните следующие команды в оболочке.
найти / путь / к / wordpress / dir -exec chown cerber: root {} +
find / path / to / wordpress / dir -type d -exec chmod 755 {} +
find / path / to / wordpress / dir -type f -exec chmod 644 {} + - Для каталога загрузки (/ path / to / wordpress / dir / media ) нам нужно установить специальные разрешения. Давайте сделаем это, используя команды exec в оболочке
find / path / to / wordpress / dir / media -exec chown cerber: apache {} +
find / path / to / wordpress / dir / media -type d -exec chmod 775 {} +
find / path / to / wordpress / dir / media -type f -exec chmod 664 {} + - Установите постоянную структуру ссылок в настройках WordPress, а затем измените разрешение для файла .htaccess, чтобы защитить его от записи.
chown cerber: root /path/to/wordpress/dir/.htaccess
chmod 644 /path/to/wordpress/dir/.htaccess - Переместите файл wp-config.php в каталог над каталогом установки WordPress.
Шаг шестой. Укрепление сайта на уровне сервера NGINX
Читайте здесь: Укрепление WordPress с WP Cerber и NGINX
Шаг седьмой. Укрепление сайта с Fail2Ban
Читайте здесь: Как защитить WordPress с Fail2Ban