Создаем сервер — Часть 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