Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

LINUX-сервер пошаговые инструкции инсталляции и настройки - Бруй В. В. , Карлов С. В.

.pdf
Скачиваний:
123
Добавлен:
24.05.2014
Размер:
4 Мб
Скачать

Глава 37. Сервер Samba

551

server string = UNDEGROUND SAMBA SERVER encrypt passwords = Yes

security = user

smb passwd file = /etc/samba/smbpasswd log file = /var/log/samba/log.%m

max log size = 0

socket options = IPTOS_LOWDELAY TCP_NODELAY deadtime = 15

getwd cache = Yes lpq cache time = 45

name resolve order = wins lmhosts host bcast bind interfaces only = True

interfaces = eth0 172.16.181.0/24 127.0.0.1 hosts deny = ALL

hosts allow = 172.16.181. 127.0.0.1 debug level = 1

create mask = 0644 directory mask = 0755 unix charset = koi8-r display charset = koi8-r dos charset = cp866

[homes]

comment = Home Directories browseable = No

read only = No

invalid users = root bin daemon sync nobody sys tty disk mem kmem

[printers]

comment = Remote Printers path = /var/spool/samba browseable = No

printable = Yes

invalid users = root bin daemon sync nobody sys tty disk mem kmem

В данном файле директива:

workgroup = UND

определяет имя рабочей группы. Директива:

server string = UNDEGROUND SAMBA SERVER

содержит произвольную текстовую строку, содержащую описание сервера и отображаемую пользователям, например, при просмотре из Microsoft Windows папки "Сетевое окружение".

Директива:

encrypt passwords = Yes

предписывает использование зашифрованных паролей. Директива:

security = user

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

Директива:

smb passwd file = /etc/samba/smbpasswd

определяет местоположение файла, содержащего пароли пользователей сервера Samba. Директива:

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

предписывает вести отдельные файлы регистрации для каждой системы (Samba-сервера и рабочих станций), участвующих в доступе к общим ресурсам, и сохранять их в файлах с именами вида: log.xx.xx.xx.xx.

Директива:

max log size = 0

снимает ограничения на размер файлов регистрации. Директива:

socket options = IPTOS_LOWDELAY TCP_NODELAY

устанавливает параметры сетевых соединений, максимально повышающие производительность вашего сервера.

Директива:

552

Часть 11. Программное обеспечение для организации совместного использования....

deadtime = 15

определяет величину интервала времени, измеряемого в минутах, в течение которого осуществляется автоматическое рассоединение с клиентом при отсутствии активности со стороны последнего. Увеличение этого интервала позволяет повысить производительность сервера.

Директивы:

getwd cache = Yes

lpq cache time = 45

также позволяют повысить производительность сервера за счет организации кэширования данных. Директива:

name resolve order = wins lmhosts host bcast

определяет порядок обращения к различным ресурсам для определения соответствия IP-адресов именам систем.

Директивы:

bind interfaces only = True

interfaces = eth0 172.16.181.103/24 127.0.0.1

ограничивают обслуживаемые сервером сетевые интерфейсы. Директивы:

hosts deny = ALL

hosts allow = 172.16.181. 127.0.0.1

ограничивают IP-адреса, с которых разрешен доступ к серверу. Директива:

debug level = 1

определяет объем информации, выводимой в файлы регистрации. Вы можете увеличить этот параметр до 2 при настройке сервера и поиске различных неполадок. В режиме штатной эксплуатации увеличение этого параметра приводит к снижению производительности сервера.

Директива:

create mask = 0644

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

Директива:

directory mask = 0755

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

Директивы

unix charset = koi8-r display charset = koi8-r

dos charset = cp866

предназначены для корректного отображения русских кодировок.

Следующий блок директив определяет доступ к домашним каталогам пользователей:

[homes]

comment = Alexander Yesin share catalog path = /home/yesin

browseable = No read only = No valid users yesin

invalid users = root bin daemon sync nobody sys tty disk mem kmem

здесь разрешается доступ к домашнему каталогу /home/yesin пользователя yesin после прохождения удачной аутентификации (что задано выше директивой security = user для всех пользователей сервера) и запрещает доступ к этому каталогу всех специальных пользователей системы.

Блок директив:

[printers]

comment = Remote Printers path = /var/spool/samba browseable = No

printable = Yes

valid users = drwalbr karlnext international yesin

invalid users = root bin daemon sync nobody sys tty disk mem kmem

разрешает доступ к принтеру пользователям drwalbr, karlnext, international и yesin.

