Vesta 2.0 is coming soon! See our progress update: https://vestacp.com/docs/vesta-2-update
Сервер падает при нескольких обновлениях страницы
Re: Сервер падает при нескольких обновлениях страницы
Очень жаль, вчера сервер попал по атаку каких-то муд..ов. Вначале долбили вордпрессовские файлы xmlrpc.php:imperio wrote:Боюсь что это не представляется возможным. Даже если вводить какие то ограничения на исполение файлов в htaccess или виртуальных хостах доменов, то делать это нужно для каждого.

Пришлось в каждом .htaccess прописывать
Code: Select all
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>
Затем долбили wp-login.php, изучаю, как правильно настроить fail2ban для защиты, пока как временное решение настроил basic auth.
Ну и на последок начали убивать сервер запросами к несуществующим страницам, в результате Load average: 50 - 70 и хард резет...
Самих сайтов много и просматривать на каждом плагины не очень рационально, поэтому пришлось в wp-config.php отключать wp-cron.php:imperio wrote:Смотрите что выполняется в файле wp-cron.php, он делает различные проверки обновлений и прочее. Кстати плагинов много на сайтах? Потому что wp-cron.php может и их запускать, к примеру на проверку спама.
Code: Select all
/* Отключаем CRON - Max */
define('DISABLE_WP_CRON', true);
Спасибо, очень хорошие новости.imperio wrote:Да, такое есть в планах, но чуть позже.
Да, я это уже понял, а где устанавливается этот предел?imperio wrote:Панель не запустит бэкап, если превышается лимит по нагрузке на систему
У меня при запуске бэкапов на нагруженном сервере в логах бэкапов Весты отображалось сообщение, что порог Load average - 5, это значение меняется в самой Весте?
Хотел перенести все домены равномерно между пользователями и назначить бэкапы в разное время, через консоль от рута такая стратегия работает и нагрузка не большая, но вначале видимо нужно дождаться обновления панели для корректной работы cli скриптов в Debian 8.5.
Re: Сервер падает при нескольких обновлениях страницы
Code: Select all
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>
Потом перезапустите апач
Если атакуют с какой то определенной страны, можно подключить nginx geoip, или ограничить коннекты директивой limit_conn
15Да, я это уже понял, а где устанавливается этот предел?
У меня при запуске бэкапов на нагруженном сервере в логах бэкапов Весты отображалось сообщение, что порог Load average - 5, это значение меняется в самой Весте?
v-backup-user
Попробуйте выполнить полный ребут (перезагрузку) сервера и проверить работу cli интерфейсадля корректной работы cli скриптов в Debian 8.5
Re: Сервер падает при нескольких обновлениях страницы
Спасибо за помощь!
Сервер перезагрузил, результат тоже:
Создал баг: https://bugs.vestacp.com/issues/316
Сервер перезагрузил, результат тоже:
Code: Select all
admin@server:~$ sudo /usr/local/vesta/bin/v-change-domain-owner z68686a.ru user8
/usr/local/vesta/bin/v-change-domain-owner: line 30: v-search-domain-owner: command not found
Error: domain z68686a.ru doesn't exist
Re: Сервер падает при нескольких обновлениях страницы
Исправим в релизе 17
Re: Сервер падает при нескольких обновлениях страницы
Подскажите, в Vesta на Debian 8.5 эта директива должна работать, модуль ngx_http_limit_conn_module должен быть установлен?imperio wrote:или ограничить коннекты директивой limit_conn
Не могу найти его в списке модулей:
admin@domain:~$ sudo nginx -VShow
nginx version: nginx/1.10.1
built by gcc 4.9.2 (Debian 4.9.2-10)
built with OpenSSL 1.0.1k 8 Jan 2015 (running with OpenSSL 1.0.1t 3 May 2016)
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_geoip_module=dynamic --with-http_perl_module=dynamic --add-dynamic-module=debian/extra/njs-1c50334fbea6/nginx --with-threads --with-stream --with-stream_ssl_module --with-http_slice_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --with-http_v2_module --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-z,relro -Wl,--as-needed'
built by gcc 4.9.2 (Debian 4.9.2-10)
built with OpenSSL 1.0.1k 8 Jan 2015 (running with OpenSSL 1.0.1t 3 May 2016)
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_geoip_module=dynamic --with-http_perl_module=dynamic --add-dynamic-module=debian/extra/njs-1c50334fbea6/nginx --with-threads --with-stream --with-stream_ssl_module --with-http_slice_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --with-http_v2_module --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-z,relro -Wl,--as-needed'
Re: Сервер падает при нескольких обновлениях страницы
afaik встроенный модуль в ядре, он не отображается как отдельный.maxpostal wrote: Подскажите, в Vesta на Debian 8.5 эта директива должна работать, модуль ngx_http_limit_conn_module должен быть установлен?
http://nginx.org/ru/docs/http/ngx_http_ ... odule.html
Re: Сервер падает при нескольких обновлениях страницы
Сегодня не создался бэкап админа при значении LoadAverage = 6imperio wrote:Панель не запустит бекап, если превышается лимит по нагрузке на системуLoadAverage 23 is above threshold
Error: LoadAverage 6 is above threshold
Хотя с такой нагрузкой сервак работает нормально.
Подскажите пожалуйста, где можно изменить заданный предел LoadAverage 6?
Re: Сервер падает при нескольких обновлениях страницы
Есть интересная тема в помощь viewtopic.php?p=45513#p45513Затем долбили wp-login.php, изучаю, как правильно настроить fail2ban для защиты,
Re: Сервер падает при нескольких обновлениях страницы
Читал, пробовал, регулярка не работает.Mr.Erbutw wrote:Есть интересная тема в помощь viewtopic.php?p=45513#p45513
Вот здесь - https://wordpress.org/plugins/wp-fail2ban/ я думаю более подходящие настройки, но пока руки не дошли до проверки, временно ограничил доступ к wp-login.php с помощью basic auth apache, вроде помогло.
Re: Сервер падает при нескольких обновлениях страницы
Поставил модули ngx_http_limit_req_module и ngx_http_limit_conn_module (Debian 8.5), следующим образом:
1. Добавить в nginx.conf директивы
http {
# Main settings
sendfile on;
...
limit_req_zone $binary_remote_addr zone=perserver:10m rate=2r/s;
limit_conn_zone $binary_remote_addr zone=perip:10m;
2. Изменить в nginx.conf адрес до 503 ошибки (опционально)
error_page 502 504 /error/50x.html;
error_page 503 /error/503.html;
3. Отредактировать дефолтные шаблоны
nano /usr/local/vesta/data/templates/web/nginx/default.tpl
nano /usr/local/vesta/data/templates/web/nginx/default.stpl
Вынести статику из корня location / и добавить директивы
location / {
limit_req zone=perserver burst=10 nodelay;
limit_conn perip 10;
proxy_pass http://%ip%:%web_port%;
}
location ~* ^.+\.(%proxy_extentions%)$ {
root %docroot%;
access_log /var/log/%web_system%/domains/%domain%.log combined;
access_log /var/log/%web_system%/domains/%domain%.bytes bytes;
expires max;
try_files $uri @fallback;
}
5. Создать страницу ошибки 503.html в
/usr/local/vesta/data/templates/web/skel/document_errors/
(опционально)
6. Пересоздать конфиги доменов у пользователей
/usr/local/vesta/bin/v-rebuild-web-domains user
7. Проверить изменения в конфигах
nano /home/user/conf/web/nginx.conf
8. Перезагрузить nginx
service nginx restart
Надеюсь будет толк, следующий этап apache mod_security.
Только возник вопрос, шаблоны обновляются при обновлении Весты?
1. Добавить в nginx.conf директивы
http {
# Main settings
sendfile on;
...
limit_req_zone $binary_remote_addr zone=perserver:10m rate=2r/s;
limit_conn_zone $binary_remote_addr zone=perip:10m;
2. Изменить в nginx.conf адрес до 503 ошибки (опционально)
error_page 502 504 /error/50x.html;
error_page 503 /error/503.html;
3. Отредактировать дефолтные шаблоны
nano /usr/local/vesta/data/templates/web/nginx/default.tpl
nano /usr/local/vesta/data/templates/web/nginx/default.stpl
Вынести статику из корня location / и добавить директивы
location / {
limit_req zone=perserver burst=10 nodelay;
limit_conn perip 10;
proxy_pass http://%ip%:%web_port%;
}
location ~* ^.+\.(%proxy_extentions%)$ {
root %docroot%;
access_log /var/log/%web_system%/domains/%domain%.log combined;
access_log /var/log/%web_system%/domains/%domain%.bytes bytes;
expires max;
try_files $uri @fallback;
}
5. Создать страницу ошибки 503.html в
/usr/local/vesta/data/templates/web/skel/document_errors/
(опционально)
6. Пересоздать конфиги доменов у пользователей
/usr/local/vesta/bin/v-rebuild-web-domains user
7. Проверить изменения в конфигах
nano /home/user/conf/web/nginx.conf
8. Перезагрузить nginx
service nginx restart
Надеюсь будет толк, следующий этап apache mod_security.
Только возник вопрос, шаблоны обновляются при обновлении Весты?