Как создать и настроить свой веб-сервер на VDS (05 сен 2024)

Осенью самое время заняться установкой и тюнингом своего веб-сервера. Не правда ли?

BulletProof Security. Bonus Code

Больше
9 года 1 нед. назад - 7 года 7 мес. назад #1 от Aleksej
Aleksej создал тему: BulletProof Security. Bonus Code



Этот топик хотелось бы посвятить описанию фрагментов кода, являющегося бонусом отличного плагина - BulletProof Security (краткая аннотация плагина - по ссылке), который смело можно порекомендовать любому владельцу сайта под управлением WordPress. BulletProof Security, даже в бесплатной версии, предоставляет отличный уровень защиты. Не единожды убеждался, автор (AITpro Website Security, 81 N Katherine Dr Ventura, CA 93003) данного плагина охотно отвечает на любые вопросы в контексте созданного им приложения, не требуя от своих многочисленных корреспондентов платной подписки... что, к слову сказать, далеко не всегда является бизнес-стилем для многих и многих отечественных наших разработчиков.

Следует подчеркнуть, что весь описываемый код вовсе не требует установки BulletProof Security, вы можете использовать любой из описанных Bonus Code, попросту вписав в .htaccess вашего сайта. Speed Boost Cache Code, к слову, не требуя ни малейших изменений, будет работать практически на любом сайте, здесь вовсе не обязателен WordPress; но так только относительно Speed Boost Cache Code, имейте это в виду. Итак:

Protect Login Page from Brute Force Login Attacks

Итак, защищаем наш wordpress от брутфорса, т.е попыток НСД (несанкционированного доступа) в административную часть сайта путем перебора паролей. Достаточно добавить в .htaccess приведенные ниже строки (заменив предварительно XXX.XX.XX.XX на ваш ip; или, может быть, три октета вашего IP вместо четырех), и атаки прекратятся: вы можете воочию в этом убедиться, инициировав попытку взлома и использовав при этом любой анонимайзер. Если вы используете BulletProof Security на вашем сайте - поместите данный код в поле CUSTOM CODE BRUTE FORCE LOGIN PAGE PROTECTION, нажмите Save Root Custom Code button, далее - откройте вкладку Security Modes, кликните Create secure.htaccess, затем активируйте Root Folder BulletProof Mode.


Code:
# Protect wp-login.php from Brute Force Login Attacks based on IP Address <FilesMatch "^(wp-login\.php)"> Order Allow,Deny # Add your Public IP Address using 2 or 3 octets so that if/when # your IP address changes it will still be in your subnet range. If you # have a static IP address then use all 4 octets. # Examples: 2 octets: 65.100. 3 octets: 65.100.50. 4 octets: 65.100.50.1 Allow from XXX.XX.XX.XX. </FilesMatch>


POST Attack Protection

Защита вашего сайта, работающего под управлением WordPress, от атак, реализуемых посредством POST-запросов. Приведенный сценарий проверяет все запросы, пришедшие посредством POST, таких как, например, контактная форма или комментарии, etc. Раскомментируйте те строчки, которые сочтете необходимым, скажем, разрешите wp-comments-post и/или contacts. Ни в коем случае не комментируйте разрешения, озаглавленные NEVER COMMENT, остальное - по желанию. Как вариант, и если не уверены, что именно сделать - включите данный код в ваш .htaccess в том виде, как он приведен, и пару-тройку дней внимательно просматривайте логи. Если вы используете BulletProof Security на вашем сайте - поместите данный код в поле CUSTOM CODE BOTTOM HOTLINKING/FORBID COMMENT SPAMMERS/BLOCK BOTS/BLOCK IP/REDIRECT CODE, нажмите Save Root Custom Code, далее - откройте вкладку Security Modes, кликните Create secure.htaccess, затем активируйте Root Folder BulletProof Mode.


