Создаем сервер — Часть 1. SAMBA

Создаем сервер — Часть 1. SAMBA

Доброго времени суток, друзья. Сегодня я начинаю серию статей о создании сервера в компании. Это практическое руководство, которое затронет все аспекты создания сервера начиная от установки системы вплоть до запуска. Начнем.

Итак, нам понадобятся:

  • компьютер
  • операционная система
  • голова и руки

Технические задачи:

  • файл-сервер SAMBA
  • VPN PPTP
  • Почтовый сервер
  • VoIP
  • Терминальный сервер

Предположим, что компьютер у нас есть. Оговорюсь, здесь не нужно серверное железо, простой компьютер с минимум 2 Гб оперативной памяти из расчета, что пользователей у вас будет до 100. Далее нам необходимо установить операционную систему. Дабы не устраивать здесь «холивар», я не буду говорить, какая система будет лучшей и самой надежной. Все они хороши, но выбрать стоит что-то из списка топ сайта Distrowatch.com (не Mint или Mageia). В данный момент у меня на работе установлен сервер на Debian. Но сейчас мы будем использовать CentOS 6.4, так как я считаю ее основополагающей при изучении Linux и достаточно надежной.

Вернемся к нашему проекту. Нам нужно установить систему. Уверен, что с процессом установки вы знакомы и мы не будем описывать здесь пошагово все. Единственное вам нужно решить вопрос с разметкой, если вы собираетесь (а мы собираемся) установить файл-сервер Samba и вы имеете в наличии 2 жестких диска, создать RAID-массив и также решите, в каком виде вы хотите получить операционную систему — минимальную консоль или с GUI. В общем, это вы решите сами.

Ну что ж, систему мы установили, перейдем непосредственно к задачам. И первый у нас на очереди «файл-сервер».

SAMBA

В моей системе после установки уже были установлены все необходимые пакеты SAMBA, в противном случае пакеты необходимо установить.

1
2
3
# su
pass:
# yum install -y samba

После того, как пакеты установились SAMBA не будет стартовать при старте системы, поэтому необходимо добавить процесс автозагрузки.

1
2
# chkconfig --level 345 smb on
# chkconfig --level 345 nmb on

Далее нам необходимо разрешить прослушивание портов UDP и TCP, так как по умолчанию данная опция не доступна. Для этого нам необходимо править iptables.

1
2
3
4
5
# iptables -I INPUT 4 -s 192.168.10.0/24 -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
# iptables -I INPUT 5 -s 192.168.10.0/24 -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
# iptables -I INPUT 6 -s 192.168.10.0/24 -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
# service iptables save
# service iptables restart

Теперь, когда мы выполнили все начальные действия, можно приступить непосредственно к настройке нашего файлового сервера. Делается это в конфигурационном файле SAMBA smb.conf. Сперва создадим копию оригинального конфигуратора на случай «форс-мажор».

1 # cp /etc/samba/smb.conf /etc/samba/smb.conf.backup

Теперь приступим к настройке сервера. Я буду использовать редактор Midnight Commander, но вы можете делать это в любом удобном для вас.

1 mcedit /etc/samba/smb.conf

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[global]
# Имя рабочей группы
workgroup = WORKGROUP
# Описание компьютера
server string = MyServer
# Имя  компьютера в локальной сети
netbios name = CentOS
# Место расположение лог файла
log file = /var/log/samba/log.%m
# Максимальный размер лог файла
max log size = 50
# Тип доступа
security = user
# Видимость ресурса в сети
browseable = yes
# Является публичным, т.е. доступ разрешен всем.
public = yes
# Имя пользователя для доступа к шаре
guest account = user
# Название расшаренной папки в шаре
[share]
# Комментарий
comment = share
# Путь до расшаренной папки
path = /media/disk/share
# Видимость ресурса в сети
browseable = yes
# Разрешаем чтение и запись
read only = no
writable = yes
# Общий доступ или только для пользователя указанного в guest account - user
guest only = yes
guest ok = yes
public = yes

Я специально оставил комментарии, чтобы менее опытные пользователи понимали, что за что отвечает. Люди, более или менее владеющие английским языком могут обратиться к созданной копии. Там все очень подробно описано. Также советую обратиться к очень полезному ресурсу в сети по SAMBA — http://smb-conf.ru. От себя скажу, нужно запомнить один важный момент касательно конфигурационного файла — чем он меньше, тем лучше. Каждый параметр, имеющийся в SAMBA, имеет значение по умолчанию, поэтому если это значение по умолчанию совпадает с тем, что вы хотите указать, просто опустите его и система автоматически будет его использовать.

Итак, мы настроили конфигурацию нашего сервера и теперь нам необходимо создать пользователей. Сперва добавим пользователя в систему. Мы не хотим, чтобы этот пользователь мог выполнять вход на наш сервер, поэтому отключим ему shell и не будем создавать пароль и каталог. Но сперва создадим группы, в которые будем.

1 # groupadd group1 group2 group3

Группы созданы. Теперь создадим пользователей.

1 # useradd -M -G group1,group2 user1 --shell=/bin/false

Пользователи созданы. Теперь можно добавить созданных пользователей в SAMBA.

1
2
# smbpasswd -a user1
pass:

Добавим пользователям пароли для SAMBA. Не забываем, что в системе уже должны быть созданы соответствующие конфигурации папки и настроены права. Все, на этом создание файл-сервера закончено и в другой ОС уже все должно работать. Но в CentOS есть нюанс, который не позволит пользователям использовать сервер — это Firewall ОС. Пользователи могут видеть общие каталоги, но не могут в них войти. Есть два варианта выхода из данной ситуации — отключение Firewall’а ОС или его настройка. Нас, естественно, интересует второй вариант, так как это сервер и, хоть это и Linux, у него должна быть защита. Итак, для корректной работы файл-сервера необходимо дать разрешение Firewall’у использовать ресурсы сети.

1
2
3
4
# for i in "здесь вписываете названия общих каталогов SAMBA без кавычек"
> do
> chcon -R -t samba_share_t /"директория, в которой расположены общие каталоги"/$i
> done

Данное действие позволит SELinux разрешать пользователям использовать ресурсы SAMBA, но только до первой перезагрузки или обновления. Поэтому мы сделаем разрешения постоянными.

1
2
# semanage fcontext -a -t samba_share_t '/(/.*)?'
# restorecon -R /

Если вы вдруг столкнулись с ошибкой «semanage: команда не найдена», установите следующее.

1 # yum install -y policycoreutils-python

Вот и все. На этом настройка файл-сервера закончена. Если вы все сделали правильно, сервер прослужит надежно и долго.

Оригинал:alkom.by/alkomnet/archives/48

Запись опубликована в рубрике *CentOS, *Unix,*Linux. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Я не спамер This plugin created by Alexei91