Защита файлового сервера linux

Записки IT специалиста

Ubuntu Server. Антивирусная защита для файлового сервера (Samba + ClamAV).

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

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

За основу решения мы взяли наш Samba-сервер, который был обновлен до Ubuntu 10.04. Нам необходимо настроить проверку «на лету» всех файлов в общих папках к которым обращаются пользователи. Собственно ClamAV ничего проверять в режиме реального времени не умеет, поэтому нужно воспользоваться сторонними модулями.

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

Установим необходимые пакеты:

sudo apt-get install clamav clamfs

Создадим каталоги для монтирования виртуальной файловой системы. Будем придерживаться существующей системы каталогов, если пользовательские данные хранятся у нас в /data, то в виртуальной ФС будем использовать /clamfs/data:

sudo mkdir /clamfs
sudo mkdir /clamfs/data

Установим права на папку /clamfs и вложенные подпапки:

Теперь займемся настройкой ClamFS. Заготовка конфигурационного файла находится в /usr/share/doc/clamfs/clamfs-sample.xml.gz, перейдем в данный каталог, распакуем файл и скопируем его в /etc/clamav под именем clamfs.xml:

cd /usr/share/doc/clamfs/
sudo gunzip clamfs-sample.xml.gz
sudo cp /usr/share/doc/clamfs/clamfs-sample.xml /etc/clamav/clamfs.xml

Откроем clamfs.xml, найдем опцию File system settings и зададим ее следующим образом:

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

Обращаем ваше внимание, что в xml комментарии заключаются в символы . И раскомментируем строку ниже:

Сохраняем настройки. Последовательно запускаем clamd и clamfs:

sudo /etc/init.d/clamav-daemon start
sudo clamfs /etc/clamav/clamfs.xml

Проверяем, каталог /data должен смонтироваться в /clamfs/data.

Теперь о ложке дегтя. Как выяснилось, в Ubuntu 10.04 ClamFS при включенном Apparmor полностью блокирует все файлы на чтение. Выходов из этой ситуации несколько, так как файловый сервер обычно является сугубо внутрисетевым ресурсом, то мы пойдем по наиболее простому пути и просто удалим профиль clamd для Apparmor:

sudo rm /etc/apparmor.d/usr.sbin.clamd

Осталось обеспечить автоматический запуск и монтирование ClamFS при загрузке системы. Распространённые в интернете рекомендации по монтированию ClamFS через fstab не приводят к желаемому результату, т.к. fstab обрабатывается гораздо раньше, чем загружаются модули ядра отвечающие за функционирование ClamFS. Поэтому поместим команду запуска ClamFS в скрипт автозапуска /etc/rc.local. Добавим в него следующую строку:

clamfs /etc/clamav/clamfs.xml

Убедившись, что все работает, перейдем к настройке Samba. Изменим пути к общим папкам так, чтобы они вели на ClamFS, например для папки ADM вместо:

Читайте также:  Install startup disk creator linux

Изменив таким образом пути для всех общих ресурсов, которым требуется антивирусная защита, перезапускаем Samba:

sudo /etc/init.d/smbd restart

Скачиваем с сайта EICAR тестовые файлы (не забыв выключить антивирус), помещаем их в общую папку на сервере и пробуем получить к ним доступ. ClamAV сразу пресекает наши попытки как открыть (запустить):

samba-clamav-1.png

так и скопировать зараженный файл:

samba-clamav-2.png

Вредоносные программы блокируются, это хорошо, а вот то, что они остаются в общих папках не очень хорошо. Что делать? На помощь нам придет сканер clamscan, он может проверять нашу папку по расписанию и перемещать вредоносные объекты в папку карантина. Почему именно на карантин? Во первых ClamAV иногда ошибается, во вторых он не умеет лечить отдельные типы вирусов (только удалять), поэтому лучшим вариантом будет именно помещение подозрительных объектов на карантин с последующей проверкой коммерческим антивирусом.

Создадим карантинную папку и установим права на нее:

sudo mkdir /data/quarantine
sudo chmod 777 /data/quarantine

Данную папку следует опубликовать как общий ресурс, однако доступ к ней должен иметь только администратор отвечающий за антивирусную защиту. Заведем на сервере отдельного пользователя (допустим avadmin) и установим ему SMB пароль, пароль на доступ в систему ему устанавливать необязательно.

sudo useradd avadmin
sudo smbpasswd -a avadmin

Теперь создадим в /etc/samba/smb.confследующую секцию:

[Quarantine]
path = /data/quarantine
read only = No
valid user = avadmin

Перезапускаем Samba, папка Quarantine появилась в списке общих ресурсов, однако для доступа к ней нужно пройти авторизацию:

samba-clamav-3.png

Создадим скрипт для антивирусной проверки:

sudo touch /etc/clamav/clamscan

Добавим в него следующие строки:

#!/bin/sh
/usr/bin/clamscan -r /data/ADM --move=/data/quarantine

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

sudo chmod +x /etc/clamav/clamscan

Теперь настроим расписание. Допустим мы хотим запускать проверку каждый день в 17:45, для этого добавим в файл /etc/crontabследующую строку:

45 17 * * * root /etc/clamav/clamscan

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

Читайте также:  Linux перезапустить dhcp клиент

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

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Источник

