вторник, 23 декабря 2008 г.

Samba & AD

История установки Samba-3.0.24-

Ситуация следующая…. Необходимо настроить файловый сервер с антивирусной проверкой и в последствии сервер печати на бесплатном ПО с предоставлением доступа доменным пользователям (а также про квоты нужно не забыть). В качестве ПО берем Suse Linux Enterprise Server 10 SP1 (выбирать не из чего) и ставим туда Samba (хорошее название…..мне нравится, я так и сервак тестовый назвал)

Итак поехали……

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

krb5

krb5-client

pam_krb5

samba-krb-printing

Настраиваем Kerberos, можно настраивать через YAST, но я делал все руками как настоящий Линуксоид….

Вот собственно конфиг-файл…

[libdefaults]

default_realm = _доменное_имя_ (например ks.ua)

clockskew = 300

# v4_instance_resolve = false

v4_name_convert = {

host = {

rcmd = host

ftp = ftp

}

plain = {

something = something-else

}

}

[realms]

CO.KSOE.COM.UA = {

kdc = _имя_контролера_домена_ (например alpha.ks.ua)

admin_server = _имя_контролера_домена_ (например alpha.ks.ua)

kpasswd_server = _имя_контролера_домена_ (например alpha.ks.ua)

}

[domain_realm]

_доменное_имя_ =_ДОМЕННОЕ_ИМЯ_

О значениях интересующих параметров можно почитать в манах

После настройки Kerberos проверяем получает ли билет доменный пользователь. Для этого вводим следующую команду с указанием доменного пользователя

kinitp setter --setter в данном случае доменный пользователь а также администратор домена

Ответ в положительном случае:

Password for setter@_доменное_имя_:

После ввода правильного пароля система должна выдать сообщение:

kinit: NOTICE: ticket renewable lifetime is 1 week

Если введен неправильный пароль – сообщение следующее:

kinit(v5): Preauthentication failed while getting initial credentials

Если возникли какие-либо проблемы – пересматриваем вниматочно конфиг кербероса krb5.conf

Далее проверяем состояние соединения:

klist

Должно выдать следующее:

Credentials cache: FILE:/tmp/krb5cc_0

Principal: setter@_доменное_имя_

Issued Expires Principal

Nov 26 15:15:55 >>>Expired<<< krbtgt/_доменное_имя_@_доменное_имя_

Все.. Поддержка включена….

У меня в данном случае возникла следующая ситуация, после ввода правильного пароля система никакого сообщения не выдавала, а после ввода команды klist выдавалось следующее сообщение:

Ticket cache: FILE:/tmp/krb5cc_0

Default principal: setter@CO.KSOE.COM.UA

Valid starting Expires Service principal

11/27/07 15:26:52 11/28/07 01:26:57 krbtgt/CO.KSOE.COM.UA@CO.KSOE.COM.UA

renew until 11/28/07 15:26:52

Kerberos 4 ticket cache: /tmp/tkt0

klist: You have no tickets cached

Меня очень смутили две последние строчки…

В логах нигде ничего не находил, другими словами долго плясал с бубном….

Как по мне – это особенность 10-го SLES, хотя может я и ошибаюсь……

Далее необходимо настроить файл переключения служб nsswitch.conf просто добавляем следующую запись

passwd: files winbind

group: files winbind

После всего этого приступаем к редактированию конфигурационного файла Самбы, вот что у меня получилось

[global]

workgroup = _доменное_имя_ (короткое)

realm = _доменное_имя_

server string = Samba Server

security = ADS

password server =_имя_контролера_домен_ (если два контролера, то оба указываем)

passdb backend = tdbsam

log file = /var/log/samba/log.%U

max log size = 50

os level = 33

preferred master = No

local master = No

domain master = No

dns proxy = No

idmap uid = 10000-20000

idmap gid = 10000-20000

winbind separator = + ----возможно его надо заремить

winbind enum users = Yes

winbind enum groups = Yes

hosts allow = 10.77.1.1/24

[homes]

comment = Home Directories

valid users = %S, %D%w%S

read only = No

inherit acls = Yes

browseable = No

[profiles]

comment = Network Profiles Service

path = %H

read only = No

create mask = 0600

directory mask = 0700

store dos attributes = Yes

[users]

comment = All users

path = /home

read only = No

inherit acls = Yes

veto files = /aquota.user/groups/shares/

[groups]

comment = All groups

path = /home/groups

read only = No

inherit acls = Yes

[printers]

comment = All Printers

path = /var/tmp

create mask = 0600

printable = Yes

browseable = No

[print$]

comment = Printer Drivers

path = /var/lib/samba/drivers

write list = @ntadmin, root

force group = ntadmin

create mask = 0664

directory mask = 0775

