Поднимаем файловый сервер на Samba под CentOS. Файловый сервер для Windows Ubuntu server как запустить файловый сервер
Чтобы создать терминальный, файловый (FTP) или почтовый сервер на Linux, надо уметь работать в этой операционной системе . Иначе разобраться будет сложно. ОС не нужен мощный компьютер . Потому что она не расходует лишние ресурсы на графическое оформление. Дистрибутивы Линукса можно развернуть даже на старом ПК. Поэтому для создания различных серверов часто используют Linux или Ubuntu Server .
Соответствующий сценарий, который вы можете легко создать самостоятельно, должен содержать следующий код для этой цели. Используйте эту запись, чтобы убедиться, что сценарий выполнен и, в случае успешного входа в систему, реагирует на письмо с уведомлением на требуемый адрес. Предпосылкой является то, что сценарию присваивается право 755, которое достигается с помощью следующей команды.
Отключение неиспользуемых портов
Открытые порты, как правило, не представляют особого риска для безопасности. Если вы смогли внедрить минимальную установку системы и получить доступ к небольшому количеству сторонних приложений , количество других необходимых портов управляемо. Для риска эти открытые интерфейсы будут использоваться только в том случае, если у реагирующих программ есть пробелы в безопасности, и преступники воспользуются этим фактом. С увеличением числа применений этот опасный потенциал растет.
Об этом написано много различной литературы. Некоторые книги о Линуксе насчитывают тысячу страниц. Работать придётся через терминал и все команды вводить вручную. Но всё же вы сможете сделать небольшой Linux-сервер своими руками, который будет включать файловое хранилище, Web-сервисы и почтовый протокол.
Ubuntu Server создана на базе операционной системы Linux . Для её работы не нужен современный процессор, хорошая видеокарта или большой объём оперативной памяти . С Линукс можно развернуть сервер даже на старом ноутбуке. И в нём будут все нужные компоненты: почта, FTP, Web.
Регулярное обновление программного обеспечения
По этой причине полезно защитить ваш сервер от таких атак, заблокировав все неиспользуемые открытые порты . Вы можете использовать этот инструмент для создания фиксированных правил регулирования трафика, включая определение желаемых или нежелательных портов. Без упоминаемых в предыдущем разделе уязвимостей, как правило, нет программного обеспечения. Тем не менее, эксплуатируемое неправильное программирование должно быть сначала обнаружено киберпреступниками, прежде чем они смогут атаковать. Как правило, известные уязвимости снова закрываются посредством опубликованных обновлений за очень короткое время.
Скачать образ диска с Linux можно с сайта Ubuntu.ru. Выбирайте любую версию с Server (не Desktop!). Загрузка будет проходить через Torrent-клиент. Этот образ надо записать на болванку или флешку (с помощью LiveUSB). Также можно воспользоваться виртуальным приводом.
У Ubuntu упрощённый интерфейс. В нём нет никаких графических излишеств. Эта ОС прекрасно подходит, чтобы сделать Linux-сервер своими руками. С ней ресурсы компьютера будут использоваться для нужд домена. Ведь ей для работы нужно совсем немного.
Если вы постоянно обновляетесь с обновлениями операционной системы и установленных программ и своевременно делаете новые обновления, обеспечьте наилучшую защиту своего сервера. Почти все серверные системы также позволяют автоматически загружать и устанавливать важные обновления безопасности в фоновом режиме.
Это то, как вы настраиваете, когда и как регулярно проверяете наличие обновлений, хотите ли вы установить установленные обновления и когда система должна перезагрузиться. Другие сценарии, такие как автоматические обновления , затем будут использоваться для автоматической установки. Убедитесь, что у вас есть обновленный процесс обновления, который позволяет вам обновлять обновления. Это позволяет лучше понять и исправить ошибки, возникающие в результате процесса обновления.
Её установка проходит так:
- Выберите язык и регион, в котором проживаете.
- Придумайте имя администратора. Оно используется для управления сервером.
- Также задайте имя пользователя в поле «Username for your account». Под этим аккаунтом вы будете общаться с техподдержкой Ubuntu.
Хакеры, желающие получить доступ к вашему серверу или работающим на них приложениям, имеют в принципе разные варианты. Одним из самых простых и наиболее часто используемых типов атаки является так называемый метод грубой силы. Злоумышленник пытается получить доступ к паролям с помощью инструмента, который пытается войти в систему по одному. Однако чем более осторожны вы при назначении ваших паролей, тем более маловероятно, что этот метод приведет к успеху. В частности, если вы предлагаете услугу с механизмом подписки, вы должны предположить, что не каждый пользователь является настолько добросовестным и осторожным, насколько это необходимо.
Указываем имя пользователя в Ubuntu
- Введите пароль. Подтвердите его.
- Укажите домен, если он есть. На нём будут находиться все сервисы: файловый (FTP), почтовый, хостинг для сайтов и так далее.
- Подождите, пока установится система.
- После этого она предложит дополнительные компоненты.
Вот список того, что необходимо для сервера Linux и его полноценной работы:
Разумеется, нет необходимости в сложном дорогостоящем программном обеспечении для защиты от таких атак. Поскольку каждая попытка входа в систему регистрируется, отвечает и записывается в файлы журнала, могут помочь простые инструменты анализа. Вы можете индивидуально установить количество попыток блокировки блокировки или как долго она должна быть действительной.
Настройте сервер безопасно: с самого начала установите инструменты мониторинга
Вы также можете сделать еще один шаг и настроить двухфакторную аутентификацию для установления соединения с вашим сервером, чтобы дополнительно защитить вход в систему. Если вы хотите защитить сервер, перечисленные меры против внешних невзгод не имеют большого значения. Однако не менее важно обеспечить, чтобы взаимодействие аппаратного и программного обеспечения функционировало по желанию. Это ни в коем случае не одноразовая вещь, которая завершается после успешного запуска вашей серверной среды, а долгосрочная задача, которую вы никогда не должны упускать из виду.
- Open SSh. Используется для удалённого администрирования . Пригодится, если вы решите управлять сервисом с другого компьютера. Тогда на ПК с Линуксом можно будет отключить монитор и видеоадаптер.
- LAMP. Комплекс утилит Linux, который включает Apache (Web-сервер). MySQL (базы данных) и PHP (язык программирования для CMS). Эти компоненты нужны для создания управляющего интерфейса.
- Samba file server. Позволяет настроить обмен файлами между компьютерами. Если вам нужен FTP-сервер, выберите этот пункт.
- Virtual Machine host. Устанавливайте, если собираетесь пользоваться возможностями виртуализации.
- Print server. Сетевые принтеры.
- DNS server. Система доменных имён. С ней можно распознать IP-адрес по имени компьютера и наоборот.
- Mail server. Почтовый сервер.
- PostgreSQL database. Объектно-реляционные базы данных.
Выберите то, что вам нужно, и подтвердите установку. При первом запуске надо будет ввести логин администратора и пароль. Откроется консоль. Она похожа на командную строку Windows или интерфейс операционной системы MS DOS.
С большим количеством различных системных процессов это, конечно, легче сказать, чем сделать, поэтому вы должны иметь доступ к инструментам помощи с самого начала, которые отслеживают все операции на вашем сервере и предупреждают вас о любых инцидентах.
Доверие хорошее, резервные копии лучше
После запуска приложение с открытым выборочно контролирует процессы, файлы, облака, хосты, программы или скрипты. Это, однако, несколько сложнее, но в основной версии также с открытым исходным кодом и может быть расширено различными плагинами. С рекомендациями по настройке вы значительно повышаете уровень безопасности сервера. Однако даже лучшая конфигурация и не могут обеспечить стопроцентную защиту сервера.
Изначально вам надо будет проверить наличие обновлений. Введите команду «Sudo apt-get update» или «Sudo apt-get upgrade» без кавычек. После апдейта можно заняться настройкой всех компонентов серверов: FTP, почтового, Веб.
Для Ubuntu существует псевдографический интерфейс - Midnight Commander. Это аналог оболочки Norton Commander, которая разработана для системы MS DOS. С таким интерфейсом легче работать - всё нагляднее, чем в консоли.
Ошибки программы, аппаратные сбои или личная небрежность могут привести к потере данных в худшем случае. Для операторов сервера решающую роль играет аспект безопасности. Для тех, кто разрабатывает и реализует всеобъемлющую концепцию защиты, готовятся к чрезвычайным ситуациям . Помимо классических мер, таких как программное обеспечение безопасности, резервное копирование, защита паролем и шифрование, есть также некоторые полезные инструменты и фреймворки, которые могут поддерживать их в борьбе с нарушителями.
Глава 26: Восстановление доступа
Глава 28: Темы резервного копирования данных семинара
Глава 30: Сетевая маршрутизация сети. Первая запись используется для коммутируемых линий. Он работает со следующими данными. Когда мы откроем его, напишем следующую строку. После завершения запустите приложение с той же консоли, набрав.Запуск терминала Linux
В современных Linux вместо консоли используется терминал. Чтобы в него зайти:
- Откройте «Приложения».
- Нажмите «Стандартные».
- Там будет «Терминал».
В него можно вводить команды так же, как в Ubuntu Server.
У нас уже установлен сервер! Давайте напишем его в консоли. С этим мы закончили всю работу, уже мы можем создавать собственные веб-страницы, важно, чтобы у вас был хороший редактор , который бы удобно программировать. Мы можем вызывать сервер для всех компьютеров, подключенных к сети, и предоставлять пользователям разные сервисы. Для этого нам нужно достаточно, чтобы создать компьютер, который может удовлетворить наши потребности. Мы можем установить сервер, который предлагает веб-службы, файлы и печать.
Н а этом уроке мы собираемся узнать, как установить и настроить сервер Samba на Ubuntu 16.04. Samba является свободным и с открытым исходным кодом реализацией протокола SMB/CIFS для Unix и Linux, что позволяет взаимодействовать между файлами и принтерами в Unix/ и Windows, на машинах в локальной сети.
Samba представляет собой пакет программ, наиболее важными из которых два являются:
- smbd : обеспечивает SMB / CIFS обслуживание (общий доступ к файлам и печати), а также может выступать в качестве контроллера домена Windows.
- nmbd : обеспечивает сервис имен NetBIOS
Как установить Samba-сервер на Ubuntu 16.04
Samba входит в состав большинства дистрибутивов Linux. Чтобы установить Samba на , просто запустите:
Sudo apt install samba
Последняя стабильная версия доступна 4.5.3, выпущена 19 декабря 2016 г. Чтобы проверить версию Samba , запустите
Sudo smbstatus
Sudo smbd --version
Пример вывода:
Samba version 4.3.11-Ubuntu
Для того, чтобы проверить, запущена ли служба Samba, выполните следующие команды.
Systemctl status smbd systemctl status nmbd
Для запуска этих двух служб, выполните следующие команды:
Sudo systemctl start smbd sudo systemctl start nmbd
После запуска, smbd будет слушать на порту 139 и 445.
Редактирование файла конфигурации
Там только один конфигурационный файл, который необходимо отредактировать: /etc/samba/smb.conf .
Sudo nano /etc/samba/smb.conf
В разделе , убедитесь, что значение workgroup относиться к рабочей группе компьютеров Windows.
Workgroup = WORKGROUP
Прокрутите вниз к нижней части файла. (В текстовом редакторе nano, нажмите CTRL+W а затем CTRL+V .) Включите новый раздел, как показано ниже. Замените username на необходимое имя пользователя.
Comment = Home Public Folder path = /home/username/ writable = yes valid users = username
Home Share это имя папки, которое будет отображаться в сети Windows. Комментарием является описание общей папки. Следующие 3 строки указывают, что только указанный пользователь valid users имеет право доступа к каталогу /home/username/ , который также доступен для записи. Вышеуказанная конфигурация отключит анонимный доступ.
Сохраните и закройте файл, а затем выполните следующую команду, чтобы проверить, если есть синтаксические ошибки.
Testparm
Создание пользователя
Samba содержит по умолчанию user в качестве режима защиты, означает, что клиенты должны ввести имя пользователя и пароль для доступа к общей папке. Чтобы добавить пользователя в Ubuntu, выполните следующую команду:
Sudo adduser username
Вам будет предложено установить пароль Unix. Кроме того, необходимо установить отдельный Samba пароль для пользователя с помощью следующей команды:
Sudo smbpasswd -a username
Теперь все, что осталось сделать, это перезапустить демон smbd.
Sudo systemctl restart smbd
Доступ Samba к общей папки из Windows
На компьютере Windows, который находится в той же сети, откройте проводник и нажмите Сеть на левой панели. Вы увидите сервер самбы. Дважды щелкните общую папку и введите имя пользователя и пароль.
Доступ Samba к ресурсу папке с компьютера Ubuntu
В диспетчере файлов, перейдите на вкладку Сеть на левой панели и выберите Сеть Windows.
Выберите рабочую группу, сервер Samba и общую папку, а затем введите имя пользователя и пароль Samba.
Добавление нескольких пользователей или групп
Если нескольким учетным записям необходимо получение доступа к общей папке, то необходимо изменить правомерных пользователей, как показано ниже в файле /etc/samba/smb.conf .
Valid users = user1, user2, user3
Также используйте smbpasswd для установки пароля Samba для каждого из этих пользователей.
Sudo smbpasswd -a user1 sudo smbpasswd -a user2 sudo smbpasswd -a user3
Для того, чтобы разрешить группе пользователей получить доступ к общей папке, используйте следующую конфигурацию /etc/samba/smb.conf .
Valid users = @sambashare
Создайте группу.
Sudo groupadd sambashare
Затем добавьте в эту группу пользователей
Sudo gpasswd -a user1 sambashare sudo gpasswd -a user2 sambashare sudo gpasswd -a user3 sambashare
Группа должна иметь разрешение на запись в общую папку, которая может быть достигнута при следующих двух команд.
Набор sambashare как владельца группы общей папки:
Sudo chgrp sambashare /path/to/shared/folder -R
Предоставить право на запись в группе.
Sudo chmod g+w /path/to/shared/folder/ -R
Я надеюсь, что эта статья помогла вам настроить сервер Samba на Ubuntu 16.04. Как всегда, если вы нашли этот пост полезным, то отпишитесь в комментариях.
На Ubuntu очень легко развернуть файловый сервер для Windows машин. Стандартное применение такого сервера - организация файловых хранилищ в рамках Active Directory домена. Однако легко можно создавать файловые сервера и в бездоменной сети, например - для домашнего использования.
В любом случае вам потребуется как минимум Samba, установить которую можно через менеджер пакетов Synaptic или командой
Файловый сервер в составе домена Active Directory
Для того, чтобы создать файловый сервер, интегрированный в домен Active Directory, вам в первую очередь потребуется ввести вашу машину с Ubuntu в домен. Этому посвящена отдельная статья:
Для создания файлового сервера вам не нужно настраивать PAM, достаточно добавить доменных пользователей и группы через Winbind в систему.
После успешного входа в домен вам останется всего лишь настроить расшаренные ресурсы на вашем компьютере.
Тут стоит сразу обратить внимание на одну очень важную вещь: Samba пытается спроецировать права на файлы Windows на права Unix , однако из-за кардинальных различий в механизмах присвоения прав сделать это не всегда возможно. Учтите, что права на файлы всегда и в любом случае контролируются вашей файловой ситемой на компьютере с Ubuntu, самба может лишь подстраиваться под них, но не менять их поведение.
Поэтому по умолчанию на расшаренных ресурсах будут весьма скудные возможности контроля доступа - назначение разных прав для пользователя, группы и всех остальных. Однако это легко исправить, добавив в вашу ФС поддержку POSIX ACL . В этом случае можно будет назначать различные права различным пользователям и группам практически как в Windows.
Поддержка POSIX ACL есть как минимум в ext3/4, для её активирования вам необходимо просто добавить к опциям монтирования нужного раздела параметр acl .
Важно, чтобы каталог, который вы хотите расшарить через Samba, лежал на диске, смонтированном с опцией acl. Иначе вы не сможете нормально использовать механизм разграничения прав доступа к файлам на шарах.
Есть и ещё один весьма немаловажный момент: POSIX ACL не поддерживают наследование прав доступа от родительских каталогов, а в Windows эта возможность присутствует. Поэтому в Samba реализован дополнительный механизм сохранения информации о наследовании прав доступа, который использует расширенные атрибуты файловой системы. Поэтому чтобы Samba могла корректно обрабатывать наследование прав кроме acl к опциям монтирования файловой системы необходимо добавлять параметр user_xattr , который как раз и отвечает за включение поддержки расширенных атрибутов.
Например, я всегда использую для организации расшаренных ресурсов отдельные LVM диски и у меня строчки в fstab для них выглядят примерно так:
/dev/mapper/data-profiles /var/data/profiles ext3 defaults,noexec,acl,user_xattr 0 2
Опция noexec нужна потому, что на шарах для Windows 100% не должно быть исполняемых файлов Linux, и лишний раз перестраховаться не помешает.
Для работы с acl на Ubuntu необходимо установить пакет соответствующих утилит:
Sudo aptitude install acl
После чего посмотреть расширенные права (т.е. ACL) на файл или каталог можно будет командой
Getfacl file
А установить командой
Setfacl file
На всякий случай хочу обратить внимание на то, что механизм POSIX ACL не имеет никакого отношения к Samba - это просто надстройка над стандартным механизмом разграничения прав в Linux. Соответственно Samba может его использовать, но не может как-либо изменить или обойти.
Для работы с расширенными атрибутами ФС потребуется очень похожий на acl пакет утилит - attr , поставить который можно командой
Sudo aptitude install attr
Для просмотра расширенных атрибутов можно использовать команду
Getfattr file
А для установки
Setfattr file
Однако тут есть одна небольшая загвоздка. Дело в том, что Samba хранит всю информацию о наследовании в бинарном виде в единственном расширенном атрибуте user.SAMBA_PAI . Поэтому поменять что-то с помощью setfattr вам не удастся, только разве что полностью удалить расширенные атрибуты (иногда такое может потребоваться сделать).
Ну а управлять наследованием прав вам придётся с Windows машины с помощью штатных инструментов этой системы. Либо же с помощью утилиты smbcacls , если вы разберётесь, как ей пользоваться.
Существует так же экспериментальный VFS модуль acl_xattr, который позволяет хранить NT ACL полностью в расширенных атрибутах. К сожалению, документации по нему нет, поэтому что-то вразумительное сказать по его поводу сложно. Ожидается, что в Samba 4 будет полная интегрированная поддержка NT ACL , а пока что можно пользоваться тем, что есть.
Если вам есть что добавить по поводу расширенных атрибутов в Samba и методах работы с ними - обязательно напишите в эту тему на форуме. Буду благодарен за любые ссылки, статьи и комментарии по теме.
Кроме того, расширенные атрибуты файловой системы позволяют включить в Samba полную поддержку файловых атрибутов DOS, таких как скрытый, архивный и пр.
Итак, будем считать что у вас есть в системе каталог, который вы хотите расшарить через Samba (и он находится на диске, подмонтированном с поддержкой acl и user_xattr). Теперь необходимо собственно настроить его расшаривание. Для этого нужно внести соответствующую информацию в файл /etc/samba/smb.conf .
Начнём с общих настроек, которые можно добавить в секцию этого файла (это далеко не все возможные параметры, просто несколько достаточно полезных из них):
# Отключить расшаривание принтеров. Если вы конечно и вправду не хотите их расшаривать. # Для полного отключения нужно указывать все 4 строки, приведённых ниже load printers = no show add printer wizard = no printcap name = /dev/null disable spoolss = yes # Сделать скрытыми при просмотре с Windows файлы со следующими именами hide files = /$RECYCLE.BIN/desktop.ini/lost+found/Thumbs.db/ # Использовать для шар с публичным доступом следующего UNIX пользователя в качестве Guest guest account = nobody # Воспринимать как guest незарегистрированных пользователей map to guest = Bad User ## Настройки, использующие расширенные атрибуты файловой системы # Обрабатывать наследования прав с помощью расширенных атрибутов ФС map acl inherit = yes # Использовать расширенные атрибуты ФС для хранения атрибутов DOS store dos attributes = yes # Отключить маппинг DOS атрибутов на UNIX права, включённый по умолчанию # Согласно man smb.conf при использовании расширенных атрибутов эти опции обязаны быть отключены map archive = no map system = no map hidden = no map readonly = no
Теперь настройки непосредственно расшаренного ресурса. У меня он называется profiles , а физически на Ubuntu машине находится по адресу /var/data/profiles :
# Комментарий comment = User Profiles # Путь до папки, которую расшариваем path = /var/data/profiles/ # Пользователи с неограниченными правами доступа к шаре # У меня стоит группа администраторов домена. # Эти пользователи при работе с файлами воспринимаются как локальный root admin users = "@DOMAIN\Администраторы домена" # Скрыть папки, к которым у пользователя нет доступа hide unreadable = yes # Доступ не только на чтение read only = no # Маски для создаваемых файлов - можно задать по желанию #create mask = 0600 #directory mask = 0700 # Отключение блокировок - лучше отключить locking = no
Есть множество других опций - за подробностями стоит обратиться к документации по Samba.
Не забудьте поставить правильного владельца и права доступа на папку, которую вы расшариваете, а то несмотря на любые настройки самбы в неё может быть запрещена запись на уровне прав Linux. Я делаю обычно так:
Sudo chmod ug+rwx /var/data/profiles sudo chown root:"пользователи домена" /var/data/profiles
Обратите внимание, так как ваша Ubuntu машина введена в домен, то вы можете использовать пользователей и группы домена в качестве владельцев файлов прямо в Ubuntu.
Проверьте правильность конфигурации Samba командой
Testparm
После чего перезапустите Samba:
Sudo /etc/init.d/samba restart
Теперь вы можете с любой машины домена получить доступ к расшаренному ресурсу.
Кстати, не забывайте про SGID и Sticky биты для каталогов. Они позволят вам наследовать группу-владельца и запрещать пользователям удаление не своих файлов - это может быть очень удобно для многопользовательских хранилищ. Однако в отличие от редактирования прав из Windows поменять эти биты на папках на расшаренном ресурсе не получится - только вручную непосредственно на Ubuntu компьютере.
Кроме всего прочего Samba позволяет организовывать хранение предыдущих версий файлов, что бывает иногда полезно при создании общих ресурсов с пользовательскими данными. Подробности в соответствующей статье:
Автономный файловый сервер
Домен Active Directory есть далеко не у всех. Поэтому часто возникает необходимость организовать на Linux машине автономное файловое хранилище со своей собственной системой авторизации. Это сделать очень просто.
Основной особенностью такой организации файлового хранилища будет то, что вся информация о пользователях будет храниться в базе данных Samba, соответственно добавлять и удалять пользователей на самбу надо будет вручную.
Самое главное - определиться с используемым способом доступа к ресурсу. Для его изменения надо правильно установить значение параметра security в секции файла /etc/samba/smb.conf . Подробней об этом параметре можно почитать или же в официальной документации.
Обычно используется значение share или user .
Автономный файловый сервер без авторизации
Для дома удобно чтобы все видели всех. Это можно сделать если добавить 4 строчки в секцию файла /etc/samba/smb.conf. Некоторые могут уже существовать.
[ global] workgroup = WORKGROUP map to guest = Bad User netbios name = NOTEBOOK security = userNOTEBOOK - имя компьютера которое будет в сети. Кроме этого надо установить дополнительные программы:
sudo apt-get install sambaДля kubuntu надо еще установить smb4k . После редактирования конфигов надо перезапустить службы. В systemd (начиная с 15.04) перезапуск выглядит так:
sudo systemctl restart smbd.service nmbd.serviceПосмотреть «шары» можно через файловый броузер nautilus, konkueror или так:
Smbclient -L 127.0.0.1
. Официальная документация на английском.
Расшаривание папки на ubuntu
Cоздайте папку для обмена файлов.
mkdir ~/ shareДобавьте в конец файла /etc/samba/smb.conf следующие строки, yuraku1504 замените на имя пользователя компьютера с самбой:
[ MyShareWork] comment = Anonymous Samba Share path = / home/ yuraku1504/ share guest ok = yes browsable =yes writable = yes read only = no force user = yuraku1504 force group = yuraku1504Папка будет открыта для чтения и записи.
в первую очередь, статья для меня самого и для таких же дурачков начинающих сисадминов или им сочувствующих. так сказать, пошаговая инструкция.
сервер на линуксе можно сделать практически из любого старого компа. серверная версия линукса не прихотлива, а работает на отличненько. в вашем распоряжении может быть: файл-сервер (хранилище файлов), принтер-сервер (центролизованное управление принтером или принтерами), мэйл-сервер (почтовик), гейм-сервер (свой собственный игровой сервак. обязательно с блэкджэком и шлюхами), можно просто как шлюз в интернет использовать. много возможностей (я тут далеко не всё перечислил).
на сегодняшний день меня интересует file-сервер и web-сервер (для сайта-поддержки игры). об них и будет данный псто.
1. установка дистрибутива linux. создание пользователей.
за основу была взята, уже полюбившаяся, Ubuntu. конктретно в данном случае была использована свеженькая Ubuntu 9.10 server i386
.
бесплатно скачать исошник можно с официального сайта Canonical.
после загрузки рабочей консоли, я установил Midnight Commander
. это псевдографическая оболочка, похожая на Norton Commander (ставился, в своё время, на безгуёвый MS DOS). очень удобна в работе.
$ sudo apt-get install mc
$ mc
я планирую, что у меня будет несколько игр на сервере. соответственно, я буду создавать несколько учётных записей с минимальными правами.
2. настраиваем samba и поднимаем file-сервер.
для начала настроим сетевую карту сервера. выбираем свободный ip-адрес (у меня был свободен 192.168.1.4).
сетку настраиваем путем редактирования файла: /etc/network/interfaces
:
$ sudo nano -w etc/network/interfaces
содержимое файла interfaces:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.4
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
[обратите внимание, что "address" написано с двумя "d" и двумя "s". у меня здесь были ошибки. скорее всего из-за невнимательности ]
затем:
# echo server.home.net > /etc/hostname
И еще:
$ hostname
$ hostname -f
эти две команды должны вывести на экран имя server.home.net
.
теперь, собственно, самба. если вы в самом начале (в время установки дистрибутива) не выделили Samba file server, то ничего страшного. мы можем сейчас все нужные пакеты установить:
$ sudo apt-get install samba smbclient smbfs ntp ntpdate
мы установили программы: Samba, SMBlient и SMBFS, которые являются основой для нашего файлового сервера.
последние пакеты - NTP и NTPDate - я установил, чтобы сервер мог синхронизировать свои системные часы, через Интернет.
выполним команду, которая сделает наш диск доступным для всех пользователей сети (дадим им полные права на этот диск).:
$ sudo mkdir /media/multimedia
$ sudo chmod 777 /media/multimedia
теперь сконфигурируем Samba.
это нужно для того, чтобы наш файловый сервер был виден в домашней сети.
по умолчанию в Windows все сетевые компьютеры попадают в рабочую группу с названием MSHOME.
проверим чтобы samba имела в конфигурационном файле то же название рабочей группы:
$ sudo nano -w /etc/samba/smb.conf
находим и правим строчку:
workgroup = MSHOME
[вы, конечно, можете присваивать параметру workgroup свои значения. просто помните, что название рабочей группы в винде и в линухе должны быть одинаковыми. ]
что бы диск был виден, а так же читался и писался для всех пользователей сети, добавим в конец конфига:
comment = Public Folder
path = media/multimedia
public = yes
writable = yes
create mask = 0777
directory mask = 0777
force user = nobody
force group = nogroup
[обратите внимание, что "nogroup" пишется слитно . во многих описаниях настройки написано раздельно. у меня, при раздельном написании, не работало ]
сохраняем изменения в файле и перезагружаем пакет Samba:
$ sudo /etc/init.d/samba force-reload
3. устанавливаем apache и поднимаем web-сервер.
для web-сервера много не надо. тут всё совсем просто. нужно установить apache (что такое апач) и владеть навыками htmlя.
$ sudo apt-get install apache2
после установки апача, можно приступать к созданию сайта. по-умолчанию адрес вашего сайта будет тот же, что и ip-адрес вашего сервера в локалке (например, http://192.168.1.4). это никуда не годится. нужен человеческий адрес (доменное имя, читать про домены). тут варианта два.
1. купить. нормальный домен второго уровня (типа httр://mysеrver.соm).
2. взять бесплатный, но третьего уровня (вида httр://gаme.myserver.соm).
платный стóит порядка 6ОО рублей за пол-года. бесплатный - нихрена не стóит.
я использовал для своего сервера бесплатный домен третьего уровня на http://dynDNS.com . там нужно зарегестрироваться, выбрать доменное имя (при условии, что оно свободное), указать свой реальный ip (). на своём интернет-шлюзе (или роутере) настроить переадресацию по 80 порту (port forwarding) с HTTP на свой внутренний ip сервера.
в итоге (если всё правильно настроить), при обращении по зарегестрированному вами адресу, пользователь попадает на главную web-страницу сайта на вашем сервере.
как настроить свой сайт.
все настройки сайта лежат в /var/www
. по умолчанию в этой директории лежит один скромный index.html
с надписью It works!
, который нам кагбе намекает на нормальную работу.
вот этот файл можно/нужно править под себя, под создание своего сайта.
перезапускаем сервер командой:
$ sudo shutdown -r now
Привет Хабр!
После активности шифровальщика Petya 27.06.2017, я отключил SMB1 он же CIFS, и получил производственное оборудование и сетевые МФУ которые не умеют работать на «новых» версиях SMB протокола.
Как тогда получать данные с «старых» устройств? Как показала практика, отдельная «машина» с Windows не выход, во время атаки кроме доменных «машин» пострадали также не включенные в домен, по этому, а также по лицензионным соображениям я решил использовать Linux.
Под катом находится пошаговая инструкция по установке и настройке файлового сервера SAMBA на базе CentOS 7:
Анонимный доступ
- Аутентификация и авторизация
- Интеграция с Active Directory
Установка CentOS 7
Сервера работают под управлением VMware ESXi, и по этому я установил CentOS 7 1611 на VM, выделив 1 CPU, 1GB RAM и 3GB HDD.LVM я не использую, SWAP раздел не создаю, на загрузочный раздел выделяю 500MB, а все остальное отдаю под корень файловой системы. В качестве файловой системы использую ext4.
Процесс установки описывать я не буду, даже если вы этого никогда не делали, это не сложно, у вас все получится. Предполагаю что вы уже все установили, тогда можно приступать.
Если вы новичок в линукс, делайте копии оригинальных файлов с конфигами, используйте команду cp .
Cp /etc/somefile.conf /etc/somefile.conf.bak
Получение ip адреса по DHCP
Если по какой-то причине в сети нету DHCP сервера, вам стоит его поднять. Работать с большим количеством VM без DHCP не удобно.Для принудительного обновления или получения ip адреса выполните команду
Dhclient
Показать ip адрес
ifconfig
или
nmcli device show
YUM
CentOS 7 использует пакетный менеджер YUM. Шпаргалка по yum находится .Если выход в интернет организован через прокси сервер, добавьте адрес прокси в файл конфигурации /etc/yum.conf , используйте редактор vi или следующую команду
Echo proxy=http://your.proxy:8888 >> /etc/yum.conf
В случае использования логина и пароля для доступа к прокси серверу, добавьте следующие параметры:
proxy_username=yum-user
proxy_password=qwerty
Установка на VM агентов для взаимодействия с хост сервером
Для VMware ESXi необходимо установить open-vm-toolsYum install open-vm-tools
Для Hyper-V, hyperv-daemons
Yum install hyperv-daemons
Установка обновлений
Очень важно установить все доступные обновленияYum update
Midnight Commander
Редактировать файлы без нормального редактора очень не удобно, и я предлагаю использовать mc и mceditYum install mc
Настройка сети
Для настройки статического ip адреса и имени хоста можно использовать утилиту nmtuiВ командной строке список сетевых адаптеров можно получить командой
Nmcli device status
Статический ip и gateway задается следующей командой, где «ens192» это имя сетевого адаптера
Nmcli connection modify “ens192” ipv4.addresses “192.168.1.100/24 192.168.1.1”
Настройка FQDN
Пусть полное имя хоста будет ls01.fqdn.com , выполняем командуHostnamectl set-hostname ls01.fqdn.com
Перезагружаем службу имен
Systemctl restart systemd-hostnamed
Проверить результат можно следующими командами
Hostnamectl status hostname hostname -s hostname -f
ipv6
Если протокол ipv6 не используется, логично его отключить, для этого нужно добавить два параметра в файл /etc/sysctl.conf , выполните следующие команды или используйте редактор mceditEcho net.ipv6.conf.all.disable_ipv6 = 1 >> /etc/sysctl.conf
echo net.ipv6.conf.default.disable_ipv6 = 1 >> /etc/sysctl.conf
Перезагрузите службу сети
Service network restart
SELINUX
На данном этапе службу SELINUX необходимо отключить, проверить статус службы SELINUX можно командойSestatus
Измените значение SELINUX в файле /etc/selinux/config
на SELINUX=disabled
затем перезагрузите сервер.
Reboot
Вернусь к SELINUX в конце статьи.
SAMBA
УстановкаYum install samba
Добавление службы в автоматический запуск
Chkconfig smb on
Запуск службы и проверка состояния
Service smb start smbstatus
firewallD
По умолчанию CentOS 7 использует брандмауэр firewallD, состояние службы можно узнать командойFirewall-cmd --state
Для получения списка правил и сервисов используйте
Firewall-cmd --list-all
firewall-cmd --list-services
Обратите внимание на список сервисов, если вы отключили протокол ipv6, логично также поступить и с dhcpv6-client
Firewall-cmd -–permanent -–remove-service=dhcpv6-client
Создаем правило для SAMBA и перезагружаем
Firewall-cmd --permanent --add-service=samba firewall-cmd --reload
Общий ресурс с анонимным доступом
Создаем папку для ресурса /samba/guestMkdir /samba
mkdir /samba/guest
Меняем владельца и назначаем права
Chown nobody:nobody /samba/guest
chmod 777 /samba/guest
Редактируем файл конфигурации SAMBA /etc/samba/smb.conf
Mcedit /etc/samba/smb.conf
Меняем содержание оригинального файла на следующее
На всякий случай я указал минимальную версию протокола SMB=NT1 . Если вы укажите SMB2 или SMB3, клиенты с Windows XP и ниже не смогут получить доступ к ресурсам.
workgroup = WORKGROUP
security = user
map to guest = bad user
min protocol = NT1
path = /samba/guest
guest ok = Yes
writable = Yes
Testparm service smb restart smbstatus
Поздравляю вас, достигнут первый уровень посвящения. Общий ресурс с анонимным доступом настроен, будет работать долго и надежно. Но можно и нужно настроить еще несколько вещей.
Бантики
По умолчанию лог файлы находятся в папке /var/log/samba . При необходимости получить подробные логи, в раздел необходимо добавить параметр log level = 2 или 3. По умолчанию используется значение 1, значение 0 отключает ведение логов.Как вы можете знаете, предоставление доступа к файлам это только часть функционала SAMBA. Если на сервере будут только файловые ресурсы, службу печати логично отключить. В разделе добавьте следующие параметры
load printers = no
show add printer wizard = no
printcap name = /dev/null
disable spoolss = yes
Конфигурация SAMBA находиться в каталоге /etc/samba , а логи в каталоге /var/log/samba
Мне удобней все инструменты держать по рукой, по этому я монтирую необходимые мне каталоги в /samba
Создаем каталоги, в которые будет все монтироваться
Mkdir /samba/smbconf
mkdir /samba/smblogs
Редактируем конфиг файл /etc/fstab
, я предполагаю что вы знаете за что отвечает fstab .
Mcedit /etc/fstab
Добавляем следующие строки
/etc/samba /samba/smbconf none bind 0 0
/var/log/samba /samba/smblogs none bind 0 0
Монтируем без перезагрузки
mount -a
Подключение диска
Держать ресурс с общим доступом на системном диске без квоты, не лучший выбор. С квотами я решил не связываться, мне проще подключить отдельный «физический» диск.Для получения списка устройств можно использовать команду lsblk
Lsblk
Создание таблицы разделов на диске /dev/sdb
Parted /dev/sdb mklabel msdos
или
Parted /dev/sdb mklabel gpt
Подробную информация про gpt можно прочитать
Создание раздела на весь диск sdb, в лучших традициях жанра я решил сделать отступ 1MiB в начале диска.
Parted /dev/sdb mkpart primary ext4 1MiB 100%
Создаем файловую систему ext4
Mkfs.ext4 /dev/sdb1
Редактируем fstab
Mcedit /etc/fstab
Добавляем еще одну строку
/dev/sdb1 /samba/guest ext4 defaults 0 0
Монтирование
Mount –a
Проверяем результат
Df -h
Назначение прав
Chmod 777 /samba/guest
Подключение образа диска
Если вам не нужны большие объемы, и достаточно ресурса размером ххх мб, можно подключить образ диска из файла.Создаем каталог для хранения образов
Mkdir /samba/smbimg
Создаем файл образа размером 100 мб
Dd if=/dev/zero of=/samba/smbimg/100M.img bs=100 count=1M
Про команду dd много интересного можно прочитать
В варианте с образом я решил не создавать таблицу разделов, просто создаем файловую систему ext4.
Mkfs.ext4 /samba/smbimg/100M.img
Редактируем fstab
Mcedit /etc/fstab
Конфиг для монтирования образа
/samba/smbimg/100M.img /samba/guest ext4 defaults 0 0
Монтирование
Mount -a
Проверяем результат
Df -h
Назначение прав
Chmod 777 /samba/guest
Подключение RAM диска
Для временных ресурсов где не нужен большой объем, как мне кажется RAM диск это наилучший вариант, очень быстро и просто настраивается, а скорость работы поражает воображение.Редактируем fstab
Mcedit /etc/fstab
Конфиг для RAM диска
none /samba/guest tmpfs defaults,size=100M 0 0
Монтирование
Mount -a
Проверяем результат
Удаление старых файлов
В случае «файлопомойки» ресурсы нужно как-то освобождать, для этого можно использовать планировщик задач crontabПросмотр заданий
Crontab –l
Редактирование заданий
Crontab –e
Пример конфига:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=“”
HOME=/#удалять файлы и каталоги каждый час
* 0-23 * * * rm –R /samba/guest/*#Удалить только файлы старше 1 дня, запуск команды каждые 10 минут
0-59/10 * * * * find /samba/guest/* -type f -mtime +1 -exec rm –f {} \;#удалить файлы старше 50 минут, запуск команды каждые 10 минут
0-59/10 * * * * find /samba/guest/* -type f -mmin +50 -exec rm -f {} \;
Выход из vi
Логи службы crontab находятся в файле /var/log/cron
Ограничение доступа к SAMBA по ip адресам
Если вам нужно ограничить доступ ко всем ресурсам SAMBA, добавьте ваши списки доступа в разделе global, а если необходимо ограничить только на определенный ресурс, в разделе этого ресурса.Пример:
hosts allow = 192.168.1.100, 192.168.1.101
hosts deny = ALL
hosts allow = 192.168.0.0/255.255.0.0
hosts deny = 10. except 10.1.1.1
Аутентификация и авторизация пользователей
Ограничение доступа по ip адресам не всегда удобно или возможно, тогда можно использовать логины и пароли.Сначала необходимо создать локального пользователя в системе
Adduser user1
Если пользователь будет работать только с SAMBA ресурсами, задавать ему пароль для системы нет необходимости. Пароль для системы и для SAMBA хранятся в разных файлах и могут отличаться.
Затем необходимо добавить системного пользователя в пользователи самбы и задать ему пароль
Smbpasswd -a user1
По умолчанию для хранения паролей используется файл формата tdb, которые расположен в каталоге /var/lib/samba/private/
Изменить каталог расположения файла можно глобальным параметром passdb backend
passdb backend=tdbsam:/etc/samba/smbpassdb.tdb
tdb файлы были созданы для замены «устаревших» текстовых, если вы хотите использовать текстовые файлы, для этого используйте параметр passdb backend=smbpasswd в разделе global
passdb backend=smbpasswd:/etc/samba/smbpasswd
Затем укажите списки пользователей и групп для доступа к ресурсам
path = /samba/guest
writable = no
read list = user1, @group2
write list = user2, user3
Интеграция с Active Directory
Также есть возможность получать информацию о пользователей из LDAP, но мне этот вариант не интересен и я сразу перехожу к AD. Подробная инструкция от Microsoft находится .Для AD очень важна синхронизация времени, по этому стоит начать с этого.
Установка соответствующей службы
Yum install ntp
Добавляем в конфиг файл /etc/ntp.conf сервера выполняющих роль домен контроллеров
Mcedit /etc/ntp.conf
Пример:
server 192.168.1.10
server 192.168.1.20
server someserver.contoso.com
Добавляем службу ntp в автоматический запуск
Chkconfig ntpd on
Запускаем службу
Service ntpd start
Проверяем синхронизацию времени
Ntpq –p
winbind
Для получения информации о пользователях из AD необходимо установить пакет samba-winbindYum install samba-winbind
Добавляем службу в автоматический запуск
Chkconfig winbind on
Запускаем службу
Service winbind start
Добавление хоста в AD
Напомню что в начале даной инструкции задали имя хоста ls01.fqdn.com . Будем считать что полное имя домена fqdn.com , а короткое пусть будет fqdn_comДля внесения всех необходимых параметров в конфигурационные файлы можно воспользоваться утилитой authconfig-tui , установите флажок Use Winbind, затем перейдите на следующее окно
Выберите модель безопасности ADS и укажите имена вашего домена. В поле домен контролер укажите “*”, это необходимо для автоматического поиска доступного домен контроллера. Затем нажмите ОК и закройте утилиту.
Для добавления хоста в AD используйте команду net ads join –U %username% , пользователь должен обладать правами на создание учетной записи ПК в домене
Net ads join –U youruser
Если машина не добавляется в домен, добавьте FQDN имя хоста в файл /etc/hosts
.
Я несколько раз все проверял, и в файл hosts я вносил изменения когда на этапе настройки сети задавал не полное имя хоста.
Для того чтобы вывести хост из домена используйте команду net ads leave –U %username%
Что делает утилита authconfig-tui?
Утилита добавляет параметры для подключения к AD в следующие файлы, параметров не много и при желании можно забить все руками./etc/krb5.conf
Default_realm = FQDN.COM
FQDN.COM = {
kdc = *
}
/etc/nsswitch.conf
passwd: files sss winbind
shadow: files sss winbind
group: files sss winbind
/etc/samba/smb.conf
workgroup = FQDN_COM
password server = *
realm = FQDN.COM
security = ads
idmap config *: range = 16777216-33554431
template shell = /sbin/nologin
kerberos method = secrets only
winbind use default domain = false
winbind pffline logon = false
Вы могли заметить что данная утилита вносит заметно меньше параметров чем написано в инструкции от Microsoft или других инструкциях, но если так работать – то почему бы и нет?
Из инструкции Microsoft я добавляю следующие параметры в конфиг
domain master = no
local master = no
preferred master = no
os level = 0
domain logons = no
Настройка прав доступа на ресурс
В качестве примера и для наглядности рекомендую настроить ресурсы с разными правами на одну папку
path = /samba/guest
force create mode = 777
directory mask = 777
path = /samba/guest
read list = "@fqdn_com\domain users"
write list = "@fqdn_com\domain users"
force create mode = 777
directory mask = 777
Перезапускаем службу samba
Service smb restart
Проверяем
Smbstatus
На скриншоте видно пользователя домена который находится в одной из общих папок
Список полезных ссылок.