Search
Write a publication
Pull to refresh
11
0
TTTOOOPPPTTT @script88

Linux system administrator

Send message

Отказоусточивый прокси-сервер на базе Squid в домене Windows

Reading time7 min
Views46K
UPD: различия в потреблении памяти между моей конфигурацией и той, которая используется у авторов негативных комментариев, вызваны тем, что со Squid'ом помимо стандартного скрипта wbinfo_group.pl, с помощью которого определяется принадлежность доменного пользователя доменной группе, используется скрипт, который определяет сам логин пользователя для того, чтобы squid умел предоставлять пользователю права, отличающиеся от тех прав, которые предоставлены его группе.

imageОднажды дождливым серым вечером у меня появилась потребность внедрить прокси-сервер, но не простой, а такой, который бы обладал следующим функционалом:
  • предоставление/ограничение доступа в зависимости от членства учетной записи в определенной группе Active Directory;
  • предоставление/ограничение доступа в зависимости от прав, предоставленных учетной записи (например, чтобы можно было всей группе разрешить пользоваться поисковиками, а одному самому хитрому пользователю этой группы отключить строго определенный поисковик);
  • предоставление доступа без всяких ограничений для «VIP» MAC-адресов;
  • предоставление доступа к минимальному набору ресурсов всем пользователям (и недоменным в том числе);
  • количество движений, которые должен выполнить пользователь для работы с прокси-сервером, должно быть сведено к минимуму;
  • администрирование прокси-сервера производится посредством веб-интерфейса;
  • совокупная стоимость владения данным прокси-сервером должна быть минимальной.

Тех, кому интересна длинная история метаморфоз, превративших один компьютер в супермонстра, приглашаю под кат

Как быстро проверить Linux сервер на предмет взлома

Reading time4 min
Views128K
Примерно два года назад я арендовал у одного немецкого хостера не очень мощный сервер на базе Centos 5.2. На нём живут несколько вебпроектов, приносящих некоторую прибыль, и поэтому, я стараюсь присматривать за ним по мере возможности.
На Centos есть стандартный анализатор логов Logwatch, который запускается ежедневно по крону, анализирует содержимое /var/log, делает сводный отчет и присылает его по электропочте. В один прекрасный день я обнаружил в этом отчете запись:

--------------------- yum Begin ------------------------ 
 
 Packages Installed:
    lzo2 - 2.02-3.el5.rf.i386
    dnstracer - 1.8-1.2.el5.rf.i386
    openvpn - 2.0.9-1.el5.rf.i386

---------------------- yum End -------------------------


В тот момент меня она очень смутила, так как в предыдущий день на сервер я не логинился и тем более ничего не устанавливал. Первое, что пришло в голову — сервер был скомпроментирован. Себя я считал уверенным пользователем Linux, однако я растерялся. Благо в тот момент в icq был мой бывший коллега, лучший системный администратор, которого я знаю, и просто очень хороший человек.
Он помог быстро проверить систему. В результате у меня сформировалось краткое HowTo о том, как быстро проверить свой сервер на предмет взлома. Уверен, что многим Храброчитателям оно будет полезно. Предполагается, что пользователь знаком с консолью Linux/Unix.

Читать дальше →

Создание тестера для нагрузочного тестирования PostgreSQL

Reading time9 min
Views8.6K
Идея этого проектика (именно «проектика») возникла спонтанно. В компании используется memory-DB TimesTen, содержит одну большую таблицу с данными, более 150 млн записей, и объем около 15 гигов. TimesTen всегда работал исправно, ответ по любому запросу получали за считанные миллисекунды, всех это устраивало. В один из дней, T10 стал отвечать на запросы очень долго, время ответа увеличилось до 3-5 секунд. Техподдрежка конечно начала проведение работ по поиску проблемы, но параллельно мы задались вопросом, а для чего вообще используется T10, почему нельзя перенести базу на обычную СУРБД Oracle или Postgres?
Читать дальше →

