|
Диапазоны IP-адресов облачных сервисов Amazon, Google, OVH, DigitalOcean и Microsoft (доп. ссылка 1) |
[комментарии]
|
| Иногда на сервере возникает необходимость динамического определения подключения пользователя, транзитно использующего окружение в одном из арендуемых облачных сервисов.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Наиболее простой способ получения и обновления сертификатов Let's Encrypt |
[комментарии]
|
| В рамках проекта dehydrated (https://github.com/lukas2511/dehydrated) развивается shell-скрипт для автоматизации действий по получению SSL-сертификатов в некоммерческом удостоверяющем центре Let's Encrypt (https://letsencrypt.org/). Регистрация в сервисе, получение сертификата и его последующее обновление предельно упрощено и требует только указания домена в файле конфигурации, создания проверочного пути на сайте и запуска скрипта.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Блокировка атаки на Joomla силами nginx и apache (доп. ссылка 1) |
[комментарии]
|
| Продолжается [[https://www.opennet.ru/opennews/art.shtml?num=43521 массовая атака]] на сайты под управлением Joomla. К сожалению на базе данной CMS в сети много сайтов, администраторы которых не спешат устанавливать обновления. На системах хостинга можно попытаться блокировать типовую автоматизированную атаку централизованно, на стороне сервера.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Получение сертификата через общедоступный удостоверяющий центр LetsEncrypt (доп. ссылка 1) (доп. ссылка 2) |
[комментарии]
|
| Удостоверяющий центр [[https://letsencrypt.org/ LetsEncrypt]] контролируется сообществом и позволяет любому желающему бесплатно получить TLS-сертификат для организации доступа через защищённое соединение к своему сайту. Для прохождения верификации перед получением сертификата достаточно продемонстрировать контроль над доменом через размещения файла с ключом на web-сервере или запуска специального автоматизированного крипта.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Как сменить корень документов в Apache/nginx в CentOS 7 и RHEL 7 с SELinux |
[комментарии]
|
| По умолчанию для Apache, nginx и других http-серверов при использовании SELinux в CentOS 7 и RHEL 7 область видимости ограничена директорией /var/www. Для смены корня документов на /home/site следует включить новые директории в правила httpd_sys_content_t и httpd_sys_script_exec_t.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Использование amon для дополнительной защиты PHP-интерпретатора от выполнения внешних программ (доп. ссылка 1) |
[комментарии]
|
| Для экспресс-блокировки выполняемых при работе определенного PHP-скрипта внешних программ удобно использовать библиотеку amon.so (http://www.lucaercoli.it/amon.html), которая подменяет своим обработчиком системный вызов execve() и контролирует его выполнение. Библиотека amon.so рассчитана на тесное взаимодействие с PHP и учитывает особенности его работы, позволяя защититься от простейших атак и блокировать работу бэкдоров, подобных r57shell.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Использование mod_qos для минимизации паразитной нагрузки на сайт (доп. ссылка 1) |
[комментарии]
|
| Apache-модуль mod_qos (http://mod-qos.sourceforge.net/) позволяет организовать разделение запросов по приоритетам и обеспечить выполнение только приоритетных запросов при таких нештатных ситуациях, как перегрузка сервера. В качестве реакции при нехватке серверных ресурсов mod_qos может блокировать неприоритетные запросы, динамически изменять значения таймаутов, добавлять искусственную задержку перед выполнением запроса и принудительно завершать TCP-соединения.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Увеличение безопасности WordPress на типовом хостинге (доп. ссылка 1) |
Автор: Pentarh Udi
[комментарии]
|
| Небольшой дайджест по обеспечению безопасности WordPress и других PHP OpenSource приложений.
Рассмотрено, что можно сделать на среднестатистическом хостинге.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Особенности работы длительно выполняющихся PHP скриптов в Apache (доп. ссылка 1) |
Автор: mysqlperformanceblog.com
[комментарии]
|
| Рассмотрим поведение Apache при принудительном закрытии клиентом окна браузера, в котором отображался вывод еще не завершенного PHP скрипта. Например, скрипт зациклился или пользователь устал ждать конца операции.
Особенность в том, что скрипт будет принудительно завершен, только в момент физического вывода данных, т.е. после сброса буфера, например после отправки большого числа данных или вызова функций ob_flush() и flush(). Если вывода данных клиенту не производится или буфер вывода остается несброшенным, то скрипт так и будет выполняться до истечении времени заданного через параметр настройки PHP - max_execution_time. При этом не важно, в какое значение в конфигурации PHP установлен параметр ignore_user_abort.
В качестве обходного пути для прерывания скриптов в течение длительного времени не производящих вывод данных, например, вследствие выполнения длительного SQL запроса, можно использовать расширение pcntl, вызывая функцию pcntl_alarm(таймаут). В отличие от max_execution_time/set_time_limit, определяющих максимальное время утилизации CPU (при выполнении запросов к SQL серверу процессорное время расходуется минимально и скрипт может оставаться висеть днями), функция pcntl_alarm оперирует секундами реального времени.
|
|
|
|
|
apache2 + mod_ntlm2 на FreeBSD (доп. ссылка 1) |
Автор: Comatoz
[комментарии]
|
| Прозрачная авторизация пользователя через его доменную учетную запись
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
|
Ограничение трафика для виртуального хоста в apache (доп. ссылка 1) |
[комментарии]
|
| Нижеприведенные настройки ограничат скорость для виртуального хоста в 1024kbps, с возможностью обслуживания не больше 10 запросов в секунду и максимумом в 30 открытых коннектов. Каждый посетитель может установить не больше трех одновременных соединений и получить данные на скорости не выше 20kb/s . Кроме того, виртуальный хост может за 4 недели израсходовать не более 100 Мб трафика, если лимит будет превышен скорость будет ограничена в 128kbps.
<VirtualHost 1.2.3.4>
ServerName www.example.com
ServerAdmin webmaster@example.com
DocumentRoot /var/www
CBandLimit 100M
CBandExceededSpeed 128 5 15
CBandSpeed 1024 10 30
CBandRemoteSpeed 20kb/s 3 3
CBandScoreboard /var/www/scoreboard
CBandPeriod 4W
</VirtualHost>
|
|
|
|
|
Как совместить использование SuPHP и mod_php в одном apache (доп. ссылка 1) |
Автор: pookey.co.uk
[обсудить]
|
| По умолчанию будет использоваться SuPHP.
В httpd.conf:
LoadModule suphp_module modules/mod_suphp.so
LoadModule php4_module modules/libphp4.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
AddHandler x-httpd-php .php
suPHP_Engine on
php_admin_flag engine off
Для избранных хостов активируем mod_php:
<VirtualHost ..>
suPHP_Engine off
RemoveHandler .php
php_admin_flag engine on
...
</VirtualHost>
|
|
|
|
|
Авторизация в Apache2 из стандартной группы LDAP |
Автор: Андрей
[обсудить]
|
| Авторизация в Apache2 из стандартной группы Ldap (objectClass=posixGroup)
В .htaccess прописать параметры модуля mod_auth_ldap
AuthType Basic
AuthName "For Administrators only!"
AuthLDAPURL ldap://ldap.local/dc=local
AuthLDAPRemoteUserIsDN off
AuthLDAPGroupAttribute memberUid
AuthLDAPGroupAttributeIsDN off
require group cn=admins_group,ou=group,dc=local
Для поддержки протокола ldaps:// необходимо в файле
/etc/httpd/conf.d/ldap.conf определить параметры:
LDAPTrustedCA /etc/pki/tls/certs/ca.cert
LDAPTrustedCAType BASE64_FILE
ca.cert это публичный сертификат которым подписан сертификат сервиса ldaps.
|
|
|
|
|
|
Как изменить строку идентифицирующую версию Apache и некоторые модули. |
[обсудить]
|
| Директива ServerTokens устанавливает формат вывода информации в поле Server:
ServerTokens Minimal
# Server: Apache/1.3.0
ServerTokens ProductOnly
# Server: Apache
ServerTokens OS
# Server: Apache/1.3.0 (Unix)
ServerTokens Full
# Server: Apache/1.3.0 (Unix) PHP/3.0
|
|
|
|
|
Как ограничить число соединений от одного IP в Apache |
[обсудить]
|
| Устанавливаем модуль mod_limitipconn и изменяем httpd.conf:
ExtendedStatus On
<Directory />
...
MaxConnPerIP 10
</Directory>
|
|
|
|
|
Как максимально ограничить пользовательские PHP скрипты. |
[обсудить]
|
| В httpd.conf в блок конфигурации каждого виртуального хоста добавляем:
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Как ограничить размер памяти и CPU для CGI в Apache |
[обсудить]
|
| Ограничим память в 32 Мб, процессорное время 30 сек., одновременно может быть
запущено не более 60 пользовательских CGI скриптов.
В <VirtualHost ...>:
RLimitMEM 32000000 32000000
RLimitCPU 10 30
RLimitNPROC 60 60
|
|
|
|
|
Как преодолеть барьер в 256 одновременных соединений в Apache |
[обсудить]
|
| Пересоберите apache изменив в httpd.h константу HARD_SERVER_LIMIT с 256
на большее число.
|
|
|
|
|
Как ограничить доступ к определенному файлу. |
[обсудить]
|
| Запретим доступ к .txt файлам:
<Files ~ "\.txt">
Order allow,deny
Deny from all
</Files>
Доступа к .cgi и только с IP 1.2.3.4 через пароль, остальным нет доступа.
<Files ~ "\.cgi">
Order allow,deny
Allow from 123.123.123.123
AuthType Basic
AuthName "ENTER PASSWORD"
AuthUserFile /home/user/.htpasswd
<Limit GET POST PUT>
require valid-user
</Limit>
Deny from all
</Files>
|
|
|
|
|
Как ограничить доступ к директории только для определенных IP |
[обсудить]
|
| В .htaccess:
order allow,deny
allow from 10.0.0.0/24 176.1.2.3 194.67.48.0/24
|
|
|
|
|
Как организовать парольный доступ к директории |
[комментарии]
|
| в .htaccess:
AuthType Basic
AuthName "Private block"
AuthUserFile путь к файлу с паролями
require valid-user
или require user user1 user2...
Создать файл паролей: htpasswd -c .passwd user
добавить нового пользователя: htpasswd .passwd user
|
|
|
|
|
Как отбить простой DDoS в nginx |
Автор: Ilya
[комментарии]
|
| Все мы сталкивались с зажатым F5 и просто озверевшими ботами, уже давно не
секрет, что мораль у данных личностей довольно слаба, а желание забить канал
высоко, именно по этому данный сниппет в nginx может срезать львиную долю таких
неуравновешенных личностей.
Суть идеи в следующем:
map "$http_accept_encoding:$remote_addr" $ban_ban {
"~*(.*):(1.1.1.1|2.2.2.2)" 0; # тут перечисляем кому "можно"
"~*(.*gzip.*|.*identity.*):(.*)" 0; # выделяем запросы с gzip в заголовке Accept-Encoding
default 1; # ban
}
if ($ban_ban = 1) {
return 444;
}
TL;DR: большинство дельцов, не обращают внимание на заголовок gzip в своих
запросах, им важно забить серверу исходящий канал (вот и не требуют gzip) -
мораль в том, что легитимный пользователь/браузер ВСЕГДА посылает gzip/deflate
в своих "ожиданиях" от сервера. Как следствие такое помогает избежать 90%
простейших атак.
|
|
|
|