История про один нехороший хостинг

Рассказ про одного моего знакомого, который просил помочь найти заразу в его сайтах.

Публикация в группе: Хочу сделать сам! (PHP, MySQL, PostgreSQL, HTML, CSS, JavaScript)

Категории группы: Мои истории

Здравствуйте! Я хочу рассказать про одну историю, с чем недавно столкнулся. Один знакомый ко мне обратился за советом, что ему делать, если на его сайтах появляются вирусы. Один сайт яндекс уже заблокировал. Каждый день на его хостинге появляются во случайных папках нехорошие файлы. Некоторые файлы так же случайным образом, но чаще всего файл index.php, редактируется и в самое начало файла добавляется нехороший код.

Я ему говорю: — Ты напиши в техническую поддержку с просьбой ограничить доступ у сайтов. Чтобы каждый сайт не мог выходить за пределы своей папки. Просто по умолчанию у хостингов настроено так, что каждый сайт имеет доступ ко всему аккаунту. А так мы каждый твой сайт ограничим и определим, с какого сайта зараза лезет.

Коллега спрашивает: — А вдруг они не в курсе, как это делается, можешь подсказать, где что делать?

Я: — В PHP есть специальный параметр “open_basedir”. Через этот параметр мы даём разрешение к тем папкам, к которым мы укажем. Его надо заменить примерно на такие значения “php_admin_value open_basedir “/var/www/user/data/www/domen.com:/var/www/user/data/mod-tmp:/tmp.””

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

На встречу они пошли, и коллеге быстро дали ответ — “Здравствуйте, мы добавили этот параметр для одного из ваших сайтов. Проверьте и если всё хорошо, добавим и на другие ваши сайты.” Я сразу не обратил внимания на слово ДОБАВИЛИ. Пошёл проверять. Создал я файл “proverka.php” и написал код:

<?php
phpinfo();

Скриншот вывод функции phpinfo()

Через этот код можно увидеть многие настройки PHP для данного сайта. Сразу стал искать параметр “open_basedir”, чтобы убедиться, что да, у параметра стоит нужная папка. Но увидел не то, что ожидал. У этого параметра вообще ничего не стояло. Повторюсь, я думал, как на всех хостингах будет указанно минимум путь до аккаунта (/var/www/user/data), но там было просто пусто. У меня в голове проскочила мысля “Нет, ну не может быть такое, не верю”. Открыл файл, который только что создал для проверки параметра и заменил на такой код:

<?php
echo file_get_contents('/еtс/pаsswd');
Примечание!

/еtс/pаsswd — буквы а, c, e — были специально написаны русскими буквами. Для проверки не забываем заменить на латинские.

 

Вот что я увидел:

Скриншот вывод системного файла /еtс/pаsswd

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

Блин, и как же сказать своему знакомому, что его хваленый хостинг, полная фигня. Собрался с мыслями и пишу ему: — Не знаю, как тебе сказать. Но у того параметра вообще ничего не стоит. И я могу прочитать почти любой файл на этом сервере. Сейчас конечно попробую прочитать файл конфигурации твоих сайтах. Посмотреть, что они вообще добавили.

Я подумал, может после изменения этого параметра, что-то пошло не так. Искренне надеялся.
Открываю опять же этот файл для проверки и пишу туда вот такой код:

<?php
$test = scandir('/etc/httpd/conf/vhosts/user');
echo '<pre>';
print_r($test);

 

Вот что я увидел:

Скриншот вывод списка файлов конфигурации apache пользователя

Через этот код я посмотрел список всех файлов конфигурации apache от аккаунта знакомого. Но не забываем, что я могу посмотреть,и конфигурации от других пользователей этого сервера. И потом через вот такой код:

<?php
echo file_get_contents('/etc/httpd/conf/vhosts/user/domen.com');

 

Вот что я увидел:

Скриншот вывод файл конфигурации apache одного сайта

Посмотрел конфигурацию сайта. После изучения конфигурации, увидел, что они не в ту область добавили параметр. Они добавили в область “<Directory /var/www/user/data/www/domen.com>”, а надо было сюда “<VirtualHost 127.0.0.1:8080>”.

В общем, я скопировал все конфигурации сайтов от коллеги и отредактировал, как должно быть. Запаковал и скинул своему знакомому с пометкой скинуть в тех. поддержку, чтобы те распаковали и заменили в этой папке “/etc/httpd/conf/vhosts/user”.

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

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

PS: поговорил я с другом на эту тему, он начальник тех. поддержки одной крупной хостинговой компании. Он говорит, что “open_basedir” могли убрать специально из-за CMS Bitrix. Так как bitrix требует, чтобы этот параметр был пустой, якобы даёт прирост к скорости (но лично я не верю).

Он так же добавил, что у них есть специальный тарифный план для битрикса, где не указан этот параметр, но у них настроена защита по-другому, т.е. всё ровно пользователь не сможет выйти за пределы своей папки. Поэтому, смотрим параметр “open_basedir”, если пустой, то пробуем открыть файл “/еtс/pаsswd”. Если смогли прочитать, то есть дыра в безопасности у этого хостинга. Если не смогли прочитать, вернуло пустоту, то всё нормально.

Примечание!

/еtс/pаsswd — буквы а, c, e — были специально написаны русскими буквами. Для проверки не забываем заменить на латинские.

4,3

Автор публикации

