• «Защита от дурака» или как запретить изменение/удаление важных папок

      Доброе время суток.

      Исторически так сложилось, что для своих мелких проектов держу виртуалку. Однако, так как я не использую ее ресурсы на 100%, решил не жадничать и пустил похоститься несколько друзей. Сайтов не много, деньги за хостинг не беру, поэтому ставить что-то вроде cpanel счел перебором. К тому же я их тех, кто предпочитает настраивать все вручную. Структуру выбрал следующую:

      /home/hostuser/vhosts/sitename.ru/{tmp,web,logs}
      

      И тут возник вопрос: как запретить пользователю удалять/переименовывать папки в sitename.ru? Если будет отсутствовать папка web, то и apache и nginx выдадут предупреждение, но все-равно загрузятся. Но если удалить/переместит папку logs, то и apache и nginx не запустятся из-за ошибки (по мне довольно странное поведение). Папка hostuser полностью принадлежит данному пользователю и его личной группе (hostuser:hostuser), а это означает, что при желании он сможет удалить любую внутреннюю папку/файл, даже если она будет принадлежать суперпользователю. Так как же запретить удаление/перемещение, чтобы пользователь (случайно или специально) не сломать весь хостинг?
      Читать дальше →
    • Обновление timezone в logstash

      Всем привет! Уже как пару месяцев наша компания успешно использует в продакшене связку logstash-elasticsearch-kibana для сбора и обработки достаточно большого объема логов. Заглянув в kibana после перевода часов обнаружилось, что все логи идут с отставанием по времени в 1 час. Под катом хочу поделиться решением проблемы с timezones в связке logstash-elasticsearch-kibana и готовой сборкой logstash с обновленными timezones.
      Читать дальше →
    • Оптимизируем VPS за 5$ (512MB RAM / 1 CPU) так, что сайт на wordpress выдерживает нагрузку в 42,735,587 хитов в день

      Когда вы приобретаете сервер VPS с 256MB или 512MB оперативной памяти на борту и лишь часть мощности процессора, то использовать для таких сервисов как MySQL/PHP/Apache настройки по умолчанию является очень плохой идеей. В настоящее время у меня запущено 3 сайта на самом дешевом тарифном плане с 512MB RAM/1 CPU. Не уверен полностью, но посещаемость составляет порядка 5-10 тысяч посетителей в день. Далее я хочу поделиться инструкцией как оптимизировать LAMP используя всего лишь 512 MB и при этом не уходя в swap. Обычно при такой настройки используется 256 – 378Mb памяти и все работает довольно быстро.

      Определяем доступную память и активность swap.

      Перед началом оптимизации давайте взглянем на количество используемой памяти. Для этого необходимо выполнить следующую команду:

      $ free -m

      Для того. чтобы посмотреть список запущенных процессов и отсортировать их по использованию памяти, необходимо выполнить вот такую команду:

      $ ps -eo pmem,pcpu,rss,vsize,args | sort -k 1 -r | less


      Настраиваем LAMP сервер для потребления малого количества оперативной памяти. Останавливаем, отключаем ненужные сервисы

      Первый и очевидный вопрос, который необходимо задать — это «какие сервисы мне не нужны в использовании?». Недавно, я обнаружил очень удобную утилиту для управления сервисами. Она называется "sysv-rc-conf" и управляет сервисами при помощи псевдографики и флажками. Выгдялит вот так:



      Здесь представлен список сервисов, которые я изменил.

      • Postfix. Этот сервис позволяет отправлять и получать почтовые email сообщения для домена. Я использую для этих целей Google Apps для отправки почты и mailchimp для новостных подписчиков. Таким образом я остановил и отключил этот сервис.
      • Bind9. Он нужен для управления DNS записями Вашего домена. Его можно отключить, так как все DNS записи хранятся у хостера.
      • SSHD. Имеются и другие реализации, которые используют гораздо меньше памяти, но они не поддерживают sftp, поэтому данный сервис я оставил без изменений.


      Не запускайте X-сервер, выключите все ненужные сервисы и настройте Apache, MySQL, PHP только с базовой необходимой функциональностью.
      Читать дальше →
    • Лучшие плагины для Sublime Text

        WebInspector


        Мощный инструмент для дебаггинга JavaScript, полноценный инспектор кода для Sublime. Фичи: установка брейкпоинтов прямо в редакторе, показ интерактивной консоли с кликабельными объектами, остановка с показом стек трейса и управление шагами дебаггера. Все это работает на ура! А еще есть Fireplay от Mozilla, который позволяет подключаться к Firefox Developer tools и максимально простой дебаггер JSHint.



        Читать дальше →
      • V838 Единорога: видео взрыва звезды, собранное из фотографий телескопа Хаббл за 4 года



          Созвездие Единорога, до 2000 года будучи известным лишь астрономам, в начале нового тысячелетия, можно сказать, прославилось. Все дело в том, что в этом созвездии внезапно взорвалась звезда, V838 Единорога, без всяких предпосылок к взрыву.

          При этом фотографии взрыва были получены телескопом Хаббл, который 4 года (с 2002 по 2006) регулярно снимал звезду (вернее, то, что от нее осталось). Все эти фотографии были скомпилированы в единое видео, продолжительностью в 50 секунд.

          Читать дальше →
        • Как укрыться от осадков после атомного взрыва в вашем городе

          • Translation


          С развалом СССР и формальным окончанием холодной войны весь мир вздохнул с облегчением: призрак глобальной ядерной войны отступил. Увы, но это весьма спорное мнение: военное противостояние хоть и в разы снизило свой накал, но всё же не исчезло. Ряд других стран активно увеличивают свои атомные арсеналы и развивают возможности средств доставки. Данный факт и без того не делает небо над головой более мирным, а растущий риск попадания подобного оружия в руки радикалов любых мастей и подавно не добавляет оптимизма. Теперь добавьте к этому Чернобыль и Фукусиму…

          Иными словами, миллионы людей ежедневно рискуют оказаться поблизости от эпицентра наземного или воздушного атомного взрыва. На эксплуатации этого ужастика писатели, сценаристы и игроделы заработали и заработают кучу денег. Подавляющее большинство людей считают атомный взрыв чем-то апокалиптическим, от чего нет спасения. Многие в буквальном смысле разделяют позицию «обернуться в простыню и ползти на кладбище». Однако находятся люди, которые пытаются придумать, как можно выжить в такой ситуации.
          Читать дальше →
        • Каково это — жить в звездном кластере?

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

            image

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

            Но есть места, где звезд гораздо, гораздо больше. Это — звездные скопления, или кластеры. Что, если бы наше Солнце находилось в таком скоплении? Тогда бы наше небо выглядело весьма необычно (для нынешних нас, само собой). Команда астрономов, сотрудничающих с Astronomy Magazine, решила показать, на что может быть похоже — жить на планете, чья система находится внутри звездного скопления.

            Читать дальше →
          • Работа в Google: Ложка дегтя

              image

              Disclaimer: Я работаю в Google на позиции инженера уже почти 4 года.

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

              Думаю, все ниже написанное почти в полной мере справедливо и для других похожих компаний. Поэтому я буду писать “компания” вместо Google. Не ручаюсь, но подозреваю (и подозрения подтверждаются большим количеством знакомых), что примерно то же самое можно сказать и о Microsoft, и о Facebook, и об Amazon, и о других приличных больших компаниях.
              Читать дальше →
            • Батники против эксплойтов (версия для Windows XP)

              Как-то мне на глаза попалась публикация на Хабре — «Батники против эксплойтов». В ней рассказывалось, как одним движением запускать браузер из под специально созданного юзера, у которого нет прав запускать приложения. По замыслу автора это может защитить от эксплойтов и Drive-by атак.

              Эта, несомненно полезная статья, имела один недостаток — она была написана для Windows 7 (о чём в ней честно было написано).

              После того как Windows XP сняли с поддержки — у меня остался нетбук с хрюшей и идея усилить безопасность системы, адаптировав решение, показалась вполне естественной.
              Читать дальше →
              • +19
              • 20k
              • 8
            • Еще один «велосипед» по сбору данных о пользователях ПК в домене

              Доброго дня всем.
              Решил опубликовать свой вариант решения по сбору данных о пользователях ПК в домене. Просто чтобы не пропало зря и возможно кому-нибудь пригодилось.

              Данное решение позволяет собирать данные о ПК в домене по мере их подключения к сети, входах пользователей на эти ПК и установленного ПО в момент включения. Началось все с желания поэкспериментировать со средами программирования (Java, Qt), а закончилось довольно полезной утилитой для повседневной работы системного администратора. Серверная часть работает под Linux, но я думаю также будет работать и под любой системой где можно запустить JVM. Клиент для отображения данных изначально собирался под Linux. При компиляции под Windows единственная сложность — не было в комплекте Qt драйвера для обращения к серверу MySQL, который пришлось собирать отдельно.

              Из чего состоит это решение:
              1. Небольшая агентская программа на чистом С. Запускается дважды через доменные политики. Первый раз при включении ПК с правами системы — собирает данные об оборудовании, установленных программах и сразу отправляет эти данные на сервер. Второй раз — с правами пользователя при его входе в систему для сбора данных о логине пользователя. Данные на сервер отправляет простым XML. Среда разработки Visual C++ 2010 Express.
              2. Сервер на языке Java без каких либо фреймворков. Постоянно ожидает сообщения на порту 8889 и складывает полученные данные в базу данных MySQL.
              3. Клиент для отображение данных разработан в среде Qt4/5 (изначально Qt4, затем собирался в Qt5). Обращается напрямую к серверу БД MySQL.

              Далее приведен исходный код для каждой из указанных частей.
              Читать дальше →
              • +13
              • 12.6k
              • 5
            • Поиск жилья без посредников в 21-м веке

                Полагаю, все мы однажды искали себе жилье. Кто-то — в собственность, большинство, вероятно, в аренду. Все, кто хоть раз пытался найти реальные предложения на досках объявлений, знают — это нереально. Такого количества спама нет, пожалуй, ни в одной другой сфере. После того, как окунешься в этот ад, обычно руки начинают чесаться применить свою IT-шность на благо ближнему. Результатом для меня стал проект Sobnik, о котором я и хочу рассказать.

                Sobnik — это плагин для Chrome, который помечает посредников на досках объявлений. Пока работает только с Avito.ru, в ближайшем будущем я добавлю Irr.ru и другие крупные доски. Всех, кто сидит на чемоданах и кому не терпится попробовать, прошу в Google Web Store. Под катом я расскажу о технической стороне проекта, о его перспективах и о моих наблюдениях за противником посредниками. Любители критиковать чужой JS-код также велкам, исходник клиентской части плагина доступен на github.

                Читать дальше →
              • BookTitres.com — изучайте языки по иностранной литературе в оригинале, слушая и читая

                  Многие используют фильмы с субтитрами, чтобы слушать речь и одновременно читать. Хочу предложить альтернативу — слушать аудио книги и читать их текст с подстрочным переводом и доступом к каждой отдельной фразе. Они доступны онлайн на сайте BookTitres.com .

                  Самое интересное


                  Уже доступные для чтения книги вы можете найти в разделе "Слушайте и читайте" на сайте. Книга "Хоббит" закончена — это 11 часов аудио и 13800 фраз. Пройдя её полностью, вы ощутите заметное улучшение своего английского. Особенно, если будете повторять за чтецом каждую фразу. От других книг в основном сделаны несколько первых глав. Если хотите продолжения — ответьте на опрос и укажите желаемую книгу.

                  Я не столько преследую цели пиара, сколько хочу рассказать о самой идее и попросить советов, как её развивать. Вы можете оставить пожелания, заглянув на сайт по ссылкам выше. А если интересно почитать о возникновении идеи и её технической реализации, то загляните под кат.

                  В конце статьи приводятся вопросы, на которые мне бы очень хотелось получить ответы хабра людей.
                  Читать дальше →
                • Немного о Iptables, Iproute2 и эмуляции сетевых проблем

                    Однажды мне понадобилось в Zabbix сделать мониторинг потери пакетов между мастером и репликами (репликация плохо себя чувствует если канал не очень хороший). Для этого, в Zabbix есть встроенный параметр icmppingloss, на удаленный хост отправляется серия ICMP пакетов и результат фиксируется в системе мониторинга. И вот параметр добавлен, триггер настроен. Казалось бы задача выполнена, однако как говорится «Доверяй, но проверяй». Осталось проверить что триггер сработает когда потери действительно будут. Итак, как сэмулировать потерю пакетов? Об этом, да и не только, пойдет речь под катом.

                    image

                    Читать дальше →
                    • +46
                    • 33.1k
                    • 8
                  • Шпаргалка начинающего Debian/Ubuntu администратора по управлению пакетами

                      Долгое время меня глодало незнание того, как сделать некоторые элементарные вещи в дебиановских менеджерах пакетов, но, как часто бывает, спросить рядом было не у кого, а до написания куда-либо руки не доходили. И вот наконец вопросы вызрели и я написал свой вопрос в дебиановскую рассылку. Естественно оказалось что пропустил что-то очевидное, но и узнал много неочевидных полезностей, посему решил набросать шпаргалку, авось кому пригодится.
                      Читать дальше →
                    • 50 лучших цитат про Linux

                      • Translation
                      Доброго дня!

                      Наверное, многим известно, что 25 августа — день рождения Linux. Именно сегодня, 23 года назад, Линус Торвальдс отправил свое знаменитое письмо. В этот знаменательный день я хотел бы порадовать русскоговорящее сообщество переводом подборки цитат, которого, как выяснилось, до сегодняшнего дня в полном объеме не существовало.
                      Под катом — кладезь мудрости, сарказма, иронии и косяков перевода. Добро пожаловать!
                      Читать дальше →
                    • Tortilla — весь TCP и DNS трафик из виртуальной машины через TOR


                      Пошаговое руководство по направлению всего TCP и DNS трафика из виртуальной машины через TOR.

                      Тема уже поднималась в 2012 году: «Как направить весь tcp-трафик с гостевой Windows системы через Tor» с использованием tun2socks и виртуального сетевого адаптера TUN/TAP от OpenVPN.

                      Однако на Black Hat USA 2013 был представлен доклад «TOR… ALL-THE-THINGS!», в котором анонсировали новый инструмент от Jason Geffner из CROWDSTRIKE INC под названием Tortilla. Также Tortilla упоминается в официальном Tor FAQ в разделе What should I do if I can't set a proxy with my application?. Это виртуальный сетевой адаптер, который просто установить и использовать.
                      Читать дальше →
                    • Централизуем управление сетью

                        image

                        Если по роду своей деятельности вы являетесь сетевым или ИТ-администратором, то наверняка вам приходилось сталкивались с ситуациями, когда существующим программным и аппаратным техническим решениям, находящимся в эксплуатации, недостаёт прозрачного, интуитивно понятного, централизованного средства управления, отладки и мониторинга.

                        Что бы ни придумывали разработчики систем управления сетевой инфраструктурой в попытке предоставить техническому персоналу удобный инструмент с графическим интерфейсом, который заменил бы собой все другие средства управления, по сей день рабочей лошадкой “сетевой братии” остаётся всем уже давно знакомый и привычный CLI (она же командная строка). Здесь я не буду рассматривать небольшие решения, вроде домашних роутеров или коммутаторов для SMB, поскольку они изначально не предполагают широкий выбор поддерживаемых технологий и протоколов, и простого web интерфейса там вполне достаточно (хотя какой-никакой CLI есть и на них). Речь скорее идёт о комплексных распределенных сетях, включающих многоуровневую архитектуру, логическую и физическую сегментацию, географическое распределение, а также разнородность представленных производителей оборудования. На мой взгляд причина тому далеко не одна:

                        Читать дальше →
                      • Идентификация загружаемых модулей ядра Linux [ч.1]: исходные тексты

                          В этом посте я расскажу о своих поисках признаков того, как можно определить, что из некоторых файлов исходных текстов собирается загружаемый модуль ядра Linux (LKM), а не обычный исполняемый файл.
                          Допустим, что информации о назначении исходников нет или её пытаются преднамеренно скрыть.
                          Upd: Объём кода > 4 Гб и надо оперативно выделить только те исходники, которые реализуют модули ядра.





                          #01 __KERNEL__ 


                          При сборке исходных текстов определён символ препроцессора __KERNEL__.

                          Читать дальше →
                          • +25
                          • 11.8k
                          • 5
                        • Все сломано

                          • Translation
                          Представляю вашему вниманию перевод статьи Everything is Broken, опубликованной в мае 2014 года на The Medium американской журналисткой Quinn Norton, которая специализируется на проблемах информационной безопасности. Статья рассматривает современный мир информационных технологий и место вопросов безопасности и конфиденциальности данных в нем. Статья местами содержит довольно резкую критику, тем не менее, поднимаемые в ней проблемы актуальны и не решены по сей день. В конечном счете, в этом, отчасти, и заключается работа журналиста — задавать неудобные вопросы.



                          Однажды, один мой знакомый получил контроль над тысячами компьютеров. Он нашел уязвимость в программном обеспечении и принялся испытывать ее. В процессе, он понял что, теоретически, может получить полный административный контроль над всей сетью, где используется данное программное обеспечение. Он загрузил скрипт на удаленный сервер и запустил его, чтобы посмотреть что произойдет, а сам отправился спать. На следующее утро он решил проверить результат работы, и каково же было его удивление, когда он обнаружил, что имеет полный доступ на 50 000 компьютерах. Испугавшись ответственности за содеянное, он тут же остановил процесс и принялся удалять свои скрипты. В конечном счете, как он мне сказал, он даже уничтожил жесткий диск, бросив его в огонь. Я не могу выдать вам личность этого человека, потому что не хочу чтобы он оказался в Федеральной тюрьме, что и произошло бы, если бы он сообщил о найденной уязвимости и своем эксперименте кому-то еще. Вам наверное интересно, пофикшен ли сейчас это баг? Возможно да, но точно не благодаря моему знакомому. Это история не так уж и удивительна. Проводите время на хакерской сцене и вы услышите истории и похуже.

                          Трудно объяснить обычным людям, какое большое количество технологий работает весьма посредственно и что их жизни уже давно тесно переплетены с IT-инфраструктурой, подобно прессованной проволоке.

                          Компьютеры и компьютерные технологии — все сломано.
                          Читать дальше →