Шаг 2

Установите права доступа к файлу и назначьте его владельцем пользователя root:

[root@drwalbr /]# chmod 600 /etc/samba/smb.conf [root@drwalbr /]# chown 0.0 /etc/samba/smb.conf

Глава 37. Сервер Samba

553

Конфигурационный файл /etc/samba/lmhosts

Шаг 1

Создайте файл /etc/samba/lmhosts и внесите в него все имена систем вашей сети и соответствующие им IP-адреса. В нашем примере это выглядит так:

# Sample Samba lmhosts file.

#

127.0.0.1localhost

172.16.181.1 ntsrv

172.16.181.15 arm3 172.16.181.13 graf

172.16.181.103 drwalbr

Шаг 2

Установите права доступа к файлу и назначьте его владельцем пользователя root:

[root@drwalbr /]# chmod 640 /etc/samba/lmhosts [root@drwalbr /]# chown 0.0 /etc/samba/lmhosts

Конфигурационный файл /etc/sysconfig/samba

Шаг 1

Создайте файл /etc/sysconfig/samba, содержащий следующие строки:

#Options to smbd SMBDOPTIONS="-D"

#Options to nmbd

NMBDOPTIONS="-D -H /etc/samba/lmhost"

Шаг 2

Установите права доступа к файлу и назначьте его владельцем пользователя root:

[root@drwalbr /]# chmod 640 /etc/sysconfig/samba [root@drwalbr /]# chown 0.0 /etc/sysconfig/samba

Конфигурационный файл /etc/pam.d/samba

Этот файл используется для поддержки аутентификации пользователей с помощью модулей РАМ.

Шаг 1

Создайте файл /etc/pam.d/samba, содержащий следующие строки:

auth

required

/lib/security/pam_stack.so service=system-auth

auth

required

/lib/security/pam_nologin.so

account

required

/lib/security/pam_stack.so service=system-auth

account

required

/lib/security/pam_access.so

account

required

/lib/security/pam_time.so

password

required

/lib/security/pam_stack.so service=system-auth

session

required

/lib/security/pam_stack.so service=system-auth

session

required

/lib/security/pam_limits.so

session

optional

/lib/security/pam_console.so

Шаг 2

Установите права доступа к файлу /etc/pam.d/samba и назначьте его владельцем пользователя

root:

[root@drwalbr /]# chmod 640 /etc/pam.d/samba [root@drwalbr /]# chown 0.0 /etc/pam.d/samba

Конфигурационный файл /etc/logrotate.d/samba

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

Шаг 1

Создайте файл /etc/logrotate.d/samba, содержащий следующие строки:

554

Часть 11. Программное обеспечение для организации совместного использования....

/var/log/samba/log.* { notifempty missingok sharedscripts copytruncate postrotate

/bin/kill -HUP `cat /var/lock/samba/*.pid 2> /dev/null` 2> /dev/null || true

endscript

}

Шаг 2

Установите права доступа к файлу /etc/logrotate.d/samba и назначьте его владельцем пользователя root:

[root@drwalbr /]# chmod 640 /etc/logrotate.d/samba [root@drwalbr /]# chown 0.0 /etc/logrotate.d/samba

Файл инициализации /etc/lnit.d/smb

Шаг 1

Для запуска и остановки сервера Samba создайте файл /etc/init.d/smb, содержащий следующие строки:

#!/bin/sh

#

#chkconfig: - 91 35

#description: Starts and stops the Samba smbd and nmbd daemons \

# used to provide SMB network services.

# Source function library.

if [ -f /etc/init.d/functions ] ; then

. /etc/init.d/functions

elif [ -f /etc/rc.d/init.d/functions ] ; then

. /etc/rc.d/init.d/functions else

exit 0

fi

# Source networking configuration.

. /etc/sysconfig/network

if [ -f /etc/sysconfig/samba ]; then

. /etc/sysconfig/samba

fi

# Check that networking is up.

[ ${NETWORKING} = "no" ] && exit 0

# Check that smb.conf exists.

[ -f /etc/samba/smb.conf ] || exit 0

RETVAL=0

