Аудит безопасности хостинга и других совместно используемых систем на Linux

Многопользовательские системы: плюсы и минусы

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

Самым типичным примером многопользовательского использования Linux является виртуальный хостинг. На английском он называется shared hosting, то есть совместный хостинг. Если вы не веб-мастер и думаете, что никогда не сталкивались с совместным хостингом, то вы ошибайтесь. Например, HackWare.ru размещён именно на таком сервере.

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

Совместное использование одного «железного» компьютера очень экономично и удобно. Такой подход может быть реализован на компьютерах в общественных местах, в организациях, даже вы у себя дома можете настроить работу в ОС таким способом. Тот же самый сервер (если он достаточно мощный) может обслуживать сотни клиентов и хостить (размещать на себе) одновременно тысячи сайтов!

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

Для кого-то это может стать сюрпризом (хотя про это говорят на протяжении уже долгого времени), но плохо настроенных хостингов хватает. Я помню, как на своём первом хостинге с PHP (бесплатный, с доменом третьего уровня) я «заглядывал» в чужие папки. Больше всего там было фишинговых сайтов похожих на mail.ru… Но не в этом дело – дело в том, что неправильно настроенные хостинги никто не отменял!

Взлом хостинга

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

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

Для затравки, создайте на своём хостинге файл с именем test.php и скопируйте в него:

<?php
error_reporting('ALL');

if ($files = array_slice(scandir('/'), 2)) {
    echo 'In the <b>root</b> folder we found:';
    foreach ($files as $value) {
        echo '<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' . $value;
    }
    echo '<br /><br />';
} else {
    echo '<br />We cannot open the root directory.';
}

if ($files2 = array_slice(scandir('/home'), 2)) {
    echo 'In the <b>home</b> folder we found:';
    foreach ($files2 as $value) {
        echo '<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' . $value;
    }
    echo '<br /><br />';
} else {
    echo '<br />We cannot open the home directory.';
}

if ($passwd = file_get_contents('/etc/passwd')) {
    $passwd = preg_replace("/\r\n|\r|\n/", '<br />', $passwd);
    echo '<b>/etc/passwd</b> contains:<br />';
    echo "$passwd";
} else {
    echo '<br />We cannot open the /etc/passwd file.';
}

Я написал все сообщения на английском, просто из-за того, что у кириллицы может возникнуть проблема с кодировкой – если вам непонятно, что они значат, используйте Гугл-переводчик.

Теперь откройте в веб-браузере адрес вида ваш_сайт/test.php. Я выбрал для проверки первый попавшийся результат по запросу «хостинг с тестовым периодом», посмотрим, что у меня получилось.

Содержимое корневой папки сервера – ещё раз, НЕ вашей папки, а всего сервера:

Содержимое папки /home (в этой директории находятся директории всех пользователей):

Содержимое файла /etc/passwd (только верхушка, там ещё много строк внизу):

Начало обнадёживающее!

Справедливости ради нужно сказать, что хотя этот сервер и позволяет лазить по его папкам, как-либо скомпрометировать сервер или пользовательские данные мне не удалось – права на важные файлы, а также на папки пользователей, настроены правильно, т.е. доступ к файлам сайтов и баз данных не получить.

Приведённые строки кода PHP очень просты, они не делают ничего сверхъестественного – мы просто открываем папки и файлы, а права доступа на эти файлы и папки настроены так, что их может открыть кто угодно – вот и весь «фокус».

Как на виртуальном хостинге запускать Bash команды

Можно продолжить изучать внутренности хостинга используя PHP скрипт, можно даже забросить туда Weevely или какой-нибудь из webshells (если выберите этот путь, то рекомендую c99unlimited.php – классика!). Но я хочу вводить команды оболочки Bash – мне (может быть и вам) это привычнее – а ещё нам это в любом случае очень скоро пригодится!

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

Создайте файл test2.php и скопируйте в него:

<?php
error_reporting('ALL');

