Архив рубрики: Администрирование

Простой способ настроить Content Security Policy (CSP) для сайта

Зачем?

Настройка Content Security Policy для сайта — не мелочь, а необходимость. Мы не можем знать, что на той стороне у клиента, а это вполне может быть зараженный браузер, зараженные плагины и, в общем, что угодно. Выглядеть это может так: клиент открывает сайт, а вместо ваших рекламных блоков там чужие. Или клиент хочет куда-то нажать, но подгруженный кликандер злоумышленника перехватывает клик и отправляет клиента на левый сайт (возможно, вы найдете переходы на такие сайты в своей статистике LiveInternet).

Content Security Policy защищает пользователя от подобных атак, в явном виде указывая браузеру, откуда разрешено загружать тот или иной контент. Уже два года назад более половины используемых браузеров поддерживали CSP. Сейчас доля поддержки CSP 1.0 приближается к 90% (см. статистику тут).

Читать далее 

MediaWiki: решение проблем с производительностью

Каждый, кто устанавливал MediaWiki, замечал, как медленно она работает. Буквально при любом действии вы сталкиваетесь с невыносимыми тормозами (конечно, если сервер не космически быстрый).

В поисках решения этой проблемы вы придете, например, сюда - How to make MediaWiki fast. Ну, или вот общая категория: Performance tuning. Там собраны вполне разумные советы. Однако важно понять вот что: большинство из них дает лишь микроскопический прирост скорости и не решает проблему тормозов кардинально.

В этот момент нужно сесть, успокоиться, глубоко вздохнуть и принять следующую мысль: без кэширующего реверсивного прокси, который кэшировал бы страницы для незалогиненных пользователей (таких всегда подавляющее большинство) ничего не получится.

Mediawiki.org предлагает использовать Squid, но мне с ним никак не хотелось связываться — во-первых, опыт эксплуатации оставил не очень приятные воспоминания, а во-вторых, на промышленном сервере уже стоял Nginx, который отдавал статику по классической схеме в связке с httpd.

Скажем так: здесь могут быть трудности, но настроить можно. Мне это удалось (не исключаю, правда, что придется еще понаблюдать и что-то допилить). Nginx — очень мощный прокси, и когда вы видите, насколько мгновенно он отдает контент, это, конечно, производит впечатление. Главное — подумать, как различать залогиненных и незалогиненных пользователей. Можно найти пример конфига, где проверяется, содержится ли в куке «UserID» — для этого задействуется модуль ngx_lua, я же решил обойтись без него. И второй важный момент — как принудительно удалять страницу из кэша после ее редактирования. Здесь несколько сложнее: для выполнения запроса PURGE, который выдает MediaWiki, потребуется сторонний модуль ngx_cache_purge.

Основы: NGINX Content Caching.

Падает memcached?

Обновляйте. Похоже, другого рецепта нет.

У меня были проблемы с 1.4.15 на CentOS 5, с которыми пытался разобраться — бессмысленно. В логи ничего не попадало ни при какой степени детализации, memcached держался несколько часов и вырубался.

Однако вот у 1.4.20 аптайм уже почти две недели.

Как стать хорошим сисадмином

Знания и опыт, конечно, имеют первостепенное значение в становлении сисадмина. Но вот есть одна вещь, которая даже знающего и опытного администратора делает плохим. Иногда — критически плохим. Это упрямство в сочетании с нежеланием разобраться в теме. Нежелание — это «я сам прочитал в интернете, что дело обстоит именно так, а почему — не важно».

Читать далее 

Переходы с Facebook и fb_source в URL

Когда к вам на сайт переходят по ссылке из Facebook, в URL добавляется параметр fb_source. Это, конечно, позволяет отслеживать, откуда конкретно идет трафик и всякие такие замечательные вещи, но вот особенность: если на странице стоит виджет комментариев ВКонтакте или кнопки Like/Мне нравится/Поделиться и тому подобное, то для них это будет совершенно отдельный сайт. Комментарии людей, равно как их лайки, предназначавшиеся вашему example.com, уйдут к example.com/?fb_source=hovercard (это так, к примеру).

Чтобы убрать fb_source из параметров, нужно сделать в .htaccess что-то вот такое:

# Turn Rewrite Engine on
RewriteEngine On
RewriteBase /

# Strip ?fb_source=whatever from any URL
RewriteCond %{QUERY_STRING} (^|&)fb_source=
RewriteRule ^(.*)$ /$1? [L,R=301]

В данном случае делается редирект 301 (redirected permanently) и дальнейшая обработка правил прекращается (флаг L).

Можно также удалять любые параметры полностью, но, к примеру, только для главной страницы:

# Strip query string from the root URL (homepage) completely
RewriteCond %{QUERY_STRING} !^$
RewriteRule ^$ /$1? [L,R=301]

vBulletin: MySQL server has gone away

При импорте русского языка в vBulletin выдавалось сообщение «MySQL server has gone away». Фактически, это был один большой SQL-запрос; помогло следущее в my.ini:

max_allowed_packet=4M

VMware: Fault Tolerance на shared SAS

Попробуем собрать кластер из двух DL380 G8 с общим хранилищем на P2000 G3 (shared SAS) и запустить на всем этом VMware с Fault Tolerance. Насколько я посмотрел, подобные конфигурации встречаются нечасто, но вариант для среднего и малого бизнеса довольно интересный. По крайней мере, строить инфраструктуру для FibreChannel мне никогда не хотелось, эти деньги можно потратить с куда большей отдачей. Например, эта P2000 только с одним контроллером, второй — это как раз вопрос некоторых дополнительных вложений.

Отмена перехода на зимнее время в Linux

Даже сегодня с утра BBC и Lenta.ru, в частности, утверждали, что можно поспать еще час. Пользуясь случаем, поздравляю с внеочередным праздником лени всех администраторов, принявших в нем участие.

Для поддерживаемых Linux-систем вышли обновленные пакеты tzdata. Если в вашем хозяйстве имеются старые неподдерживаемые системы, их можно обновить вручную. Читать далее 

Windows Live Mail как бесплатная альтернатива Outlook для подключения к Exchange

При использовании Exchange в корпоративной среде могут возникать ситуации, когда пользователю не нужен Office, но нужна почта. Можно попытаться обойтись Outlook Web Access, но он, мягко говоря, неудобен. В общем, в итоге придется либо потратить деньги на Outlook, либо подобрать что-нибудь из бесплатных альтернативных клиентов, умеющих 1) работать по IMAP, 2) искать имена и адреса по LDAP.

Читать далее 

ISA Server 2004/2006, FTP: 550 Access Denied

Microsoft — чемпион по неочевидным настройкам в своих продуктах. По умолчанию, если в ISA 2004 или 2006 настроено правило для FTP, мы можем скачать файлы с удаленного сервера, но не можем ничего закачать на него (550 Access denied, и дело совсем не в правах доступа). В фильтрах есть «Фильтр FTP-доступа», но это ложный след. Оказывается, если существует правило, где упоминается протокол FTP, то на нем можно щелкнуть правой кнопкой мыши и получить контекстное меню, где будет пункт «Настроить FTP». Там нужно снять галочку «Только для чтения».