Вопросы по настройке сервера

#1 14 апреля 2013 в 22:25
Решил просмотреть логи и был "приятно" удивлен)
проверка навеяна темой instantcms.ru/forum/thread14834-1.html

Удивлен, конечно громко сказано, но некоторые моменты думаю стоит поправить)

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

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

Вот подумал что было бы правильно запретить для определенных доменов встраивание контента.

Первый (основной) вопрос:

Как запретить встраивание материалов через ифрейм, и прямые ссылки на любые файлы (графика и др.) для определенных доменов и ip?

Если у кого есть советы по другим настройкам буду рад, и не только я, если поделитесь своим опытом и наблюдениями!

Если есть свои вопросы, думаю можно тут их озвучивать, что бы все подобное было в одной ветке…
#2 14 апреля 2013 в 23:30
Частично отвечу на свой вопрос) нашел как поставить запрет для определенных доменов

RewriteEngine on
RewriteCond %{HTTP_REFERER} ^http://bad-1.com/ [NC]
RewriteCond %{HTTP_REFERER} ^http://bad-2.com/ [NC]
RewriteRule \.jpg$ www.site.com/zastavkf.jpg [R,L]

не уверен как модифицировать последнюю строчку для всех типов фалов, но перечисления нашел, что-то вроде такого

RewriteRule \.(jpg|jpeg|png|gif|swf|zip|rar)$ www.site.com/zastavkf.jpg [R,L]

интересно, запрет файлов html тоже сработает?

Но это не основное решение, так как ссылаться код "плохого" все равно будет на наши файлы(
просто будет перенаправление, хотя трафик в случае с вставкой плеера сэкономим)

Есть небольшая надежда что на сайтах уберут хотлинк на наши фалы, но очень маленькая так как большинство генерируется программно и особо не проверяется что там получилось(
#3 14 апреля 2013 в 23:32

Как запретить встраивание материалов через ифрейм, и прямые ссылки на любые файлы (графика и др.) для определенных доменов и ip?

я ответил еще в той теме. дал ссылку на ресурс.))
Распишу здесь:
Если апач, то в .htaccess :
## DISABLE HOTLINKING
# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example.ru/.*$ [NC]
RewriteRule \.(gif|jpg|jpeg|png|js|css)$ — [F]
Если нжинкс мордой к апачу, можно так же, но не стоит грузить апач этим, лучше прописать в вирт хосте нжинкса:

location /images/ {
valid_referers none blocked www.host.com host.com;
if ($invalid_referer) {
return 403;
}
}
и далее по аналогии...

Если у кого есть советы по другим настройкам буду рад, и не только я, если поделитесь своим опытом и наблюдениями!

Скоро поделюсь. ни как не найду время.Заливал себе веб шелл для теста, выше директории сайта подняться не смог). Подключим geo базу, отобьем китайцев и т п или наоборот, разрешим доступ только определенным странам))
кому не терпится, в nginx.conf подключаем http_geo_module
##
# GEO
##
geo $country {
default no;
include /etc/nginx/geo.conf;
}
кладем базу в папку nginx (во вложении есть)
В вирт хосте выбираем страны, как хотим:
if ( $country ~* (AD|AF|AG|AI|AL|AO|AQ|AR|AS|AW|BF|BH|CU|CN|AU|JP|TH|TW|TN|KR|KP|MN|VN|IN) ){ return 403; } #Запрещенные страны
#if ( $country !~ ^(RU|US|UA|BY|EU)$ ){ return 403; } #Разрешенные страны
Ребутаем nginx, не забываем про происхождение ботов яндекс и гугл))
Прикрепленный файл
geo_ia22s.rar 1 Мб
#4 14 апреля 2013 в 23:35
Reborn, ага, спасибо...
Вопросы по большей части не "убрать китайцев" — они тоже люди) а максимально огородить свой сайт от возможного воздействия "плохих" сайтов…
#5 14 апреля 2013 в 23:37
Добавим базу забаненых ип (небольшую, дабы не грузить сервер)
##
# Block spammers and other unwanted visitors
##
include /var/spam/spam.conf;
и ессно создадим файл и папку /var/spam/spam.conf следующего содержания:

deny 173.199.120.123; #(compatible; AhrefsBot/4.0; +http://ahrefs.com/robot/)
deny xx.xx.xx.xx; # тут IP неугодных))
deny…;…
#6 14 апреля 2013 в 23:39

Частично отвечу на свой вопрос) нашел как поставить запрет для определенных доменов RewriteEngine on RewriteCond %{HTTP_REFERER} ^http://bad-1.com/ [NC] RewriteCond %{HTTP_REFERER} ^http://bad-2.com/ [NC] RewriteRule \.jpg$ www.site.com/zastavkf.jpg [R,L]

Вариант… но зачем грузить апач. если это можно сделать на стороне нжинкс?
#7 14 апреля 2013 в 23:46

но зачем грузить апач. если это можно сделать на стороне нжинкс?

Reborn
отвечу вашими словами)
"я ответил еще в той теме."
я в настройках сервера не силен zst