start() { KIND="SMB"

echo -n $"Starting $KIND services: " daemon smbd $SMBDOPTIONS

RETVAL=$? echo KIND="NMB"

echo -n $"Starting $KIND services: " daemon nmbd $NMBDOPTIONS

RETVAL2=$?

Глава 37. Сервер Samba

555

echo

[ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && touch /var/lock/subsys/smb

|| \

RETVAL=1 return $RETVAL

}

stop() {

KIND="SMB"

echo -n $"Shutting down $KIND services: " killproc smbd

RETVAL=$? echo KIND="NMB"

echo -n $"Shutting down $KIND services: " killproc nmbd

RETVAL2=$? killproc nmbd RETVAL2=$?

[ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && rm -f /var/lock/subsys/smb echo ""

return $RETVAL

}

restart() { stop start

}

reload() {

echo -n $"Reloading smb.conf file: " killproc smbd -HUP

RETVAL=$? echo

return $RETVAL

}

status() {

status smbd status nmbd

}

case "$1" in start)

start

;;

stop)

stop

;;

restart) restart

;;

reload) reload

;;

status) status

;;

condrestart)

[ -f /var/lock/subsys/smb ] && restart || :

;;

*)

echo $"Usage: $0 {start|stop|restart|status|condrestart}" exit 1

556

Часть 11. Программное обеспечение для организации совместного использования....

esac

exit $?

Шаг 2

Установите права доступа к файлу и назначьте его владельцем пользователя root:

[root@drwalbr /]# chmod 700 /etc/init.d/smb [root@drwalbr /]# chown 0.0 /etc/init.d/smb

Шаг 3

Если вы хотите, чтобы сервер samba запускался автоматически при загрузке системы, создайте соответствующие ссылки:

[root@drwalbr /]# chkconfig --add smb [root@drwalbr /]# chkconfig --level 345 smb on

Добавление новых пользователей (конфигурационный файл

/etc/samba/smbpasswd)

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

Шаг 1

Создайте пользователя yesin c использованием следующей команды:

[root@drwalbr /]# useradd –s /bin/false yesin

Проверьте наличие, а при необходимости добавьте в файл /etc/shells строку:

/bin/false/

Определите пароль нового пользователя для доступа к системе:

[root@drwalbr /]# passwd yesin Changing password for user yesin

New UNIX password: secretn()e_sL0v()

Retype new UNIX password: secretn()e_sL0v()

passwd: all authentication tokens updated successfully

Шаг 2 Далее вы можете добавить нового пользователя в систему, используя команду:

[root@drwalbr /]# smbpasswd -a yesin

New SMB password: secretn()e_sL0v()

Retype new SMB password: secretn()e_sL0v()

или экспортировать аутентификационную информацию из файла /etc/passwd в файл

/etc/samba/smbpasswd с использованием утилиты mksmbpasswd.sh:

[root@drwalbr /]# cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd

Шаг 3

Установите права доступа к файлу /etc/samba/smbpasswd и назначьте его владельцем пользователя root:

[root@drwalbr /]# chmod 600 /etc/samba/smbpasswd [root@drwalbr /]# chown 0.0 /etc/samba/smbpasswd

Тестирование Samba

Шаг 1

Проверьте отсутствие ошибок в конфигурационном файле /etc/samba/smb.conf:

[root@drwalbr /]# testparm –v

Шаг 2

Запустите Samba:

[root@drwalbr /]# /etc/init.d/smb start

Запускаются

сервисы

SMB:

[ОК]

Запускаются

сервисы

NMB:

[ОК]

Глава 37. Сервер Samba

557

Шаг 3 Зарегистрируйтесь в системе в качестве обычного пользователя и попробуйте установить соединение

с использованием утилиты smbclient:

[yesin@drwalbr yesin]$ smbclient //localhost/yesin -U yesin -I

172.16.181.103

Password: secretn()e_sL0v()

OS=[Unix] Server=[Samba 3.0.0beta3] smb: \> ls -l *.html NT_STATUS_NO_SUCH_FILE listing \-l

39373 blocks of size 262144. 34839 blocks available

smb: \> exit

Шаг 4

Проверьте доступ к общим ресурсам с другой системы, работающей на операционной системе Microsoft Windows.

Шаг 5

Проверьте работоспособность вашего сервера с использованием утилиты smbstatus:

[root@drwalbr

/]# smbstatus

 

Samba version

3.0.0beta3

 

PID

Username

Group

Machine

-------------------------------------------------------------------

3097

yesin

users

 

arm3

(172.16.181.15)

Service

pid

machine

 

Connected at

 

-------------------------------------------------------

yesin

3097

arm3

 

Fri Jul 25 16:45:38 2003

Locked

files:

 

 

 

 

Pid

DenyMode

Access

R/W

Oplock

Name

--------------------------------------------------------------

3097

DENY_NONE

0x1

 

RDONLY