$cmd = 'ping -c 4 ya.ru 2>&1';

echo '<pre>';
passthru($cmd);
echo '</pre>';

Теперь откройте в веб-браузере ссылку вида сайт.ru/test2.php. Прямо в браузере вы должны увидеть результаты пинга:

Если вы их видите – значит всё работает!

В файле test2.php для выполнения различных команд нужно менять только строку

$cmd = 'ping -c 4 ya.ru 2>&1';

Точнее говоря, то, что внутри кавычек. Здесь ping -c 4 ya.ru – это команда, которую мы отправили для выполнения в операционной системе. А 2>&1 означает перенаправлять ошибки в стандартный вывод – это полезно, чтобы мы могли видеть причину проблемы, если команда не сработала.

Попробуйте ещё несколько команд:

ls -al

Результат:

ls -al /

Результат:

cat /etc/passwd

Результат:

Информация о сетевых интерфейсах:

ifconfig

Информация о файловой системе:

df -a

Просмотр ARP таблицы сервера:

arp -a

Если вам даже эти команды (ls, cat) кажутся незнакомыми, то настоятельно рекомендую ознакомиться со статьями (они небольшие):

Как на виртуальном хостинге запустить Bash скрипт

Вы также можете запускать Bash скрипты на shared-хостинге. Это удобно для выполнения автоматизированных проверок, также при запуске сложных команд из PHP файла нам нужно должным образом экранировать кавычки, что не очень удобно и требует времени.

Нам нужно узнать абсолютный путь до папки, где мы разместим наш скрипт. Чтобы это сделать, выполните команду

pwd

Я получил значение /home/p/pentest2ru/pentest2.ru

Допустим, файл с Bash скриптом мы назовём test.sh, тогда для его запуска нужно выполнить команду вида

bash /путь/до/скрипта/test.sh

В моём случае, команда будет такой:

bash /home/p/pentest2ru/pentest2.ru/test.sh

Итак, для запуска Bash скрипта я отредактировал файл test2.php и у меня получилось так:

<?php
error_reporting('ALL');

$cmd = 'bash /home/p/pentest2ru/pentest2.ru/test.sh 2>&1';

echo '<pre>';
passthru($cmd);
echo '</pre>';

Теперь в той же папке что и test2.php, создайте файл test.sh. Запишем в него, например:

ping -c 4 ya.ru

Теперь если мы откроем в веб-браузере адрес вида сайт.ru/test2.php, то мы увидим результат выполнения скрипта test.sh.

Проверка хостинга

Для выполнения аудита хостинга можно воспользоваться, например, программой LinEnum.

Эта программа предназначена для проверки многопользовательских систем на предмет неправильной настройки и возможности повышения привилегий. Она полностью написана на Bash – т.е. отлично подходит для запуска на виртуальном хостинге.

Программа состоит из одного единственного файла и для её работы не требуются зависимости. Скачайте этот файл: https://raw.githubusercontent.com/rebootuser/LinEnum/master/LinEnum.sh и загрузите себе на хостинг.

Запустите с помощью test2.php, указав правильный путь до файла, также используйте ключ -t.

Мой пример (у вас будет другой абсолютный путь до скрипта):

<?php
error_reporting('ALL');

$cmd = 'bash /home/p/pentest2ru/pentest2.ru/LinEnum.sh -t 2>&1';

echo '<pre>';
passthru($cmd);
echo '</pre>';

Для запуска скрипта вновь откройте в браузере ссылку вида сайт.ru/test2.php

Когда скрипт завершит свою работу, будет выведен большой отчёт.

Не нарушает ли LinEnum условия пользования хостингом?

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

Это скриншоты использования ресурсов системы на хостинг аккаунтах, где я опробовал скрипт, видно, что активность по аудиту хостинга осталась даже здесь:

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

Анализ результатов LinEnum

Чтобы понять результаты проверки хостинга, нужно иметь некоторые представления об операционной системе Linux.

Права доступа к файлам в Linux

Вы увидите, что папки (в Linux они называются директориями) и файлы выводятся примерно в следующем виде:

drwx------ 3 pentest2ru notcustomer  4096 Jul  9 07:01 .
drwx------ 5 pentest2ru notcustomer  4096 Jul  7 21:17 ..
-rw-r--r-- 1 pentest2ru notcustomer    34 Jul  7 21:46 1.sh
drwx------ 2 pentest2ru notcustomer  4096 Jul  7 20:19 cgi-bin
-rw------- 1 pentest2ru notcustomer    35 Jul  7 20:19 .htaccess
-rw------- 1 pentest2ru notcustomer  1055 Jul  7 20:19 index.html
-rw-r--r-- 1 pentest2ru notcustomer   205 Jul  7 20:37 i.php
-rw------- 1 pentest2ru notcustomer 44413 Jul  7 20:30 LinEnum.sh
-rw-r--r-- 1 pentest2ru notcustomer   100 Jul  9 07:01 test2.php
-rw------- 1 pentest2ru notcustomer   909 Jul  8 18:59 test.php

Первая часть (например, drwx------) это информациях о правах доступа. Далее (например, pentest2ru) – это имя пользователя владельца файла, затем (например, notcustomer) это имя группы. Затем идёт дата, время и название файла.

Для каждого файла в Linux можно установить разные права доступа для:

  • владельца
  • группы
  • всех

Рассмотрим строки

  • drwx------
  • -rw-------
  • lrwxrwxrwx

Самый первый символ (d, l или ) говорит о типе файла (в Linux вообще всё является файлами). Если это d – значит это директория (папка). Если это l – значит это символьная ссылка, и если это (прочерк), значит это самый обычный файл.

Затем идут девять символов. Первые три показывают права доступа к файлу владельца, следующие три – права доступа у группы, и последние три – права доступа у всех.

Буква r означает наличие права на чтение, буква w – права на запись, буква x – права на выполнение. Прочерк означает отсутствие данного разрешения.

Пример -rw-r--r--

Самый первый символ (прочерк) говорит о том, что это обычный файл. Затем идут символы rw-. Эта группа показывает права владельца файла. В данном случае у владельца есть право на чтение файла и его запись, но нет права на его выполнение. Следующие три символа r-- означают, что у группы есть права на чтение файла, но нет прав на его запись и выполнение. Последние три символа (такие же r--) и означают такие же права (разрешение чтения, но запрет на запись и выполнение) для всех.

Ещё пример: drwxr-xr-x

Эта строка означает, что перед нами директория (d), следующие три символа (rwx) говорят о том, что владелец может читать и записывать этот файл. Буква x для директорий означает возможность зайти в неё, например, с помощью программы cd. Следующие символы (r-x) говорят о том, что члены группы могут прочитать содержимое и зайти в эту папку, но не могут записать что-либо в неё. Последние три символа (r-x) говорят о том, что кто-угодно может также прочитать содержимое папки и зайти в неё, но не может ничего туда записать.

Доступ к чужим файлам на хостинге

К примеру, мы в содержимом файла /etc/passwd с помощью LinEnum (или просто выполнив команду cat) увидели там следующее:

cronosgoru:x:1074:700::/home/c/cronosgoru:/usr/bin/scponly
oceanzayru:x:1075:701::/home/o/oceanzayru:/usr/bin/scponly
yourissite:x:1076:701::/home/y/yourissite:/usr/bin/scponly
bvshramkog3:x:1077:700::/home/b/bvshramkog3:/bin/bash
dsfgfdmail:x:1078:701::/home/d/dsfgfdmail:/usr/bin/scponly
leaderagru2:x:1079:700::/home/l/leaderagru2:/usr/bin/scponly
masixbetru:x:1080:700::/home/m/masixbetru:/usr/bin/scponly
pchelka222:x:1081:700::/home/p/pchelka222:/usr/bin/scponly
split93com2:x:1082:700::/home/s/split93com2:/usr/bin/scponly
anarimwapm:x:1083:701::/home/a/anarimwapm:/usr/bin/scponly
sitethemru5:x:1084:700::/home/s/sitethemru5:/usr/bin/scponly