О массовом добавлении объектов мониторинга в Zabbix

Reading time5 min
Views20K
Встала как-то перед нами с коллегой простая, в сущности, задача – поставить под мониторинг средствами Zabbix около полутысячи идентичных терминалов под управлением Linux, разбросанных по всей стране. Терминалы принадлежали одной сети – 10.0.0.0/8. Казалось бы, задача совершенно тривиальная. В самом деле – сварганить шаблон, запустить автообнаружение да все найденные хосты автоматом добавлять в группу и накатывать на них этот шаблон. Проще только чаю из пакетика заварить. Засучив рукава, мы взялись за дело…
Читать дальше →

Монетизация Android-приложения с помощью рекламы от AdMob с возможностью платного отключения. Часть первая

Reading time5 min
Views128K
Всем привет! На Хабрахабре уже была статья о том, как сделать платное отключение рекламы в Android-приложении, где предлагалось использовать open-source библиотеку Android Billing Library. В данной статье я хочу рассказать о том, как реализовать подобный функционал при помощи системы внутренних платежей Android Market In-app Billing, не используя сторонних библиотек.

Статья состоит из двух частей. В первой части я подробно расскажу о том, как добавить рекламу от Google AdMob в свое приложение (данная часть в основном ориентирована на новичков), а во второй – как сделать ее платное отключение.

Читать дальше →

Релиз XML-СУБД Sedna 3.5

Reading time2 min
Views3.3K
После 13 месяцев интенсивной разработки в свет вышла новая версия прирождённой XML-СУБД Sedna под номером 3.5.

Sedna предназначена для хранения и работы с XML-данными и работает с ними в «родном режиме». Sedna написана на C/C++, распространяется под все основные платформы под лицензией Apache 2.0. Для загрузки доступны как бинарные файлы для Windows, Linux, MacOS X, FreeBSD и Solaris (x86/x64), так и исходные коды для самостоятельной сборки.

Sedna 3.5 Проект разрабатывается с 2003 года и по сей день командой разработчиков отдела информационных технологий Института системного программирования Российской академии наук.

Итак, что же умеет Sedna?

Делаем приватный монитор из старого LCD монитора

Reading time2 min
Views983K


Вы наконец-то можете сделать кое-что со своим старым LCD монитором, который завалялся у Вас в гараже. Превратите его в шпионский монитор! Для всех вокруг он будет выглядеть просто белым экраном, но не для Вас, потому что у Вас будут специальные «волшебные» очки.

Всё что Вам нужно – это пара старых очков, нож для бумаги и растворитель для краски.

Читать дальше →

Загрузка Linux с корнем на RAID

Reading time3 min
Views34K
Для того, чтобы загрузить ядро linux с корневой файловой системой лежащей на RAID-массиве нужно передать ядру следующие параметры (рабочий пример для Grub). Значимыми для нас опциями являются первая и вторая строка параметров.
title Gentoo Linux 3.0.8 Hardened
kernel (hd0,0)/linux-3.0.8-hardened/linux \
     root=/dev/md0 \
     md=0,/dev/sda1,/dev/sdc1 \
     rootfstype=ext4 \
     rootflags=nodelalloc,data=ordered,journal_checksum,barrier=1,acl,user_xattr \
     panic=15 \
     vga=792

Значения параметров:
1. root=/dev/md0 задает имя файла устройства с корневой ФС.
2. md=0,/dev/sda1,/dev/sdc1
На этом параметре хотелось бы остановиться подробнее. Он имеет следующий формат:
md=md_device_number,raid_level,chunk_size_factor,fault_level,dev0,dev1,...,devn

  • md_device_number — номер md-устройства. Например, 0 означает /dev/md0, 1 это /dev/md1. Прошу обратить внимание — это именно НОМЕР устройства, а не количество дисков входящих в массив, как иногда встречается в описаниях в Сети.
  • raid_level — уровень RAID. Является обязательным для линейного режима (значение -1) и RAID-0 (значение 0). Для остальных типов массивов информация берётся из суперблока и это значение должно быть опущено.
  • chunk_size_factor — задает размер чанка. Минимальное значение 4кб (4k).
  • fault_level — насколько я понял из документации, этот параметр игнорируется драйвером MD (нафига тогда предусматривали?)
  • dev0,...,devn — список устройств, входящих в массив.

