Официальная возможность получить лицензионный софт бесплатно.
Giveaway of the Day
Это не реклама!

Щелкните для получения прогноза по Биробиджану


суббота, 19 июля 2014 г.

Антивирусная защита файловых серверов Samba с помощью ClamFS


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

Воспользуемся, как описано здесь, кошерным ClamAV и егонной ClamFS. Я внес некоторые изменения в то, что предложил "ИТ Специалист", но в целом более чем благодарен ему за подробное и доходчивое объяснение что к чему.

1. устанавливаем нужное:

sudo apt-get install clamav clamfs


2. самбовские шары живут у меня в var, пусть и clamfs живет там же (самба еще не настроена, поэтому создаю каталог и для нее)

sudo mkdir -p /var/clamfs/data
sudo mkdir /var/samba
sudo chmod -R 777 /var/clamfs
 
Попутно создаем каталог для карантина
 
sudo mkdir /var/clamfs/quarantine

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

3. создаем файл конфигурации ClamFS

Распаковываем /usr/share/doc/clamfs/clamfs-sample.xml.gz в /etc/clamav/clamfs.xml любым удобным способом, я, например, предпочитаю mc.

В полученном файле правим строчку

<filesystem mountpoint="/var/samba" nonempty="yes" public="yes" root="/var/clamfs/data" />

mountpoint - куда будет монтироваться контролируемая файловая система
root - где она находится по факту.
nonempty - довольно опасный параметр, он позволит смонтировать защищенную ФС в указанный каталог даже если он не пустой, поэтому лучше не держать в настоящей /var/samba ничего - при несмонтированной ClamFS этот каталог должен быть пуст.

То есть, каталоги /var/clamfs/data и /var/samba будут содержать одно и то же, но файлы, помещаемые (локально или по сети) в /var/samba будут на лету проверяться демоном ClamD.

Настраиваем протоколирование:

<log method="file" filename="/var/log/clamav/clamfs.log" verbose="no" />

4. Во избежание неприятностей с AppArmor, делаем рекомендованное:

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

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

5. Устанавливаем и настраиваем самбу по своему вкусу, создавая каталоги для защищаемых шар внутри /var/samba, который, как мы помним, на самом деле - защищаемое /var/clamfs/data. Дополнительно создаем шару для карантина, указав к ней путь /var/clamfs/quarantine - эта шара не будет защищена и должна быть доступна только администраторам. Остальные пользователи не должны даже подозревать об ее существовании. Реализация - на ваше усмотрение. Например, как в оригинальной статье создать отдельного пользователя "администратор антивирусной безопасности"

6. Теперь самое вкусное. Зараженный файл, заблокированный ClamFS, будет недоступен пользователям, однако продолжит валяться в общедоступном защищенном каталоге. А это плохо. Настроим регулярное сканирование.

/etc/clamav/clamscan:

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

Добавим его периодический запуск в кронтаб:

/etc/crontab:

0 19    * * *   root    /etc/clamav/clamscan

Теперь в 7 вечера вся наша порнография будет сканироваться и найденные бяки будут переноситься в каталог карантина.

7. Если мы работаем через прокси, то будет не лишним добавить настройки в /etc/clamav/freshclam.conf:

#(например: myproxy.mydomain.ru) 
HTTPProxyServer FQDN_вашего_прокси

#(если пользователь доменный, используем одинарный бэкслеш!) 
HTTPProxyUsername [домен\]пользователь

HTTPProxyPassword пароль_этого_пользователя


Порт прокси по умолчанию 8080, если у вас отличается, добавьте строчку

HTTPProxyPort номер_вашего_порта


Обратите внимание: freshclam - параноик и не захочет работать, если в конфиге указан пароль для подключения к прокси. Для полного счастья ему надо, чтобы разрешения на файл конфигурации в таком случае были не выше чем 700. chmod в помощь!
Если же авторизация на прокси не предусмотрена или делается не через имя/пароль, то достаточно просто указать имя узла прокси-сервера и, в случае нестандарта, номер порта.

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

no talloc stackframe at ../source3/param/loadparm.c:4864, leaking memory

После установки Ubuntu Server 14.04 и его штатной Samba при логине стал появляться такой вот неприятный глюк. Утечки памяти - это всегда неприятно.
Виновата библиотека авторизации libpam-smbpass.

лечение:

sudo apt-get remove libpam-smbpas

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

Использование этой библиотеки прописано в /etc/pam.d/common-password. В сети есть советы "удалить строчку с pam-smbpass.so" в этом файле, но лучше всё же штатно снести саму библиотеку до тех пор, пока ребята из Самбы не разберутся с ней. Тем более, что удаление строчки всё равно не помогает. :-)

По материалам.

четверг, 17 июля 2014 г.

smbcacls - управление полномочиями в стиле NT

Полезная штука, однако.

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

Нашлось несколько полезных штук...

Файловый сервер для Windows

(под катом - полная копия страницы)

простое использование:

/smbcacls //server/ресурс файл -Uuser%password

для просмотра прав на корень ресурса:

/smbcacls //server/ресурс \\ -Uuser%password


среда, 9 июля 2014 г.

Автоматическое создание домашних каталогов в Samba4

Прочитал в man smb.conf, что samba4 научилась сама создавать домашние каталоги:

==
SPECIAL SECTIONS
   The [global] section
       Parameters in this section apply to the server as a whole, or are defaults for sections that do not specifically define certain items. See the notes under PARAMETERS for more information.

   The [homes] section
       If a section called [homes] is included in the configuration file, services connecting clients to their home directories can be created on the fly by the server.

       When the connection request is made, the existing sections are scanned. If a match is found, it is used. If no match is found, the requested section
       name is treated as a username and looked up in the local password file. If the name exists and the correct password has been given, a share is
       created by cloning the [homes] section.
Действительно может. Но только при соблюдении следующих условий: