Author Topic: Необходимо создать дом. сеть между SuSe и windows XP  (Read 5469 times)

0 Members and 1 Guest are viewing this topic.

Offline ДуХ_тЬмы

  • Newbie
  • *
  • Posts: 5
  • Karma: +0/-0
Здравствуйте, у меня возникла проблема с домашней сетью.
У меня дома сеть построена таким образом:
Quote
Свич:
Модем
2 компа с windows XP
1 комп с openSuSe 11
Вообщем нужно построить домашнюю сеть для обмена файлами между машинами, интернет работает на всех машинах... Жду вашихх коментариев...))

Offline never hood

  • Hero Member
  • *****
  • Posts: 845
  • Karma: +16/-10
  • www.4job.co
    • Работа, которую ты искал
проблема не прозвучала.
возможно прблема в том, что имеет место лень...
в том числе и погуглить.
думаю, вы ошиблись адресом.

Offline ДуХ_тЬмы

  • Newbie
  • *
  • Posts: 5
  • Karma: +0/-0
проблема состоит в том, что я настроил samba сервер, добавил в брандмауер а при открытии smb:/// не обнаружаются компьютера, если зайти на smb://компнайм/ то там пусто... Вообщем гугл я вчера 10 страниц перелапатил ничего подходяшего не нашел... На форум я пришел за помощью и не раскрыл проблему полностью так как надеялся увидить подробное описание, я не уверен что я сделал всё правильно... ;(

Offline ДуХ_тЬмы

  • Newbie
  • *
  • Posts: 5
  • Karma: +0/-0
нашел интересную статейку, Если кому вдруг понадобиться кидаю сюда:
Quote
Как я настраивал Самбу...

В последнее время в форуме стало появляться все больше вопросов,
связанных с настройкой и использованием сервера Samba, причем
по большей части они воистину элементарные. В связи с этим я решил
разрулить сложившуюся ситуацию и отсеить хотя бы половину задаваемых
вопросов. Впрочем, была еще и другая причина.
Неделю назад я собрал себе новый комп. А поскольку теперь у меня
их два, моя мама попросила один отдать ей, установив на него
виндовс. Комп я отдал, но предварительно прочел лекцию на тему
"виндовс-мастдай, Линукс-рулезз", благодаря чему на старый комп
был установлен RedHat Linux 9.
Возможно, этой статьи не было бы, если не одно но: у старого
компа не было НИКАКИХ устройств обмена информацией с внешним
миром. Разумеется, на нем стоял CDROM, но он был только читающий,
а флоппи-диска не было в принципе (я всегда говорил, что это зло
и выбрасывал его smile.gif ). Хорошенько все взвесив и сравнив стоимость
нового флоппика (~300 руб.) и 20 метров витой пары (~200 руб.), я
решил сэкономить 100 рублей и заработать проблем на мягкое место,
создав домашнюю сетку.
Первым делом были определены задачи, которые должна решать сеть.
Для моей мамы это только сохранение документов с последующей их
записью на диск через мой комп. Не ставилась задача обеспечить
старый комп Интернетом, поэтому я не поднимал на своем компе
Squid (хотя, возможно, придется, так как в скором времени я
планирую купить ноутбук, и тогда я еще напишу о настройке этого
самого Сквида).

Далее я предполагаю, что у Вас на компьютере уже установлен
пакет Samba. Вы можете проверить это командой:
Код
[liksys@max ~]$ rpm -qa | grep samba
system-config-samba-1.2.31-1
samba-client-3.0.14a-2
samba-common-3.0.14a-2
samba-swat-3.0.14a-2
samba-3.0.14a-2

Результаты выполнения данной команды должны быть примерно такими
же, как и у меня.
Пакеты system-config-samba-1.2.31-1 и samba-swat-3.0.14a-2 можно не
устанавливать, мы не будем пользоваться конфигураторами.
Я так же надеюсь, что у Вас установлены все необходимые пакеты для
работы с сетью. Так же неплохо установить пакет nmap, он будет
нужен при настройке сети. Проверьте это следующей командой:
Код
[liksys@max ~]$ rpm -qa | grep net-tools
net-tools-1.60-52
[liksys@max ~]$ rpm -qa | grep nmap
nmap-frontend-3.81-3
nmap-3.81-3

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

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


1. Настройка сервера

