Защита SMF движка (пополняемая тема)

Автор tekseo, 19 октября 2017, 05:09:00

« предыдущая - следующая »

0 Пользователей и 1 гость просматривают эту тему.

tekseo

19 октября 2017, 05:09:00 Последнее редактирование: 19 октября 2017, 05:48:44 от tekseo
Друзья, перезапустил на днях свой форум seotok.com на SMF движке и решил более не повторять старых ошибок, среди которых были провалы по защите и по противодействию спаму.
В связи с заинтересованностью в повышении защиты движка и уменьшению головной боли:
прошу вас поделиться своими мыслями в области защиты, антидоса, антиспама.

На данный момент я смог, исходя из опыта работы, написать 10 пунктов:

( 1 ) Защищаем вход в админку (Защита от брутфорс-атак):
прописываем в .htaccess следующий код
Код
<FilesMatch "^(admin)">
Order Allow,Deny
Allow from sait.ru
Allow from 12.345.678.901
</FilesMatch>
где:
sait.ru - заменяем на адрес вашего сайта без www, http
12.345.678.901 - указываем адрес вашего ip (узнать можно через любой онлайн сервис)
Если нужно указать несколько IP, то пишем каждый с новой строчки, к примеру:
Allow from 12.345.678.901
Allow from 82.874.129.125

В результате к админке по адресу http://sait.ru/admin/ можете обратиться только вы!
Если вдруг выходите с разных компьютеров - пропишите с новой строки все ваши ip

( 2 ) Боремся с спамом, уменьшаем нагрузку на сервер
Спам машины довольно сильно нагружают хостинг. Даже максимальные тарифы провисают и идентифицируют поток запросов как Ddos атаку. Решение для противодействия сему есть, правда платное, НО не дорогое. Итак, заходите на http://cleantalk.org, далее регистрируйтесь, ставьте плагин в вашу CMS, настраивайте и обязательно включайте функцию "Spam FireWall", которая блокирует ботов в момент входа на любую из страниц. Вот таким нехитрым плагином вы решите спам-проблему.
За вчерашний день (проект на момент написания статьи работает 3 день) было блокирнуто 1223 вхождения на проекта спамботов:

Это значительно уменьшило нагрузку на сервер!

( 3 ) Защита от ботов
Хоть второй пункт и решает задачу, но по мне так надёжнее и спокойнее будет дополнительно поставить плагин "reCAPTCHA for SMF", после чего перейти на https://www.google.com/recaptcha/admin#list  и получить ключи, после чего ввести их в дополнение. После этого на странице регистрации (и некоторых других, к примеру поиске) можно вывести Google капчу, точнее даже не капчу а необходимость постановки галочки (иногда запрашивает выбор картинок по теме). В результате мы сводим до минимума нагрузку на сервера

( 4 ) Ограничение по возрасту
Конечно, брендовые программы мы не сможем блокирнуть, а вот менее мощный софт вполне сможем ввести в заблуждение дополнительным соглашением о том, что вам исполнилось столько-то лет (можете посмотреть у меня реализацию при клике на "зарегистрироваться") - ставится эта функция в админке SMF по пути " пользователи-> регистрация -> настройки". Также как-то солиднее что-ли так выглядит, имхо

( 5 ) Не используйте ADMIN
Это должно быть выбито как истина: при создании администратора (первого пользователя форума) не используйте в качестве логина "admin" - это упростит работу брутфорсеров. Создайте что-то интересное, ну если уж нет фантазии, то хотя бы "admin1"

( 6 ) Префикс к таблицам
При установки форума SMF выберите не стандартный префикс "smf_" а что-то вроде "r2h_2" это немного обезопасит вашу MySQL базу. Ведь не сложно сделать такую мелочь?

( 7 ) Сложный пароль = спокойные ночи
Для администратора, базы данных MYSQL и ФТП доступа нужно задавать сложные пароли. Вам не обязательно их запоминать - запишите в блокнот.
Совет: используйте перебор на клавиатуре случайных клавиш с кратковременным использованием кнопки Shift и получите что-то вроде "SDFQ^5TAQ#46scQ@#4e7Dt079r%q#&TFQ75Eq*23R6"
Т.е. большие, маленькие буквы, служебные символы, цифры, знаки препинания.

( 8 ) Закрытие доступа к служебным файлам
Назовите меня параноиком, но я считаю, что нечего показывать служебные файлы и бекапы системных настроек поисковикам и третьим лицам. Поместите в .htaccess следующий код:
Код
<Files license.txt>
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Deny from all
</IfModule>
</Files>
<Files agreement.txt>
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Deny from all
</IfModule>
</Files>
<Files index.php~>
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Deny from all
</IfModule>
</Files>
<Files Settings_bak.php>
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Deny from all
</IfModule>
</Files>
<Files SSI.php~>
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Deny from all
</IfModule>
</Files>
После этого никто не сможет увидеть содержимое файлов.

( 9 ) Чёрный список
Если вы знаете пользователей или спамботов, для которых должен быть закрыт доступ на ваш сайт, тогда действуйте так:
пропишите в .htaccess:
Код
<IfModule !mod_authz_core.c>
Order allow,deny
Allow from all
Deny from 12.345.678.901
</IfModule>
<IfModule mod_authz_core.c>
<RequireAll>
Require all granted
Require not ip 12.345.678.901
</RequireAll>
</IfModule>
где в двух местах 12.345.678.901 - ip значение  того, кого нужно не допустить к просмотру сайта

( 10 ) Запрещаем хотлинкс
Что бы пользователи не использовали у себя на проекте изображения, которые загружены на вашем проекте, пропишите следующее:
Код
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} \.(gif|jpe?g?|png)$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://sait\.ru [NC]
RewriteRule \.(gif|jpe?g?|png)$ - [F,NC,L]
</IfModule>
Где:
sait\.ru - поменяйте на адрес вашего домена сохранив косую черту

Подобные темы созданы на нескольких популярных форумах.
Все новые идеи аккумулируются на странице http://seotok.com/programmnaja-chast/smf/


Удачи в защите вашего интернет-проекта.
Если статья чем-то вам помогла, значит это было не зря )

S.T.A.L.K.E.R.

Цитата: tekseo от 19 октября 2017, 05:09:00За вчерашний день (проект на момент написания статьи работает 3 день) было блокирнуто 1223 вхождения на проекта спамботов:
Моё маленькое ИМХО,они накручивают эту статистику 100%,и накручивают очень солидно.В последнее время этот сервис значительно испоганился и начал страдать разного рода фигнёй но альтернативы ему увы не вижу пока.Посему и пользуюсь пока им,пока есть оплата.
Дальше это будет reCAPTCHA for SMF.

tekseo

Цитата: S.T.A.L.K.E.R. от 19 октября 2017, 06:54:00Моё маленькое ИМХО,они накручивают эту статистику 100%,и накручивают очень солидно.В последнее время этот сервис значительно испоганился и начал страдать разного рода фигнёй но альтернативы ему увы не вижу пока.Посему и пользуюсь пока им,пока есть оплата.
Дальше это будет reCAPTCHA for SMF.

Всё может быть, но одно могу сказать точно = нагрузка на сервер упала + прекратился спам в любом его проявлении.

digger®

Цитата: tekseo от 19 октября 2017, 07:22:10Всё может быть, но одно могу сказать точно = нагрузка на сервер упала + прекратился спам в любом его проявлении.
На сколько процентов упала нагрузка и какая именно? Сколько сотен пользователей в онлайне, чтобы можно было говорить о реальном снижении нагрузки, а не статистической погрешности?
Или на сайте было трое - два пользователя и один бот, бота зарубило, считаем что нагрузка упала на 30% :)


tekseo

19 октября 2017, 07:56:14 #4 Последнее редактирование: 19 октября 2017, 08:37:57 от tekseo
Цитата: digger® от 19 октября 2017, 07:27:07На сколько процентов упала нагрузка и какая именно? Сколько сотен пользователей в онлайне, чтобы можно было говорить о реальном снижении нагрузки, а не статистической погрешности?
Или на сайте было трое - два пользователя и один бот, бота зарубило, считаем что нагрузка упала на 30% :)

Сужу из статистики от хостера по графе "обращений к домену" по 5 проектам, на которых подключил сервис (17 числа был подключен cleantalk):

Собственно так, как включена функция "Spam FireWall" то обращения режутся, либо пробивается лишь первичное, т.е. одно.
Фиолетовая и черная полоска - молодые сайты, которым несколько дней
Зелёный - ещё не запущенный проект (стоит заглушка о программных работах)
Также смотрю на загрузку по графе "процессорное время"
Также опираюсь на очень малый процент спама в комментариях (ранее в день было боле 300, сейчас редко какой спамкоммент появится)

Также до этого сыпались на почту предупреждения о 100% использовании лимита на базу данных:

Сейчас такового не наблюдается.

tekseo

Цитата: S.T.A.L.K.E.R. от 19 октября 2017, 06:54:00Моё маленькое ИМХО,они накручивают эту статистику 100%,и накручивают очень солидно.В последнее время этот сервис значительно испоганился и начал страдать разного рода фигнёй но альтернативы ему увы не вижу пока.Посему и пользуюсь пока им,пока есть оплата.
Дальше это будет reCAPTCHA for SMF.

ИМХО:
Последняя статистика по домену, у которого включена лишь плагинная заглушка на главной о программных работах.
Домен проиндексирован, сайт не запущен, но подключен WP с модулем

Отсюда можно сделать вывод, что там где нет народу ещё, то нет и больших цифр, а значит можно и предположить что цифры не накручиваются со стороны cleantalk
Там где есть посещения и проекты не молодые - цифры большие

tekseo

19 октября 2017, 08:27:43 #6 Последнее редактирование: 19 октября 2017, 08:39:29 от tekseo
Цитата: S.T.A.L.K.E.R. от 19 октября 2017, 06:54:00Моё маленькое ИМХО,они накручивают эту статистику 100%,и накручивают очень солидно.В последнее время этот сервис значительно испоганился и начал страдать разного рода фигнёй но альтернативы ему увы не вижу пока.Посему и пользуюсь пока им,пока есть оплата.
Дальше это будет reCAPTCHA for SMF.

Но, справедливости ради замечу, что всё же некоторая малая доля спама пробивается даже с учетом гугл капчи, плагина и других запретов:

и хоть доля не велика, но всё же можно сказать "ничто и никто не защищает на 100% от спама, увы"
П.С. в прикрепленной картинки попали несколько дней до включения плагина

S.T.A.L.K.E.R.

Я сужу по своему серверу.Отключил на день файрвол,проанализировал логи посещений за сутки взяв ихние же черные списки спамботов.Подключил обратно,посмотрел на ихние цифры за сутки,отключил - проанализировал свои цифры.Понял что имеет место накрутка.Если конечно боты ломятся избирательно только тогда когда спамфайрвол включен - тогда я согласен.У себя отключил уже давно,спам не проходит и этого досстаточно.

digger®

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

tekseo

Цитата: S.T.A.L.K.E.R. от 19 октября 2017, 10:06:00Я сужу по своему серверу.Отключил на день файрвол,проанализировал логи посещений за сутки взяв ихние же черные списки спамботов.Подключил обратно,посмотрел на ихние цифры за сутки,отключил - проанализировал свои цифры.Понял что имеет место накрутка.Если конечно боты ломятся избирательно только тогда когда спамфайрвол включен - тогда я согласен.У себя отключил уже давно,спам не проходит и этого досстаточно.

Ну ХЗ, всё может быть, мне вроде покашто помогает )
Ну собственно и тема даже не про модуль, а про комплексную защиту в целом, поэтому если есть какие-либо мысли - буду рад их услышать

tekseo

Цитата: digger® от 19 октября 2017, 10:23:55A я просто боюсь включать такие вещи как этот файрволл, зная криворукость их программеров аутсорсеров. Мало ли, кого он там перебанит.
Мы вот тут поговорили и я взял и нажал кнопку "Проверить пользователей на спам" на одном своем форуме и получил список в котором на первом месте я сам.

Так вот кто тут спамер то оказывается )))))
А если серьёзно, давайте развивать тему, а то чего-то на модуле зациклились (

Yworld_garry

19 октября 2017, 14:03:10 #11 Последнее редактирование: 19 октября 2017, 14:19:17 от Yworld_garry
Пройдемся по пунктам))

1. Не помешает, хотя ушло в прошлое.
2. Если смотреть не на их картинки и циферки, а просто в логи сервака конкретного сайта, станет все ясно что за циферки. Удивляюсь почему они сразу не глушат пользователя просто такими цифрами 150250000 спам атак отражено)) И да перебанивают даже нужное.
Вообще логически тут все верно? Устанавливаем плагин, что бы уменьшить нагрузку, который делает кучу движений.
3. Нормальное решение для любых сайтов, хотя можно усилить скрытым полем для ботов и тогда вообще ноль спам рег. Нагрузка тут не причем, они что так, что так, долбиться будут.
4. Не ограничение возраста, а галку на согласие обработки данных... Но все галки, списки тд, ботам пофиг, пройдут и не заметят.
5. Логин можно хоть из 1 буквы, пароль сложнее 12345 и будет все ок.
6. Не помешает конечно, но если уже пустили на свой ftp зловреда, то без разницы какой прификс.
7. Смотрим пункт 6
8. Там вы сами ответили на него))
9. Годиться для ручного бана, особенно если парсит какой то сайт или сервис.
10. И забудем про яндекс и гугл картинки и траф оттуда.

Вы с вп дали скрин спам комментов, это вам ссылки обратные. Ставьте запрет на ссылки в комментах вообще через настройки, да и обратки.
Но в любом случаи ваш пост полезен и может быть применен с успехом.
Как я раскритиковал :)

Для форума позакрыть внешние редиректом, видел отличный мод новый digger® в репо, просмотр гостям закрыть, рекапча. Можно жесткачь какой то на первый пост ввести.
Для WP который здесь упоминался, не вижу необходимости нагружать мего пупер антиспам комбайнами, которые толком не работают. Проверено масса плагинов, на куче сайтов. Рекапча, скрытое поле(руками или плагином), адекватная настройка под комменты и все, даже имея форум на борту с интеграцией, ноль проблем. Только ручная рега спамеров, ну тут нет защит))

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

tekseo

Цитата: Yworld_garry от 19 октября 2017, 14:03:10Пройдемся по пунктам))

1. Не помешает, хотя ушло в прошлое.
2. Если смотреть не на их картинки и циферки, а просто в логи сервака конкретного сайта, станет все ясно что за циферки. Удивляюсь почему они сразу не глушат пользователя просто такими цифрами 150250000 спам атак отражено)) И да перебанивают даже нужное.
Вообще логически тут все верно? Устанавливаем плагин, что бы уменьшить нагрузку, который делает кучу движений.
3. Нормальное решение для любых сайтов, хотя можно усилить скрытым полем для ботов и тогда вообще ноль спам рег. Нагрузка тут не причем, они что так, что так, долбиться будут.
4. Не ограничение возраста, а галку на согласие обработки данных... Но все галки, списки тд, ботам пофиг, пройдут и не заметят.
5. Логин можно хоть из 1 буквы, пароль сложнее 12345 и будет все ок.
6. Не помешает конечно, но если уже пустили на свой ftp зловреда, то без разницы какой прификс.
7. Смотрим пункт 6
8. Там вы сами ответили на него))
9. Годиться для ручного бана, особенно если парсит какой то сайт или сервис.
10. И забудем про яндекс и гугл картинки и траф оттуда.

Вы с вп дали скрин спам комментов, это вам ссылки обратные. Ставьте запрет на ссылки в комментах вообще через настройки, да и обратки.
Но в любом случаи ваш пост полезен и может быть применен с успехом.
Как я раскритиковал :)

Для форума позакрыть внешние редиректом, видел отличный мод новый digger® в репо, просмотр гостям закрыть, рекапча. Можно жесткачь какой то на первый пост ввести.
Для WP который здесь упоминался, не вижу необходимости нагружать мего пупер антиспам комбайнами, которые толком не работают. Проверено масса плагинов, на куче сайтов. Рекапча, скрытое поле(руками или плагином), адекватная настройка под комменты и все, даже имея форум на борту с интеграцией, ноль проблем. Только ручная рега спамеров, ну тут нет защит))

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


спасибо за подробные ответы и конструктивную критику )

Не помешает, хотя ушло в прошлое.
- а почему ушло в прошлое, вроде для брутфорса самое то

Если смотреть не на их картинки и циферки, а просто в логи сервака конкретного сайта
- пока что услышал много плохого и много хорошего про мод, решил потестить и сформировать своё мнение. По цифрам - да, пугают столь большие, надо выключить и покопаться в логах что бы понять самому

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

Логин можно хоть из 1 буквы, пароль сложн...
-ну лучше, если он всё же будет отличным от admin

видел отличный мод новый digger®
- а можете дать ссылку на мод?

И забудем про яндекс и гугл картинки и траф оттуда.
- поправьте если я не прав, но по моему на форум нельзя загрузить картинки, только указать ссылку с другого сайта.

Yworld_garry

Вот ссылка на мод https://custom.simplemachines.org/mods/index.php?mod=4148
На форуме можно грузить во вложения и располагать их в посте с модом или вот ссылка https://www.simplemachines.ru/index.php?topic=19360.0
Насчет скрытого поля, можно типо того в яндекс засунуть"антиспам скрытое поле"