Есть еще один важный момент.
Читать дальше →

Ищем неиспользуемые расширения PHP

Reading time1 min
Views2.2K
image

Одним из способов ускорения работы интерпретатора PHP является отключение неиспользуемых расширений.
Конечно же прирост производительности будет незначителен, но отключение расширений не занимает много времени, поэтому есть смысл воспользоваться данным способом.

Главной проблемой будет найти неиспользуемые расширения, для этих целей я написал небольшую утилитку, которая поможет вам в этом деле.
Читать дальше →

Z-music.ru — обновленный поиск музыки

Reading time1 min
Views3.6K
О проекте Z-music жители хабрахабра узнали еще около года назад, когда он был еще маленьким неизвестным проектом, но несмотря на это обрел своих постоянных посетителей.

О старой версии сайта не стоит говорить много. Хотелось бы упомянуть лишь о том, что проект был лишь площадкой для создания нового, удобного, основательно проработанного поисковика музыки. Мы рады представить вам такой поисковик.

Сегодня Z-music — это плеер, оснащенный наиболее нужными функциями необходимыми для прослушивания музыки.

Как видите, сайт построен в духе минимализма и более напоминает простой поисковик музыки, поэтому пусть пост будет таким же: простым и лаконичным.
Читать дальше →

Android Calendar API

Reading time5 min
Views44K

В этой статье речь пойдет об использовании недокументированного API для работы со стандартным календарем Android. Статей на русском по данной теме не нашел, да и на английском лишь несколько постов с устаревшими данными. Кто заинтересовался – под кат.
Читать дальше →

GAE XMPP (Java API) — Жаббер в своем приложении

Reading time4 min
Views8.3K
Пока у Гугла данный раздел только на английском, я делюсь своим знакомством с данной службой.

image

Служба XMPP позволяют GAE-приложениям отправлять и принимать жаббер-сообщения.
XMPP – открытый протокол обмена мгновенными сообщениями, на основе XML, так же известный как Jabber. Именно он уже используется в Google Talk.

API скрывают весь механизм работы с протоколом. Разработчик получает очень высокоуровневые методы, что упрощают разработку, но в то же время очень ограничивают возможности.
Если просмотреть джавадок по XMPP API, то видно, что реализован только самый необходимый минимум.
Читать дальше →

Простой HotSpot на FreeBSD

Reading time7 min
Views23K
День добрый.
Появилась необходимость в создании HotSpot точки. Как человек, немного знакомый с UNIX, я решил искать софтверные решения. Тем более что покупать специальное железо для этого дела не было возможности. Да и требования были весьма минимальными. А именно организовать раздачу WiFi так, как это сделано, к примеру, в сети McDonnalds. Т.е. пользователь пришел, подключился к сети и спокойной получил свои 30 минут интернета. Либо 15 мегабайт трафика.

Читать дальше →

Несколько полезных сервисов

Reading time2 min
Views126K
Хочу поделиться ссылками на несколько полезных сервисов. Некоторые из них помогут сэкономить время, другие — сделают за Вас незнакомую/нелюбимую работу. Список разбит по категориям, чтобы было легче ориентироваться.

Сервисы опросов
userreport.com (добавил Romanych)
simpoll.ru
webanketa.com (добавил mihass)

Кнопки постинга в социальные сети
Кнопка от Яндекса
addthis.com (добавил UksusoFF)
share42.com
Читать дальше →

Кеширующий прокси-сервер на nginx. Хитрая конфигурация