Можно понять, что папки /home/c/cronosgoru, /home/o/oceanzayru и так далее – это каталоги пользователей, где хранятся сайты. Если мы можем посмотреть их содержимое:

ls -l /home/o/oceanzayru

а тем более содержимое файлов сайта (например, файла wp-config.php, в котором WordPress в открытом виде хранит пароль MySQL), то это означает у хостинга очень большие проблемы в плане обеспечения безопасности клиентов и вам на таком хостинге делать нечего (кстати, о том, как сбросить пароль WordPress имея доступ к базе данных или файловой системе, можно почитать здесь).

Другие проблемы безопасности хостинга

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

Т.е. невозможно рассмотреть все варианты неправильной настройки сервера в одной статье – дальнейшее исследование зависит от вашей подготовленности.

Шпаргалка по сбору информации о локальной системе и повышению привилегий

Автор LinEnum собрал много команд, которые могут стать началом в Local Linux Enumeration. Ссылка на оригинал: https://www.rebootuser.com/?p=1623

Информация о ядре, операционной системе и устройствах:

Команда Результат
uname -a Печатает всю доступную информацию о системе
uname -r Выпуск ядра
uname -n Имя хоста системы
hostname Как предыдущее
uname -m Архитектура ядра Linux (32 или 64 бита)
cat /proc/version Информация о ядре
cat /etc/*-release Информация о дистрибутиве
cat /etc/issue Как предыдущее
cat /proc/cpuinfo Информация о ЦПУ
df -a Информация о файловой системе

 

Пользователи и группы:

Команда Результат
cat /etc/passwd Список всех пользователей системы
cat /etc/group Список всех групп системы
for i in $(cat /etc/passwd 2>/dev/null| cut -d":" -f1 2>/dev/null);do id $i;done 2>/dev/null Список всех uid и соответствующих членов группы
cat /etc/shadow Показать хеши всех пользователей – Привилегированная команда
grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0 { print $1}' Список всех аккаунтов суперпользователей
finger Пользователи, в настоящее время подключённые к системе
pinky Как предыдущее
users Как предыдущее
who -a Как предыдущее
w Кто в настоящее время выполнил вход и что они делают
last Список последних зашедших пользователей
lastlog Информация о том, когда все пользователи заходили
lastlog –u %username% Информация о том, когда заходил определённый пользователь
lastlog |grep -v "Never" Полный список ранее заходивших пользователей

 

Информация о пользователях и привилегиях:

Команда Результат
whoami Показ имени пользователя текущего юзера
id Информация о текущем пользователе
cat /etc/sudoers У кого есть привилегии root – Привилегированная команда
sudo -l Может ли текущий пользователь делать что-нибудь как root
sudo -l 2>/dev/null | grep -w 'nmap|perl|'awk'|'find'|'bash'|'sh'|'man'|'more'|'less'|'vi'|'vim'|'nc'|'netcat'|python|ruby|lua|irb' | xargs -r ls -la 2>/dev/null Может ли текущий пользователь запускать какие либо ‘интересные’ бинарники как root и если да, то показать бинарные разрешения

 

Информация о рабочем окружении:

Команда Результат
env Показать переменные среды
set Показать переменные и функции среды
echo $PATH Информация о путях (Path)
history Показать историю команд текущего пользователя
pwd Таписать текущую рабочую директорию, т.е. в какой папке сейчас находимся
cat /etc/profile Показать стандартные системные переменные окружения
cat /etc/shells Показать доступные оболочки

 

Интересные файлы:

Команда Результат
find / -perm -4000 -type f 2>/dev/null Найти SUID файлы
find / -uid 0 -perm -4000 -type f 2>/dev/null Найти SUID файлы принадлежащие root
find / -perm -2000 -type f 2>/dev/null Найти GUID файлы
find / -perm -2 -type f 2>/dev/null Найти файлы, в которые может записывать кто-угодно
find / ! -path "*/proc/*" -perm -2 -type f -print 2>/dev/null Найти файлы, в которые может записывать кто-угодно за исключением тех, которые в /proc
find / -perm -2 -type d 2>/dev/null Найти директории, в которые может записывать кто-угодно
find /home –name *.rhosts -print 2>/dev/null Найти конфигурационные файлы rhost
find /home -iname *.plan -exec ls -la {} ; -exec cat {} 2>/dev/null ; Найти *.plan файлы, вывести права доступа и содержимое (cat)
find /etc -iname hosts.equiv -exec ls -la {} 2>/dev/null ; -exec cat {} 2>/dev/null ; Найти hosts.equiv, вывести права доступа и содержимое (cat)
ls -ahlR /root/ Посмотреть, имеете ли вы доступ к другим пользовательским директориям для поиска интересных файлов
cat ~/.bash_history Показать историю команд текущего пользователя
ls -la ~/.*_history Показать различные файлы истории текущего пользователя
ls -la /root/.*_history Можем ли мы прочитать файлы истории рута
ls -la ~/.ssh/ Проверка интересных ssh файлов в текущей пользовательской директории
find / -name "id_dsa*" -o -name "id_rsa*" -o -name "known_hosts" -o -name "authorized_hosts" -o -name "authorized_keys" 2>/dev/null |xargs -r ls -la Поиск информации о SSH ключах/хосте
ls -la /usr/sbin/in.* Проверка конфигурации служб inetd
grep -l -i pass /var/log/*.log 2>/dev/null Поиск в файлах журналов ключевых слов (в этом примере ищется ‘pass’) и показать совпадения
find /var/log -type f -exec ls -la {} ; 2>/dev/null Список файлов в определённой директории (/var/log)
find /var/log -name *.log -type f -exec ls -la {} ; 2>/dev/null Список .log файлов в определённой директории (/var/log)
find /etc/ -maxdepth 1 -name *.conf -type f -exec ls -la {} ; 2>/dev/null Список .conf файлов в /etc (рекурсивно на 1 уровень)
ls -la /etc/*.conf Как предыдущее
find / -maxdepth 4 -name *.conf -type f -exec grep -Hn password {} ; 2>/dev/null Поиск .conf файлов (рекурсивно на 4 уровня) и вывод номеров строк, где встречается слово ‘password’
lsof -i -n Список открытых файлов (вывод может зависить от прав аккаунта)
head /var/mail/root Можем ли мы читать почту root

 

Информация о службах:

Команда Результат
ps aux | grep root Просмотр служб, запущенных от root
ps aux | awk '{print $11}'|xargs -r ls -la 2>/dev/null |awk '!x[$0]++' Поиск бинарника процесса и разрешений
cat /etc/inetd.conf Список процессов, управляемых inetd
cat /etc/xinetd.conf Как предыдущее, но для xinetd
cat /etc/xinetd.conf 2>/dev/null | awk '{print $7}' |xargs -r ls -la 2>/dev/null Очень ‘грубая’ команда для извлечения связанных бинарников из xinetd.conf и показаа разрешений для каждого
ls -la /etc/exports 2>/dev/null; cat /etc/exports 2>/dev/null Разрешения и содержимое /etc/exports (NFS)

 

Работы/задачи:

Команда Результат
crontab -l -u %username% Показ расписания работ для указанного пользователя – Привилегированная команда
ls -la /etc/cron* Обзор расписания работ (часы, дни, месяцы и т.д.)
ls -aRl /etc/cron* | awk '$1 ~ /w.$/' 2>/dev/null Что ‘другие’ могут писать в директории /etc/cron*
top Список текущих задач

 

Сеть, маршрутизация, коммуникации:

Команда Результат
/sbin/ifconfig -a Список всех сетевых интерфейсов
cat /etc/network/interfaces Как предыдущее
arp -a Показать ARP взаимодействия
route Показать информацию о маршруте
cat /etc/resolv.conf Показать адрес используемого DNS сервера
netstat -antp Список всех TCP сокетов и связанных PID (-p Привилегированная команда)
netstat -anup Список всех UDP сокетов и связанных PID (-p Привилегированная команда)
iptables -L Список правил файервола – Привилегированная команда
cat /etc/services Просмотр сопоставлений номеров портов/служб

 

Установленные программы:

Команда Результат
dpkg -l Установленные пакеты (Debian)
rpm -qa Установленные пакеты (Red Hat)
sudo -V Версия sudo – есть ли для неё эксплойт?
httpd -v Версия Apache
apache2 -v Как предыдущее
apache2ctl (или apachectl) -M Список модулей Apache
mysql --version Подробносоти об установленной версии MYSQL
psql -V Подробносоти об установленной версии Postgres
perl -v Подробносоти об установленной версии Perl
java -version Подробносоти об установленной версии Java
python --version Подробносоти об установленной версии Python
ruby -v Подробносоти об установленной версии Ruby
find / -name %program_name% 2>/dev/null (к примеру nc, netcat, wget, nmap и другие) Поиск ‘полезных’ программ (netcat, wget и т.д.) — имена программы нужно ввести самому
which %program_name% (к примеру nc, netcat, wget, nmap и другие) Как предыдущее
dpkg --list 2>/dev/null| grep compiler |grep -v decompiler 2>/dev/null && yum list installed 'gcc*' 2>/dev/null| grep gcc 2>/dev/null Список доступных компиляторов
cat /etc/apache2/envvars 2>/dev/null |grep -i 'user|group' |awk '{sub(/.*export /,"")}1' Под каким аккаунтом запущен Apache

 

Common Shell Escape Sequences:

Команда Программа(ы)
:!bash vi, vim
:set shell=/bin/bash:shell vi, vim
!bash man, more, less
find / -exec /usr/bin/awk 'BEGIN {system("/bin/bash")}' ; find
awk 'BEGIN {system("/bin/bash")}' awk
--interactive nmap
echo "os.execute('/bin/sh')" > exploit.nse
sudo nmap --script=exploit.nse
nmap
perl -e 'exec "/bin/bash";' Perl

Надёжный хостинг

Если вы можете просматривать содержимое папок других пользователей – то сразу пакуйте свой сайт в чемоданы и переезжайте на другой хостинг!

Если вам нужен хороший хостинг, где первый встречный не будет лазить по вашим папкам и файлам, то рекомендую этот. Именно здесь я держу и HackWare.ru, и Kali.Tools и практически все свои сайты c 2009 (!) года (дата регистрации моего первого домена второго уровня).

Если вы не хотите селить свой сайт в «коммунальной квартире», то вы можете арендовать VPS – виртуальный частный сервер. Это не просто папка на сервере, а настоящая виртуальная машина, как те, которые вы можете создать в VirtualBox. На эту виртуальную машину вы можете установить любую операционную систему и настроить её на своё усмотрение. Кроме вас в этом сервере никого не будет (поэтому он и называется private, то есть «частный»). Очень недорогой но качественный VPS хостинг здесь. Я им пользуюсь уже несколько лет (у меня там сайт SuIP.biz) – я хостингом доволен.

Рекомендуется Вам:

2 комментария to Аудит безопасности хостинга и других совместно используемых систем на Linux

  1. env — Показать переменные окружения

    set — Как предыдущее

    env|wc -l; set|wc -l
    59
    2998

    Сдаётся есть "небольшие" отличия =)

    env переменные среды

    set переменные и функции среды.

    • Alexey Alexey:

      Приветствую! Спасибо за верное уточнение – сейчас поправлю здесь в таблице. Я пронадеялся на автора подборки и не перепроверил.

Добавить комментарий

Ваш e-mail не будет опубликован.