Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Сетевые сервисы: SMB

 

SAMBA

SAMBA позволяет совместно использовать файлы и принтеры между Windows и *NIX. SAMBA не всегда правильно работает с windows-клиентами (часто поврежденными), но причина здесь в хитростях реализпции протокола в windows, а не в самом пакете SAMBA, который имеет очень много поправок для налаживания работы с такими ненормальными клиентами. Увы, получается не всегда. SAMBA просто дает доступ к файловой системе через протокол SMB (Server Message Block), протоко используемый Windows, чтобы совместно использовать файлы и принтеры. Он проверяет username и пароль (если требуется) и затем дает доступ к файлам согласно разрешениям файла. Я собираюсь описывать только Samba 2.x, Samba 1.x довольно стар.

Samba 2.x управляется через smb.conf, обычно в /etc (man smb.conf). В /etc/smb.conf есть 4 основных области переключателей конфигурации: [globals], [printers], [homes] и каждый разделяемый ресурс имеет свою зону [sharename]. Имеется сотня или около того переключателей, они подробно рассмотрены на man-странице smb.conf. Некоторые из них (важные для защиты):

security = xxxx где xxxx имеет значение server или domain. Предназначено для ресурсов, закрытых паролем. При значении server сервер samba непосредственно опознает пользователей через /etc/password или smbpasswd. Если Вы устанавливаете значение domain, samba опознает пользователя через контроллер домена NT, таким образом интегрируясь в существующую NT-сеть.

guest account = xxxx где xxxx задает username, отведенный для гостевого входа. Если разделяемый ресурс задан как public, все запросы к нему пойдут от имени данного пользователя.

hosts allow = xxxx где xxxx представляет собой разделенный пробелами список хостов/IP, которым дозволено соединяться с сервером.

hosts deny = xxxx где xxxx представляет собой разделенный пробелами список хостов/IP, которым НЕ дозволено соединяться с сервером.

interfaces = xxxx где xxxx представляет собой разделенный пробелами список хостов/IP, которые адресует samba

SMB использует разные порты, обычно 137, 138 и 139, протоколы udp и tcp для всех за исключением 139.

ipfwadm -I -a accept -P tcp -S 10.0.0.0/8 -D 0.0.0.0/0 137:139
ipfwadm -I -a accept -P tcp -S some.trusted.host -D 0.0.0.0/0 137:139
ipfwadm -I -a deny -P tcp -S 0.0.0.0/0 -D 0.0.0.0/0 137:139
ipfwadm -I -a accept -P udp -S 10.0.0.0/8 -D 0.0.0.0/0 137:139
ipfwadm -I -a accept -P udp -S some.trusted.host -D 0.0.0.0/0 137:139
ipfwadm -I -a deny -P udp -S 0.0.0.0/0 -D 0.0.0.0/0 137:139

или

ipchains -A input -p tcp -j ACCEPT -s 10.0.0.0/8 -d 0.0.0.0/0 137:139
ipchains -A input -p tcp -j ACCEPT -s some.trusted.host -d 0.0.0.0/0 137:139
ipchains -A input -p tcp -j DENY -s 0.0.0.0/0 -d 0.0.0.0/0 137:139
ipchains -A input -p udp -j ACCEPT -s 10.0.0.0/8 -d 0.0.0.0/0 137:139
ipchains -A input -p udp -j ACCEPT -s some.trusted.host -d 0.0.0.0/0 137:139
ipchains -A input -p udp -j DENY -s 0.0.0.0/0 -d 0.0.0.0/0 137:139

Я очень рекомендую поставить и использовать SWAT (samba Web Administration Tool), что уменьшит количество возможных ошибок. Samba и SWAT доступны на http://www.samba.org и входят почти во все дистрибутивы.

SWAT

SWAT очень хороший инструмент администрирования smb.conf. Основная проблема: он требует, чтобы Вы использовали для входа логин и пароль для root, и выполняется как отдельный процесс из inetd.conf, так что нет никакого простого способа шифровать трафик, и насколько мне известно, нет никакого способ предоставить другим пользователей административный доступ к SWAT. Однако это хороший инструмент для сокращения ошибок в smb.conf. Вы можете также выполнять SWAT с параметром -a, чтобы вообще не спрашивать пароль, и использовать TCP_WRAPPERS, чтобы ограничить доступ к некоторым рабочим местам (хотя вы все еще не защищены от IP spoofing). По существу SWAT не предполагался как безопасный административный инструмент, но он полезен. SWAT обычно поставляется вместе с samba и доступен на http://www.samba.org, демонстрационная версия SWAT есть на http://anu.samba.org/cgi-bin/swat

CIFS

CIFS позволяет пользователю Linux устанавливать права разделения файлов в Windows менять ACL для файлов (под NT) и тому подобное. Вы можете получить CIFS для Linux с http://www.linuxstart.com/~cifs

Back

Written by Kurt Seifried