Другими словами я взял исходный конфиг и отредактировал секцию [global], но пока без комментариев. Кое-какие строки я закомментировал, может в будущем пригодится , т.к. на момент написания мануала стопроцентной работоспособности не было.

Далее я включил свой сервер в домен, введя следующую команду

net ads join –U CO+setter%_password_

Если не получается командой ввести машину в домен, можно попробовать при помощи yast….

Далее проверяем правильность работы WinBind

wbinfo –t

Система должна ответить

checking the trust secret via RPC calls succeeded

Если получена такая запись, это означает что учетная запись компьютера в Active Directory создана успешно, для уверенности можно проверить на контролере домена…

wbinfo –u

Система выводит список пользователей домена СО (CO+setter)

wbinfo -g

Система выводит список групп домена СО (CO+Programmers)

Далее что можно проверить – это аутентификацию в домене

wbinfoa _имя_пользователя_%_пароль_пользователя_

Система должна ответить

checking the trust secret via RPC calls succeeded

Также можно просмотреть принадлежность к доменным группам определенного пользователя

id CO+dyadyovoe

Система должна выдать следующее (у меня в данном случае выдало такие строки)

uid=10002(CO+dyadyovoe) gid=10007(CO+domainusers) группы=10007(CO+domainusers),10038(CO+privilegeinetaccess),10063(CO+resourceexchange),10064(CO+programmers),10115(CO+admin internet access),10117(CO+highinternetaccess),10145(CO+internal users),10146(CO+videousers),10147(CO+allinetusers)

Для простоты настройки файловых ресурсов настраиваем веб-консоль администрирования SAMBA

Для этого изменяем содержимое файла /etc/xinetd.d/swat

{

socket_type = stream

protocol = tcp

wait = no

user = root

server = /usr/sbin/swat

only_from = 10.10.10.10 --- айпи хоста с которого можно админить.

log_on_failure += USERID

}

Также необходимо поставить службы smb, nmb, winbind, xinetd на автозапуск, желательно делать с помощью yast в runlevel(editor)

Далее немаловажная деталь как КВОТЫ

Нужно проверить установлен ли нужный пакет для дальнейшей настройки, если нет устанавливаем его с yast

quota-3.13-17.11

Заходим в /etc/fstab и смотрим права для выделенного раздела под файловые ресурсы, у меня в данном случае это /dev/md3

Должна присутствовать следующая строка /dev/md3 и ее необходимо изменить на следующее значение

/dev/md3 /files ext3 acl,user_xattr,usrquota 1 2

Далее делаем следующие действия:
1. mount -o remount /files
2.
появился aquota.user
3. chmod 600 /files/aquota.user
4. quotacheck -a
ничего правда не написал
5. /sbin/reboot
6. edquota -u CO+test (
имя доменного пользователя) значение soft изменяю на 5000
7. rcquota restart
8. repquota /files
должно вывести данные о квоте юзверя CO+test

У меня правда сначала не получилось пока я в расшареной папке не поменял владельца, а потом с помощью винды устанавливал необходимые значения квоты

Так же есть такая замечательная штука как WebAdmin и с помощью него можно манипулировать квотами

Настройка CLAMAV

Для того чтобы приступить к настройке clamav, для начала нужно проверить установлен ли он

rpm –q clamav (clamav-0.90.2-0.2)

Если нет, тогда прямая дорога в yast (clamav поставляется в дистрибутиве, скачивать ниоткуда не надо)

После проставления пакета беремся за редактирование файла clamd.conf (перед этим сохраняя копию оригинального, чтобы можно было потом откатиться)

Также после проставления пакета создается пользователь vscan (по умолчанию), которому нужно раздать следующие права…..

Clamav я решил не устанавливать, т.к. на тестовом сервере он очень тормозил копирование, перемещение файлов.

Окончательный конфиг Самбы smb.conf представлен ниже (не хватает только 3 шар)…. Потом обязательно добавлю….

# Samba config file created using SWAT

# from 10.10.10.10 (10.10.10.1)

# Date: 2008/04/16 15:14:13

# Creating by Oleg Dyadyov

[global]

workgroup = _доменное_имя_ (короткое)

realm = _доменное_имя_

server string = Samba Server

security = ADS

password server =_имя_контролера_домен_ (если два контролера, то оба указываем)

passdb backend = tdbsam

log file = /var/log/samba/log.%U

max log size = 50

os level = 33

preferred master = No

local master = No

domain master = No

dns proxy = No

idmap uid = 10000-20000

idmap gid = 10000-20000

winbind separator = + ----возможно его надо заремить

winbind enum users = Yes

winbind enum groups = Yes

hosts allow = 10.77.1.1/24

[homes]

comment = Home Directories

valid users = %S, %D%w%S

read only = No

inherit acls = Yes

browseable = No

[profiles]

comment = Network Profiles Service

path = %H

read only = No

create mask = 0600

directory mask = 0700

store dos attributes = Yes

[users]

comment = All users

path = /home

read only = No

inherit acls = Yes

veto files = /aquota.user/groups/shares/

[groups]

comment = All groups

path = /home/groups

read only = No

inherit acls = Yes

[printers]

comment = All Printers

path = /var/tmp

create mask = 0600

printable = Yes

browseable = No

[print$]

comment = Printer Drivers

path = /var/lib/samba/drivers

write list = @ntadmin, root

force group = ntadmin

create mask = 0664

directory mask = 0775

[test]

comment = Share for test

path = /files/test

valid users = CO+dyadyovoe, @CO+programmers, "@CO+администраторы домена"

admin users = CO+dyadyovoe

write list = CO+dyadyovoe

read only = No

create mask = 0660

directory mask = 0770

inherit acls = Yes

После этого всего виндовыми методами раздаем нужные разрешения на ресурс test

пятница, 19 декабря 2008 г.

Samba_Audit

Настройка Аудита на Самбе

Очень часто возникают вопросы кто создал или же кто удалил файл или каталог на сетевом ресурсе, т.к. у пользователей этого не узнаешь ( да и не зачем тратить свое драгоценное время), умные люди придумали такую штуку как АУДИТ. В Samba он также есть и вот ниже я опишу как это настроить.
Для начала редактируем конфиг самбы /etc/samba/smb.conf а именно добавляем или изменяем следующие строчки

log level = o vfs:2
где 2 - уровень vfs - логирования
syslog = 0

И в шаре

vfs objects = full_audit
full_audit:prefix = %u|%I --чтоб в Логе отображалось имя пользователя и его IP-адрес
full_audit:success = mkdir rmdir и т.д. --в зависимости что хотим отслеживать (возможные ключи connect disconnect opendir mkdir rmdir closedir open close read pread write pwrite sendfile rename unlink chmod fchmod chown fchown chdir ftruncate lock symlink readlink link mknod realpath)
full_audit:failure = none --чтоб при неудачных обращениях к файлам (доступ и т.п.) ничего в лог не писалось
full_audit:facility = local5
full_audit:priority = notice

А также редактируем файл /etc/syslog.conf -- Привожу пример моего файла, красными буквами обозначено то что добавлял...

# /etc/syslog.conf - Configuration file for syslogd(8)
#
# For info about the format of this file, see "man syslog.conf".
#

#
#
# print most on tty10 and on the xconsole pipe
#
kern.warning;*.err;authpriv.none /dev/tty10
kern.warning;*.err;authpriv.none |/dev/xconsole
*.emerg *

# enable this, if you want that root is informed
# immediately, e.g. of logins
#*.alert root


#
# all email-messages in one file
#
mail.* -/var/log/mail
mail.info -/var/log/mail.info
mail.warning -/var/log/mail.warn
mail.err /var/log/mail.erar/

#
# all news-messages
#
# these files are rotated and examined by "news.daily"
news.crit -/var/log/news/news.crit
news.err -/var/log/news/news.err
news.notice -/var/log/news/news.notice
# enable this, if you want to keep all news messages
# in one file
#news.* -/var/log/news.all

#
# Warnings in one file
#
*.=warning;*.=err -/var/log/warn
*.crit /var/log/warn

#
# save the rest in one file
#
#*.*;mail.none;news.none -/var/log/messages
mail.none;news.none -/var/log/messages

#
# enable this, if you want to keep all messages
# in one file
#*.* -/var/log/allmessages

#
# Some foreign boot scripts require local7
#
local0,local1.* -/var/log/localmessages
local2,local3.* -/var/log/localmessages
local4,local5.* -/var/log/localmessages
local6,local7.* -/var/log/localmessages
#########################################################
local5.notice -/var/log/samba/log.audit
*.warning;*.=err;daemon.!* -/var/log/warn
*.crit;daemon.!* -/var/log/warn
mail.none;news.none.daemon.!* -/var/log/messages
daemon.* -/var/log/daemon
*.*;local5,auth,authpriv.none -/var/log/samba/log.audit


Затем настраиваем ротацию логов чтоб Лог не разрастался и был удобен для поиска нужного события
Создаем в /etc/logrotate.d файл где прописываем настройки ротациии, допустим это будет samba-audit
/var/log/samba/log.audit {
dateext
compress
copytruncate
daily
missingok
notifempty
olddir /var/log/arhiv/samba_audit
rotate 300
}

Чтобы вручну запустить ротацию, нужно выполнить
logrotate /etc/logrotate.d/samba-audit
Также для удобства лучше эти архивные файлы хранить в другом месте, ну например
/var/log/arhiv/samba_audit