The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

Организация в Samba контроля пользователей по IP и MAC с псевдоквотами
Ниже представлена попытка без лишних усложнений решить задачу контроля по
IP+MAC в Samba без запуска дополнительных служб в системе.

В операционной системе создаются всего два системных пользователя с атрибутом
nologin (smbfull с smblim). Данные о работающих в Samba пользователях хранятся
в текстовом файле, с таким форматом:

   nicname_ФИО и дополнительная информация _IPaddress_MACaddress_limitsize(block)

Итого пять полей с разделителем "_" (если в имени пользователя допускается знак
подчеркивания, в приведенном ниже скрипте следует заменить "_", допустим, на "|").

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

Такой подход может удовлетворить небольшую сеть с индивидуальными ПК, где требуется:

  • нескольким пользователям подключить сетевые папки для документов, каждому свою, с привязкой по IP;
  • возможность иметь общие папки (внутри своих) между двумя или более пользователями для совместного доступа
  • исключить доступ с других ПК (и даже видимость в сетевом окружении)
  • избежать подключения с "левого" ПК (смена IP) посредством контроля MAC адреса
  • контролировать превышение объема информации в каждой директории, выделенной каждому пользователю. Часть решения подсказал некий robux на форуме linux.org.ru, у него просто авторизировались системные пользователи по IP. Создаем системных пользователей, первого "smbfull" в группе "smbfull", nologin. Второго "smblim" в группе "smbfull" Создаем тех же для самбы: smbpasswd -n -d smbfull smbpasswd -n -d smblim Каталоги созданных пользователей удалим и создадим общие /home/smbusers для каталогов пользователей и /home/smbses для, так называемых, сессионных каталогов. Пример файла конфигурации smb.conf [global] security = user passdb backend = smbpasswd:/etc/samba/smbpasswd username map script = /etc/samba/login.sh %I nullpasswords = yes directory mask = 755 create mask = 755 inherit owner = yes inherit permissions = yes log file = /var/log/smbd.%I max log size = 20 hosts allow = 192.168.0.0/24 socket address = 192.168.0.1 [docs] path = /home/smbses/%I public = yes writable = yes printable = no root postexec = /etc/samba/exit.sh %I Скрипт залогинивания login.sh #!/bin/sh - fses='/home/smbses/'$1 rm $fses v_ipmac=`/usr/local/bin/arp-scan -q --interface=rl1 $1 | sed -n '3p' | sed 's/[ ]/_/g'` res='' res=`grep $v_ipmac /etc/samba/access` if [ "$res" == "" ] then echo 'Blocked!!! - '$v_ipmac >> /home/smbusers/log exit fi v_nic=`echo $res | cut -d_ -f1` v_sz=`echo $res | cut -d_ -f5` v_dir='/home/smbusers/'$v_nic ln -s $v_dir $fses siz=`du -sL $fses | sed -e 's/[ ].*//g'` if [ $siz -gt $v_sz ] then echo 'limit exceeded! - '$v_nic' '$v_ipmac >> /home/smbusers/log echo 'smblim' else echo 'smbfull' fi Скрипт отключения exit.sh #!/bin/sh - rm /home/smbses/$1 Скрипт создания пользователей addusmb #!/bin/sh - fil='/etc/samba/access' echo `date` >> $fil echo -n ' User (nicname) - ' read v_nic res=`grep -c "^$v_nic" $fil` if [ $res != 0 ] then echo 'nicname '\"$v_nic\"' busy!!!' sleep 2 exit fi echo -n ' Fullname user - ' read v_fn echo -n ' User IP - ' read v_ip res=`grep -c "$v_ip" $fil` if [ $res != 0 ] then echo 'IP-'$v_ip' busy!!!' sleep 2 exit fi ping -w 1 -c 1 $v_ip >/dev/null if [ $? != 0 ]; then echo 'IP address unavailable :(' sleep 2 exit fi echo -n ' Allowable size of files (Mb)- ' read v_sm let "v_sz=$v_sm * 2048" v_ipmac=`/usr/local/bin/arp-scan -q --interface=rl1 $v_ip | sed -n '3p' | sed -e 's/[ ]/_/g'` # nicname_fullname_ip_mac_limit echo $v_nic'_'$v_fn'_'$v_ipmac'_'$v_sz >> /etc/samba/access v_dir='/home/smbusers/'$v_nic mkdir $v_dir chmod 755 $v_dir chown smbfull $v_dir chgrp smbfull $v_dir echo ' Ok!' sleep 1 В скриптах между "[" и "]" введен один пробел и один ТАБ. У каждого свой каталог, каждому назначаем допустимый объем информации, при достижении которого он теряет право на создание чего либо нового, но продолжает работать со своими документами. При подключении (либо сетевой диск, либо просто ярлык на ресурс) проверяется соответствие IP_MAC, и, если есть совпадение в файле access, то вытягивается с этой строки nicname и допустимый объем. Создается симлинк директории пользователя с /home/smbusers/user в /home/smbses/~IP Проверяется размер директории пользователя, сравнивается с дозволенным. Если значение меньше допустимого, то входим под пользователем smbfull с полными правами, если лимит превышен - входим под smblim. По завершении сеанса в Windows линк удаляется. Для организации общего ресурса между двумя или более пользователями ( с одинаковыми правами в этой папке!) просто делаем симлинк внутренней папки пользователя в папку другого (других). Можно еще добавить шару и делать так же симлинк какой-то папки пользователя в шару для публикаций файлов, при этом не бояться за их исчезновение или редактирование. При тестах не стоит спешить, при подключении (при обращении) создается линк и процесс сессии, при отключении от самбы (достаточно отключить сетевой диск или закрыть папку) линк с /home/smbses/ удаляется быстро, а вот процесс может еще повисеть. Пока процесс висит - самба вас помнит, и конфигурацию при подключении не перечитает. Можно дождаться закрытия процесса или убить вручную, тогда при подключении вступят в силу внесенные изменения.
  •  
    11.07.2011 , Автор: mastertron
    Ключи: samba, limit / Лицензия: CC-BY
    Раздел:    Корень / Администратору / Сетевые сервисы / Samba

    Обсуждение [ Линейный режим | Показать все | RSS ]
     
  • 1.1, Аноним, 13:29, 12/07/2011 [ответить] [смотреть все]
  • +/
    Шепотом может кто подсказать что конктно нужно поставит настроить для того чтоб... весь текст скрыт [показать]
     
     
  • 2.2, шл_мимо, 18:34, 12/07/2011 [^] [ответить] [смотреть все]  
  • +/
    Шутник однако, или сказочник?
     
  • 2.3, Anonym1, 23:24, 12/07/2011 [^] [ответить] [смотреть все]  
  • +/
    Вероятно, Windows7 имеется в виду?
     
     
  • 3.4, universite, 03:56, 13/07/2011 [^] [ответить] [смотреть все]  
  • +/
    там надо рабочую группу правильную выставить.
     
  • 2.5, ананим, 11:17, 13/07/2011 [^] [ответить] [смотреть все]  
  • +/
    копай тему по словам master local browser
    типа так http://www.google.ru/webhp?sourceid=chrome-instant&ie=UTF-8&ion=1&nord=1#scli
     
  • 2.7, Аноним, 23:15, 13/07/2011 [^] [ответить] [смотреть все]  
  • +/
    Косяк был в неправильно указанном interface в smb conf Надо указывать конкретны... весь текст скрыт [показать]
     
  • 1.6, AHAHAC, 19:15, 13/07/2011 [ответить] [смотреть все]  
  • +/
    Никогда не работайте с MAC адресами как с признаком аутентификации.
    Во-первых, бесполезно, во-вторых, себе геморрой, например когда
    появляется новая машина или в сетке возникает маршрутизатор.

    Подобные советы, это костыль админа-чайнега.

    И вообще, MAC адреса не предназначены для использования в прикладном  
    пользовательском или серверном софте.

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


     
     
  • 2.8, Аноним, 23:21, 13/07/2011 [^] [ответить] [смотреть все]  
  • +/
    Маки позволяют организовать управляемый и хоть немного безопасный доступ клиенто... весь текст скрыт [показать]
     
     
  • 3.9, AHAHAC, 01:53, 14/07/2011 [^] [ответить] [смотреть все]  
  • +/
    # ifconfig eth0 0.0.0.0 hw ether 00:50:de:ad:be:ef

    В венде через настройки сетевухи

    00:50:de:ad:be:ef  - находиться из прослушивания ARP трафика

    > Как автоматизировать последнее (невидимая для пользователя идентификация)?

    TACACS/TACACS+/RADIUS/LDAP/Kerberos

    LDAP быстрее всего - http://www.lissyara.su/articles/freebsd/programms/samba+ldap/

     
  • 2.10, mastertron, 19:28, 14/07/2011 [^] [ответить] [смотреть все]  
  • +/
    Война религий? :)
    Это не совет, а вариант реализации.
    А вот совет:
    Никогда не стройте малые сети по "профессионалам"! Это дорого ( оборудование, ПО,... и постоянно), вагон лишнего, всех тонкостей не поймете (не найдете), всех дыр не залатаете (ют), всех вирусов не переловите, большую часть ресурсов сжерают службы никому не нужные, ...  ( и в шутку и всерьез).
     
     
  • 3.11, AHAHAC, 00:59, 15/07/2011 [^] [ответить] [смотреть все]  
  • +/
    Религия должна быть одна - грамотное и детальное планирование, начиная с расположений розеток в помещении.

     
     
  • 4.12, Crazy Alex, 12:54, 22/07/2011 [^] [ответить] [смотреть все]  
  • +/
    Любяа сложность реализации добна обосновываться сложност ью задачи. Если у вас два компьютера в двух метарх - то кроссовер в опмощь, если пяток - d-link на стену и провода о плинтусу (а то и просто за мебелью), если больше - соотвтественно усложняем - те же розетки появляются и т.д. А то есть любители на пяток машин чуть ли СКС развернуть.
     
  • 1.13, igor, 13:18, 26/07/2011 [ответить] [смотреть все]  
  • +/
    "При превышении указанного объема клиент может продолжать работать со своими
    документами, редактировать их, но добавить (создать) что-либо или УДАЛИТЬ не сможет."
    Что за маразм? Забил каталог и сиди как дурак жди одмина? Или сиди одмин как дурак и вручную чисти каталоги пользователя?
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:



      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor