Как обеспечить базовый уровень безопасности VPS/VDS сервера? — безопасность хостинг vps

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд
Загрузка...

Вопрос:


Приветствую. Не так давно стал использовать VPS/VDS сервер, поэтому возник такой вопрос — что нужно сделать, чтобы устранить явные дыры в безопасности? Меня интересует именно настройка сервера, не безопасность в скриптах и программном коде. Сервер работает на Ubuntu. Хотелось бы услышать общие рекомендации и на что стоит обратить внимание.

Автор вопроса: Nik

Если ставили из официального релиза, вся безопасность уже есть.

Если вы будете единственным реальным пользователем в системе, то дополнительно делать ничего не надо. Все просто: вам не нужно разграничивать права. Исключение — системные пользователи (memcache, mysql, www-data), но опять же, apt-get уже все сделает за вас. Системные пользователи имеют номера до 1000 (cat /etc/adduser.conf | grep FIRST_GID, cat /etc/passwd). Постоянно работать под root все равно не безопасно.

В случае такого «монополизма» пароль на MySQL ставить не обязательно, так как по-умолчанию он слушает только localhost. Более того, memcache и Mongodb по-умолчанию ставятся без пароля, так как доступны только с localhost, а время, когда на одном сервере работала куча пользователей (бухгалтера, программисты, etc), которых нужно было «фильтровать» по доступам, прошло.

root также по-умолчанию отключен, а веб-сервера работают под www-data.

fail2ban я бы не стал ставить, если у вас криптостойкий пароль (попробуйте команду apg), логин не root и у вас не паранойи. Можете чуть позже посмотреть по логам — будет брутфорс рута, а имя вашего пользователя никто кроме вас не знает. А сервер не сообщает, что такого пользователя нет. Это мое ИМХО.

А вот действительно важные вещи — своевременное обновление ПО (мой первый шаред сломали через уязвимость в каком-то графическом пакете). Наверняка слышали про громкие уязвимости типа heartbleed и Meltdown. Также не выполняйте без анализа сомнительные скрипты, скачанные на каком-то там форуме.

Второе — правильная настройка устанавливаемого ПО, тут по обстоятельствам, смотрите документацию.

  • решили сделать ftp — будьте готовы к утечке паролей, так как логин-пароль будет передан через несколько серверов в открытом виде. Альтернатива — sftp. Рекомендую также чрутинг chroot
  • даете другу попользоваться сервером — chroot, пароль на MySQL, open_basedir и запрет на shell_exec и другие аналогичные функции для PHP (см. php.ini).

Третье. Чаще всего ломают через уязвимости в веб-скриптах. Это отдельная большая тема. Примеры:

  • утечка исходного кода и паролей сайтов из репозитория .git в корне веб-документов. Добавьте блокировку через правило .htaccess (apache) или nginx или создавайте репозиторий выше корня веб-документов.
  • разрешите писать веб-серверу только в единственный каталог — «загрузки» (upload/, media/upload/, etc), а выполнение скриптов из этого каталога — запретите
  • используйте git, с его помощью возможно понять «что поменялось»
  • не используйте сомнительные сборки CMS и регулярно обновляйте их версии
  • если вы — разработчик, обязательно прочтите про XSS и SQL инъекции

Если вы решили зайти еще дальше, то:

Оказывается, есть организация с именем Center for Internet Security, которая публикает внушительные документы по теме — в том числе, например, Ubuntu 14.04 Benchmark

Источник

Вам также может быть интересно:

Drag and Drop UWP — c# xaml mvvm
Вопрос: Нужно иметь возможность добавлять изображения в приложение путем перетаскивания из файловой системы У Grid включил AllowDrop. Но как добавить перетаскиваемые изображения в коллекцию? Т.к. те ...
Растягивание Высоты , Резина — html css html5
Вопрос: Здравствуйте! Реализовал резиновый дизайн. Растягивается ширина, но длина по % не растягивается. Возможно ли это реализовать? Или так и задумано, растягивание только на ширину ...
Jquery position().left Как быть на мобильниках? — javascript jquery css
Вопрос: На мобильных устройствах, если зумишь экран, position всегда разный. $('g').position().left Как сделать так, чтобы он не менял свои значения? Автор вопроса: ...
Jquery position().left Как быть на мобильниках? — javascript jquery css
Вопрос: На мобильных устройствах, если зумишь экран, position всегда разный. $('g').position().left Как сделать так, чтобы он не менял свои значения? Автор вопроса: ...
requestAnimation и очередность отрисовки — javascript canvas
Вопрос: Здравствуйте! Реализовал 2D игру и в Edge работает все плавно и круто, но в Firefox'e подвисает, сказали, что нужно сделать, чтобы раз-два момент и все ...
Контекстное/всплывающее меню в Android — java android popup
Вопрос: Есть ли техническая возможность сделать приложение, добавляющее свое контекстное или всплывающее меню в любом месте системы? Хочу, чтобы при выделении любого текста появлялась дополнительная кнопка ...
Контекстное/всплывающее меню в Android — java android popup
Вопрос: Есть ли техническая возможность сделать приложение, добавляющее свое контекстное или всплывающее меню в любом месте системы? Хочу, чтобы при выделении любого текста появлялась дополнительная кнопка ...
Завершить службы циклом — c# windows-service
Вопрос: Можно ли остановить службы циклом? У меня есть список служб, занёс их в List List<string> name = new List<string> { "AdobeARMservice", "RemoteRegistry", "TermService", "Messenger", "SSDPSRV", ...
Завершить службы циклом — c# windows-service
Вопрос: Можно ли остановить службы циклом? У меня есть список служб, занёс их в List List<string> name = new List<string> { "AdobeARMservice", "RemoteRegistry", "TermService", "Messenger", "SSDPSRV", ...
RecyclerView — разная разметка — android recyclerview
Вопрос: Смотрел, я смотрел в сторону RecyclerView и наконец решил кинуть ListView и на тебе! В "плохом прошлом" мой ListView использовался для двух разметок. Сейчас я ...
RecyclerView — разная разметка — android recyclerview
Вопрос: Смотрел, я смотрел в сторону RecyclerView и наконец решил кинуть ListView и на тебе! В "плохом прошлом" мой ListView использовался для двух разметок. Сейчас я ...
Как правильно передать массив аргументом для пользовательской функции — php
Вопрос: Если не брать в функцию все это, тогда результат работает. А если вот так в функции все выполнять, тогда PHP ругается: «Invalid ...
Как правильно передать массив аргументом для пользовательской функции — php
Вопрос: Если не брать в функцию все это, тогда результат работает. А если вот так в функции все выполнять, тогда PHP ругается: «Invalid ...
ViewPager внутри ViewPager — такие матрешки работают? — android viewpager
Вопрос: Доброго времени суток. Назрела новая задача. Есть каталог мастеров. При выборе конкретного мастера открывается его страница (активити с ViewPager), и теперь мастеров можно перелистывать свайпом. ...
Почему id всегда 1 Yii2 — yii авторизация
Вопрос: Использую все как по документации. Для получения информации о пользователе использую $identity = $model->findOne(]); И каким бы не был email, id пользователя всегда ...