На сервере должны быть установлены указанные выше пакеты.
Я давал символические имена/адреса компьютерам, каким-либо образом
связанные с событиями моей жизни, но вы можете использовать свои
собственные имена компьютеров и адреса. Итак, начнем настройку
сетевых соединений, воспользовавшись командой:
Код
[root@max ~]# ifconfig eth0 192.58.7.16 netmask 255.255.255.0 up
[root@max ~]# route add default gw 192.58.7.100

(Маршрут по умолчанию я назначил от балды, абы был smile.gif )
После этого, если Вы все сделали правильно, у Вас появится сетевой
интерфейс eth0 с адресом 192.58.7.16 и маской 255.255.255.0.
Для проверки правильности настройки Вы можете воспользоваться
следующими командами:
Код
[root@max ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:13:D4:BC:F1:C1
          inet addr:192.58.7.16  Bcast:192.58.7.255  Mask:255.255.255.0
          inet6 addr: fe80::213:d4ff:febc:f1c1/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:7362 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7675 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:605320 (591.1 KiB)  TX bytes:5131386 (4.8 MiB)
          Interrupt:11 Base address:0xc000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1742 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1742 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2047490 (1.9 MiB)  TX bytes:2047490 (1.9 MiB)

[root@max ~]# netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.58.7.0      0.0.0.0         255.255.255.0   U         0 0          0 eth0
0.0.0.0         192.58.7.100    0.0.0.0         UG        0 0          0 eth0
[root@max ~]# ping 192.58.7.16
PING 192.58.7.16 (192.58.7.16) 56(84) bytes of data.
64 bytes from 192.58.7.16: icmp_seq=0 ttl=64 time=0.075 ms
64 bytes from 192.58.7.16: icmp_seq=1 ttl=64 time=0.047 ms
64 bytes from 192.58.7.16: icmp_seq=2 ttl=64 time=0.052 ms
64 bytes from 192.58.7.16: icmp_seq=3 ttl=64 time=0.056 ms
64 bytes from 192.58.7.16: icmp_seq=4 ttl=64 time=0.049 ms
64 bytes from 192.58.7.16: icmp_seq=5 ttl=64 time=0.054 ms
64 bytes from 192.58.7.16: icmp_seq=6 ttl=64 time=0.048 ms

--- 192.58.7.16 ping statistics ---
7 packets transmitted, 7 received, 0% packet loss, time 6001ms
rtt min/avg/max/mdev = 0.047/0.054/0.075/0.011 ms, pipe 2

Результат их выполнения должен выглядеть примерно так же.
Если интерфейс был успешно пропингован, значит, все должно быть
нормально.
Для того, чтобы в последствии использовать не IP-адреса, а имена
машин, можно использовать файл /etc/hosts. Его рекомендуется
использовать в небольших сетях для сопоставления IP-адресов с
символическими именами машин. В данном случае я запонил свой файл
следующим образом:
Код
[root@max ~]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1       max     localhost.localdomain   localhost
192.58.7.1      domovenok       domovenok

В данном случае сдесь описаны имя сервера (третья строка) и имя
второго компа (четвертая строка). В первом поле файла прописан
IP-адрес компьютера, во втором - полное доменное имя, а в третьем -
псевдонимы. В данном случае "max" - сервер, на котором запущена
Samba, "domovenok" - обслуживаемый ей компьютер (я решил дать ему
адрес 192.58.7.1).

Далее можно приступить к настройке самого сервера Samba. Я буду
выполнять эту процедуру, попутно объясняя Вам, для чего я брал те
или иные опции. Первым делом определимся, какие ресурсы должен
предоставлять сервер. Я решил, что вполне достаточно будет двух
ресурсов: "Public" (к которому разрешен доступ на чтение и запись
всем желающим хостам из моей маленькой сети) и "Domovenok", к
которому имеет доступ только пользователь компьютера "domovenok".

Далее займемся напосредственным конфигурированием сервера.
Файл конфигурации Samba (/etc/samba/smb.conf) имеет следующий вид:
Код
[global]
...
...
[Share1]
...
[Share2]
...
[ShareN]

Секция "global" содержит общие настройки сервера и настройки по
умолчанию для пользовательских ресурсов, таких, как "Share1".
Настройки пользовательских ресурсов хранятся под соответствующими
секциями, носящими имя ресурса. Настройки определяют различные права
доступа, пользователей и прочие параметры. Параметры, описанные в
секциях ресурсов, могут отменять соответствующие настройки из
секции "global", но только для этого ресурса.
Начнем с секции "global":
Код
[global]

        workgroup = HOMEWORKGROUP
        server string = Liksys Home Server
        bind interfaces only = yes
        interfaces = eth0 192.58.7.1 192.58.7.16 127.0.0.1
        hosts deny = ALL
        hosts allow = 192.58.7.16 192.58.7.1 127.0.0.1
        printcap name = /etc/printcap
        printing = cups
        cups options = raw
        log file = /var/log/samba/log.smbd
        max log size = 50
        security = share
        encrypt passwords = yes
        smb passwd file = /etc/samba/smbpasswd
        socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
        local master = yes
        preferred master = yes
        domain master = no
        wins support = no
        dns proxy = no
        guest ok = yes
        guest account = nobody
        unix charset = utf8
        dos charset = cp1251
        display charset = cp1251

Разберемся, что же означают данные параметры:
Код
workgroup = HOMEWORKGROUP

Определяет имя рабочей группы.
Код
server string = Liksys Home Server

Определяет название сервера.
Код
bind interfaces only = yes
interfaces = eth0 192.58.7.1 192.58.7.16 127.0.0.1

Ограничивает обслуживаемые сервером сетевые интерфейсы только интерфейсом
"eth0" и по адресам "192.58.7.1 192.58.7.16 127.0.0.1", благодаря чему
можно ограничить доступ к серверу и все "кулхацкеры" из Инета идут лесом.
Код
hosts deny = ALL
hosts allow = 192.58.7.16 192.58.7.1 127.0.0.1

Первая строка запрещает доступ всем со всех адресов, а вторая - разрешает
доступ только с адресов "192.58.7.16 192.58.7.1 127.0.0.1".
Код
printcap name = /etc/printcap
printing = cups
cups options = raw

Настройки сетевого принтера. Поскольку принтера у меня нет, можно даже и
их не указывать, но я все-таки сделал это. Первая строка задает путь к
файлу, содержащиму информацию о принтерах, вторая - определяет систему
печети, третья - параметры.
Код
log file = /var/log/samba/log.smbd
max log size = 50

Первая строка определяет путь к журналу сервера Samba, а вторая - размер
журнала. Можно еще добавить строку "debug level = 3", она используется при
отладке сервера, выводя в журнал более детальную информацию. При настройке
сервера я использовал уровень 5.
Код
security = share
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd

Первая строка задает уровень доступа к серверу. Она может принимать три
значения:
share - при каждом доступе будет запрашиваться имя пользовательского ресурса.
user - для аутентификации будет использоваться имя пользователя и пароль,
которые используются для входа в сеть виндовс. Это значение по умолчанию.
server - для проверки пароля будет использоваться сервер NT (как работает -
не вникал: винды - зло smile.gif ), если интересно - читайте ман)
[/code]
Вторая строка разрешает шифрование паролей, третья задает путь к файлу с
паролями пользователей. Если у вас нет этого файла, то создайте его командой
touch.
Код
socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192