Code:
# BPS POST Request Attack Protection RewriteCond %{REQUEST_METHOD} POST [NC] # NEVER COMMENT OUT THIS LINE OF CODE BELOW FOR ANY REASON RewriteCond %{REQUEST_URI} !^.*/wp-admin/ [NC] # NEVER COMMENT OUT THIS LINE OF CODE BELOW FOR ANY REASON RewriteCond %{REQUEST_URI} !^.*/wp-cron.php [NC] # NEVER COMMENT OUT THIS LINE OF CODE BELOW FOR ANY REASON RewriteCond %{REQUEST_URI} !^.*/wp-login.php [NC] # Whitelist the WordPress Theme Customizer # RewriteCond %{HTTP_REFERER} !^.*/wp-admin/customize.php # Whitelist XML-RPC Pingbacks, JetPack and Remote Posting POST Requests # RewriteCond %{REQUEST_URI} !^.*/xmlrpc.php [NC] # Whitelist Network|Multisite Signup POST Form Requests # RewriteCond %{REQUEST_URI} !^.*/wp-signup.php [NC] # Whitelist Network|Multisite Activate POST Form Requests # RewriteCond %{REQUEST_URI} !^.*/wp-activate.php [NC] # Whitelist Trackback POST Requests # RewriteCond %{REQUEST_URI} !^.*/wp-trackback.php [NC] # Whitelist Comments POST Form Requests # RewriteCond %{REQUEST_URI} !^.*/wp-comments-post.php [NC] # Example 1: Whitelist Star Rating Calculator POST Form Requests # RewriteCond %{REQUEST_URI} !^.*/star-rating-calculator.php [NC] # Example 2: Whitelist Contact Form POST Requests # RewriteCond %{REQUEST_URI} !^.*/contact/ [NC] # Example 3: Whitelist PayPal IPN API Script POST Requests # RewriteCond %{REQUEST_URI} !^.*/ipn_handler.php [NC] RewriteRule ^(.*)$ - [F]


Speed Boost Cache Code

Ускоряем, и довольно значительно ускоряем загрузку страниц вашего блога на WordPress, включая таким образом кэширование браузера. В верхней части приведенного кода вы видите шпаргалку, т.е. в данном случае способ регулировать сроки кэша для различных видов контента; можете, если интересно, поэкспериментировать. Но автор BulletProof Security рекомендует оставить все как есть; выигрыш в несколько миллисекунд навряд ли окажется критичен для вас. Если вы используете BulletProof Security на вашем сайте - поместите данный код в поле CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE, нажмите Save Root Custom Code, далее - откройте вкладку Security Modes, кликните Create secure.htaccess, затем активируйте Root Folder BulletProof Mode.


Code:
# BEGIN WEBSITE SPEED BOOST # Time cheat sheet in seconds # A86400 = 1 day # A172800 = 2 days # A2419200 = 1 month # A4838400 = 2 months # A29030400 = 1 year # Test which ETag setting works best on your Host/Server/Website # with Firefox Firebug, Firephp and Yslow benchmark tests. # Create the ETag (entity tag) response header field #FileETag MTime Size # Remove the ETag (entity tag) response header field Header unset ETag FileETag none <IfModule mod_expires.c> ExpiresActive on ExpiresByType image/jpg A4838400 ExpiresByType image/gif A4838400 ExpiresByType image/jpeg A4838400 ExpiresByType image/png A4838400 ExpiresByType video/webm A4838400 ExpiresByType application/x-shockwave-flash A4838400 ExpiresByType application/x-javascript A4838400 ExpiresByType application/javascript A4838400 ExpiresByType text/javascript A4838400 ExpiresByType text/css A4838400 #ExpiresByType text/html A86400 # Default is 2 days below so the line above is not needed / commented out ExpiresDefault A172800 </IfModule> <IfModule mod_headers.c> <FilesMatch "\.(js|css|flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav|gif|jpg|jpeg|png|swf|webm)$"> Header append Cache-Control "public" </FilesMatch> <FilesMatch "\.(txt|html)$"> Header append Cache-Control "proxy-revalidate" </FilesMatch> <FilesMatch "\.(php|cgi|pl|htm|xml)$"> Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform" Header set Pragma "no-cache" </FilesMatch> </IfModule> <IfModule mod_deflate.c> # Insert filters AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/x-httpd-php AddOutputFilterByType DEFLATE application/x-httpd-fastphp AddOutputFilterByType DEFLATE image/svg+xml # Drop problematic browsers BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html # Make sure proxies don't deliver the wrong content Header append Vary User-Agent env=!dont-vary </IfModule> # END WEBSITE SPEED BOOST


