Настройка сетевой безопасности в ubuntu. Настройка сети, (сетевых карт) интерфейсов Ubuntu

Безусловно, можно сказать, что Linux более безопасен (защищен), чем Windows. Безопасность в Linux встроенная, а не прикрученная где то сбоку, как это реализовано в Windows. Безопасность системы Linux охватывает область от ядра до рабочего стола, но есть шансы для хакеров навредить вашему домашнему каталогу (/home).

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

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

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

Начните с основ безопасности Linux

Шагнем к основам (), которые подойдут почти к любым
дистрибутивам Linux.

Зашифруем файловую систему в Linux для более полной безопасности Linux

Пользовательские пароли не решат проблему, если вы хотите чтобы действительно никто не смог прочитать ваш домашний каталог (/home) или определенный размер байтов. Можно его так, чтобы даже пользователь с высшими привилегиями root не сможет сунуть свой нос.

Удаляйте щепетильные файлы так, чтобы их больше никто не восстановил

Если вы решили продать или подарить свой компьютер или носитель информации, не думайте, что простое форматирование безвозвратно удалит ваши файлы. Можно на ваш Linux установить инструмент secure-delete, в который входит утилита srm, предназначенная для безопасного удаления файлов.

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

Как и все операционные системы, Linux склонен к накоплению всякого хлама при работе различных приложений. И это не его вина Linux, так как различные приложения, например, браузеры текстовые редакторы и даже видео плееры, работают не на уровне ядра и накапливают временные файлы. Можно установить утилиту BleachBit по универсальному удалению мусора.

Анонимный серфинг, скрываем свой IP — очень важно для безопасности вашей личности под ос Linux


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

Атакующим будет сложно до вас добраться, если они не могут определить ваше место нахождения. Заметаем следы не сложной настройкой совместно работающих двух утилит под названием privoxy и tor.

По моему мнению, соблюдение и настройка всех этих правил обезопасит вас и ваш компьютер на 90%.

P.S. Я пользуясь облаком под названием dropbox. Храню в нем свои старые и новые, ещё не опубликованные статьи. Удобно иметь доступ к своим файлам с любой точки земли и на любом компьютере. При написании статей для сайта в текстовом редакторе, сохраняю свои текстовые документы с паролем и только после этого закачиваю на сервер dropbox. Никогда не стоит пренебрегать лишней безопасностью, которая сыграет вам только на руку.

Без сомнения, только что установленная система Linux намного устойчивее к различным вредоносным программам, шпионскому программному обеспечению и действиям хакеров, чем такая же версия Windows. Но тем не менее большинство систем Linux используют настройки по умолчанию, которые не совсем безопасны по своей сути.

Некоторые дистрибутивы Linux рассчитаны на то, чтобы быть максимально безопасными из коробки, но, как правило, они вызывают очень много трудностей у новичков, особенно не специалистов в сфере компьютерной безопасности.

Ubuntu - это самый популярный дистрибутив из всех используемых на сегодняшний день дистрибутивов Linux. Это связано с множеством факторов, одним из них является то, что он наиболее простой для начинающих пользователей. В этом есть свои положительные стороны, но также по этой причине в системе есть несколько слабых мест, которые разработчики оставили, выбрав удобство пользователя. В этой статье мы рассмотрим как выполняется настройка безопасности Ubuntu 16.04. Эти настройки не так сложны, но они помогут вам сделать систему более стойкой к самым распространенным методам атак.

Первым делом вы должны знать, что нужно держать свою систему постоянно обновленной и в самом актуальном состоянии. Постоянно обнаруживаются новые уязвимости в ядре и программном обеспечении, примером может послужить та же Drity COW. Разработчики закрывают эти баги очень быстро, но чтобы применить эти исправления на своей системе вам нужно ее своевременно обновлять.

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

1. Настройка общей памяти

По умолчанию весь объем общей памяти /run/shm доступен для чтения и записи с возможностью выполнения программ. Это считается брешью в безопасности и многие эксплойты используют /run/shm для атак на запущенные сервисы. Для большинства настольных, а особенно серверных устройств рекомендуется монтировать этот файл в режиме только для чтения. Для этого нужно добавить такую строчку в /etc/fstab:

sudo vi /etc/fstab

none /run/shm tmpfs defaults,ro 0 0

Но, тем не менее, некоторые программы не будут работать, если /run/shm доступен только для чтения, одна из них - это Google Chrome. Если вы используете Google Chrome, то мы должны сохранить возможность записи, но можем запретить выполнение программ, для этого добавьте такую строчку вместо предложенной выше:

none /run/shm tmpfs rw,noexec,nosuid,nodev 0 0