Опции сокета. Если не знаете, что это такое, лучше оставить как есть или
почитать ман.
Код
local master = yes
preferred master = yes

Эти строки разрешают компьютеру становиться мастербраузером. После запуска
сервера и подключения к сети, Samba устроит перевыборы (ИМХО, Революцию), и
с наиобльшей вероятностью выберет мастербраузером себя. Следует отметить,
что использование этих параметров избавляет от многих глюков (например,
в одной из сетей, которое я настраивал, пока я не поставил этот параметр,
появлялись и исчезали несуществующие компьютеры: вот такие виндовые глюки).
Код
domain master = no
wins support = no
dns proxy = no

Первая строка запрещает становиться мастером домена, вторая отключает WINS
(что это такое, подробно описано в мане), третья - отключает DNS Proxy.
Код
guest ok = yes
guest account = nobody

Первая строка включает гостевую запись, вторая - определяет соответствие
"гостя" локальному пользователю "nobody", которому запрещена регистрация на
локальной машине.
Код
unix charset = utf8
dos charset = cp1251
display charset = cp1251

Ну здесь все должно быть понятно без пояснений. Эти опции избавляют от глюков
со шрифтами/кодировками.

Теперь самое время заняться настройкой пользовательских ресурсов:
Код
[Public]
        comment = Public Folder
        path = /pub/Samba/Public
        writeable = yes
        guest ok = yes
        create mask = 0666
        directory mask = 0777
        read only = no

[Domovenok]
        comment = Network Folder/Disk for Domovenok
        path = /pub/Samba/Domovenok
        writeable = yes
        guest ok = no
        valid users = mama
        create mask = 0664
        directory mask = 0775
        read only = no

comment - комментарий к ресурсу;
path - расположение каталога ресурса на сервере;
writable - параметр, разрешающий или запрещающий запись и изменение данных в
ресурсе. Дает возможность пользователям создавать/редактировать/удалять файлы;
guest ok - разрешает или запрещает доступ к сервису "гостям";
create mask - права доступа, назначаемые новым файлам;
directory mask - то же самое, только каталогам;
read only - доступ только для чтения или для чтения и записи;
valid users - пользователи, которым разрешен доступ к ресурсу.

Мы закончили с конфигурацией сервера. Теперь нужно настроить саму машину.
Для этого создадим каталоги и поставим права доступа таким образом:
Код
[root@max ~]# mkdir /pub
[root@max ~]# mkdir /pub/Samba
[root@max ~]# mkdir /pub/Samba/Public
[root@max ~]# mkdir /pub/Samba/Domovenok
[root@max ~]# chmod -R 777 /pub


Теперь добавим пользователя mama в систему:
Код
[root@max ~]# groupadd -g 505 mama
[root@max ~]# useradd -u 505 -g 505 -s /sbin/nologin mama
[root@max ~]# passwd mama
Changing password for user mama
New UNIX password: <password>
Retype new UNIX password: <password>
passwd: all authentication tokens updated successfully

Теперь необходимо создать учетную запись Samba:
Код
[root@max ~]# smbpasswd -a mama
New SMB password: <password>
Retype new SMB password: <password>

Думаю, здесь необходимы пояснения. При добавлении пользователя в Samba
происходит что-то вроде установления связи между локальным пользователем и
пользователем Samba. Это дает возможность создания довольно сложных
конфигураций серверов, при которых используются стандартные механизмы UNIX,
такие, как права доступа и группы пользователей. Теперь, когда удаленный
пользователь создаст файл, то владельцем этого файла будет являться локальный
пользователь, с которым установлена связь пользователя Samba. Удаленный же
пользователь будет подчиняться тем же правилам, которые установлены для
локального пользователя, то есть правам доступа, относиться к соответствующей
группе пользователей и др. Но для больших систем нежелательно "плодить"
большое количество пользователей. Поэтому при создании локального пользователя
я запрещаю ему регистрацию в системе, устанавливая его оболочку как
/sbin/nologin. Если у вас в системе нет такой "оболочки", то вы можете
использовать "/bin/false". Посмотреть доступные оболочки вы можете так:
Код
[root@max ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/ksh
/bin/tcsh
/bin/csh
/bin/zsh


Вы можете занести имена всех машин и иш IP-адреса в файл /etc/samba/lmhosts:
Код
[root@max ~]# cat /etc/samba/lmhosts
127.0.0.1 localhost
192.58.7.1 domovenok

Выполняет он практически те же самые функции, что и файл /etc/hosts.

Забегая вперед, скажу, что у меня при тестировании вылезала ошибка, что нельзя
создавать/удалять файлы. Она вылечилась ковырянием SELinux`а, а именно
отключением защиты демонов Samba. Всю остальную политику безопасности я не
изменял, поэтому в целом уровень защищенности системы не понизился.
На этом настройка Samba закончена. Теперь нужно проверить, все ли мы правильно
сделали. Да, кстати, так как сеть нужна не всегда, не имеет смысла держать
постоянно поднятыми сервер и сетевые интерфейсы. Для того, чтобы включать все
это только когда нужно, я написал скрипт netctl:
Код
#!/bin/bash
#####
MAX_ETH0_ADDR=192.58.7.16
MAX_ETH0_MASK=255.255.255.0
MAX_DEF_ROUTE=192.58.7.100
#
SELINUX_TEST=/usr/sbin/selinuxenabled
IFCONFIG=/sbin/ifconfig
ROUTE=/sbin/route
SMBCTL=/etc/rc.d/init.d/smb
#####
$SELINUX_TEST
if [ $? -ne 0 ]; then
        echo "FATAL ERROR! SELinux is DISABLED!"
        exit 1
fi
#####
if [ $# -eq 0 ]; then
        echo "usage: ./netctl [up/down]"
        exit 1
fi
#
if [ $# -eq 1 -a $1 = "up" ]; then
        $IFCONFIG eth0 $MAX_ETH0_ADDR netmask $MAX_ETH0_MASK up && \
        echo "ifconfig (eth0): online" && \
        $ROUTE add default gw $MAX_DEF_ROUTE && \
        echo "route (default): online" && \
        $SMBCTL start
elif [ $# -eq 1 -a $1 = "down" ]; then
        $ROUTE del default gw $MAX_DEF_ROUTE && \
        echo "route (default): offline" && \
        $IFCONFIG eth0 down && \
        echo "ifconfig (eth0): offline" && \
        $SMBCTL stop
else
        echo "usage: ./netctl [up/down]"
        exit 1
fi
#####

Командой "./netctl up" сервер и сетка поднимаются, а "./netctl down" сеть
и сервер отключаются. Как мера предосторожности, перед манипуляциями с сетью
проверяется статус SELinux.
Поднимем сервер сначала командой /etc/rc.d/init.d/smb start (использовать
скрипт я буду только тогда, когда все заработает):
Код
[root@max ~]# /etc/rc.d/init.d/smb start
Запускаются службы SMB:                                    [  ОК  ]
Запускаются службы NMB:                                    [  ОК  ]


Проверим наш сервер (эти действия я делал от обычного пользователя):
Код
[liksys@max ~]$ nmap 192.58.7.16

Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2006-08-26 11:52 MSD
Interesting ports on 192.58.7.16:
(The 1661 ports scanned but not shown below are in state: closed)
PORT    STATE SERVICE
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds

Nmap finished: 1 IP address (1 host up) scanned in 0.290 seconds

Как видно выше, Samba села на два порта: 139 и 445. Так и должно быть. Теперь
попробуем зарегистрироваться гостем на сервере:
Код
[liksys@max ~]$ smbclient //192.58.7.16/Public
Password: <Enter>
Domain=[HOMEWORKGROUP] OS=[Unix] Server=[Samba 3.0.14a-2]
smb: \> ls
  ..                                  D        0  Fri Aug 25 14:44:56 2006
  .                                   D        0  Fri Aug 25 21:24:23 2006

                36515 blocks of size 2097152. 14674 blocks available
smb: \> mkdir test
smb: \> ls
  test                                D        0  Sat Aug 26 11:56:39 2006
  ..                                  D        0  Fri Aug 25 14:44:56 2006
  .                                   D        0  Sat Aug 26 11:56:39 2006

                36515 blocks of size 2097152. 14674 blocks available
smb: \> exit
[liksys@max ~]$ smbclient //192.58.7.16/Domovenok -U mama
Password: <password>
Domain=[HOMEWORKGROUP] OS=[Unix] Server=[Samba 3.0.14a-2]
smb: \> ls
  xmms-devel-1.2.7-21.i386.rpm        R    37478  Sun May 22 18:56:02 2005
  table1.doc                               14336  Wed Aug  2 15:30:53 2006
  xmms-skins-1.2.7-21.i386.rpm        R  2724785  Sun May 22 18:56:03 2005
  ..                                  D        0  Fri Aug 25 14:44:56 2006
  xmms-1.2.7-21.i386.rpm              R  1584529  Sun May 22 18:56:00 2005
  .                                   D        0  Fri Aug 25 20:34:53 2006
  xmms-mpg123-1.2.7-21.i386.rpm       R   100816  Sun May 22 18:56:02 2005

                36515 blocks of size 2097152. 14674 blocks available
smb: \> mkdir test
smb: \> ls
  xmms-devel-1.2.7-21.i386.rpm        R    37478  Sun May 22 18:56:02 2005
  table1.doc                               14336  Wed Aug  2 15:30:53 2006
  xmms-skins-1.2.7-21.i386.rpm        R  2724785  Sun May 22 18:56:03 2005
  test                                D        0  Sat Aug 26 11:58:32 2006
  ..                                  D        0  Fri Aug 25 14:44:56 2006
  xmms-1.2.7-21.i386.rpm              R  1584529  Sun May 22 18:56:00 2005
  .                                   D        0  Sat Aug 26 11:58:32 2006
  xmms-mpg123-1.2.7-21.i386.rpm       R   100816  Sun May 22 18:56:02 2005

                36515 blocks of size 2097152. 14674 blocks available
smb: \> exit

Похоже, что все в порядке.


2. Настройка клиента

Настраивать что-то серьезно было нечего. Я ограничился назначением адреса
192.58.7.1/255.255.255.0 для интерфейса eth0 и автоматическим поднятием его
при включении (настраивал все это при установке системы). Ну и поковырял
конфигурацию сервисов, чтобы ничего лишнего не запускалось. Далее я выполняю
действия уже с компьютера-клиента:
Код
[mama@domovenok ~]$ nmap 192.58.7.16

Starting nmap 3.81

... и так ждать до посинения. Я ждал минут 10, после чего nmap заявил, что на
сервере нет открутых портов и его вообще не видно. Попробовал пропинговать:
Код
[mama@domovenok ~]$ ping 192.58.7.16
PING 192.58.7.16 (192.58.7.16) 56(84) bytes of data.
64 bytes from 192.58.7.16: icmp_seq=0 ttl=64 time=0.061 ms
64 bytes from 192.58.7.16: icmp_seq=1 ttl=64 time=0.050 ms
64 bytes from 192.58.7.16: icmp_seq=2 ttl=64 time=0.065 ms

--- 192.58.7.16 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.050/0.058/0.065/0.010 ms, pipe 2

Пингуется нормально. Странно. Стал разбираться. Говорю сразу, это заняло часа
полтора. Я использоваля всякие средства, типа tcpdump/nmap/ping и прочие,
вплоть до установления уровня отладочных сообщений Samba до 5. Оказалось, что
на сервере стояла политика iptables, при которой фаерволились все приходящие
данные по eth0, кроме ping`а smile.gif . Вылечилось просто: установкой eth0 как
доверенного устройства. Это так же не повлекло за собой проблем с
безопасностью, поскольку у меня ВСЕ порты, крома Самбы были закрыты, а
последняя включалась только по требованию, да еще стоял SELinux с жесткой
политикой "мочить всех". Настраивалось это на сервере конфигураторм
system-config-securitylevel, на клиенте - redhat-config-securitylevel (посто
потому, что вручную это делать было лень smile.gif ).
Поставив доверенным порт eth0 и на клиенте, я попробовал еще раз
просканировать порты на сервере. На этот раз все заработало:
Код
[mama@domovenok ~]$ nmap 192.58.7.16

Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2006-08-26 12:17 MSD
Interesting ports on 192.58.7.16:
(The 1661 ports scanned but not shown below are in state: closed)
PORT    STATE SERVICE
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds

Nmap finished: 1 IP address (1 host up) scanned in 0.260 seconds

Попробовал подсоединиться и создать/удалить/прочитать какой-нибудь файл (как
это сделать, было показано в пункте о настройке сервера): получилось. Как и
задумывалось, Samba пропускал всех пользователей без разбора к Public, но
только mama имеет доступ к ресурсу Domovenok. Все компьютеры, имеющие адреса,
отличные от трех разрешенных, или пытавшихся подключиться к Samba с другого
интерфейса, не eth0, шли лесом - политика безопасности все отрезала. Для пущей
защищенности я отключил пересылку пакетов между интерфейсами и прочие
заморочки (файл /etc/sysctl.conf). Вот пример файла на сервере:
Код
[liksys@max ~]$ cat /etc/sysctl.conf
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding
net.ipv4.ip_forward = 0

# Controls source route verification
net.ipv4.conf.default.rp_filter = 1

# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0

# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1

# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1

# The following line is necessary for GFS to function properly.
kernel.panic_on_oops = 1



3. Работа в сети

Теперь, когда сеть настроена, ее можно поднимать командой:
Код
./netctl up

... или отключать:
Код
./netctl down


Для того, чтобы иметь возможность использовать файлы пользователя mama на
сервере, я включил себя в группу пользователя mama. Это более элегантное
решение, чем установка прав типа 0666 или 0777 на новые файлы, создаваемые
пользователями Samba.
Для мониторинга сетевых подключений по Самбе нужно использовать команду
smbstatus. Для удобства я запускаю ее в окне xterm следующим образом:
Код
watch smbstatus

Эта команда автоматически обновляет информацию о подключениях и выводит ее на
экран.


4. Немного о SWAT...

SWAT (Samba Web Administration Tool) - средство конфигурирования и
обслуживания сервера Samba, оно выполнено в виде WEB-интерфейса. Получить
доступ к нему можно через браузер, например, Mozilla. Для этого в строке
адреса наберите:
Код
http://localhost:901

Когда попросят, введите имя пользователя root и его пароль. После этого Вы
можете приступить к управлению сервером Samba.
Возможно, у вас не получится запустить SWAT. Это связано с тем, что демон
xinetd не обслуживает SWAT. Для того, чтобы исправить это, сделайте следующее:
1) Отредактируйте файл /etc/xinetd.d/swat, изменив в нем строку disable = yes
на disable = no.
2) Перезапустите xinetd, воспользовавшись командой:
Код
/etc/rc.d/init.d/xinetd restart


