Ключевые слова:samba, jail, chroot, ldap, freebsd, (найти похожие документы)
From: mr.tacitus <http://mr-tacitus.blogspot.com>
Date: Mon, 26 Dec 2007 14:31:37 +0000 (UTC)
Subject: Samba внутри FreeBSD jail + MS AD
Оригинал: http://mr-tacitus.blogspot.com/2007/12/samba-jail-ms-ad.html
На сервере был поднят веб-сервер с сайтом компании и поддерживать его
поручили мне. Так как мне очень не хотелось перегонять файлы по FTP
туда и обратно, решил поднять сервер Samba и через его шары рулить
файлами сайта. И дизайнерам будет проще править дизайн. Чтобы не
засорять систему поднял jail для Samba.
Быстрое создание jail-машины в FreeBSD
Нам понадобится первый установочный диск FreeBSD 6.2 и немного
свободного времени. Предполагается что наша jail-машина будет
размещена в директории /var/jail.
Список действий:
1. Создать директорию /var/jail/machine для jail-машины;
2. Смонтировать установочный диск и распаковать базовые файлы в
директорию jail-машины:
# mount /cdrom
для bash:
# DESTDIR=/var/jail/machine /cdrom/6.2-RELEASE/base/install.sh
для csh:
# env DESTDIR=/var/jail/machine /cdrom/6.2-RELEASE/base/install.sh
3. Создать пустой файл /var/jail/machine/etc/fstab:
# touch /var/jail/machine/etc/fstab
4. Создать файл /var/jail/machine/etc/rc.conf со следующим
содержанием:
# Запускаем sshd
sshd_enable="YES"
sendmail_enable="NONE"
syslogd_flags="-ss"
rpcbind_enable="NO"
network_interfaces=""
5. Теперь требуется создать непривилегированного пользователя и
изменить пароль пользователя root.
Входим в каталог jail-машины
# chroot /var/jail/machine /bin/csh
Создаем пользователя
# adduser
Меняем пароль пользователя root
# passwd
# exit
6. В файл /etc/rc.conf основной системы добавить:
# Разрешаем запуск jail-машин
jail_enable="YES"
# Запрещаем им менять свое имя jail_set_hostname_allow="NO"
# Перечисляем jail-машины в системе.
jail_list="machine"
# Jail-машина "machine"
# Корневая директория jail_machine_rootdir="/var/jail/machine"
# Имя jail_machine_hostname="machine.local"
# IP-адрес jail_machine_ip="192.168.0.10"
# На какой сетевой интерфейс будет цепляться jail-машина
jail_machine_interface="ed0"
# монтируем файловую систему devfs внутри jail-машины.
jail_machine_devfs_enable="YES"
# Скрипты запуска и останова jail_machine_exec_start="/bin/sh /etc/rc"
jail_machine_exec_stop="/bin/sh /etc/rc.shutdown"
7. Кроме того требуется все запускаемые сервисы основной системы
привязать к его ip-адресам (не должны слушаться порты на ip-адресах
jail-машин).
Например, в rc.conf:
# Супер-сервер inetd
inetd_enable="YES"
# Слушает порт только на 192.168.0.1
inetd_flags="-wW -a 192.168.0.1"
# Syslogd
syslogd_enable="YES"
# Не слушать порты
syslogd_flags="-ss"
8. Запускаем созданную jail-машину:
# /etc/rc.d/jail start
Samba
Порядок действий внутри созданного jail:
1. cd /usr/ports/net/samba3
2. в make config отметил:
[X] LDAP With LDAP support
[X] ADS With Active Directory support
[X] WINBIND With WinBIND support
[X] UTMP With UTMP accounting support
[X] MSDFS With MSDFS support
[X] POPT With system-wide POPT library
3. И далее установил командой make install.
4. Настроил Kerberos5:
# cat > /etc/krb5.conf
[libdefaults]
default_realm = MY-DOMAIN.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = false
[realms]
MY-DOMAIN.LOCAL = {
kdc = MY-DOMAIN.LOCAL
admin_server = MY-DOMAIN.LOCAL
kpasswd_server = 192.168.0.1
default_domain = my-domain.local
}
[domain_realm]
.my-domain.local = MY-DOMAIN.LOCAL
[logging]
default = FILE:/var/log/kerberos/krb5libs.log
kdc = FILE:/var/log/kerberos/krb5kdc.log
admin_server = FILE:/var/log/kerberos/kadmind.log
Где my-domain.local домен MS Active Directory.
Проверяем:
# kinit root
root@MY-DOMAIN.LOCAL's Password:
kinit: NOTICE: ticket renewable lifetime is 1 week
Если выходит другое сообщение - проверяем файл конфигурации.
4. Файл конфигурации Samba:
# cat > /usr/local/etc/smb.conf
[global]
# Имя домена
workgroup = MY-DOMAIN
realm = MY-DOMAIN.LOCAL
server string = Samba Server
# Машина в Active Directory
security = ads
hosts allow = 192.168.0.
# Принтеры нам не нужны
load printers = no
show add printer wizard = no
log file = /var/log/samba/log.%m
# Контроллеры домена
password server = pdc.my-domain.local bdc.my-domain.local
# Имя samba сервера
netbios name = FILESRV
# IP-адрес jail
bind interfaces only = yes
interfaces = 192.168.0.23/24
auth methods = winbind
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = Yes
winbind enum groups = Yes
winbind use default domain = Yes
winbind refresh tickets = Yes
case sensitive = No
hide unreadable = Yes
socket options = TCP_NODELAY
dns proxy = no
display charset = koi8-r
unix charset = koi8-r
dos charset = cp866
[homes]
comment = Home Directories
browseable = no
writable = yes
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
4. Правим /etc/hosts:
192.168.0.23 FILESRV FILESRV.MY-DOMAIN.LOCAL
Иначе машина не войдет в домен.
5. Правим /etc/resolv.conf:
search my-domain.local
nameserver 192.168.0.xxx
Где 192.168.0.xxx ip-адрес DNS Active Directory.
6. Правим /etc/nsswitch.conf:
<< ... skip ... >>
group: files winbind
passwd: files winbind
<< ... skip ... >>
7. Вгоняем машину в домен:
# net ads join -U root
Если машина вошла в домен, на всякий случай проверяем:
# wbinfo -u
<< ... Список пользователей домена ... >>
# wbinfo -g
<< ... Список групп домена ... >>
8. Запускаем Samba:
# /usr/local/etc/rc.d/samba start
env DESTDIR=/var/jail/machine /cdrom/6.3-RELEASE/base/install.sh
You are about to extract the base distribution into /var/jail/machine - are you SURE
you want to do this over your installed system (y/n)? y
cat: base.??: No such file or directory
В чем ошибка?