2. Запретить использовать su для не администраторов

Помимо вашего аккаунта, в Ubuntu есть еще гостевая учетная запись, которую вы можете использовать чтобы дать попользоваться вашим ноутбуком другу. Утилита su позволяет выполнять программы от имени другого пользователя. Это очень полезно при администрировании системы и жизненно важно при правильном применении. Но, тем не менее, к этой утилите могут получить доступ все пользователи Linux, а это уже злоупотребление. Чтобы запретить гостевому аккаунту доступ к команде su выполните:

sudo dpkg-statoverride --update--add root sudo 4750 /bin/su

3. Защитите свой домашний каталог

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

chmod 0700 /home/имя_пользователя

Она устанавливает права таким образом, чтобы владельцу папки, то есть вам было доступно все, а другие пользователи даже не могли посмотреть содержимое. В качестве альтернативы можно установить разрешения 750, которые предоставят доступ на чтение в вашей папке для пользователей из той же группы, что и вы:

chmod 0750 /home/имя_пользователя

Теперь безопасность Ubuntu 16.04, а особенно ваших личных данных будет немного выше.

4. Отключите вход по SSH от имени root

По умолчанию в Ubuntu вы можете войти в систему по SSH от имени суперпользователя Несмотря на то, что вы устанавливаете пароль для пользователя root, это может быть потенциально опасно, поскольку если пароль очень простой, то злоумышленник сможет его перебрать и получить полный контроль над компьютером. Возможно, в вашей системе не установлена служба sshd. Чтобы проверить выполните:

Если вы получите сообщение connection refused, то это будет значить, что SSH сервер не установлен и вы можете пропустить этот шаг. Но если он установлен, то его нужно настроить с помощью конфигурационного файла /etc/ssh/sshd_config. Откройте этот файл и замените строку:

PermitRootLogin yes

PermitRootLogin no

Готово, теперь по ssh в вашу систему будет сложнее прорваться, но настройка безопасности в ubuntu 16.04 еще не завершена.

5. Установите фаервол

Возможно, на вашем компьютере установлен не только сервер ssh, но и служба баз данных и веб-сервер apache или nginx. Если это домашний компьютер, то, скорее всего, вы бы не хотели чтобы кто-то еще мог подключиться к вашему локальному сайту или базе данных. Чтобы это предотвратить нужно установить фаервол. В Ubuntu рекомендуется использовать gufw, так как он разработан специально для этой системы.

Для установки выполните:

sudo apt install gufw

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

6. Защита от MITM атак

Суть MITM атаки или атаки "Человек посередине" в том, что другой человек перехватывает все пакеты, которые вы передаете серверу, таким образом, может получить все ваши пароли и личные данные. Не ото всех атак подобного рода мы можем защититься, но довольно популярна в публичных локальных сетях разновидность MITM атак - ARP атака. С помощью особенностей протокола ARP злоумышленник выдает перед вашим компьютером себя за роутер и вы отправляете все свои пакеты с данными ему. От этого можно очень просто защититься с помощью утилиты TuxCut.

В официальных репозиториях программы нет, поэтому для ее установки нужно скачать пакет с GitHub:

wget https://github.com/a-atalla/tuxcut/releases/download/6.1/tuxcut_6.1_amd64.deb

Затем установите полученный пакет:

sudo apt install tuxcut_6.1_amd64.deb

Перед тем, как запускать программу, запустите ее сервис:

sudo systemctl start tuxcutd

Главное окно утилиты выглядит вот так:

Здесь отображены IP адреса всех пользователей, подключенных к сети, а также соответствующий каждому из них MAC адрес. Если отметить галочку Protection Mode, то программа будет защищать от ARP атак. Вы можете использовать ее в публичных сетях, например, в общественном wifi, где опасаетесь за свою безопасность.

Выводы

Ну вот и все, теперь настройка безопасности Ubuntu 16.04 завершена и ваша система стала намного безопаснее. Мы перекрыли самые распространенные векторы атак и методов проникновения в систему используемых хакерами. Если вы знаете другие полезные способы улучшить безопасность в Ubuntu пишите в комментариях!

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

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

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

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

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

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

1. Dirty COW

Первой в нашем списке будет свежая уязвимость, которая была обнаружена этой осенью. Название Dirty COW расшифровывается как Copy on Write. Ошибка возникает в файловой системе во время копирования при записи. Это локальная уязвимость, которая позволяет получить полный доступ к системе любому непривилегированному пользователю.

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

Уязвимость была в ядре около 10 лет, но после обнаружения была быстро устранена, хотя остались еще миллионы устройств Andoid в которых ядро не обновлялось и не думает и где эту уязвимость можно эксплуатировать. Уязвимость получила код CVE-2016-5195.