EXCLUSIVE+BATCH

/home/yesin/photo1.jpg

Fri

Jul

25

16:45:51

2003

3097

DENY_NONE

0x1

 

RDONLY

EXCLUSIVE+BATCH

/home/yesin/photo2.jpg

Fri

Jul

25

16:45:56

2003

558

Часть 12. Организация резервного копирования

Часть 12

Организация резервного копирования

Глава 38. Резервное копирование

559

Глава 38

Резервное копирование

В этой главе:

1. Резервное копирование файлов программного обеспечения с использованием программы tar

2.Автоматическое резервное копирование периодически изменяемых файлов

3.Полное резервное копирование

4.Инкрементное резервирование копирование

560

Часть 12. Организация резервного копирования

Безопасный и надежный сервер предполагает выполнение регулярного резервного копирования. Это необходимо для того, чтобы вы могли восстановить сервер в случае возникновения аппаратных сбоев, например, из-за выхода из строя жестких дисков, человеческого фактора, скачков напряжения и т. д. Файлы, содержащие резервные копии лучше размещать на съемных внешних носителях информации (компактдисках, лентах, дискетах и т. п.) или специальных серверах, предназначенных для резервного копирования. В любом случае резервные копии файлов следует хранить за пределами системы, для восстановления которой они создаются. Перенос файлов с системы на систему следует осуществлять с использованием безопасной технологии OpenSSH, рассмотренной нами в главе 13.

Схема организации службы резервного копирования представлена на рис. 38.1.

Существует множество программ для осуществления резервного копирования, использование которых возможно на Linux-системах. К их числу относятся:

программы для создания резервных копий файлов и каталогов tar (http://www.gnu.org

/software/tar/tar.html), cpio (http://www.gnu.org/software/cpio/cpio.html),

работающие в режиме командной строки;

имеющая текстовый интерактивный интерфейс программа Amanda (http://sourceforge.net/ projects/amanda/), также предназначенная для создания резервных копий файлов и каталогов;

программа dump для создания резервных копий файловых систем;

утилита mysqldump, предназначенная для резервного копирования баз данных, обслуживаемых сер-

вером MySQL.

Существует также коммерческое программное обеспечение, реализующее функции резервного копи-

рования, например, программа BRU-ProTM (http://www.bru.com/).

В этой главе мы рассмотрим использование только программы tar, т. к. ее функциональных возможностей в сочетании с простыми сценариями, выполняемыми в оболочке командного интерпретатора, достаточно для решения практически любых задач, связанных с резервным копированием критически важной информации.

Обратите внимание, что на вашей системе имеются файлы, которые не должны изменяться вообще, и которые изменяются периодически.

К первому типу относятся файлы установленного программного обеспечения и конфигурационные файлы.

Ко второму типу относятся:

файлы, создаваемые реальными пользователями системы, например, файлы сохраняемые пользователями вашей локальной сети на файл-сервере Samba;

файлы, динамически изменяемые программным обеспечением сервера, например, файлы баз дан-

ных;

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

Вслучае утраты хранимых на диске данных программное обеспечение может быть относительно легко восстановлено в случае, если вы сразу же после инсталляции сохранили свои конфигурационные файлы,

ивоспользуетесь сценариями конфигурирования исходных кодов, прилагаемых к этой книге, и рекомендациями соответствующих глав. Вы также можете сохранить все исполняемые файлы установленного программного обеспечения с целью исключения – в случае возникновения нештатной ситуации – выполнения операций, связанных с повторным конфигурированием, компиляцией и настройкой программного обеспечения.

Резервное копирование программного обеспечения будет рассмотрено на примере программного обеспечения Apache HTTP Server, поддерживающего mod_php и mod_perl и функционирующего в окруже-

нии chroot-jail.

Периодически изменяемые файлы следует регулярно архивировать. Для того, чтобы определить, как часто следует архивировать периодически изменяемые файлы, задайте себе и пользователям вашей сети вопрос: «За какой период времени потеря информации, внесенной вами и пользователями сети в периодически изменяемые файлы, не причинит существенных потерь?». Проанализируйте ответы, отсейте необоснованные и некомпетентные. Оцените ресурсы, потребные для реализации требуемой периодичности резервного копирования, например, объем дискового пространства на серверах резервного копирования или съемных носителях информации, пропускную способность сети и т. п. Оцените затраты на реализацию резервного копирования и соответствующие убытки от потери информации.

Вэтой главе также рассматривается пример организации ежедневного резервного копирования периодически изменяемых файлов.