Reborn

Reborn

кто работал в тех. поддержке - в цирке не смеется
+720
Репутация
166
Рейтинг
#1 Вопросы по настройке сервера 16 апреля 2013 в 21:26

мультизагрузка не работает при мультизагрузке выдает ошибка сервера

работает нормально.
Какая именно ошибка сервера?
Смотрите nginx.config >>>
client_max_body_size 2048m; # Максимальный размер тела запроса клиента, прописанный в поле Content-Length заголовка.
А Content-Length в нашем случае равен весу всей страницы + размер передаваемых данных (+загружаемых файлов), поскольку не пользуем метод Chunked transfer encoding ( ru.wikipedia.org/wiki/Chunked_transfer_encoding )
На сколько я это понимаю… (возможно ошибаюсь).
#2 Вопросы по настройке сервера 16 апреля 2013 в 01:44
у меня ubuntu 12.04, пути могут отличаться.
Виртуальные хосты лежат здесь: /etc/nginx/sites-available/
Для каждого сайта он свой, по названию домена.
Можно писать по-разному, мне удобнее так:
server {
server_name example.com www.example.com;
listen xxx.x.xxx.xxx;
set $root_path /dir/dir1/example.com/dir2;
if ($host !~ ^(example.com|www.example.com|mail.example.com)$ ) { return 444;}
if ($request_method !~ ^(HEAD|POST|GET)$ ) {return 444;} #Разрешенные запросы
if ($http_user_agent ~* LWP::Simple|BBBike|wget) {return 403;} # Блокируем менеджеры загрузки
if ($http_user_agent ~* msnbot|scrapbot) {return 403;} # Блокируем некоторые типы ботов
if ($http_referer ~* (example\.ru|example\.ru|example\.ru|example\.ru|example\.ru)) {return 403;} #Блокируем переходы с сайтов + хотлинк
if ( $http_referer ~* (babes|forsale|girl|jewelry|love|nudit|organic|poker|porn|sex|teen) ){return 403;} # Блокируем некоторые типы ботов
......
......
Isp не пользую по своим убеждениям, видел вариант, когда все сайты прописаны в одном /etc/nginx/nginx.config
Тогда нужно править в нем (это в самом низу). Через нее править конечно же можно.
После внесенных изменений перезапустить нжинкс:
в убунту\дебиан это /etc/init.d/nginx restart либо service nginx restart
в панели тоже где-то есть… наверно…
#3 Вопросы по настройке сервера 15 апреля 2013 в 23:57

Просто защита от хотлинка в нем не срабатывает, графика отдается через nginx

Та и ладно с ним))

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

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

...}

перечисленные домены не смогут встраивать ничего вообще, как и перехода с них не будет.
#4 Вопросы по настройке сервера 15 апреля 2013 в 03:33
Для примера:

NameVirtualHost xxx.x.xx.xx:81
NameVirtualHost xxx.x.xxx.xxx:81
Listen 81

<IfModule mod_ssl.c>
# If you add NameVirtualHost *:443 here, you will also have to change
# the VirtualHost statement in /etc/apache2/sites-available/default-ssl
# to <VirtualHost *:443>
# Server Name Indication for SSL named virtual hosts is currently not
# supported by MSIE on Windows XP.
Listen 443
</IfModule>

<IfModule mod_gnutls.c>
Listen 443
</IfModule>


<IfModule mod_rpaf-2.0.c>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 xxx.x.xxx.xx xxx.x.xxx.xxx
RPAFheader X-Real-IP
</IfModule>


location / {
proxy_pass xxx.x.xxx.xxx:81;
proxy_set_header Host $host;
real_ip_header X-Real-IP;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}

В моем случае апач висит на 81 порту, обычно же он на 8080.
#5 Вопросы по настройке сервера 15 апреля 2013 в 03:18

кстати в .htaccess и не пашет)

Это в корне неверно. .htaccess должен работать в полной мере, иначе я понимаю, что не правильно настроен вебсервер. В частности ports.conf и rpaf.conf и апач не видит внешние ИП.
Настраивать то нужно на стороне нжинкс, но апач должен видеть не один с морды ип, иначе и в админке все юзвери будут с одним ип.
#6 Вопросы по настройке сервера 15 апреля 2013 в 02:11
Вот тема об этом

location ~* ^.+\.(jpg|jpeg|gif|png)$ {
root /path/to/root;
valid_referers none blocked server_names ~\.server1\. ~\.server2\.;
if ($invalid_referer) {
rewrite ^ /badreferer.png last;
}
}

location /badreferer.png {
root /path/to/badreferer;
}


мне счас тестить не много некогда, если не разберетесь, завтра тогда уже…
#7 Вопросы по настройке сервера 15 апреля 2013 в 02:00
Я проработаю варианты оттдачи хотлинков всем, кроме перечисленных. Это алгоритм, отпишу.
А по поводу

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

это не ко мне))) Ракомдую базу пополнять ими))))
#8 Вопросы по настройке сервера 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;} #Блокируем переходы с сайтов

...}
#9 Вопросы по настройке сервера 15 апреля 2013 в 00:43

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

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

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

...}
www указывать не нужно.
403 заменить на требуемое, вывести страницу по необходимости.
#10 Вопросы по настройке сервера 15 апреля 2013 в 00:18
Можно не отдавать страницу, а делать так, чтоб урлы подвисали (чтоб неповадно было) для этого 403 меняем на 444. Так же стоит учитывать, что ссылки на картинки могут принести ТИЦ и внешние факторы, потому я бы исключил jpeg и т п.
#11 Вопросы по настройке сервера 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;
#12 Вопросы по настройке сервера 14 апреля 2013 в 23:57
Извиняюсь… я тоже не силен, все правки производились так сказать в боевых условиях на рабочем сервере))
Попробую на пальцах, как это понимаю я...
Все запросы делятся на статические и динамические.
Статика — всё, кроме кода, который обрабатывает сервер (не браузер). это большинство файлов. их обрабатывает Нжинкс.
Апач же обрабатывает динамику, то есть php .
.htaccess служит для управления апачем, в нжинксе эти правила в виртуальном хосте домена (сайта).
#13 Вопросы по настройке сервера 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]

Вариант… но зачем грузить апач. если это можно сделать на стороне нжинкс?
#14 Вопросы по настройке сервера 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…;…
#15 Вопросы по настройке сервера 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 Мб
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.