2. Уязвимость Glibc

Уязвимость получила код CVE-2015-7547. Это была одна из наиболее обсуждаемых уязвимостей среди проектов с открытым исходным кодом. В феврале 2016 выяснилось, что библиотека Glibc имеет очень серьезную уязвимость, которая позволяет злоумышленнику выполнить свой код на удаленной системе.

Важно заметить что Glibc - это реализация стандартной библиотеки Си и С++, которая используется в большинстве программ Linux, в том числе сервисов и языков программирования таких как PHP, Python, Perl.

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

Уязвимость была в библиотеке еще с 2008 года, но после обнаружения достаточно быстро были выпущены патчи.

3. Heartbleed

В 2014 году была обнаружена одна из самых серьезных по масштабу и последствиям уязвимость. Она была вызвана ошибкой в модуле heartdead программы OpenSSL, отсюда и название Heartbleed. Уязвимость позволяла злоумышленникам получить прямой доступ к 64 килобайтам оперативной памяти сервера, атаку можно было повторять, пока вся память не будет прочитана.

Несмотря на то, что исправление было выпущено очень быстро, пострадало очень много сайтов и приложений. Фактически уязвимыми были все сайты, использующие HTTPS для защиты трафика. Злоумышленники могли получить пароли пользователей, их личные данные и все что находилось в памяти в момент атаки. Уязвимость получила код CVE-2014-0160.

4. Stagefright

Если уязвимость получила кодовое имя, это однозначно означает, что она заслуживает внимания. Уязвимость Stagerfight не исключение. Правда, это не совсем проблема Linux. Stagefright - это библиотека для обработки мультимедийных форматов в Android.

Она реализована на C++, а значит обходит все защитные механизмы Java. В 2015 году было обнаружено целую группу уязвимостей, которые позволяли выполнить удаленно произвольный код в системе. Вот они CVE-2015-1538, CVE-2015-1539, CVE-2015-3824, CVE-2015-3826, CVE-2015-3827, CVE-2015-3828 и CVE-2015-3829.

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

5. Уязвимость нулевого дня ядра

Это локальная уязвимость, которая позволяет повысить права текущего пользователя до root из-за ошибки в системе работы с криптографическими данными ядра, которые хранятся в памяти. Она была обнаружена в феврале 2016 года и охватывала все ядра начиная от 3.8, а это значит что уязвимость существовала 4 года.

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

6. Уязвимость в MySQL

Эта уязвимость получила код CVE-2016-6662 и затронула все доступные версии сервера баз данных MySQL (5.7.15, 5.6.33 и 5.5.52), базы данных Oracle и клоны MariaDB и PerconaDB.

Злоумышленники могли получить полный доступ к системе через SQL запрос передавался код, который позволял заменить my.conf на свою версию и перезагрузить сервер. Также была возможность выполнить вредоносный код с правами суперпользователя.

Решения MariaDB и PerconaDB выпустили патчи достаточно оперативно, Oracle отреагировал, но намного позже.

7. Shellshock

Эта уязвимость была обнаружена в 2014 году перед тем как просуществовала 22 года. Ей был присвоен код CVE-2014-6271 и кодовое имя Shellshock. Эта уязвимость сравнима по опасности с уже известной нам Heartbleed. Она вызвана ошибкой в интерпретаторе команд Bash, который используется по умолчанию в большинстве дистрибутивов Linux.

Bash позволяет объявлять переменные окружения без аутентификации пользователя, а вместе в ними можно выполнить любую команду. Особой опасности это набирает в CGI скриптах, которые поддерживаются большинством сайтов. Уязвимы не только серверы, но и персональные компьютеры пользователей, маршрутизаторы и другие устройства. По сути, злоумышленник может выполнить удаленно любую команду, это полноценное удаленное управление без аутентификации.

Уязвимости были подвержены все версии Bash, включая и 4.3, правда после обнаружения проблемы разработчики очень быстро выпустили исправление.

8. Quadrooter

Это целая серия уязвимостей в Android, которая была обнаружена в августе 2016. Они получили коды CVE-2016-5340, CVE-2016-2059, CVE-2016-2504, CVE-2016-2503. Ошибке подвержены более 900 миллионов Android устройств. Все уязвимости были обнаружены в драйвере ARM процессора Qualcomm и все они могут использоваться для получения root доступа к устройству.

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

9. Уязвимость в OpenJDK

