LINUX-сервер пошаговые инструкции инсталляции и настройки - Бруй В. В. , Карлов С. В.
.pdfГлава 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.
Периодически изменяемые файлы следует регулярно архивировать. Для того, чтобы определить, как часто следует архивировать периодически изменяемые файлы, задайте себе и пользователям вашей сети вопрос: «За какой период времени потеря информации, внесенной вами и пользователями сети в периодически изменяемые файлы, не причинит существенных потерь?». Проанализируйте ответы, отсейте необоснованные и некомпетентные. Оцените ресурсы, потребные для реализации требуемой периодичности резервного копирования, например, объем дискового пространства на серверах резервного копирования или съемных носителях информации, пропускную способность сети и т. п. Оцените затраты на реализацию резервного копирования и соответствующие убытки от потери информации.
Вэтой главе также рассматривается пример организации ежедневного резервного копирования периодически изменяемых файлов.