не в сети 1 месяц

Леонид Никитин

1 610
Программист из Казахстана. Отзывчивый и целеустремлённый человек. В общении - приятная личность.
flagКазахстан. Город: Караганда
Комментарии: 64Публикации: 5Регистрация: 26-08-2019
Женский клуб Ирины Успешной
Комментарии: 21
  1. Ирина Успешная

    Поучительная история. Надо себе куда-то записать твои рекомендации.

    60
  2. Oksana

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

    70
    1. Olenka

      Аналогично!

      10
    2. Сергей Бобков

      Даже мне, мужику, данная тема вновинку)))

      30
      1. Voronov

        Солидарен :!:

        10
  3. Алёна Брагина

    Хм, ещё бы понять, что обозначают все эти “кракозябры”, я про коды. Я тоже сохраню эту статью в свои запасники, чтобы потом к ней вернуться.

    90
    1. Екатерина Любимова

      Ничего, Алёнка, скоро сами будем писать коды ;-)

      10
  4. Леонид Никитин (автор)

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

    50
  5. Yuliya

    Конечно, нужно знать о уязвимых местах. Но пока я ничегошеньки не поняла из написанного кода :grin: Надеюсь, что не за горами то время, когда я смогу читать его легко.

    60
    1. Olenka

      Ага, и для меня пока тёмный лес все эти знаки :grin: Но готова упорно познать этот язык.

      30
    2. Iraida

      Аналогичная ситуация :smile: Скажем так – просмотрела и закрыла.

      10
      1. Леонид Никитин (автор)

        Спасибо за комментарии, теперь понимаю в какую сторону делать упор :cool:
        Действительно статья вышла не в то время.

        10
  6. Леонид Никитин (автор)

    Уважаемые, я правильно понял многие не заметили ещё одну статью “Учимся создавать файлы и поговорим немного о тегах”? И наверное разочаровались. Но я 2 Две статьи опубликовал :)
    Вот до этой статьи это та которая, следующая статья для тех, кто только начинает понимать. А это статья это просто самостоятельный рассказ и выбивается из серии.
    Для удобства я разделил на категории. Для новичков рекомендую вот эту категорию https://irinauspeshnaya.ru/gruppy/hochu-sdelat-sam-php-mysql-postgresql-html-css-javascript/?group-tag=uchimsya-verstat .

    30
    1. Ирина Успешная

      Скорее всего так и произошло. Не отчаивайся, со временем все разберутся :smile: ;-)

      40
    2. Oksana

      Да, я только сейчас увидала, что статей то оказывается в группе больше, чем я читала :smile:

      20
    3. Сергей Бобков

      Чтобы не обижаться на нас за невнимательность, практикуйте первое время сообщения в личку, я про чат. Ведь они дублируются и на почту. Вот я зашёл сегодня в свой ящик и вижу, что с сайта несколько писем меня ожидают – я прямиком туда :smile: ;-) Ну а среди недели реально не всегда бывает время на интернет.

      40
      1. Екатерина Любимова

        Да, удобно в чате. Именно так я узнала о новой статье.

        20
      2. Леонид Никитин (автор)

        Да не обижался я) Просто заметил, что комментируют и оценивают только эту статью, вот и пришёл к такому выводу.
        Я понимаю почему так произошло, долго не писал и бах родил сразу две статьи)

        10
      3. Виктория Зимина

        Действительно очень удобно.

        10
  7. Voronov

    У меня к вам вопрос: “Вы можете порекомендовать какой-то надёжный хостинг?”. Дело в том, что друг создал сайт, у вас в Казахстане, но почему-то блокируется работа с российскими пользователями. Вот и попросил меня прозондировать эту инфу. Я вспомнил про вас ;-) и вашу статью в группе.

    10
    1. Леонид Никитин (автор)

      Здравствуйте! Я раньше брал VPS в России и замечал, так же, что время от времени не доступен был мой VPS. Да, наши могут по какой-то причине временно блокировать. В России я брал в аренду виртуальный сервер тут best-hoster.ru. Всё устраивало. Проблем у меня не было. Пришлось уйти из-за временных у нас блокировок.
      Насколько помню данный сайт хостится тут printhost.ru.
      Давным-давно брал VPS ещё тут ihor.ru.
      Как Вы уже поняли, я беру только виртуальные сервера. Там просто гибкости для меня больше. Но к сожалению и знание ОС Linux надо. Кстати кому-то будет интересно читать и про настройку Linux серверов)
      А в плане хостинга сам себе уже давно не беру. Кстати у нас в Казахстане и дороже хостинг стоит, чем в России.

      0
Добавить комментарии
Войти с помощью: 
История про один нехороший хостинг
Мобильное приложение Faberlic
Авторизация
*
*
Войти с помощью: 
Регистрация
*
*
*
Вы должны согласиться
Войти с помощью: 
Генерация пароля
Написать письмо

Я подтверждаю, что ознакомлен и согласен с Политикой конфиденциальности этого сайта и даю Согласие на обработку персональных данных

Задать вопрос

Я подтверждаю, что ознакомлен и согласен с Политикой конфиденциальности этого сайта и даю Согласие на обработку персональных данных

Обратный звонок
Закажите звонок (бесплатный)

Я подтверждаю, что ознакомлен и согласен с Политикой конфиденциальности этого сайта и даю Согласие на обработку персональных данных