Reading time7 min
Views40K
На Хабре уже есть несколько описаний Nginx, но, думаю, моя конфигурация тоже будет интересна.
Ситуация выглядит следующим образом: есть размещённый на нескольких серверах IIS сайт (интернет-магазин), перед ним расположен балансировщик. Между ними решено установить nginx для уменьшения нагрузки на IIS.

Основная масса динамического контента отображается Ajax-ом, так что кеширование страниц каталога товаров вполне безопасно. Однако на них могут быть отзывы о товаре, за которые можно проголосовать — совсем как на Хабре, что тоже надо учесть.

Плюс к этому хочется поддерживать валидность популярных страниц в кеше автоматически.
Читать дальше →

MySQL репликация one-slave-multi-master

Reading time3 min
Views14K

Предисловие.


Понадобилось сделать репликацию несколькими мастер-серверами с mysql, чтобы данные со всех них грузились на один слэйв-сервер. Готового решения стандартными средствами не нашлось. Но так как проблема оставалась актуальной, со временем подоспел немного усложненный, но работоспособный вариант c использованием средств самой mysql.
Читать дальше →

Развертывание биллинга для небольшой сети с нуля

Reading time11 min
Views63K
Предыстория:
Некие хорошие люди решили начинать провайдерский бизнес. Растянули и разварили оптику в небольшом районе, поставили ящички, засунули туда минимальные свичи, с помощью которых можно организовать VLAN-Per-User, закупили небольшой, для начала, канал у ближайшего магистрала. Встал у них вопрос о том, чем же считать пользователям трафик/денежки и нарезать скоростя.
Общая схема сети должна выглядеть следующим образом:



Кому интересно, далее под катом очень много букв и картинок.
Читать дальше →

Стратегия оптимизации веб-проекта с использованием MySQL

Reading time5 min
Views8.3K

Введение


В жизни любого крупного веб-проекта, особенно на PHP, но, в целом, это касается любого серверного ЯП, пригодного для веб-разработки, обычно наступает понимание, что «так дальше жить нельзя», и что настал момент, когда нужно провести оптимизацию работы сайта, чтобы он перестал тормозить (хотя бы на production).

Интересно, что, как правило, даже тяжелые фреймворки (вроде Symfony или RoR) на «медленных» языках, в production-окружении работают достаточно сносно по скорости, а основные «тормоза» вызываются SQL-запросами и неграмотным кешированием (к примеру, инициализация достаточно сложной и большой конфигурации проекта на Symfony занимает около 80 мс, а времена исполнения страницы, при этом, иногда достигают секунды и более).

Если вы смогли определить, что это — ваш случай, и ваш проект на MySQL, то эта статья может вам помочь принять конкретные меры и исправлению ситуации с закреплением результата и предотвращением возникновения откровенных проблем с СУБД впоследствии.
Читать дальше →

Хочется взять и расстрелять, или ликбез о том, почему не стоит использовать make install

Reading time5 min
Views177K
К написанию сей заметки меня сподвигло то, что я устал делать развёрнутые замечания на эту тему в комментариях к статьям, где в качестве части инструкции по сборке и настройке чего-либо для конкретного дистра предлагают выполнить make install.
Суть сводится к тому, что эту команду в виде «make install» или «sudo make install» использовать в современных дистрибутивах нельзя.

Но ведь авторы программ в руководствах по установке пишут, что нужно использовать эту команду, возможно, скажете вы. Да, пишут. Но это лишь означает, что они не знают, какой у вас дистрибутив, и дистрибутив ли это вообще, может, вы вступили в секту и обкурилисьчитались LFS и теперь решили под свою хтоническую систему скомпилять их творение. А make install является универсальным, хоть и зачастую неправильным способом это сделать.

Читать дальше →

17 простых советов для повышения продуктивности

Reading time3 min
Views33K
Эти советы — не очередная компиляция из книг и блогов, посвященных продуктивности. Каждый совет основан на моём личном опыте. На каждый совет я мог бы дать гарантию, если бы гарантия на советы была возможна в принципе.

Вступление окончено, переходим к советам!
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity