Шлюз в Интернет или маршрутизатор своими руками

 

Часть 4. Установка дополнения SAMBA

04.12.2010
Новиков Максим Глебович

Оглавление.

Часть 1. Выбор «железа» и ПО
Часть 2. Установка IPCop версии 1.4.21
Часть 3. Установка основных дополнений к IPCop
Часть 4. Установка дополнения SAMBA
Часть 5. Дополнительная информация

Статья может периодически модифицироваться автором.
Постоянный адрес подлинника: http://novikovmaxim.narod.ru/linux/IPCop/index.htm

SAMBA

Дополнение SAMBA позволяет делать общедоступными (далее — «расшаривать» от англ. share — владеть совместно) в локальной сети определённые папки, расположенные на компьютере IPCop. Это нужно для создания некой общей среды хранения файлов или обмена документами, которая была бы независима от работы остальных компьютеров сети. Доступ к сервису при желании можно регулировать описанным выше дополнением BOT.

Для успешной работы SAMBA необходимо произвести некоторые подготовительные действия, такие, как смена текущего порта веб-интерфейса 445 (SAMBA использует тот же порт), соответствующая настройка дополнений BOT и TCAR, а также постоянное открытие рабочих портов SAMBA в TCAR.

Для смены текущего порта веб-интерфейса необходимо установить дополнение GUIPorts и с его помощью сменить порт с 445 на 8443, который, кстати, уже используется новой версией IPCop 1.9.x (2.0).

Далее в этой части будут подробно описаны все вышеупомянутые шаги.

Глава 1. Установка GUIPorts

Устанавливаем дополнение согласно общим правилам ручной установки дополнений. Дополнение заархивировано вместе с подкаталогом, поэтому после разархивирования не забудьте в него войти (cd guiports). Запуск инсталляции осуществляется командой ./install -i

После установки обновляем веб-интерфейс и заходим в System → GUI Settings. В появившейся дополнительной секции «GUI Ports Settings» меняем GUI HTTPS Port на 8443 и нажимаем кнопку «save and change». Секция скроется, и порт будет изменён. Теперь для доступа к веб-интерфейсу в адресной строке браузера следует указывать уже новый порт.

Глава 2. Настройка TCAR для работы с SAMBA

По умолчанию TCAR при перерасходе трафика отрубает пользователя от машины IPCop практически полностью (за исключением трафика ICMP, DHCP и GUI IPCop), в том числе отрубает и от расшаренных дополнением SAMBA папок. Поэтому, чтобы этого не происходило, к упомянутым исключениям добавим порты, по которым работает SAMBA.

Для этого в скрипт TCAR /etc/rc.d/helper/tcar-ac.pl в раздел «PREPEARE EXTENDED FILTER CHAINS» в секцию «make access to remote control ports transparent from ANY GREEN or BLUE user's ip to IPCOP» в каждый из четырёх блоков правил добавим аналогичные правила для портов, используемых SAMBA:

901/tcp — SWAT (веб-интерфейс к SAMBA)
445/tcp — SAMBA (правило уже существует, поскольку этот порт использовался для веб-интерфейса)
139/tcp — SAMBA
137/udp — SAMBA
138/udp — SAMBA

Кроме того, добавим правило для нового порта веб-интерфейса IPCop:

8443/tcp — веб-интерфейс IPCop

По умолчанию TCAR подсчитывает весь трафик, прошедший в локальную сеть через внутренний интерфейс IPCop, в том числе и трафик из внутреннего файл-сервера. Чтобы запретить подсчёт внутреннего трафика между IPCop и локальной сетью, откроем на редактирование файл /etc/rc.d/helper/writeipac.pl и просто закомментируем в нём строку 97.

Если помимо этого мы хотим подсчитывать для пользователей не только входящий, но и исходящий Интернет-трафик, то строку 97 не комментируем, а просто удаляем из неё вертикальную палочку, стоящую перед $userip и ставим её после этого параметра, а вместо ipac~i пишем ipac~fi.

Вообще, в этом скрипте мы можем сформировать разные варианты подсчёта трафика, дополнив его для этого нужными строками. Скрипт формирует правила подсчёта трафика, сохраняя их в конфигурационном файле /etc/ipac-ng/rules.conf, который в дальнейшем используется утилитой подсчёта трафика ipac-ng. Ниже приведён пример пронумерованных строк скрипта writeipac.pl, формирующих некоторые правила (само правило указано в кавычках). При копировании в свой скрипт номера строк удалите:

97 print FILE "$username|ipac~fo|$useripinterfacename|all||$userip||\n"; #from Internet to client
98 print FILE "$username|ipac~fi|$useripinterfacename|all|$userip|||\n"; #from client to Internet
99 print FILE "$username|ipac~i|$useripinterfacename|all||$userip||\n"; #from client to ipcop
100 print FILE "$username|ipac~o|$useripinterfacename|all|$userip|||\n"; #from ipcop to client

Формат строки правил:

  1. Наименование правила по имени пользователя (только латиница, цифры и пробелы). В приведённом выше фрагменте скрипта имя пользователя находится в переменной $username.
  2. Направление подсчитываемого трафика (указываются названия цепочек соответствующего назначения в iptables, в которые будут вписаны эти правила).
    ipac~fo — трафик из Интернета в локальную сеть
    (Forwarding Out — форвардинг внешнего)
    ipac~fi — трафик из локальной сети в Интернет
    (Forwarding In — форвардинг внутреннего)
    ipac~i — трафик только на машину IPCop на указанный интерфейс
    (Input — входящий в IPCop)
    ipac~o — трафик только с машины IPCop с указанного интерфейса
    (Output — исходящий c IPCop)
  3. Интерфейс, чрез который идёт подсчитываемый трафик (eth0, eth1 и т.п.)
  4. Протокол (tcp, udp, icmp, или all), трафик которого подсчитывается
  5. IP источника (0/0 - любой IP). Можно включать маску (напр./24) и порт (через пробел)
  6. Целевой IP (те же правила записи, что и для источника)
  7. Расширения для netfilter

Если TCAR настраивался и включался ранее, то все его цепочки правил в iptables уже существуют, и откорректированное дополнение можно смело перезапустить с новыми настройками запуском файла /usr/local/bin/tcar-reload. Если же TCAR ещё не настраивался, перезапуск выдаст ошибки и этого делать не следует. Замечу, что после перезапуска новые настройки вступают в силу не сразу, а через несколько секунд.

Напомню, что TCAR по умолчанию запрещает всем доступ в Интернет, поэтому не забудьте добавить в него разрешающие правила.

Глава 3. Настройка BOT для работы с SAMBA

В дополнении BOT необходимо сменить порт веб-интерфейса, чтобы оно во время перекрытия доступа к Интернету не перекрывало доступ к веб-интерфейсу IPCop. Для этого в веб-интерфейсе открываем Firewall → Block Outgoing traffic и отключаем дополнение, если оно включено (при включенном BOT поменять порт невозможно). В разделе установок нажимаем кнопку Edit и меняем HTTPS Port на 8443. Нажимаем Save и снова включаем BOT. Замечу, что порт можно также поменять непосредственно в файле настроек /var/ipcop/fwrules/settings.

Теперь в секцию правил IPCop Access необходимо добавить несколько разрешающих правил:

  1. Прежде всего, разрешим доступ с компьютера администратора через порт 222/tcp&udp. Это позволит соединяться с IPCop с помощью WinSCP и PuTTY. Порта 222 в списке сервисов нет, поэтому добавим его туда через веб-интерфейс Firewall → Advanced BOT Config.
  2. Для работы веб-интерфейса SAMBA разрешим доступ для компьютера администратора через порт 901 (SWAT). Он есть в списке служб.
  3. Для работы собственно SAMBA откроем в локальную сеть ещё 4 порта: 445, 139, 137 и 138. Для удобства на странице Firewall → Advanced BOT Config создадим группу сервисов, и наберём в неё сервисы, соответствующие вышеперечисленным портам. Теперь, на основой странице BOT добавим правило с этой группой, открывающее доступ по этим портам либо для всей сети сразу, либо для отдельных компьютеров. Можно также сначала открыть доступ для всей сети, а затем создать запрещающие правила для отдельных компьютеров, которые поставить в начало, до разрешающего правила.

Глава 4. Подключение раздела для общедоступных папок

Если в процессе расширенной установки IPCop мы выделили на диске отдельный раздел для общедоступных папок, то теперь нам следует его отформатировать и смонтировать. Запускаем PuTTY (или садимся за машину с IPCop), входим в систему от имени суперпользователя (root), и выполняем команду:

mke2fs -m 0 -j /dev/hda3

где
-m 0 — отмена пятипроцентного резервирования блоков для суперпользователя
-j — форматирование в файловую систему ext3

После того, как утилита создаст журнал и запишет служебную информацию в раздел, её работа завершится. Теперь в каталоге /mnt создадим каталог для точки монтирования (принадлежащий пользователю samba и группе samba), например, /sharedfolders, и выполним команду:

mount /dev/hda3 /mnt/sharedfolders

раздел будет смонтирован в подготовленный нами каталог.

Если всё прошло успешно, значит, мы всё сделали правильно, и можно автоматизировать произведённое выше монтирование, чтобы оно всегда происходило при старте системы. Для этого открываем файл /etc/fstab и добавляем в него строку:

/dev/harddisk3 /mnt/sharedfolders ext3 nodev,nosuid,noatime 1 2

где
harddisk3 — символическая ссылка на устройство hda3 (теоретически можно использовать и hda3, но поскольку есть символическая ссылка, следует использовать именно её).
nodev — на монтируемой системе не будут создаваться файлы устройств.
nosuid — не будет возможности делать общими файлы, созданные пользователями разных групп (все файлы в нашем разделе будут создаваться от имени пользователя samba группы samba, поэтому такая возможность нам точно не нужна)
noatime — Не обновлять время доступа к файлу, чтобы ускорить быстродействие.
1 — включить резервное копирование файловой системы утилитой dump. Поскольку самой утилиты dump в составе IPCop нет, то здесь можно поставить и 0.
2 — при загрузке проверять файловую систему не в первую очередь (первая очередь должна быть для корневого раздела).

Кроме раздела harddisk3 тем же способом можно смонтировать к другим каталогам и разделы других дисков, если таковые существуют. Но поскольку символических ссылок типа «harddisk» для них в системе не существует, обращаться к ним можно по их фактическим именам (hdb1, hdc1 и т.п.)

Глава 5. Собственно установка SAMBA

Устанавливаем дополнение согласно общим правилам ручной установки дополнений. Дополнение заархивировано вместе с подкаталогом, поэтому после разархивирования не забудьте в него войти (cd samba).

Внимание! Перед тем, как запустить инсталляцию дополнения samba v0.2.1, откройте файл install на редактирование и в строке 705 смените номер версии с 2.4.34 на 2.4.36. Запуск инсталляции осуществляется командой ./install -i (для деинсталляции SAMBA необходимо таким же образом исправить файл uninstall в папке дополнения /option, а именно поменять версию в строке 459 с 2.4.34 на 2.4.36).

В процессе инсталляции будет запрошено адресное пространство внутренней сети, из которого будет разрешён доступ к общедоступным папкам. Вводим его в следующем виде: 192.168.0.0/24, где 24 означает маску сети (24 единичных бита, что соответствует маске 255.255.255.0). Будьте внимательны, клавиши «Backspace» и «Delete» во время ввода не работают и у вас есть только одна попытка.

После завершения установки и перезагрузки веб-интерфейса в меню Services появится новый пункт — Samba Server. При выборе в веб-интерфейсе этого пункта, помимо пароля администратора будет запрошен логин и пароль суперпользователя (root) для отображения интерфейса SAMBA (SWAT).

Чтобы сделать папку общедоступной, следует прописать в настройках интерфейса SAMBA (Services → Samba Server → SWAT) рабочую группу локальной сети (кнопка GLOBALS) и указать общую папку (кнопка SHARES). Для настройки общей папки выбираем из выпадающего списка пункт files, нажимаем кнопку Choose Share и внизу, в поле path, вбиваем адрес общедоступного каталога (например, /home/sharedfolders). Затем нажимаем кнопку Commit Changes. После этого запускаем сервер кнопкой в верхней секции.

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

Теперь следует изменить права доступа к папке, а именно включить её в группу samba и владельцем сделать пользователя samba. Это можно осуществить как с помощью операционной оболочки Midnight Commander, так и простыми консольными командами:

chgrp samba /home/sharedfolders
chown samba /home/sharedfolders

Если для общих папок выделен отдельный раздел, не забудьте смонтировать его в систему, например, в каталог /mnt/sharedfolders, и прописать в поле path доступ уже к этому каталогу.

При подключении к общедоступной папке с компьютеров локальной сети, система запросит логин (samba) и пароль (samba), которые необходимо будет ввести для открытия доступа и сохранить для дальнейшего использования, поставив в окошке ввода пароля соответствующую галочку.

Дополнительную информацию о SAMBA и её настройке можно найти здесь:

http://rus-linux.net/lib.php?name=/MyLDP/server/samba-security/samba-security-1.html
http://www.osp.ru/lan/2000/03/130995/_p1.html
http://samba-doc.ru/samba3example/index.html
http://smb-conf.ru/

Часть 1Часть 2Часть 3Часть 4Часть 5

[Вернуться в начало]
[Оставить отзыв в гостевой]
Hosted by uCoz