Авторизация в samba по MAC адресам (защита фигня, но решение) Debian 5 #474092


#0 by smaharbA
предполагает установленный пакет samba создаем пользователей системы и пользователей самбы требуются все включенные машины, если нет то список мак-адресов. Суть в создании любого пользователя линукс с любым паролем и содержащем в поле коментариев мак-адрес в виде 00148530807A для любого менять так примерно usermod -c "Вася Пупкин;00148530807A" user скрипт автоматического создания пользователей по включенным компьютерам (чисто для примера) #/bin/bash : > ~/smbpasswd.txt; for i in 192.168.0.{1..255}; do    /sbin/ifconfig | grep -m1 -q ":$i" || (pass=$RANDOM;ping -c1 -W1 $i > /dev/null && /usr/sbin/arp -a $i | awk '{ gsub(/:/,"");print $4 }' | (        read;        perl -e 'print "-p ".crypt('$pass',"AB")';        printf ' %s %s user%03i ' -c $REPLY ${i##*.}    ) | (        read;user=${REPLY##* };        useradd -s /usr/sbin/nologin -g users -m $REPLY && smbpasswd -n -a $user && (pdbedit -u $user;echo "pass=$pass") >> ~/smbpasswd.txt)    ); done сама конфигурация smb.conf [global]        dos charset = CP866        unix charset = UTF-8        display charset = UTF-8        netbiosname = GW        workgroup = NDOM        server string = %h машинка с авторизацией по макакам        null passwords = Yes        max xmit = 65535        unix extensions = No        security = user        server signing = auto        socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192 IPTOS_LOWDELAY        username map script = /bin/sh -c "ping -c1 -W1 %I > /dev/null && grep -i "`arp -a %I | awk '{ print $4 }' | tr -d :`" /etc/passwd | cut -d: -f1"        passdb backend = tdbsam:/var/lib/samba/passdb.tdb        os level = 65        local master = No        domain master = No        dns proxy = No        hosts allow = 127., 192.168.0.        hosts deny = ALL        case sensitive = No        hide unreadable = Yes        hide dot files = yes        wins server = eth1:192.168.0.3 [homes]        comment = Home Directories        valid users = %S        create mask = 0700        directory mask = 0700        browseable = no        read only = no [IPC$]        path = /tmp как написано в сабже все опробовано на Debian 5 при такой конфигурации с компов заходящих по сети не требуется ввод пароля и пользователь индентифицируется по мак-адресу, с неизвестным маком не пустит. если есть необходимость разделить нескольких пользователей с одного мака, вопрос решаемый при почти такой же схеме.
#1 by apollo
я ниче не понял. Я тупой ?
#2 by ado
Вот как раз последний вопрос интересует. Чисто теоретически, как?
#3 by hd1
трудолюбивый админ )
#4 by smaharbA
если по той же схеме (авторизация по макам) то примерно username map script = /bin/sh -c "ping -c1 -W1 %I > /dev/null && grep -i "`arp -a %I | awk '{ print $4 }' | tr -d :`" /etc/passwd | cut -d: -f1 | (read; user=$REPLY; [ -d "/home/$user/$0" ] || install -d -o $user -g `id -g $user` "/home/$user/$0"; echo $user )" [homes] path = /home/%S/%U но с русскими именами будет проблема, нужно усложнять решение
#5 by smaharbA
решение не имеет практического применения в обслуживаемых сетях но вопрос был задан на враждебном форуме ))
Тэги: Unix / Linux
Ответить:
Комментарии доступны только авторизированным пользователям