я даже не понимаю как это и где это, на стороне нжинкс(( сча попробую погуглить)
с нагрузкой согласен ведь кол-во доменов уже более 50(((


пс: Reborn, чтобы отметить все возможные типы файлов, такая запись пройдет
RewriteRule \.*$ www.site.com/zastavkf.jpg [R,L] ?

И как правильно, если на стороне нжинкс, запретить определенные домены? НЕ отправляя на 403, а отдавать файл заглушку со стороннего сайта?)
Спасибо.
#8 14 апреля 2013 в 23:57
Извиняюсь… я тоже не силен, все правки производились так сказать в боевых условиях на рабочем сервере))
Попробую на пальцах, как это понимаю я...
Все запросы делятся на статические и динамические.
Статика — всё, кроме кода, который обрабатывает сервер (не браузер). это большинство файлов. их обрабатывает Нжинкс.
Апач же обрабатывает динамику, то есть php .
.htaccess служит для управления апачем, в нжинксе эти правила в виртуальном хосте домена (сайта).
#9 15 апреля 2013 в 00:12

И как правильно, если на стороне нжинкс, запретить определенные домены? НЕ отправляя на 403, а отдавать файл заглушку со стороннего сайта?)

Для апача это так :
## SITE REFERRER BANNING
# Options +FollowSymlinks

RewriteCond %{HTTP_REFERER} erpor\.ru [NC,OR]
RewriteCond %{HTTP_REFERER} ^erpor.ru\.ru [NC,OR]
RewriteCond %{HTTP_REFERER} example\.ru [NC,OR]
RewriteCond %{HTTP_REFERER} www\.example\.ru [NC,OR]
RewriteCond %{HTTP_REFERER} example1\.ru [NC,OR]
RewriteCond %{HTTP_REFERER} www\.example1\.ru [NC,OR]
RewriteCond %{HTTP_REFERER} example2\.ru [NC,OR]
RewriteCond %{HTTP_REFERER} www\.example2\.ru [NC,OR]
RewriteRule .* — [F]

В нжинкс достаточно прописать в вирт хосте домена
if ($http_referer ~* “example\.com”) {
return 403;
}

НЕ отправляя на 403, а отдавать файл заглушку со стороннего сайта?

отправлять то придется куда-либо, хоть на 403, хоть куда, а заглушку можно прописать

error_page 403 example.com/forbidden.html;
#10 15 апреля 2013 в 00:18
Можно не отдавать страницу, а делать так, чтоб урлы подвисали (чтоб неповадно было) для этого 403 меняем на 444. Так же стоит учитывать, что ссылки на картинки могут принести ТИЦ и внешние факторы, потому я бы исключил jpeg и т п.
#11 15 апреля 2013 в 00:43

И как правильно, если на стороне нжинкс, запретить определенные домены?

Пример:
В секции server виртуального хоста:
server {....

if ($http_referer ~* (example\.ru|example1\.ru|example2\.ru|example3\.ru|example4\.ru)) {return 403;} #Блокируем переходы с сайтов

...}
www указывать не нужно.
403 заменить на требуемое, вывести страницу по необходимости.
#12 15 апреля 2013 в 01:31

стоит учитывать, что ссылки на картинки могут принести ТИЦ и внешние факторы,

Reborn
поэтому и хочу запретить НЕ для всех, а только для "сомнительных"
Сомнительные можно ведь постепенно методом исключения убирать, а разрешенные нереально прописать)

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

Такое как возможно и как можно пресечь?)
#13 15 апреля 2013 в 01:37
Ну почему же нереально? Nginx написан на простейшем языке — Perl, думаю, можно всё.Надо не много подумать просто...

Еще заметил что есть страницы левых сайтов, которые якобы обращаются к серверу по много раз, но на тех страницах нет не ссылок, не картинок, вообще нет моего домена в исходном коде… Такое как возможно и как можно пресечь?)

Тоже с этим столкнулся, в прошлой теме описал. Думаю, от них избавиться можно, но внимательно))
Толи там есть только их ИП, тогда запретить, как я писал выше (spam.conf) Выявить бота по юзер агенту — запретить.
(if ($http_user_agent ~* msnbot|scrapbot) {return 403;} # Блокируем некоторые типы ботов)
В любом случае ОБЯЗАТЕЛЬНО защититься от CNAME и закрыть реальный ип (if ($host !~ ^(example.com.ua|www.example.com.ua|mail.example.com.ua)$ ) { return 444;})

Еще заметил что есть страницы левых сайтов, которые якобы обращаются к серверу

Отослать в страну Мальборо переходы с них, тоже писал выше)
В секции server виртуального хоста:
server {....

if ($http_referer ~* (example\.ru|example1\.ru|example2\.ru|example3\.ru|example4\.ru)) {return 403;} #Блокируем переходы с сайтов

...}
#14 15 апреля 2013 в 01:56

Ну почему же нереально?

Reborn
доменов многооооо, и постоянно появляются новые) прописать какой из них хороший заранее нельзя)) как угадать?

Nginx написан на простейшем языке — Perl, думаю, можно всё

Reborn
я даже на "русском языке" не могу описать такой алгоритм) не то что на простом перле)

Надо не много подумать просто...

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

Отослать в страну Мальборо переходы с них, тоже писал выше)
В секции server виртуального хоста:

Reborn
Запрет в принципе понятен. Не понятно как ссылания идут(( хотя особо не важно, просто зная от куда ноги, проще бороться)
#15 15 апреля 2013 в 02:00
Я проработаю варианты оттдачи хотлинков всем, кроме перечисленных. Это алгоритм, отпишу.
А по поводу

прописать какой из них хороший заранее нельзя)) как угадать?

это не ко мне))) Ракомдую базу пополнять ими))))
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.