Это очень серьезная уязвимость linux 2016 в Java машине OpenJDK с кодом CVE-2016-0636, она затрагивает всех пользователей, работающих с Oracle Java SE 7 Update 97 и 8 Update 73 и 74 для Windows, Solaris, Linux и Mac OS X. Эта уязвимость позволяет злоумышленнику выполнить произвольный код за пределами Java машины, если вы откроете специальную страницу в браузере с уязвимой версией Java.

Это позволяло злоумышленнику получить доступ к вашим паролям, личным данным, а также запускать программы на вашем компьютере. Во всех версиях Java ошибка была очень оперативно исправлена, она просуществовала с 2013 года.

10. Уязвимость протокола HTTP/2

Это целая серия уязвимостей, которая была обнаружена в 2016 году в протоколе HTTP/2. Они получили коды CVE-2015-8659, CVE-2016-0150, CVE-2016-1546, CVE-2016-2525, CVE-2016-1544. Уязвимостям были подвержены все реализации этого протокола в Apache, Nginx Microsoft, Jetty и nghttp2.

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

А вы в безопасности?

В этой статье мы рассмотрели самые опасные уязвимости Linux 2016, 2015 и 2014 годов. Большинство из них могли причинить серьезный вред системам если бы не были вовремя исправлены. Благодаря открытому исходному коду такие уязвимости Linux эффективно обнаруживается и быстро исправляются. Только не забывайте обновлять свою систему. Проблема остается только с Android. Некоторые устройства уже не получают обновлений и этой проблеме пока нет решения.

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

Мы решили начать цикл статей посвященных сетевой безопасности с Ubuntu Server, так как решения на данной платформе вызывают большой интерес у наших читателей и так как многие считают, что Linux решения безопасны сами по себе.

В тоже время роутер с выделенным IP-адресом является "воротами" к локальной сети и только от администратора будет зависеть будут эти ворота надежной преградой или окажутся дачной калиткой закрытой на гвоздик.

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

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

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

С чего начинается безопасность?

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

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

К безопасной зоне следует отнести внутренние ресурсы сети доступ к которым извне отсутствует и для которых допустим низкий уровень безопасности. Это могут быть рабочие станции, файловые сервера и т.п. устройства доступ к которым ограничен локальной сетью предприятия.

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

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

По возможности потенциально опасную зону следует вынести в отдельную подсеть - демилитаризованную зону (DMZ), которая отделена от основной сети дополнительным брандмауэром.

Устройства локальной сети должны иметь доступ только к тем службам в DMZ, которые им необходимы, например SMTP, POP3, HTTP, остальные соединения должны блокироваться. Это позволит надежно изолировать злоумышленника или вредоносное ПО, воспользовавшихся уязвимостью в отдельном сервисе, демилитаризованной зоной, закрыв им доступ к основной сети.

Физически DMZ можно организовать поставив отдельный сервер / аппаратный брандмауэр или добавив дополнительную сетевую карту в роутер, однако в последнем случае придется уделить пристальное внимание безопасности роутера. Но в любом случае обеспечить безопасность одного сервера гораздо проще, чем группы серверов.

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

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

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

Неплохо завести практику менять пароли раз в 30-40 дней. Понятно, что подобная политика способна вызвать неприятие со стороны пользователей, но вы должны всегда помнить, что пароли типа 123 или qwerty равносильны ключу оставленному под ковриком.

Безопасность сервера - ничего лишнего.

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

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

Сконфигурируйте службы, обслуживающие локальную сеть (например squid), таким образом, чтобы они принимали запросы исключительно с локального интерфейса. Чем меньше служб доступно извне, тем лучше.

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

Сканер показывает открытые порты, пытается определить тип работающей службы и, если это удалось, уязвимости для нее. Как видим - правильно сконфигурированная система вполне безопасна, однако не стоит оставлять ключ под ковриком, наличие на роутере открытых портов 1723 (VPN) и 3389 (RDP, проброшен на терминальный сервер) хороший повод подумать о политике паролей.

Отдельно стоит поговорить о безопасности SSH, данная служба обычно используется администраторами для удаленного управления сервером и представляет повышенный интерес для злоумышленников. Настройки SSH хранятся в файле /etc/ssh/sshd_config , все описываемые ниже изменения вносятся в него. В первую очередь следует запретить авторизацию под пользователем root, для этого добавьте опцию:

PermitRootLogin no

Теперь злоумышленнику придется подбирать не только пароль, но еще и логин, при этом ему все равно будет неизвестен пароль суперпользователя (надеемся он не совпадает с вашим паролем). Все административные задачи при подключении извне стоит выполнять из-под sudo , входя в систему непривилегированным пользователем.

