Создаем сервер — Часть 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 |
# supass:# 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 = nowritable = yes# Общий доступ или только для пользователя указанного в guest account - userguest only = yesguest ok = yespublic = 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 user1pass: |
Добавим пользователям пароли для 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
RSS & RSS to Email