Skip to content


Выборочная http-аутентификация в apache httpd 2.4

Что делать когда надо закрыть HTTP-аутентификацией не весь сайт полностью, а почти весь, но оставить исключение для некоторых урлов? Использовать примерно вот такой конфиг виртуального хоста (внутри директив <VirtualHost>...</VirtualHost>):

  1.   SetEnvIfNoCase Request_URI ^/index.php/rest/V1 dont_require_auth=true
  2.   <Directory /usr/hosting/dev.avz.org.ua/www>
  3.     AllowOverride All
  4.     AuthType Basic
  5.     AuthName "Ausweis"
  6.     AuthBasicProvider file
  7.     AuthUserFile "/usr/hosting/usercreds"
  8.     <RequireAll>
  9.       Require env dont_require_auth
  10.       Require all granted
  11.     </RequireAll>
  12.     Require user dev
  13.   </Directory>

В результате благодаря объявленной в строке 1 переменной окружения dont_require_auth доступ без аутентификации (Require all granted в сочетании с логическим И Require env dont_require_auth) будет только по URL-ам, которые начинаются с /index.php/rest/V1. А на все остальные запросы будет приглашение ввести логин/пароль, и доступ будет разрешен только пользователю dev при условии ввода правильного соотвествующего ему пароля.

Или вот еще другой (обратный) пример, где запрос на аутентификацию будет только при НЕвыполнении условия:

  1. SetEnvIfNoCase HOST ^dev\.avz\.org\.ua$ is_protected
  2. SetEnvIfNoCase HOST ^test\.avz\.org\.ua$ is_protected
  3. <RequireAny>
  4.   <RequireAll>
  5.     Require all granted
  6.     Require not env is_protected
  7.   </RequireAll>
  8.   AuthType Basic
  9.   AuthName "Ausweis"
  10.   AuthUserFile "/usr/hosting/usercreds"
  11.   Require valid-user
  12. </RequireAny>

В документации, кстати, написано, что "when the Require directive is negated it can only fail or return a neutral result, and therefore may never independently authorize a request".

А а другой похожей статье вы можете почитать как сделать аутентификацию в apache на основе нескольких файлов с паролями.

Надежныые итальянские газонокосилки олеомак italytools.kiev.ua/gazonokosilki гарантия качества. . Заказать дешево роллетные ворота с монтажем. .

Размещено в категории *nix, Howto. Теги: .

Как должны работать истинно государственные банки

Похоже, в привате уже научились эффективным методам государственного управления:

Все правильно сделали, так держать!

Размещено в категории Развлекуха.

Как найти нужный промежуточный SSL-сертификат

Часто бывает, что клиент присылает сертификат для своего домена без промежуточного сертификата или с неправильным промежуточным сертификатом. Почему-то чаще всего это наблюдается с теми, кто покупает сертификаты у RapidSSL. Причем проблема эта незаметна, пока не доходит дело до работы с сайтом с какого-нибудь Android-девайса. По слухам, обычные десктопные броузеры (Opera, Firefox, Chrome) умеют сами находить при необходимости недостающие промежуточные сертификаты и молча и незаметно для пользователя подгружать их в случае, если таковые не были предоставлены сервером. А вот броузеры на android-устройствах, а также curl, проявляют бОльшую принципиальность и выдают назойливое предупреждение в стиле "сертификат получен из недоверенного центра сертификации" если сервер не предоставил полную цепочку сертификатов из корневого и всех промежуточных.

Чтобы проверить, имеет ли сервер полную цепочку сертификатов, имеется чудесный сервис https://www.ssllabs.com/ssltest/. Вводим там домен и смотрим:

Находим сертификат по ingerprint -у

Как найти промежуточный SSL-сертификат с помощью SSLLABS

"Extra download" означает, что наш веб-сервер не предоставил сертификат и SSLLabs-у пришлось искать дополнительные сертификаты самостоятельно. Что, надо отметить, у него отлично получается :) Смотрим на Fingerprint SHA1 и видим там 47f2db11606b7a5836c5b9582cefc33a0d67c4fe. Далее забиваем fingerprint в google и смотрим что он знает по этому поводу. В моем случае нашлось по ссылке https://ssl-tools.net/subjects/154d4e79cc1ed804d85a622d56b4608e206cc935:

Intermediate-сертификат от Symantec CA

Найденный промежуточный сертификат Symantec Basic DV SSL CA - G2

Там дальше клацаем по кнопочке PEM и получаем искомый промежуточный SSL-сертификат, который нужно прописать в конфигах веб-сервера. Профит!

А в этой статье написано как сделать правильный c точки зрения SSLLabs конфиг haproxy.

Размещено в категории Howto.

smartctl -x на RAID-контроллере HP Smart Array E200i

Как-то раз на просторах ынтернета попался мне совет запустить smartctl с параметром -x.

Я, конечно, как всякий homo sapiens, сначала почитал man:

  1. -x, --xall
  2.      Prints all SMART and non-SMART information about the device. For ATA
  3.      devices this is equivalent to ´-H -i -g all -c -A -f brief
  4.      -l xerror,error -l xselftest,selftest -l selective -l directory
  5.      -l scttemp -l scterc -l devstat -l sataphy´.
  6.      and for SCSI, this is equivalent to
  7.      ´-H -i -A -l error -l selftest -l background -l sasphy´.

Не увидев там ничего стрёмного, выполнил вот такую командочку:

  1. # smartctl -x -a -d cciss,0 /dev/cciss/c0d0
  2. smartctl 5.43 2012-06-30 r3573 [x86_64-linux-2.6.32-642.13.1.el6.x86_64] (local build)
  3. Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net
  4.  
  5. /dev/cciss/c0d0 [cciss_disk_00] [SCSI]: Device open changed type from 'sat,auto' to 'cciss'
  6. Vendor:               SEAGATE
  7. Product:              ST91000640SS    
  8. Revision:             0001
  9. User Capacity:        1,000,204,886,016 bytes [1.00 TB]
  10. Logical block size:   512 bytes
  11. Logical Unit id:      0x5000c50025fd7283
  12. Serial number:        9XG02CLM00009126234W
  13. Device type:          disk
  14. Transport protocol:   SAS
  15. Local Time is:        Tue Jan 31 15:29:39 2017 UTC
  16. Device supports SMART and is Enabled
  17. Temperature Warning Enabled
  18. SMART Health Status: OK
  19.  
  20. Current Drive Temperature:     22 C
  21. Drive Trip Temperature:        68 C
  22. Manufactured in week  of year 20
  23. Specified cycle count over device lifetime:  10000
  24. Accumulated start-stop cycles:  36
  25. Specified load-unload count over device lifetime:  300000
  26. Accumulated load-unload cycles:  36
  27. Elements in grown defect list: 3
  28. Vendor (Seagate) cache information
  29.   Blocks sent to initiator = 791069177
  30.   Blocks received from initiator = 8147385
  31.   Blocks read from cache and sent to initiator = 6510918
  32.   Number of read and write commands whose size <= segment size = 1294551
  33.   Number of read and write commands whose size > segment size = 0
  34. Vendor (Seagate/Hitachi) factory information
  35.   number of hours powered up = 37972.70
  36.   number of minutes until next internal SMART test = 12
  37.  
  38. Error counter log:
  39.            Errors Corrected by           Total   Correction     Gigabytes    Total
  40.                ECC          rereads/    errors   algorithm      processed    uncorrected
  41.            fast | delayed   rewrites  corrected  invocations   [10^9 bytes]  errors
  42. read:    8169902        0         0   8169902          0       2604.051           0
  43. write:         0        0         0         0          0          4.359           0
  44.  
  45. Non-medium error count:        1
  46.  
  47. [GLTSD (Global Logging Target Save Disable) set. Enable Save with '-S on']
  48. No self-tests have been logged
  49. Long (extended) Self Test duration: 12198 seconds [203.3 minutes]
  50. Segmentation fault (core dumped)

И... консолька замерла, связь с сервером пропала, пинга нет. Слава Хэнку, что сервер был не из production-кластера. И через пару минут самостоятельно поднялся.

При этом стоит отметить, что командочка smartctl -a -d cciss,0 /dev/cciss/c0d0 (то же самое, но без -x) там же пару минут ранее выполнялась несколько раз без каких-либо проблем. OS – CentOS 6.8 x86_64, RAID-контроллер HP Smart Array E200i.

Мораль: будьте осторожны со smartctl. Я предупредил.

Размещено в категории *nix. Теги: , .

Страница 3 из 51123456789101112...Последняя »