Protect the wp-trackback.php file to prevent trackbacks or pingbacks

Защищаемся от DDOS-атак, имеющих целью WordPress XML-RPC Server/Protocol/xmlrpc.php. Для этой цели добавьте в ваш .htaccess следующие строчки кода; если вы используете BulletProof Security на вашем сайте - поместите данный код в поле CUSTOM CODE BOTTOM HOTLINKING/FORBID COMMENT SPAMMERS/BLOCK BOTS/BLOCK IP/REDIRECT CODE, нажмите Save Root Custom Code, далее - откройте вкладку Security Modes, кликните Create secure.htaccess, затем активируйте Root Folder BulletProof Mode. После включения вы можете проверить работу данного Bonus Code, набрав в адресной строке браузера vash_site/xmlrpc.php - при этом вы должны увидеть 403 ошибку.


Code:
# XML-RPC DDoS & TRACKBACK/PINGBACK PROTECTION # Using this code blocks Pingbacks and Trackbacks on your website. # You can whitelist your IP address if you use A Weblog Client # or want to whitelist your IP address for any other reasons. # Example: uncomment #Allow from x.x.x. by deleting the # sign and # replace the x's with your actual IP address. Allow from 99.88.77. # Note: It is recommended that you use 3 octets x.x.x. of your IP address # instead of 4 octets x.x.x.x of your IP address. <FilesMatch "^(xmlrpc\.php|wp-trackback\.php)"> Order Deny,Allow # Whitelist Jetpack/ Automattic CIDR IP Address Blocks Allow from 192.0.64.0/18 Allow from 209.15.0.0/16 Allow from 66.155.0.0/17 Deny from all </FilesMatch>



The External iFrame|Clickjacking Bonus Custom Code above with the MIME sniffing|Drive-by Download Attack Bonus Custom Code

Блокировка возможности отображаения страниц вашего сайта в фидах и фреймах, Clickjacking Protection. Также Mime Sniffing, Data Sniffing, Content Sniffing, Drive-by Download Attack Protection - всего в нескольких строчках кода, которые необходимо разместить в вашем .htaccess. Если вы используете BulletProof Security на вашем сайте - поместите данный код в поле CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE, нажмите Save Root Custom Code, далее - откройте вкладку Security Modes, кликните Create secure.htaccess, затем активируйте Root Folder BulletProof Mode.


Code:
<IfModule mod_headers.c> # Using DENY will block all iFrames including iFrames on your own website # Header set X-Frame-Options DENY # Recommended: SAMEORIGIN - iFrames from the same site are allowed - other sites are blocked # Block other sites from displaying your website in iFrames # Protects against Clickjacking Header always append X-Frame-Options SAMEORIGIN # Protects against Drive-by Download attacks # Protects against MIME/Content/Data sniffing Header set X-Content-Type-Options nosniff </IfModule>


Пожалуй, на сегодня это все.
Внимание, данная статья отображает лишь необходимый для использования минимум информации; для более подробных инструкций используйте, пожалуйста сайт автора BulletProof Security. Отмечу лишь, что для всех полей ввода кода, являющегося бонусом BulletProof Security - совершенно все равно, в какой последовательности вы запишете приведенные фрагменты; это утверждение является истинным для всех филдов, кроме CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE. Таким образом, если вы решите использовать одновременно и BEGIN WEBSITE SPEED BOOST и The External iFrame|Clickjacking Bonus Custom Code above with the MIME sniffing|Drive-by Download Attack Bonus Custom Code - правильным будет сделать это в следующем порядке:

Code:
<IfModule mod_headers.c> # Using DENY will block all iFrames including iFrames on your own website ----------------- ----------------- </IfModule> # BEGIN WEBSITE SPEED BOOST ------------------ ------------------ # END WEBSITE SPEED BOOST
Последнее редактирование: 7 года 7 мес. назад пользователем p.rishard.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Dev banner 3
Работает на Kunena форум