Стоит явно указать список разрешенных пользователей, при этом можно использовать записи типа user@host , которая разрешает указанному пользователю подключаться только с указанного хоста. Например чтобы разрешить пользователю ivanov подключаться из дома (IP 1.2.3.4) следует добавить следующую запись:

AllowUser [email protected]

Также запретите использование устаревшего и менее безопасного протокола SSH1, разрешив только вторую версию протокола, для этого приведите следующую строку к виду:

Protocol 2

Несмотря на все принятые меры попытки подключится к SSH и иным публичным сервисам все равно будут, чтобы предотвратить подбор паролей воспользуйтесь утилитой fail2ban , которая позволяет автоматически банить пользователя после нескольких неудачных попыток авторизации. Установить ее можно командой:

Sudo apt-get install fail2ban

Данная утилита готова к работе сразу после установки, однако мы бы советовали сразу изменить некоторые параметры, для этого внесите изменения в файл /etc/fail2ban/jail.conf . По умолчанию контролируется только доступ к SSH и время бана составляет 10 минут (600 секунд), на наш взгляд стоит его увеличить, изменив следующую опцию:

Bantime = 6000

После чего пролистайте файл и включите секции для работающих в вашей системе служб, установив после имени соответствующей секции параметр enabled в состояние true , например для службы proftpd это будет выглядеть так:


enabled = true

Еще один важный параметр maxretry , который отвечает за максимальное количество попыток подключения. После изменения настроек не забудьте перезапустить сервис:

Sudo /etc/init.d/fail2ban restart

Лог работы утилиты вы можете посмотреть в /var/log/fail2ban.log .

На ежегодной конференции LinuxCon в 2015 году создатель ядра GNU/Linux Линус Торвальдс поделился своим мнением по поводу безопасности системы. Он подчеркнул необходимость смягчения эффекта от наличия тех или иных багов грамотной защитой, чтобы при нарушении работы одного компонента следующий слой перекрывал проблему.

В этом материале мы постараемся раскрыть эту тему с практической точки зрения:

7. Установить сетевые экраны

Недавно была новая уязвимость, позволяющая проводить DDoS-атаки на сервера под управлением Linux. Баг в ядре системы появился с версии 3.6 в конце 2012 года. Уязвимость даёт возможность хакерам внедрять вирусы в файлы загрузки, веб-страницы и раскрывать Tor-соединения, причём для взлома не нужно прилагать много усилий - сработает метод IP-спуфинга.

Максимум вреда для зашифрованных соединений HTTPS или SSH - прерывание соединения, а вот в незащищённый трафик злоумышленник может поместить новое содержимое, в том числе вредоносные программы. Для защиты от подобных атак подойдёт firewall.

Блокировать доступ с помощью Firewall

Firewall - это один из самых важных инструментов блокирования нежелательного входящего трафика. Мы рекомендуем пропускать только действительно нужный трафик и полностью запретить весь остальной.

Для фильтрации пакетов в большинстве дистрибутивов Linux есть контроллер iptables. Обычно им пользуются опытные пользователи, а для упрощённой настройки можно использовать утилиты UFW в Debian/Ubuntu или FirewallD в Fedora.

8. Отключить ненужные сервисы

Специалисты из Университета Виргинии рекомендуют отключить все сервисы, которые вы не используете. Некоторые фоновые процессы установлены на автозагрузку и работают до отключения системы. Для настройки этих программ нужно проверить скрипты инициализации. Запуск сервисов может осуществляться через inetd или xinetd.

Если ваша система настроена через inetd, то в файле /etc/inetd.conf вы сможете отредактировать список фоновых программ «демонов», для отключения загрузки сервиса достаточно поставить в начале строки знак «#», превратив её из исполняемой в комментарий.

Если система использует xinetd, то её конфигурация будет в директории /etc/xinetd.d. Каждый файл директории определяет сервис, который можно отключить, указав пункт disable = yes, как в этом примере:

Service finger { socket_type = stream wait = no user = nobody server = /usr/sbin/in.fingerd disable = yes }
Также стоит проверить постоянные процессы, которые не управляются inetd или xinetd. Настроить скрипты запуска можно в директориях /etc/init.d или /etc/inittab. После проделанных изменений запустите команду под root-аккаунтом.

/etc/rc.d/init.d/inet restart

9. Защитить сервер физически

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

Для входа в дата-центр все посетители должны проходить определенные этапы аутентификации. Также настоятельно рекомендуется использовать датчики движения во всех помещениях центра.

10. Защитить сервер от неавторизованного доступа

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

Например, инструменты Tripwire и Aide собирают базу данных о системных файлах и защищают их с помощью набора ключей. Psad используется для отслеживания подозрительной активности с помощью отчётов firewall.

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

Заключение

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