Защита файлового сервера Samba

Защита файлового сервера Samba

Есть статья про настройку Samba-сервера, используя графическую оболочку — поглядеть.
Есть статья про настройку Samba-сервера, используя только терминал — поглядеть.

Доступны два уровня безопасности для сетевого протокола CIFS (разделяемая файловая система интернета): уровень пользователя user и уровень ресурса share.
Безопасность Samba состоит из пяти уровней: четыре способа реализации уровня пользователя и один вариант реализации уровня разделяемого ресурса:

  • security = user: требует от клиента предоставить имя пользователя и пароль для подключения к ресурсу. Учетные записи пользователей Samba отделены от системных учетных записей.
  • security = domain: этот режим позволяет серверу Samba представляться клиентам Windows первичным доменным контроллером (PDC), резервным доменным контроллером (BDC) или сервером-членом домена (DMS). Смотрите раздел Samba как контроллер домена для дополнительной информации.
  • security = ADS: позволяет серверу Samba присоединиться к домену Active Directory как родному. Смотрите раздел Интеграция Samba с Active Directory для уточнения деталей.
  • security = server: этот режим оставлен с тех времен, когда Samba не мог становиться членом домена и по ряду причин, связанных с безопасностью, не может использоваться. Смотрите раздел Server Security руководства по Samba для уточнения деталей.
  • security = share: позволяет клиентам подключаться к разделяемому ресурсу без предоставления имени пользователя и пароля.

Параметр security=share устарел
Вместо share используйте

security = user ​map to guest = Bad User

Имя пользователя будет сравниваться с базой данных самбы, если пользователь отсутствует в базе самбы, то он будет помечен как «Bad User» и сопоставляется с учетной записью гостя.
Режим безопасности, который вы выберете, будет зависеть от вашего окружения и того что вы хотите получить от сервера Samba.

Security = User

В этой секции рассматривается как перенастроить сервера файлов и печати Samba, чтобы они требовали аутентификацию.

Отредактируйте /etc/samba/smb.conf, и измените в секции [share]:

Перезагрузите Samba, чтобы новые настройки вступили в силу:

sudo service smbd restart

Теперь при подсоединении к общим каталогам или принтерам у вас будет запрашиваться имя пользователя и пароль.

Безопасность разделяемого ресурса

Существует несколько опций для усиления безопасности по каждому конкретному общему каталогу. По примеру [share], эта секция рассматривает наиболее распространенные опции.

Группы и пользователи

Группы определяют какие компьютеры или пользователи имеют общий уровень доступа к определенным сетевым ресурсам.
Например имеем две группы пользователей:
— первая группа users с пользователями oleg, petr и vasya,
— вторая группа admins с пользователями luda, artem и petr,
Также имеем некоторый сетевой ресурс, настроенный на доступ группы users. Этот ресурс будет соответственно предоставлять доступ для oleg, petr и vasya, но не luda или artem. Оговорим сразу, что пользователь petr относящийся к обеим группам users и admins, будет иметь доступ к ресурсам, настроенным на доступ для любой из этих групп, в то время как все остальные — только к ресурсам, настроенным на определенные группы, которым они принадлежат.

Читайте также:  Проверить версию ssh linux

По умолчанию Samba ищет локальные системные группы, объявленные в /etc/group, для определения какие пользователи им принадлежат. Для дополнительной информации по добавлению и удалению пользователей в группах смотрите раздел Добавление и удаление пользователей.

При определении групп в файле настроек Samba /etc/samba/smb.conf используется синтаксис распознавания с предшествующим символом @. Например, если вы собираетесь определить группу с именем admins в определенной секции файла /etc/samba/smb.conf, вы сможете сделать это, указав имя группы как @admins.

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

Права доступа определяют явные права компьютера или пользователя на определенный каталог или файл. Такой доступ может быть определен редактированием файла /etc/samba/smb.conf и заданием явных разрешений определенному разделяемому файловому ресурсу.

Например, если у Вас определен Samba ресурс с названием share и Вы собираетесь дать права на чтение группе пользователей users, но хотите предоставить возможность записи для группы с именем admins, а также пользователю oleg, то вы можете отредактировать файл /etc/samba/smb.conf, добавив следующие записи в секцию [share]:

read list = @users write list = @admins, oleg

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

Например, если вы хотите предоставить пользователю luda административные права доступа к ресурсу share из нашего примера, вам потребуется отредактировать файл /etc/samba/smb.conf и добавить следующую строку в раздел [share]:

Другой возможной защитой является включение масок и прав на созданные каталоги и файлы. Для этого отредактируйте /etc/samba/smb.conf, и добавьте в секцию [share]:

force group = nogroup force user = nobody create mask = 0644 directory mask = 0775

force group — устанавливает на файлы и каталоги права группы nogroup.
force user — устанавливает права пользователя nobody на созданные файлы и каталоги.
create mask — определяет права на записываемые файлы.
directory mask — определяет права на записываемые каталоги.

После изменений /etc/samba/smb.conf перезапустите Samba для применения изменений:

sudo service smbd restart

Чтобы опции read list и write list работали, режим безопасности Samba не должен быть установлен в security = share.

Источник

Оцените статью
Adblock
detector