Интерфейс SWAT довольно понятный, поэтому я не описываю использование этого
средства. Отмечу лишь, что я не пользуюсь SWAT, а предпочитаю настраивать все
"по-старинке" вручную. К тому же, если вы настраиваете серьезный сервер, на
нем, возможно, не будет установлен X. А использование текстовых браузеров типа
Lynx со SWAT - извращение.
Я пользуюсь только двумя конфигураторами: system-config-securitylevel и
system-config-network (последний только для настройки модема). Когда лень
запускать Иксы и что-то надо быстро изменить - пользуюсь setup`ом.
Однако там, где нужна гибкая настройка, я все делаю вручную.


5. Заключение...

Я рассмотрел доволено простой случай, однако на базе получившегося файла
конфигурации Samba и стандартных механизмов UNIX, таких, как права доступа и
группы пользователей, можно создавать более сложные конфигурации. Например,
создать несколько групп пользователей, включить в них самих пользователей и
распределить использование Samba-ресурсов между ними, как на обычной локальной
машине, поскольку пользователи Samba подчиняются общим правилам для локальных
пользователей системы, с которыми установлено их соответствие.
Возможно ограничивать доступ к ресурсам для машин, используя параметры
"interfaces", "hosts deny", "hosts allow"; ограничивать доступ к ресурсам
пользователям с помощью параметров "guest ok", "valid users", "invalid users"
и других. Сервер Samba - это очень гибкая система, она поддерживает сотни
параметров, поэтому для полноценного использования этого сервера необходимо
хорошо представлять себе, что делает та или иная опция, для чего можно
обратиться к соответствующим man-страницам руководства:
Код
man samba
man smb.conf
man smbclient
...


В заключение хотелось бы привести некоторые команды, которые полезны при
настройке/использовании сервера Samba.

Код
smbclient

Позволяет подключаться к серверу Samba.

Код
smbclient -L //<hostname_or_ip-adress>

Выводит список доступных ресурсов компьютера.

Код
smbclient -U username //<hostname_or_ip-adress>/<sharename>

Позволяет подключиться к ресурсу <sharename> указанного компьютера как
пользователь username. После этого Вам предложат ввести пароль. Если
комбинация имя_пользователя-пароль верна, Вам будет предоставлен доступ к
ресурсу. Параметр "-U username" можно опустить, тогда при регистрации будет
использоваться гостевая учетная запись. Просьбу о вводе пароля можно
проигнорировать, нажав <Enter>. После этого Вам будет предоставлен доступ к
ресурсу, если, конечно, администратор сервера разрешил использование гостевой
учетной записи.

Код
smbmount //<hostname_or_ip-adress>/<sharename> /mount/point
или
mount -t smbfs //<hostname_or_ip-adress>/<sharename> /mount/point

Позволяет примонтировать ресурс к файловой системе. Он буде доступен как
обычный каталог. Команда smbmount имеет множество параметров, для получения
справки введите команду man smbmount. Монтировать ресурс можно и командой
mount, как показано выше.

Код
testparm

Проверяет правильность конфигурации файла /etc/samba/smb.conf. Если все
нормально, это хороший знак, скорее всего сервер будет работать нормально.
Для справки введите man testparm.

Код
/etc/rc.d/init.d/smb start/stop/status/restart

Управление демонами smbd и nmbd.

Код
smbstatus

Мониторинг состояния сервера Samba.

Код
groupadd -g "GID" groupname
useradd -u "UID" -g "GID" -s /sbin/nologin username
passwd username
smbpasswd -a username

Последовательность команд для добавления Samba-пользователя.
взял с: http://linuxforum.ru/index.php?showtopic=24962


Offline TMP0022

  • Newbie
  • *
  • Posts: 5
  • Karma: +0/-0
Quote
Как я настраивал Самбу...
Я то... я то куда полез...? Ахтунг! Шнелерр цурюг!!!
« Last Edit: January 03, 2009, 20:23:09 by TMP0022 »