Файловый сервер для дома


Как организовать файловый сервер, фотоархив и медиацентр на базе NAS-накопителя

Наверх
  • Рейтинги
  • Обзоры
    • Смартфоны и планшеты
    • Компьютеры и ноутбуки
    • Комплектующие
    • Периферия
    • Фото и видео
    • Аксессуары
    • ТВ и аудио
    • Техника для дома
    • Программы и приложения
  • Новости
  • Советы
    • Покупка
    • Эксплуатация
    • Ремонт
  • Подборки
    • Смартфоны и планшеты
    • Компьютеры
    • Аксессуары
    • ТВ и аудио

ichip.ru

Простой способ создания и использования DLNA сервера для домашнего хранилища

В последние несколько лет, когда интернет начал свое движение в сторону всё большей и большей доступности, количество разнообразного контента растёт в геометрической прогрессии, а способы его хранения явно стали нуждаться в апгрейде. Всевозможные CD- и DVD-диски оказались не только весьма подвластны времени, но и весьма ограничены в объёме; пришедшие им на смену USB flash носители были объёмнее, быстрее и универсальнее, но полностью «закрыли» вопрос выбора самого удобного способа для хранения контента внешние жёсткие диски.


Следующим этапом стала проблема универсализации, которая бы позволила не только удобно хранить фото или фильмы, но и в простом и понятном, а по возможности ещё и универсальном способе потреблять этот контент в рамках как минимум отдельно взятой квартиры. По сути, список протоколов, которые могли быть использованы для решения этой задачи, состоит из трёх пунктов: FTP, SMB и DLNA. Более всего для стриминга медиа предназначен последний.

Строго говоря, DLNA — это не протокол, а набор стандартов, которые используются для принятия и передачи различных типов мультимедийного контента. По данным Wiki, Digital Living Network Alliance ещё в далёком 2013 году насчитывал более 200 производителей оборудования, и встретить поддержку технологии в современных планшетах, телефонах, приложениях и Smart TV сейчас легко, а список поддерживаемых форматов для фото, аудио и видео просто огромен.

С чего начать?


Самым простым способом развернуть DLNA-сервер для совместного использования дома становится связка из роутера ZyXEL (даже среднего ценового диапазона, прошлого поколения с USB портом — в конкретном случае это Keenetic Ultra) и внешнего жёсткого диска, который так или иначе есть почти у каждого. Стоит иметь ввиду, что роутер вряд ли будет стабильно работать с дисками более 2.5 ТБ, а также использование внешнего питания для диска крайне желательно.

Далее на диске, который будет подключен к роутеру, нужно создать папку для контента, скопировать туда всё, что нужно (поддиректории поддерживаются вплоть до 3 уровней). Дальнейшая конфигурация состоит из указания папки для сканирования.

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

Если же вам не нужен сервер, который будет работать в режиме 24х7 независимо от других устройств, то стоит обратить внимание на программы Home media server (только Windows), PLEX (WIndows, Mac, Unix и даже FreeBSD), KODI (ex XBMC, WIndows, Mac, Unix, FreeBSD, Android, iOS при наличии Jailbreak и даже Raspberry Pi). Помимо этого есть ещё сетевое оборудование ASUS и OpenWRT based прошивки для ряда роутеров (тут уже на свой страх и риск).

Как смотреть?


Итак, с настройкой и копированием контента всё понятно, теперь же поговорим о том, как можно смотреть всё это.

Для ноутбуков на Windows и Mac самым простым способом будет использования всеядного и широко известного плеера VLC, из пункта «протокол UPnP» виден созданный нами DLNA-сервер и доступна возможность не только просмотреть контент по категориям, но и просто по папкам.


Для iOS-устройств Apple есть множество альтернативных плееров (VLC тоже есть) с поддержкой различных протоколов, из них самым удобным является nPlayer (платная версия или бесплатная с рекламой), который позволяет не только смотреть контент, но и скачивать его на устройство, а также запоминает позицию воспроизведения. Словом, приложение классное.

Для Android-устройств задача ещё более упрощается ввиду того, что большая их часть поддерживает DLNA из коробки, для остальных можно посоветовать приложение BubbleUPnP for DLNA/Chromecast (платная версия или бесплатная с рекламой), которое позволяет работать с DLNA и открывать видео посредством любого удобного для вас плеера, включая даже системный.

Smart TV большинства производителей (в случае Samsung с самого первого поколения) достаточно только иметь подключение к сети любым способом, буквально через несколько минут после включения в списке источников появится сервер с возможностью навигации по папкам и по типу контента.

Запас прочности и использование в реальной жизни


Несмотря на простоту решения, его работа весьма стабильна, а запас прочности велик, так что можно смотреть файлы объёмом до 4-6 Гбайт. Число одновременных подключений выдерживает 3-4 устройства без каких-либо проблем с производительностью.

Даже Android-устройства среднего уровня и самые старые поколения iPhone и iPad воспроизводят видео с диска посредством DLNA без проблем с производительностью.

Единственным минусом, характерным только для Smart TV, является отсутствие возможности быстрой перемотки файла — её можно делать только шагами по минуте или две, что несколько усложняет просмотр видео не с начала.

Итоги


Использование DLNA фактически не имеет альтернатив ввиду специфичности решений класса STB, весьма ощутимой цены и малого распространения HDMI-стиков под управлением Windows 10, а универсальность использования и создания DLNA-сервера с минимальными затратами на дополнительное «железо» просто бьёт в пух и прах возможные альтернативы в лице NAS.

О каких технологиях вам было бы интересно почитать в следующий раз?
Спасибо за внимание

habr.com

Домашний сервер на Windows 8 Pro / Habr

Приветствую!

Наверное, каждому хотелось бы иметь свой домашний сервер, который не только выполнял бы роль медиа-сервера, но и позволял использовать его как файловое хранилище, хранилище Backup’ов и принт-сервер.

В один из чудесных осенних дней меня тоже посетила эта мысль. Дело в том, в доме «развелось» слишком много устройств, которые захотелось объединить во что-то структурированное. Было принято решение поднять домашний сервер. В качестве ОС сначала хотелось использовать Windows Server 2012 Essentials, в состав которого вошли такие продукты, как Windows Home Server и Windows Small Business Server, но после нескольких часов работы с ней я понял, что использовать Windows Server 2012 в домашних условиях слишком «жирно». Тогда я решил использовать ОС попроще, а именно Windows 8 Pro, лицензия на которую лежала без дела.

Предупреждение. Я прекрасно понимаю, что поднять домашний сервер на Unix-подобных ОС, возможно, было бы и проще, но в данном материале я хочу рассказать, как поднять такой сервер на клиентской ОС Windows 8 Профессиональная обычному пользователю ПК (ну, или почти обычному), который никогда не имел опыта общения с Unix.

Все домашние устройства были объединены в такую сеть (надеюсь, нарисовал понятно):

За основу для домашнего сервера был взят старый ПК, с такими характеристиками:

  • Процессор: AMD Athlon 64 X2 5200+, 2.7 ГГц
  • Материнская плата: Asus M2N-E (Gigabit LAN)
  • Блок питания: FSP ATX-350PNR, 350 Ватт
  • Wi-Fi адаптер TP-Link TL-WN851ND;
  • ОЗУ: 2 ГБ
  • HDD: Western Digital WD2500JS, 250 ГБ
  • Видеокарта: ATI Radeon X1600XT, 256 МБ

Были докуплены следующие комплектующие:
  • HDD x2: Western Digital Caviar Green WD20EZRX, 2 ТБ
  • Видеокарта: NVIDIA GeForce 210, с пассивным охлаждением

Видеокарта была заменена по причине неимоверной шумности уже имевшейся.

После установки в корпус и подключении к материнской плате новых комплектующих, была произведена инсталляция Windows 8 Pro на жесткий диск размером 250 ГБ. Хранить на этом жестком диске планировалось только ОС и некоторое ПО.

Инсталляция производилась в абсолютно штатном режиме. На этапе начальной настройки системы было указано имя компьютера HOMESERVER, создана учетная запись администратора (admin) со сложным паролем, а после учетная запись с правами обычного пользователя (user), на которую так же был установлен пароль.

Настройка будет производиться под учетной записью user, с вводом пароля администратора при изменении системных параметров. Так безопаснее.

Подготовка файлового хранилища

В Windows 8 появилась замечательная функция Storage Spaces (в русской версии Дисковые пространства), которая, в какой-то степени, является программным аналогом RAID-массива.

Storage Spaces предлагает объединить физические накопители с интерфейсами USB, SATA, SAS, SCSI (причем в любых комбинациях) в пулы, а сами пулы в дисковые пространства, которые выглядят для пользователя обычными логическими дисками.

Также с помощью Storage Spaces можно обеспечить сохранность данных с помощью зеркалирования и функции контроля четности. Об этом я расскажу немного позже.

Чтобы создать пул и дисковое пространство, перейдите в Панель управления > Система и безопасность > Дисковые пространства и выберите пункт Создать новый пул и дисковое пространство
.
Откроется окно, в котором нужно выбрать физические накопители для создания пула. Отображаются как форматированные, так и неформатированные накопители, а также с хранящимися данными и без. Системный диск выбрать нельзя.

Внимание! При добавлении в пул диска с данными, все они будут удалены.

В моем случае имеется два диска емкость 2 ТБ, их я и выделю. Далее нажимаем Создать пул.

Windows подготовит диски и объединит их в пул. Неформатированные накопители будут отформатированы, форматированные будут переформатированы заново.

После создания пула будет предложено создать дисковое пространство (или несколько), указать его имя и ассоциировать с ним букву диска.

В разделе устойчивость нужно выбрать тип устойчивости. Я выбрал Двухстороннее зеркало. С этим типом устойчивости Windows будет хранить копию данных на каждом из накопителей.

Для справки, Windows предлагает выбрать четыре типа устойчивости:

  • Простой. Хранимая информация распределяется по всем дискам в пуле последовательно. Общая емкость пространства в этом случае равна общему объему всех накопителей, включенных в него. Данный тип является аналогом RAID 0. Отказоустойчивости не обеспечивает – в случае выхода из строя одного из накопителей, вся информация теряется.
  • Двухстороннее зеркало. Запись осуществляется одновременно на каждый накопитель. Для данного типа устойчивости требуется минимум два диска. В случае выхода из строя одного з накопителей, информация не теряется. Общая емкость пространства равна половине от общего объема накопителей. Данный тип устойчивости является аналогом RAID 1.
  • Трехстороннее зеркало. Запись осуществляется одновременно на три накопителя. Данные сохраняются при отказе сразу двух дисков. Требуется минимум 5 дисков. Данная схема имеет максимальную надежность, но снижает скорость чтения и записи. Общая емкость пространства равна ¼ от общей емкости всех дисков. Прицеп работы напоминает RAID 1E, но я не уверен. Вашими соображениями по этому поводу прошу поделиться в комментариях.
  • Четность. Может задействоваться от 3 до 8 накопителей. На все накопители, кроме одного записываются данные, а на последний записывается информация о четности (блок контрольных сумм, вычисляемы по алгоритму XOR). В случае отказа одного из накопителей, недостающие данные могут быть вычислены. По надежности аналогично двухстороннему зеркалу, но количество избыточных данных равно 1/N (количество накопителей), а у двухстороннего зеркала всегда ½. То есть количество пространства, доступного для записи полезных данных в случае использования четности, больше. Но так как требуется рассчитывать контрольные суммы, скорость записи существенно меньше.

Одним из параметров пространства, который можно установить, является его размер. В моем случае при использовании двухстороннего зеркала, Windows предлагает установить его размер, равные половине общей емкости используемых дисков. Вроде бы логично, но в пространствах можно использовать диски разного объема, но «по умолчанию» система снова предложит половину от общего объема, хотя используемы накопители были бы не равны. Более того, можно указать любой размер, на функционировании пространства это не скажется… До поры до времени. Как только будет заполнен меньший накопитель, пространство демонтируется и восстановить его работоспособность можно будет только добавлением в соответствующий пул новых накопителей.

Как я уже говорил, после настройки, использование дисковых пространств абсолютно прозрачно для пользователя.

Изменение расположения библиотек Windows

Следующим этапом будет перемещение расположения стандартных библиотек Музыка, Изображения, Документы и Видео на созданное Дисковое пространство. Мы же не хотим потерять много гигабайт Lossless-музыки, ценных семейных видео и фотографий в случае сбоя системного диска?

Для начала создадим папки в корне дискового пространства. Мной были созданы папки Музыка, Видео, Изображения и Документы. Что будет храниться в каждой из них, думаю очевидно. Далее щелкните правой кнопкой мыши на одной из библиотек Windows (в правой панели проводника) и выберите пункт Свойства.

В открывшемся окне щелкните кнопку Добавить и выберите созданную папку в корне дискового пространства.

Теперь осталось только удалить стандартные расположения выбранной библиотеки. Тоже самое нужно выполнить с остальными библиотеками.

Запуск потоковой передачи мультимедиа

Потоковая передача мультимедиа позволяет проигрывать мультимедиа-файлы на устройствах, имеющих поддержку DLNA. Среди устройств, которые имеют поддержку данной технологии, есть телевизоры, различные стационарные DVD и Blu-Ray проигрыватели, смартфоны, игровые консоли, компьютеры и даже холодильники!

Для этого запустите Проигрыватель Windows Media и выполните начальную настройку. Я выбрал рекомендуемые параметры. Далее нужно перейти в библиотеку проигрывателя и щелкнуть по выпадающему списку Поток. В списке нужно выбрать пункт Включить потоковую передачу мультимедиа.

В открывшемся окне нужно щелкнуть кнопку Включить потоковую передачу мультимедиа.

Следующим открывшемся окном будет окно параметров потоковой передачи мультимедиа. Здесь нужно указать имя библиотеки мультимедиа, выбрать параметры показа устройствам файлов с определенными оценками, а также выбрать сами устройства, которые будут иметь доступ к мультимедиа библиотеки.

По заполнении параметров нужно щелкнуть ОК.

Автозапуск Windows Media при включении сервера

Возможно вы спросите, для чего это нужно. Все дело в том, что именно библиотека Windows Media используется для потоковой передачи мультимедиа на другие устройства. Как же будет обновляться эта библиотека при добавлении новых файлов, если Windows Media не запущен?

Этот вопрос мы решим с помощью Планировщика заданий. Кстати, очень полезный инструмент с широким спектром параметров запуска и выполнения заданий. Сама Windows тоже постоянно использует Планировщик для выполнения определенных задач, например, для запуска автоматического обслуживания компьютера в период бездействия пользователя.

Приступим. Перейдите в Панель управления > Система и безопасность > Администрирование и запустите Планировщик заданий от имени администратора.

В правой части окна щелкните Создать задачу. Откроется окно создания задачи. Введите имя для задачи, советую использовать такое наименование, которое позволяет определить, что делает данная задача без открытия ее подробностей. Я указал Windows Media Autostart. Описание задачи не является обязательным, но неплохо бы и его заполнить.

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

Для этого в группе Параметры безопасности щелкните кнопку Изменить. Откроется окно, в котором нужно написать имя пользователя. Напишите user и нажмите ОК.

Также в этой группе установите перключатель в положение Выполнять для всех пользователей, что нужно для того, чтобы задача запускалась, даже если ни один пользователь не вошел в систему.

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

Щелкните ОК и перейдите во вкладку Действия. Нажмите кнопку Создать.

Отобразится окно Создание действия. Убедитесь, что в пункте Действие выбрано Запуск программы. В поле ввода Программа или сценарий нужно ввести путь до программы. Щелкните кнопку Обзор и выберите файл wmplayer.exe, который находится в C:\Program Files (x86)\Windows Media Player в 64-битной версии Windows или C:\Program Files\Windows Media Player в 32-битной. Остальные поля заполнять не требуется.

Щелкните кнопку ОК и перейдите во вкладку Условия. Снимите галочку с пункта Запускать только при питании от электросети, хотя это не обязательно. На ваш вкус.

Перейдите в последнюю вкладку Параметры. Снимите галочку с пункта Останавливать задачу, выполняемую дольше: 3 дн.

Нажмите кнопку ОК и введите пароль от учетной записи user.

После ввода пароля и нажатия кнопки ОК, планировщик заданий сообщит, что учетная запись должна иметь права «Вход в качестве пакетного задания».

Нажмите ОК и закройте Планировщик заданий.

Откройте Локальную политику безопасности (находится также в администрировании) от имени администратора.

В открывшемся окне дважды щелкните Локальные политики, затем Назначение прав пользователя, и в завершение Вход в качестве пакетного задания.

Щелкните кнопку Добавить пользователя или группу, также, как и в Планировщике заданий, введите имя пользователя и нажмите ОК. Проверьте, появился ли новый пункт с именем пользователя в списке, и нажмите ОК. Теперь Локальные политики безопасности можно закрыть.

Открытие общего доступа к папкам

Следующим этапом будет открытие общего доступа к папкам на дисковом пространстве. Это нужно для того, чтобы пользователи сети имели возможность читать и записывать файлы в определенные папки. Открывать общий доступ будем к папкам Музыка, Видео, Изображения, Документы, Резервные копии и Другое (последние две нужно создать).

Щелкните правой кнопкой мыши на папки и выберите пункт Свойства. Перейдите во вкладку Доступ.

Нажмите кнопку Общий доступ. Откроется следующее окно:

Введите имя пользователя (user) и нажмите кнопку Добавить. Затем в списке ниже, у user установите Уровень разрешений в Чтение и запись. Осталось только щелкнуть Общий доступ в нижней части окна, ввести пароль администратора и нажать Готово.

Повторите эти действия для остальных папок.

Открытие общедоступных сетевых папок на клиентских машинах

Здесь все, весьма, просто. На клиентской машине нужно открыть папку с сетевыми компьютерами (Сеть в Windows Vista/7/8 или Сетевое окружение в Windows XP). Дважды щелкните по имени созданного сервера. Откроется окно, в котором нужно ввести имя пользователя и пароль.

Нужно ввести учетные данные, хранящиеся на сервере. Верно, это user и его пароль. Поставьте галочку Запомнить учетные данные и нажмите ОК.

Теперь на этом компьютере можно читать и записывать файлы, находящиеся в папках на сервере.

Настройка резервного копирования на сервер

Наверное, на каждом компьютере в доме есть важные файлы. В Windows имеется великолепная функция Архивация данных, которая создает резервную копию самой ОС и папок с файлами, которые были указаны при настройке. Данная функция позволяет хранить копии на другом жестком диске или в сетевом расположении. Предлагаю настроить последнее, так как надежность хранения данных на сервере несколько выше, потому что на нем настроено зеркалирование данных на второй жесткий диск.

Начнем. Откройте Панель управления, выберите просмотр всех элементов панели управления и дважды щелкните по Восстановление файлов Windows 7 (в Windows 8 точно такое же название). Будет открыто окно Архивации или восстановления файлов.

Будет открыто окно для выбора расположения архива.

Так как мы хотим сохранить архивную копию на сервере, то нужно нажать кнопку Сохранить в сети.

Храниться архивы будут в созданной выше папке Резервные копии, общий доступ с запись уже открыт. С помощью кнопки Обзор указываем путь до папки или пишем вручную. В поле Пользователь нужно записать user, а в Пароль соответствующий учетной записи пароль.

Нажмите ОК. В следующем окне нужно выбрать, предоставить Windows выбрать файлы для архивирования или нет. Я решил предоставить выбор себе, потому что мне не требуется образ системы.

Нажмите Далее.

Так как мне образ системы не требуется, галочку я снял. Так же в этом окне можно выбрать дополнительные папки для архивирования. Щелкните Далее.

В следующем окне проверьте указанные параметры архивации и по желанию измените расписание. Для себя я указал еженедельную архивацию в воскресенье в 3:00.

Еще раз проверьте все данный и нажмите Сохранить параметры и запустить архивацию.

Открытие общего доступа к принтеру

Возможно у вас в доме имеется всего один принтер, при этом пользоваться его услугами хотят сразу несколько человек. Решить эту проблему очень просто! Достаточно подключить принтер к домашнему серверу и открыть к нему общий доступ. После этого все компьютеры в доме смогут печатать на данном принтере.

Первое, что нужно сделать – это подключить принтер к серверу и установить драйвер. Я использовал МФУ Samsung SCX-4100. После установки драйвера откройте Панель управления, выберите отображение всех элементов, затем перейдете в раздел Устройства и принтеры.

Найдите установленный вами принтер и откройте его контекстное меню. Выберите Свойства принтера.

Перейдите во вкладку Доступ.

Установите галочку на пункте Общий доступ к данному принтеру. Далее введите имя для принтера, которое будет видно другим компьютерам в сети.

Если в вашей сети имеются компьютеры как с 32-разрядной, так и с 64-разрядной версией Windows, то рекомендую нажать в этом окне кнопку Дополнительные драйверы.

В следующем окне нужно выбрать, драйвер для какой разрядности до установить. Так как у меня уже установлен драйвер для 64-разрядной версии Windows, я ставлю галочку у x86 (32-разрядная). В вашем случае все может быть наоборот, но это не суть важно.

После установки галочки нажмите ОК. Откроется окно, в котором нужно указать путь до драйвера. Если драйверы для вашего принтера поставляются в виде одного установочного файла (*.exe), то попытайтесь извлечь из него файлы с помощью архиватора, или, возможно, установщик самостоятельно их извлекает в папку Temp, к примеру.

Укажите путь к драйверу нужной разрядности и нажмите ОК. Дождитесь установки драйвера и закройте Свойства принтера, нажав на кнопку ОК.

Теперь попробуем подключить принтер на сетевом компьютере. Откройте папку, в которой указаны все устройства в вашей сети, затем откройте свой сервер. Помимо открытых сетевых папок, появился принтер с именем, который был указан выше. Откройте его контекстное меню и выберите пункт Подключить.

Windows спросит, доверяете ли вы принтеру.

Нажмите кнопку Установить драйвер. После этого Windows автоматически загрузит необходимый драйвер с сервера и установит его.

Готово! Теперь можно печатать на принтере с другого компьютера, при этом принтер не подключен к нему напрямую.

Удаленное управление сервером

Так как это сервер, то ему не требуется монитор, клавиатура и мышь (иначе, получился бы обычный ПК). Но как же выполнять дополнительную настройку без всего это? Для этой цели будет использоваться Подключение к удаленному рабочему столу.

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

Установите переключатель в положение Разрешить удаленные подключения к этому компьютеру, а также проверьте, что установлена галочка под переключателем.

Далее требуется разрешить пользователю user подключаться через удаленный рабочий стол. Нажмите кнопку Выбрать пользователей.

В открывшемся окне нажмите Добавить. В новом окне введите user и нажмите ОК.

Проверьте, что в списке появилось имя user. Нажмите ОК. Также закройте окно Свойства системы кнопкой ОК.

После установки этих параметров вы можете подключиться к серверу с любого домашнего ПК с помощью программы Подключение к удаленному рабочему столу или с помощью другого RDP-клиента.

При подключении нужно будет ввести имя сервера, имя пользователя (user) и его пароль. Затем вы увидите рабочий стол сервера и сможете настраивать его удаленно.

Безопасность сервера

Это один из важнейших пунктов. Так как на сервере используется Windows, то это значит, что сервер имеет опасность заражения вирусами, коих развелось неимоверно много. Как же обезопасить сервер?

Включите автоматическое обновления Windows!

Microsoft на постоянной основе выпускает обновления безопасности для Windows, которые закрывают бреши в системе безопасности (и иногда открывают новые). Если установлены все обновления, безопасность компьютера находится на более высоком уровне.

Откройте Центр обновления Windows, затем в левой части окна выберите Настройка параметров. Убедитесь, что в выпадающем списке выбран пункт Устанавливать обновления автоматически (рекомендуется). Выберите этот пункт, если не выбран, и нажмите ОК.

Антивирусная защита

Для более полной защиты компьютера (сервера, в нашем случае), нужно иметь антивирус.

Windows 8 имеет встроенную комплексную систему защиты Windows Defender, в состав которого вошел прекрасный продукт Microsoft Security Essentials. Windows Defender работает в Windows 8 сразу после установки системы и не требует ручной активации и запуска.

Если вы захотите установить антивирус другой компании, то встроенный в Windows 8 автоматически отключится.

Windows Defender автоматически обновляет свои вирусные базы сразу после того, как они становятся доступны (обычно несколько раз в день). Запускать обновление вручную не требуется.

Учетная запись с обычным правами

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

Итог

Статья получилась довольно объемной, подробной, и, надеюсь, интересной. Я постарался поделиться с вами своими знаниями, рассказал, как поднять домашний сервер на Windows 8 Профессиональная и настроить компьютеры для работы с ним. Я буду очень рад, если помог кому-то этой статьей.

Прошу поделиться в комментариях своим мнением, дополнениями, замечаниями и другими полезными вещами.

С вами был Роман Гладких.
До встречи!

habr.com

DLNA-сервер для дома и семьи / Habr

Как-то так сложилось, что тег DLNA сервер чаще встречается в постах-вопросах, чем в ответах. И если в вопросах установки на домашний Windows-ПК какой-то пользовательский опыт накоплен, то определиться с выбором ПО для домашнего сервера/NAS-а/медиацентра — оказалось непросто. Распределившись по песочницам народ обособленно решает проблемы каждой программы в отдельности. А понять что из них чего стоит и нужно ли оно вообще — лично мне не удалось.

И вот, я вооружившись ссылкой с Википедии Как выбрать DLNA-сервер под Windows, Mac OS X или Linux — опробовал почти всё, что есть под Linux.

DLNA — его место в домашней сети

Наверное этот путь уже проходило большинство — в доме появляются новые медиа-устройства, растет количество членов семьи потребляющих медиа-контент, распухает сама база фильмов, музыки и фотографий.
При этом каждый строит медиа-инфрастуктуру по-своему. У кого-то это компьютер с TV-OUT, у кого-то нетбук или HTPC. Кто-то расшаривает папки с NAS-а по NFS, кто-то подключает HDD к медиаплееру, кто-то использует возможности Sony PS…
Появляется неразбериха в местах хранения, форматах, кодеках и т.п.
Так, в моем случае оказалось:
  • плазме в гостинной лучше подавать 720p чем FullHD
  • телевизору Sony в детской подключеному по Wi-Fi больше 15Mbit/s лучше не скармливать, H.264 ему нужен максимум Profile 4.1, а файлы на сетевых хранилищах он не видит вообще
  • спутниковый ресивер Openbox не умеет играть звуковые дорожки в DTS, по SMB не тянет больше 30Mbit/s, по NFS-не отображают кириллицу
  • Nokia Lumia и iPhone вообще ограниченны везде и всюду

В общем, единственным вариантом сдружить весь этот зверинец между собой — это использование DLNA сервера.
Теоретически — он и контент из разных мест в одиное дерево папок сведет, и разрешение подгонит и совместимость кодеков проверит и при необходимости перекодирует. Красота…
На что ставить

Домашний компьютер — как правило это Windows-машина. Смотреть фильм с перекодированием пока кто-то играет — не получиться; режима 24/7 нет и близко. На роль не подходит. Поэтому Windows версии программ я даже не рассматривал.
Роутер, прошитый DD-WRT/OpenWRT — есть пакеты для этих прошивок и они работают. Аппаратные ресурсы очень ограничены — транскодирование малореально, скорость доступа к USB порту и сетевым папкам сильно ограничена. Тем не менее — многим и такое подходит.
NAS или домашний сервер с Linux — самое универсальное решение. Программ много. Ограничений по протоколам нет. Производительности x86 процессоров 5-летней давности (в моем случае это Athlon X2-6000) хватает для одновременного перекодирования на-лету двух фильмов любого формата.
Личный опыт, оценка программ
MiniDLNA, uShare и xupnpd

Это разные проекты, но в сущности — одно и то-же. Легковесные и быстрые. Единственная функция, которую они выполняют — предоставляют сетевой доступ к медифайлам по протоколу DLNA/UPnP. Всё остальное плеер или телевизор должны уметь сами. DLNA поддерживается не в полной мере и многие устройства эти серверы просто не видят.
Очень массовые. Работают везде. Пакеты существуют под всевозможные дистрибутивов Linux, маршрутизаторы с прошивками DD-WRT/OpenWRT и NAS-ы. Процедура установки простейшая и хорошо расписана на профильных форумах. Никаких GUI нет
Если Вы, и только Вы (иначе неизбежны жалобы членов семьи):
  • смотрите/слушаете только с одного всеядного устройства (такого как телевизор Samsung)
  • Ваше устройство не умеет напрямую брать файлы с сетевых папок или делает это слишком медленно (такое как телевизор Sony Bravia)
  • храните фильмы/музыку на недорогом NAS-е или маршрутизаторе с USB-диском
  • заранее отбираете контент в нужном формате или не ленитесь перекодировать вручную
  • медиа-файлы уже хорошо отсортированы по папкам или Вас это вообще не беспокоит

— то Вам можно ограничиться и таким DLNA-сервером. Выбирать из них тот, который есть в пакетах под вашу железяку и будет увиден рендером.
MediaTomb

Разработчики однозначно пишут, что «это не DLNA-сервер, он лишь поддерживает часть его функций». И хотя некоторые проблемы совместимости могут быть, это вполне себе достойный внимания проект.
Здесь уже есть работающий через встроенный http-сервер GUI — в нем можно управлять папками с контентом. Добавлять новые, создавать ярлыки к существующим, задавать интервалы сканирования и т.п.
Хорошо распространен — нет проблемы установить в любом дистрибутиве Linux, тяжелых зависимостей за собой не тянет. Настраивается единственным текстовым файлом. Очень стабилен в работе, не ресурсоемк.
Можно использовать транскодирование, но оно реализовано в простешем виде. Так, привязка профилей осуществляется к формату входного файла, а не к устройству вывода. Сервер вообще не различает кто к нему подключился. Соответственно готовых профилей под устройства нет — все нужно настраивать вручную:
  • какие форматы транскодировать, а какие передавать напрямую
  • задать кодировщик по ситуации: ffmpeg, vlc, mplayer или что-то ещё
  • задать bitrate, количество аудио-каналов, профиль H.264 и прочие опции кодирования
  • наложить видеофильтр, такой как обрезание полей или crop

В моем случае пришлось писать отдельный скрипт для задания аргументов ffmpeg исходя из формата аудиодорожки (DTS или AC3).
При этом, при просмотре транскодированного потока на телевизоре не будет работать перемотка и выбор адуиодорожки. Прикрутить субтитры — тоже отдельная песня.
В общем — MediaTomb — весьма брутальные инструмент для true линуксоидов. Универсальным его не назовешь, но под себя и свое железо можно настроить идеально.
Rygel

Массовый, есть почти везде. Но очень криво ставится в режим демона (нужно самому писать init-скрипт, создавать папки и пользователя). Является частью проекта gnome и тянет за собой gstreamer (а то и pulseaudio). Если у кого на компьютере стоит KDE или что-то другое — совсем неудобен. Иконки для видео генерирует через tumbler из проекта XFCE, да и то с нюансами. Регулярно падает.
До изучения особенностей транскодирования у меня руки не дошли. Мой вердикт — "не годен".
PS3 Media Server

Очень старый проект. И хотя от своего начального применения: «Раздавать фильмы/музыку с домашнего Windows ПК на Sony PS», — проект сильно развился. Но JAVA-код и требования для запуска X-сервера меня от него отвернули.
XBMC

DLNA-сервер в нём есть. Но держать этот комбайн ради одного лишь модуля глупо.
Тем более, что именно из XBMC родился отдельный проект медиа-сервера Plex.
Universal Media Server

Кривой он какой-то. Показывал мне все дерево каталогов вместо выбранной папки. Файлы открывал лишь некоторые и регулярно сыпал ошибками в консоль. С transconding-ом я вообще не разобрался.
Весьма тяжелый из-за JAVA-кода. Обязательно нужен запущенный X-сервер — демоном его не поставишь. "Не годен."
GMediaServer

Проект заброшен. Внимания не достоин.
LXiMedia

Простая и удобная реализация DLNA-сервера. Достаточно выбрать папки с файлами, жестко задать параметры транскодирования, аудиодорожку, субтитры. Никаких пофилей, настроек. К тому-же это GUI-приложение, демоном не ставиться.
На мой взгляд он в таком виде бесполезен — один из многих и далеко не лучший.
Serviio

Пожалуй самый быстроразвивающийся проект сейчас. Регулярно обновляется. Активно обрастает плагинами, профилями и приложениями под мобильные OS.
Представляет из себя JAVA-приложение работающее демоном. Поддержка DLNA-протокола — полная. Довольно умело разбрасывает контент по папкам и категориям. Умеет создавать превьюшки к фильмам. Легко подключаются разные каналы on-line вещания.
Транскодирует при помощи ffmpeg. База профилей устройств уже достаточно большая (и продолжает пополнятся) — сервер корректно подбирает параметры кодирования для любого из домашних железок. Что не распознал — подобрать профиль или написать свой не сложно.
Из-за того, что используется ffmpeg — та-же проблема, что и в mediatomb — нет перемотки в транскодированном потоке и не меняется аудиодорожка.
Управляется это все либо из JAVA-клиента, либо web-морды, написанной на PHP, либо смартфона (есть приложения под Android и WP).
К сожалению недоступен в виде .deb или .rpm пакета. Нужно ставить вручную: создать папки, пользователя, распаковать, взять на форуме поддержки init-скрипт, прописать в автозапуск". Под Synology NAS есть готовый пакет.
В целом — вполне может стать единой точкой доступа к медиа-контенту дома. Все, что нужно — он умеет.
Skifta

Не включен в Linux-репозитории, а потому редок. Но он имеет графический инсталлятор и несет с собой jre, а потому станет почти в любой системе. Неудобен тем, что запускается в два шага — вначале утилитка в SystemTray, потом — сам media-server. Без иксов и демоном не пойдет. Очень прост и лаконичен, но сильно грузит систему (JAVA-код).
TVMOBiLi

Стоит 30$ (или абонентская плата 1,5$/мес). Доступен в виде .deb и .rpm пакетов. Не в Ubuntu/Fedora установить довольно сложно — встроенные vlc и ffmpeg наверняка найдут недостающие библиотеки и откажутся работать. У меня не получилось подобрать в Gentoo USE-флаги для vlc. Не работал совсем, пришлось переделывать профили, что-бы использовался только ffmpeg.
В целом профили транскодирования — его сильная сторона. Можно задать любую логику и любые параметры.
Управляется через симпатичную WEB-морду. Имеет богатую базу профилей транскодирования. Есть проигрывать файлов через встроенный http-сервер. Превьюшки генерировать не умеет.
Работает быстро и красиво. Хороший кандидат.
TwonkyServer

Устанавливается распаковкой tar.gz. или через инсталлятор. В Linux репозиториях его нет. Очень быстрый код, мгновенный запуск, удобный web-интерфейс. Хорошо и грамотно раскидывает контент по папкам. Есть готовые init-скрипты. Умеет извлекать из файлов meta-данные и генерировать превьюшки. Все понравилось. Одна беда — $19.95.
И все же: "Рекомендую".
Plex

Как пишут разработчики — «A complete Media Solution». Подтверждаю.
Этот монстр вырос из XBMC и умеет все и даже больше. К фильмам найдет постеры, рейтинги и кучу данных. Сериалы к тому-же ещё и распределит по сезонам и эпизодам. Музыкальную коллекцию упорядочит из любого исходного вида.
Транскодирование делает из всего под всё. Параметрами можно управлять прямо из экранного меню телевизора. Для умных устройств вроде телевизоров LG Smart TV и Apple TV поддержка выходит далеко за пределы протокола DLNA.
Есть поддержка собственного облачного сервиса, что позволяет смотреть домашнее видео удаленно — сервер подстроит параметры отправляемого видео под возможности устройства и канала связи.
Есть отдельно написанные клиенты под мобильные OS и плитки Windows 8.
Для Ubuntu, Fedora, CentOS и массовые модели NAS есть готовые пакеты. Под все остальное — устанавливается простой распаковкой. Из зависимостей требует лишь Avahi-daemon.
К сожалению механизм транскодирования слабо допускает вмешательства в работу — профили подправить можно, но возможности сильно ограничены.

Способен решить любые задачи в рамках темы, при этом бесплатен, стабилен и как ни странно — быстр.

Очень хотелось бы, что-бы кто-то этот список дополнил и/или внес изменения.

habr.com

Домашний сервер «всё-в-одном» — success story / Habr

Жил да был у меня роутер одной хорошей фирмы на букву «Dead». Ну, это с ним, собственно, и случилось.
Посмотрел я на цены новых, на кучу компьютерного хлама в углу, на список подключений на домашнем компе… И понял, что не нужен мне роутер. Соберу свой, с нормальной маршрутизацией, DNS, WINS, i2p, блекджеком и так далее.

Как это было?

После недолгих раскопок в залежах железа, на свет были извлечены:
• Процессор Intel Core 2 Duo E8400 @ 3GHz
• При нём же – материнка Asus P5Q
• 2 планки DDR2 по 2Gb
• PCI-e сетевая карта TP-Link TG-3468
• Неопознанная сетевая карта WiFi (b/g/n) на базе Ralink RT3060
• Жёсткий диск Seagate 250Gb
Вывод lshw можно посмотреть тут.
Всё это было отчищено от пыли, вмонтировано в корпус с блоком питания, запущено и проверено в memtest и mhdd. Не обнаружив дефектов, я начал установку всего мне необходимого.
Основы основ

За основу я взял дистрибутив Debian Testing, раскатанный через Debootstrap. Сверху сразу были поставлены openssh-server, firmware-ralink и pppoe/pppoeconf.
Ребутнувшись в свежепоставленную систему, я сразу перенёс SSH на 192.168.1.1 и отключил авторизацию по паролю (установив предварительно свой ключ).
Да будет сеть!

Для начала был запущен pppoeconf. К DOCSIS-модему оказалась подключена сетевая карта с именем eth2, в итоге был получен следующий конфиг /etc/ppp/peers/rt:
noipdefault defaultroute replacedefaultroute hide-password noauth persist plugin rp-pppoe.so eth2 user "ptn" usepeerdns 

Но это не всё – необходимо ещё настроить /etc/network/interfaces следующим образом:
auto rt iface rt inet ppp pre-up /sbin/ifconfig eth2 up provider rt 
Превращаем роутер в WiFi-AP

Изначальная задумка была в том, что бы сделать 2 WiFi-сети: одну для своих компьютеров и ноутбуков, с надёжным паролем и присоединением ко всем необходимым ресурсам, а вторую – для гостей, которым захотелось выйти в интернет, но не надо знать о том, что творится в моей сети.
В итоге на сервер был установлен hostapd с конфигом следующего вида (все названия сетей и пароли были изменены):
interface=wlan0 driver=nl80211 country_code=RU ieee80211d=1 hw_mode=g channel=9 ssid=Private bridge=br0 preamble=1 ignore_broadcast_ssid=0 wpa=3 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP CCMP rsn_pairwise=CCMP wpa_passphrase=MyVeryStrongPassword wmm_enabled=1 ieee80211n=1 ht_capab=[HT40-][SHORT-GI-20][SHORT-GI-40] internet=1 bss=wlan0_0 ssid=Guest preamble=1 ignore_broadcast_ssid=0 wpa=3 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP CCMP rsn_pairwise=CCMP wpa_passphrase=passw0rd wmm_enabled=1 ieee80211n=1 ht_capab=[HT40-][SHORT-GI-20][SHORT-GI-40] internet=1 

Тут мы ставим ещё и bridge для eth0 и wlan0 – это позволит подключившимся к нашей сети видеть её целиком, а не беспроводной сегмент. Модифицируем networks:
auto eth0 wlan0 wlan0_0 br0 iface eth0 inet manual allow-hotplug wlan0 allow-hotplug wlan0_0 iface wlan0 inet manual pre-up ifconfig wlan0 hw ether f2:7d:68:6d:51:30 iface br0 inet static bridge_ports eth0 wlan0 address 192.168.1.1 netmask 24 iface wlan0_0 inet static address 192.168.254.1 netmask 24 

Немного о магии в pre-up для wlan0: для работы с несколькими AP нам надо использовать больше, чем один MAC-адрес. Hostapd назначает MAC для виртуальных интерфейсов (wlan0_0 в нашем случае) автоматически, но для этого адрес первой точки доступа должен иметь несколько «пустых» битов в конце. Я не стал мелочиться и освободил сразу 4 штуки. Задача на дом – посчитайте, сколько максимум AP теперь можно запустить на одной карте.
Налетай – IP всем и каждому, бесплатно!

Всем компьютерам в сети, как это ни прискорбно, надо выдать IP-адреса. Да-да, этим мы и будем заниматься.
Недолго думая, на сервере был запущен DHCP-сервер следующей конфигурации:
update-static-leases on; authoritative; allow unknown-clients; use-host-decl-names on; log-facility local7; subnet 192.168.1.0 netmask 255.255.255.0 { interface br0; authoritative; range 192.168.1.2 192.168.1.254; option subnet-mask 255.255.255.0; option ntp-servers 192.168.1.1; option domain-name-servers 192.168.1.1; option netbios-name-servers 192.168.1.1; option routers 192.168.1.1; option domain-name "local"; } subnet 192.168.254.0 netmask 255.255.255.0 { interface wlan0_0; authoritative; range 192.168.254.2 192.168.254.254; option subnet-mask 255.255.255.0; option domain-name-servers 8.8.8.8, 8.8.4.4; option routers 192.168.254.1; } local-address 192.168.1.1; 

Видно, что для 192.168.1.1/24 так же выдаются DNS, WINS, NTP и шлюз 192.168.1.1 – самое время их настроить.
Со шлюзом всё просто, думаю, эти команды не знает только ленивый:
sysctl net.ipv4.ip_forward=1 iptables –t nat -A POSTROUTING -o ppp0 -j MASQUERADE 

Разумеется, ставим iptables-persistent для сохранения наших настроек, а так же прописываем соответствующие параметры в /etc/sysctl.conf.
Теперь наш сервер является полноценным китайским роутером за 10$. Что? Вам кажется слабовато? Мне тоже. Едем дальше.
Как пройти в библиотеку?

Думаю, никто не забыл, что нам нужен DNS? Простейший forwarding настраивается до нелепости просто, но ведь мы делаем полноценный сервер с резолвингом и реверс-зонами… Ставим bind9, и настраиваем:
options { directory "/var/cache/bind"; forwarders { 8.8.8.8; 8.8.4.4; }; dnssec-validation auto; auth-nxdomain no; listen-on { 127.0.0.1; 192.168.1.1; }; allow-transfer { none; }; version none; }; zone "local" IN { type master; file "/var/lib/bind/db.localnet"; }; zone "1.168.192.in-addr.arpa" IN { type master; file "/var/lib/bind/db.localnet-rev"; }; 

Теперь нам нужны файлы прямой и обратной зоны:
/var/lib/bind/db.localnet
$ORIGIN . $TTL 86400 ; 1 day local IN SOA ns.local. router.local. ( 200216990 ; serial 28800 ; refresh (8 hours) 7200 ; retry (2 hours) 604800 ; expire (1 week) 86400 ; minimum (1 day) ) NS ns.local. $ORIGIN local. $TTL 86400 ; 1 day ns A 192.168.1.1 server A 192.168.1.1 router A 192.168.1.1 

/var/lib/bind/db.localnet-rev
$ORIGIN . $TTL 86400 ; 1 day 1.168.192.in-addr.arpa IN SOA ns.local. router.local. ( 2001105214 ; serial 28800 ; refresh (8 hours) 14400 ; retry (4 hours) 3600000 ; expire (5 weeks 6 days 16 hours) 86400 ; minimum (1 day) ) NS ns.local. $ORIGIN 1.168.192.in-addr.arpa. $TTL 3600 ; 1 hour 1 PTR router.local. 

Просто? А теперь сделаем так, что бы каждый компьютер в сети можно было видеть не по IP, а по DNS-имени.
Для этого нам нужно настроить DDNS. Эта технология позволяет связать DHCP-сервер, выдающий адреса, и DNS-сервер.
Для начала создадим ключ для нашего DDNS:
dnssec-keygen -a HMAC-MD5 -b 128 -r /dev/urandom -n USER DDNS_UPDATE 

Эта команда создаст нам 2 файлика с DDNS-ключом. Нам нужно содержимое ключа:
cat Kddns_update.+157+36693.key DDNS_UPDATE. IN KEY 0 3 157 HEyb0FU9+aOXnYFQiXfiVA== 

«HEyb0FU9+aOXnYFQiXfiVA==» и есть наш ключ.
Немного отредактируем наш конфиг DHCP, добавив в него следующие опции:
ddns-updates on; ddns-update-style interim; key rndc-key { algorithm HMAC-MD5; secret HEyb0FU9+aOXnYFQiXfiVA==; } zone local. { primary 192.168.1.1; key rndc-key; } zone 1.168.192.in-addr.arpa. { primary 192.168.1.1; key rndc-key; } subnet 192.168.1.0 netmask 255.255.255.0 { … ddns-domainname "local."; ddns-rev-domainname "in-addr.arpa."; } 

Так же поступим с DNS:
key "rndc-key" { algorithm hmac-md5; secret "HEyb0FU9+aOXnYFQiXfiVA=="; }; zone "local" IN { … allow-update { key rndc-key; }; }; zone "1.168.192.in-addr.arpa" IN { … allow-update { key rndc-key; }; }; 

Вуаля – и эта киллер-фича работает.
Будущее всё-таки здесь. Шестая версия

Так исторически сложилось ©, что мой провайдер (презрительный взгляд в сторону Ростелекома) не выдаёт IPv6 (хотя обещал).
В настоящее время на всей протяженности сети «Ростелеком» обеспечил возможность работы по протоколу IPv6, — парирует пресс-служба оператора.

Что ж, пофиксим это недоразумение. В качестве брокера я выбрал sixxs.net – у них есть туннельные серверы в России, и их туннель прост в настройке для случая с динамическим IP.
Процесс регистрации и получения настроек туннеля/подсети я опущу – там всё довольно просто. Остановлюсь на настройке.
Настройка IPv6 на самом сервере производится в 2 этапа. Во-первых, поставим пакет aiccu – это и есть туннелирующая программа. При установке у нас будет запрошен логин и пароль от sixxs, и некоторые другие данные. После запуска у нас появится новый интерфейс:
sixxs Link encap:IPv6-in-IPv4 inet6 addr: 2a02:578:5002:xxx::2/64 Scope:Global UP POINTOPOINT RUNNING NOARP MTU:1280 Metric:1 … 

Сервер теперь имеет доступ в v6-сеть – почему бы не поделиться ей с другими?
Для начала, разрешим IPv6-forwarding (не забудьте прописать в /etc/sysctl.conf):
sysctl net.ipv6.conf.all.forwarding=1

Настроек с iptables производить не надо – привет, 21 век!
Далее на сайте sixxs получаем подсеть. Её адрес будет очень похож на адрес нашего туннеля – будьте внимательны, они отличаются!
После получения адреса вида 2a02:578:5002:xxxx::/64, приступим к его настройке. Во-первых, зададим нашему серверу адрес 2a02:578:5002:xxxx::1, добавив в interfaces следующие строки:
iface br0 inet6 static address 2a02:578:5002:xxxx::1 netmask 64 

Во-вторых, разрешим выдачу IPv6 компьютерам в сети. Поставим пакет radvd, и настроим его следующим образом:
interface br0 { AdvSendAdvert on; prefix 2a02:578:5002:xxxx::/64 { AdvOnLink on; AdvAutonomous on; AdvRouterAddr on; }; RDNSS 2a02:578:5002:xxxx::1 { }; }; 

Добавим IPv6 DNS в настройки нашего bind – для полного фен-шуя:
options { forwarders { … 2001:4860:4860::8888; 2001:4860:4860::8844; }; listen-on-v6 { ::1/128; 2a02:578:5002:xxxx::/64; }; … }; 

Это всё – теперь мы имеем доступ, например, к ipv6.google.com, или, что гораздо ценнее – к ipv6.nnm-club.me ;)
Пингвин, смотрящий в окно

Я люблю, когда у меня в сети всё красиво. А это возможно только в случае полной гармонии. Например, когда все компьютеры видят друг друга. Для рабочих станций Windows справедливо вспомнить про WINS (помните, мы даже выдавали эту настройку в DHCP).
Его настройка крайне проста: устанавливаем пакет samba. Конфиг по умолчанию надо немного изменить:
workgroup = WORKGROUP wins support = yes dns proxy = yes interfaces = lo br0 bind interfaces only = yes server role = standalone server 

Проверяем результаты… О, да тут всё хорошо!

Кстати, так как у нас есть samba, можно сразу настроить файлопомойку. Но это уже настолько избитая тема, что я оставляю её на плечах гугла. По сути, всё и так должно работать из коробки – разве что read only для homes выключить да smbpasswd -a user
Который час?

Настроим раздачу времени на сервере: установим ntp. С конфигами всё до нелепости просто:
server 0.ru.pool.ntp.org server 1.ru.pool.ntp.org server 2.ru.pool.ntp.org server 3.ru.pool.ntp.org … broadcast 192.168.1.1 

А вот и результат:

Мы уже вплотную приблизились к роутерам уровня microtik за $150-$200. Но это же не всё? Конечно нет.
Killer-feature #1: I2P

А почему бы не иметь доступа в эту сеть без каких-либо настроек, без прокси-серверов и так далее? Вот и я думаю, «почему». Для начала установим вменяемую версию Java:
echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" >> /etc/apt/sources.list apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886 apt-get update apt-get install oracle-java7-installer 

И установим сам роутер:
echo "deb http://deb.i2p2.no/ unstable main" >> /etc/apt/sources.list wget "http://www.i2p2.de/_static/debian-repo.pub" -O- -q | apt-key add - apt-get update apt-get install i2p i2p-keyring 

Теперь создадим зону, направляющую все запросы к *.i2p на наш сервер. В конфиг bind:
zone "i2p" IN { type master; file "/etc/bind/db.i2p"; }; 

Сама зона:
$ORIGIN i2p $TTL 7200 i2p. IN SOA ns.i2p. hostmaster.i2p. ( 2010020701 ; serial 7200 ; refresh 1800 ; retry 7200 ; expire 7200 ; minimum ) i2p. IN NS ns.i2p. ns.i2p. IN A 192.168.1.1 *.i2p. IN A 192.168.1.1 *.i2p. IN AAAA 2a02:578:5002:xxxx::1 

Отлично, но как теперь это обработать? Банально завернуть весь трафик на порт роутера у меня не получилось – прокси ругался на то, что не может так работать. Пришлось настраивать связку nginx+php5-fpm и писать небольшой скрипт. Как сделать первую часть – искать долго не надо, благо мануалов в сети полно. Вторая часть:
/etc/nginx/sites-enabled/i2p
server { listen [2a02:578:5002:xxxx::1]:80; listen 192.168.1.1:80; # по этому адресу можно будет получить доступ к конфигам роутера server_name localhost.i2p; location / { proxy_pass http://127.0.0.1:7657; } } server { listen [2a02:578:5002:xxxx::1]:80; listen 192.168.1.1:80; server_name *.i2p; location / { fastcgi_pass unix:/var/run/php5-fpm; include fastcgi_params; # принудительно задаём адрес скрипта fastcgi_param SCRIPT_FILENAME /etc/nginx/proxy.php; # передаём скрипту параметр с адресом HTTP proxy от i2p fastcgi_param PROXY_PASS 127.0.0.1:4444; } } 

Сам скрипт можно увидеть тут.
Это всё! Теперь мы имеем доступ в i2p даже с телефона – никаких проблем.
Killer-feature #2: делаем рабочее место рабочей сетью

Так исторически сложилось ©, что я являюсь системным администратором по удалёнке сразу в нескольких фирмах. И очень полезно иметь к ним доступ с любого компьютера в сети. Настройку OpenVPN (или любого другого) для сервера осуществляем как для любого другого клиента. Например, после этих действий у нас появился интерфейс tap0 с IP 10.0.0.7/24. Но если мы обратимся из локальной сети по адресу 10.0.0.1, то трафик уйдёт в default gateway провайдера. Исправим этот недостаток:
iptables -t nat -A POSTROUTING -d 10.0.0.0/24 -o tap0 -j MASQUERADE iptables-save > /etc/iptables/rules.v4 

Аналогичным образом поступаем для всех сетей на сервере.
Вместо заключения

У нас есть полноценный сервер, который мы можем использовать по своему усмотрению. DNS, nginx, IPv6, i2p… Можно так же установить зону для локальной разработки, например, *.dev, и тестировать свои сайты с любого устройства в локальной сети. Так как каждый компьютер в сети имеет свой постоянный IPv6-адрес, можно иметь к нему доступ из любой точки мира (Security warning! Настраивайте файрволы правильно!).
И это всё – лишь вершина айсберга. То, что будет его подводной частью – решать вам.

Буду рад услышать комментарии, предложения, здравую критику и прочее. Спасибо.

habr.com

HFS домашний файловый сервер или в офис, хранение и передача любых файлов.



HFS домашний файловый сервер или в офис, хранение и передача любых файлов.



'; }

HFS ~ Http File Server для дома и офиса. Поможет решить не мало проблем с передачей файлов, обменом, хранением.

    Как передать любые файлы в интернете и в локальной сети?

    Как узнать когда забрали файлы с сервера?

    Передача файла по паролю и логину?

    На все эти вопросы и другие касающиеся файлов и передачи информации, вы найдете ответ в этой статье.

    1. HFS ~ Http File Server самый продвинутый файловый сервер потому что он на столько легок в использовании что с ним справиться ребенок. А уж насколько постарались написать его код что он не требователен к ресурсам компьютерного устройства, что дает его установку и дальнейшее использование практически на любых компьютерных машинах. Отличительная черта этого сервера в том что он работает по протоколу не как все подобные сервера, передача данных идет по протоколу просмотра интернет сайтов HTTP а не как не FTP. Такой сервер будет полезен в маленькой организации хотя в большой не помешает, но в больших компаниях стоят специализированные сервера которые выполняют и другие функции серверов. Но если его развернуть то он вывезет любую компанию, но со стороны IT это не удобно тем что он исполняет только роль файлового сервера и еще нескольких, но сей час не об этом. Так же будет полезен для домашнего использования, хранения фотографий, видео и других файлов скажем одной семьи. В любой момент любой член семьи может подключившись, что не составит проблем, зайти и посмотреть любой файл или загрузить его на сервер. Зайти на сервер можно с любого устройства так как сей час нет такого устройства которое не поддерживает HTTP протокол. Если только стиральная машина и то она поддерживает!
    2. Как установить файловый сервер, настроить и работать в нем?

    3. Установка проста и не требует дополнительных знаний. Точнее ее совсем нет, скачанный файл hfs.exe положим в любую папку на ваше усмотрение. Я положил на диск C:\hfs папку я создал сам и назвал ее для удобства и понятия в дальнейшем сокращенным названием самого сервера. Запустив скачанный файл Hfs.exe который упрятали по пути выше описанному, кликая на него два раза мышкой, вас встретит окно сервера с определившемся ip адресом вашего компьютера, локальным адресом(серым). Собственно он и будет выступать когда будет идти запрос на файловый сервер. Если кликнуть на "Open in Browser" то откроется страница с нашим сервером, как на картинке 2.
    4. Картинка 2.) Запущенный файловый сервер в браузере, как видят его другие пользователи.
    5. Как положить или закачать файлы на сервер?

    6. Для начала надо создать папку в которую будем добавлять файлы. Папок можно сделать сколько угодно. Кликаем "Menu" как показано на картинке ниже. Выбираем из контекстного меню "Add Folder From disk":
    7. Далее нам откроется окно, в котором выбираем место где будем создавать папку, нажимаем на кнопку "создать папку" . Кликаем "OK"
    8. Последует не совсем понятный вопрос, какую папку вы хотите создать. Виртуальную маленькую или настоящую большую. Лично я не совсем понял что имел автор который создавал данный сервер, у меня стало много версий что это может значить. Я не стал разбираться и создал настоящую большую папищу. Что то типо этого и выбирал "Real Folder":
    9. Папка создана и вы можете увидеть ее пример на картинке, под цифрами 1-2 ниже. Цифра 3. Здесь будет выводится вся информация о файловом сервере, какие команды и действия выполнялись, кто заходил. Да будет идти лог, записываться вся информация и все адреса, кто когда, где, что делал на файловом сервере:
    10. Настройку файлового

helpsetup.ru

Домашний «облачный» сервер на 10 Ватт? Вполне! / Habr

Привет пользователям Хабра.

Сегодня хочу рассказать про домашний веб-сервер, который одновременно прекрасно выполняет функции домашнего медиа-центра (mp3, ip-tv, video, uPnP и т.д.).

Все началось с того, что я уже некоторое время использовал для внутренних нужд сервер HP MicroServer N36L с RAID5 на 4 терабайта(3x2GB HDD WD Green + 8 Gb ECC RAM), с виртуальными машинами на оракловском vBox, который в принципе и неплох, но его постоянное жужжание беспокоило членов семьи в смысле зря съедаемых киловатт в год (если будут интересующиеся, расскажу о нем в одном из следующих постов).
К тому же хотелось чего-нибудь более современного, с возможностью использования в качестве полноценного медиа-центра с прямым подключением к телевизору.

После долгих поисков и сравнений мною был выбран актуальный на текущий момент девайс на RK3188-чипсете: K-R42, 4-х ядерный ЦПУ, с 2Гб озу и 4Гб флеш-памяти (хотя на коробке было гордо указано 8Гб) и 4-х ядерным графически ядром Mali400 на андроиде 4.2.2.

Конечно, все нижеописанное вполне подходит и для других подобных устройств, подключаемых через HDMI к телевизору, но для меня существенным плюсом в выборе было наличие полноценного корпуса для нормального теплообмена, оптического разъема SPDIF для звука и современного чипсета.

Стоимость K-R42 колеблется в районе 90-120$ (geekbuying.com, aliexpress.com вместе с пересылкой), что правда дороже 2-х ядерных стиков/боксов, но сопоставимо со многими другими на том же RK3188 чипсете.

Стоит отметить, что как медиа-центр он работает на ура: актуальный на сегодня XBMC 12.2 Frodo на нем установился и запустился без каких-бы то ни было проблем, управление с пульта довольно гладкое и с этим особых проблем не возникало. Благодаря внешней антенне беспроводная связь работает очень стабильно, нагревается в процессе работы не так чтобы сильно, но под нагрузкой заметно теплый.

1. Ставим линукс.

Какой – мне особой разницы не было, но для простоты выбрал Debian wheezy.

К сожалению, под Mali400 нет работающих драйверов, чтобы получить полноценное ускорение 3D-графики, поэтому вариантов пока нет – надо использовать chroot-окружение, вместо того чтобы перепрошивать девайс начисто на линукс (соответствующие руководства есть уже в сети).
Благо для этого под андроид есть замечательный app: Linux Deploy, дающий на выбор любой из существующих мэйнстрим-дистрибутивов.

Детально описывать не буду, установка довольно тривиальна: достаточно запустить приложение, выбрать желаемую конфигурацию и нажать старт.
Вставив в медиабокс microSD-карту на 8Гб, я выбрал установку на раздел SD-карты без графического окружения(есть конечно же и опция для желающих получить графический десктоп через VNC), в результате установился Дебиан, с автозагрузкой SSH и sudo-пользователем android с паролем changeme.

Заходим по SSH для дальнейшей настройки:

ssh [email protected]<ip-of-the-box>


2. Пользователи и прочая...

Пароль пользователя android естественно стоит сменить с changeme на что-нибудь посеръезнее:

passwd

а также для рута отключим возможность логина по SSH в /etc/ssh/sshd_config:

sudo nano /etc/ssh/sshd_config

PermitRootLogin yes → PermitRootLogin no 

если необходимо создать своего полноценного пользователя, то

sudo adduser username

и не забудем добавить его в группы, в которых присутсвует пользователь „android“:

sudo adduser username aid_system aid_radio aid_bluetooth aid_graphics aid_input aid_audio aid_camera aid_log aid_compass aid_mount aid_wifi aid_adb aid_install aid_media aid_dhcp aid_sdcard_rw aid_vpn aid_keystore aid_usb aid_drm aid_available aid_gps aid_media_rw aid_mtp aid_drmrpc aid_nfc aid_sdcard_r aid_shell aid_cache aid_diag aid_net_bt_admin aid_net_bt aid_inet aid_net_raw aid_net_admin aid_net_bw_stats aid_net_bw_acct

В противном случае ваш новый пользователь может не иметь доступа к некоторым устройствам/интернету и т.п.
Необходимые группы можно всегда посмотреть по

groups android

Сделаем теперь обновление свежеустановленной системы:

sudo apt-get update sudo apt-get dist-upgrade 

инсталлируем таскменеджер:

sudo apt-get install cron

Чтобы обеспечить доступ к нашему серверу извне, регистрируемся на каком-нибудь DynDNS-сайте (dyn.com, noip.com и т.п.), и инсталлируем клиента для обновления нашего динамического IP-адреса(я использовал ddclient):

sudo apt-get install ddclient

Вот пример конфигурации ddclient:

# Configuration file for ddclient generated by debconf # # /etc/ddclient.conf protocol=dyndns2 use=web, web=checkip.dyndns.com/, web-skip='IP Address' server=www.dyndns.com login=myserveruser password='mydyndnspassword' myserver.dyndns.org 

На роутере необходимо разрешить Port Forwarding из интернета для портов 22(SSH), 80(HTTP), 443(HTTPS) на IP нашего „микро“-сервера.


3. Ставим LAMP

Здесь все достаточно тривиально:
sudo apt-get update sudo apt-get install apache2 mysql-server php5 php5-curl php5-gd php5-mysql php-apc 

Для удобства дальнейшей настройки ставим графическую панель (вебмин)

cd /tmp wget http://prdownloads.sourceforge.net/webadmin/webmin_1.660_all.deb sudo dpkg -i webmin_1.660_all.deb sudo apt-get -f install sudo service webmin start 

(В целях экономии ресурсов вебмин я все время запускаю вручную только когда нужно)

Теперь можно заходить на https://<ip-of-the-box>:10000 с пользователем android и настраивать все что душе угодно.

Если это еще не сделано, перезагружаем вебсервер, чтобы активировать все установленные нами модули:

sudo service apache2 restart


4. Автозагрузка

Для того, чтобы наши службы-демоны автоматически загружались в chroot-окружении при старте нашего бокса, в Linux Deploy предоставляется скрипт /etc/init.d/myscrypt

Мой выглядит так:

#!/bin/sh case "$1" in start) /bin/mount -a /etc/init.d/mysql start /etc/init.d/apache2 start /etc/init.d/ddclient start /etc/init.d/cron start ;; stop) /etc/init.d/apache2 stop /etc/init.d/mysql stop /etc/init.d/ddclient stop /etc/init.d/cron stop /bin/umount /mnt/usb ;; *) echo "Usage: $0 {start|stop}" ;; esac 

При „выключении“ медиаплеера с пульта устройство вместо полного отключения переходит в дежурный режим(многие в сети считают эту особенность недостатком, но в нашем случае является неоспоримым достоинством!), при этом все запущенные службы продолжают работать. Загрузка процесора порядка 5%, и всего на одно ядро из 4-х!


5. Устанавливаем ownCloud

5-ой стабильной версией этого облачного сервиса можно уже вполне комфортно пользоваться. Очень подробно установка owncloud описана на официальной странице(http://doc.owncloud.org/server/5.0/admin_manual/), здесь приведу основные шаги относительно к нашей инсталляции:
  • Создаем базу данных, например через вебмин-панель, и пользователя для этой базы с полными правами на нее.
  • Инсталлируем owncloud. На текущий момент появился репозиторий, который сильно упрощает процесс:
sudo echo 'deb http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/ /' >> /etc/apt/sources.list.d/owncloud.list sudo apt-get update sudo apt-get install owncloud 

Теперь заходим в браузере на

http://<ip-of-the-box>/owncloud/

и завершаем настройку owncloud: вводим данные базы MySQL.

В случае, если инсталлятор жалуется на невозможность использования .htaccess,
изменяем в файле /etc/apache2/sites-enabled/000-default AllowOverride на All:

sudo nano /etc/apache2/sites-enabled/000-default

 <Directory /var/www/> … AllowOverride None → AllowOverride All … </Directory> 

а также и в файле /etc/apache2/sites-enabled/default-ssl, если предполагается использовать owncloud с SSL:

sudo nano /etc/apache2/sites-enabled/default-ssl

<Directory /var/www/> … AllowOverride None → AllowOverride All … </Directory> 

и перезагружаем вебсервер:

sudo service apache2 restart

Дальнейшая настройка owncloud обычно не вызывает проблем и подробно описана в руководстве адмнинистратора.

5.1 Если мало места

Размер „облачного“ хранилища при описанной установке ограничен свободным местом на SD-карте. Удобным способом увеличить объем доступного места является вынесение папки owncloud/data на внешний USB-HDD.

Для этого форматируем любым способом внешний USB-диск (например его первый раздел) как ext4, и указываем его точку монтирования в /etc/fstab:

sudo mkdir /mnt/usb_hdd sudo chmod a+rwx /mnt/usb_hdd sudo nano /etc/fstab 
… /dev/block/sda1 /mnt/usb_hdd ext4 noatime,acl,user_xattr 1 1 … 

Монтируем диск

mount /mnt/usb_hdd

и переносим owncloud/data на него:

sudo mv /var/www/owncloud/data /mnt/usb_hdd/ sudo ln -s /mnt/usb_hdd/data /var/www/owncloud/data 

Теперь объем нашего хранилища ограничен только свободным местом на внешнем USB-диске.


6. Бэкап по плану

Легко и быстро, с помощью duplicity, организовывается регулярный backup на внешний сервер, при желании также с шифрованием.
Если основной файл-сервер как у меня расположен в той же сети и поддерживает wake-on-lan, то этот процесс можно полностью автоматизировать(запуск файл-сервера включительно).

sudo apt-get install wakeonlan duplicity

Мы создадим папку для бэкапов (например /media/backup/owncloud) на файл-сервере 192.168.0.2 с MAC-адресом 33:d0:ab:dd:11:c1,
для которой локальный пользователь user1 имеет права на запись.

Настраиваем беспарольный доступ для пользователя root по SSH на файл-сервер:

sudo su ssh-keygen -t rsa (пароль не вводим, просто жмем ввод) ssh-copy-id -i .ssh/id_rsa.pub [email protected] exit 

теперь вносим задания для таскменеджера в crontab:

sudo crontab -e

49 23 * * * /usr/bin/wakeonlan 33:d0:ab:dd:11:c1 0 0 * * sun /usr/bin/duplicity full --no-encryption --volsize 100 --exclude /tmp --exclude /proc --exclude /sys / rsync://[email protected]//media/backup/owncloud 0 0 * * 1-6 /usr/bin/duplicity --no-encryption --volsize 100 --exclude /tmp --exclude /proc --exclude /sys / rsync://[email protected]//media/backup/owncloud 0 1 * * sun /usr/bin/duplicity remove-all-but-n-full 2 --force rsync://[email protected]//media/backup/owncloud 

По этому плану будет производится бэкап всего нашего chroot-окружения, по воскресениям полный, в другие дни инкрементальный, с удалением старых записей. Если файл-сервер спит, он будет разбужен заранее по сети (конечно если он поддерживает эту функцию).


Ну вот, имеем одновременно работающий медиа-центер и веб-сервер с облачным хранилищем.
Конструктивные критика и предложения приветствуются.

habr.com

Домашний сервер. WiFi роутер / Habr

Домашний сервер это просто… компьютер, работающий 24 часа, 7 дней в неделю, 365 дней в году. Что он делает?
«Раздает» интернет по проводу и по воздуху.
Является складом с круглосуточном доступом для всех ваших коллекций фильмов, музыки, игр, программ, backup'ов важной информации, сюда же можно добавить, что это ваше файловое хранилище доступное внутри сети, а если постараться, то и из любого уголка мира можно попасть в него. Понравилось? Хотите «завести» подобное у себя дома?
Тут вспоминается фраза из анекдота — «Главное, мужики, не бояться!».

Есть несколько этапов создания собственного домашнего сервера:
  • Необходимо определиться с ОС [операционная система]
  • Купить/найти комплектующие для, собственно, сервера
  • Запастись большим количеством терпения, заготовить 33 вкладки с поисковиком Google для вопросов о том, почему то или иное не работает [но должно же всё работать :P]

Разберемся.

Пункт номер раз, добавлен только ради того, чтобы обозначить, что у Вас есть выбор, но поскольку ориентация моего блога направлена на ОС Linux, то в статье, всё будет рассматриваться на основе этой операционной системе. Возможно, если это будет иметь смысл и это будет нужно людям, будет вариант описания создания домашнего сервера на ОС Windows.

Пункт номер два. Стоит сразу оговориться, что вариант домашнего сервера на ОС Windows требует больше мощности от комплектующих, нежели на ОС Linux. В моем случае, мой личный домашний сервер основывается на Pentium 4, 1000MHz, 1Gb RAM.

Пункт номер три. Стоит сразу оговориться, что статья рассчитана на «не_совсем_новичок», а на пользователей имевших общение с ОС Linux и вообще с компьютером.

В данной статье мы будем рассматривать домашний сервер на примере ОС OpenSUSE.
Что мы будем делать:

  • DHCP Server — для того чтобы раздавать компьютерам в сети ип адреса, таким образом мы получим домашнюю сеть.
  • WiFi AP — чтобы была точка доступа WiFi, то есть можно будет убрать в шкаф домашний WiFi роутер.
  • FTP Server — для доступа к файловому хранилищу из интернета.
  • Samba — для доступа к файловому хранилищу внутри сети.
  • TorrentClient — полу-автоматизированный торрент-качалка на Вашем домашнем сервере.

Начнем с установки системы. Процесс тривиален и прост. Практически как Windows установить.

Рисунок 1. Установка OpenSUSE 11.4.
Щелкаем «Далее», выбираем нужные пункты, язык, раскладка клавиатуры и так далее. Отдельно задерживаться не будем, этот этап простой.

Рисунок 2. Процесс установки системы.
После установки системы Вы получите практически голую систему(хотя, на самом деле в ней куча хлама и мусора, не нужных программ, библиотек). Как только система загрузилась в первый раз — перезагрузитесь, если есть ошибки, она сразу вылезут. Принимаемся за работу.

Для начала смотрим сетевые настройки, набираем в консоле:

ifconfig

и смотрим вывод команды. Там будут указаны Ваши сетевые интерфейсы и информация о них:

Рисунок 3. Вывод команды ifconfig
eth0(internet) и eth2(lan) — интерфейсы обычных сетевых карт, в eth0 воткнут шнур с интернетом, а из eth2 шнур идет в свитч, wlan0 — интерфейс WiFi карты, lo — обратная петля, mon.wlan0 — об этом интерфейсе Вы узнаете позже, в другой статье или в этой же, но ниже. Сейчас сразу необходимо воткнуть шнур из которого течет интернет в ту сетевую карту(в данной статье это eth0), в какую он будет всегда воткнут и не путать их. Теперь, открываем консоль и пишем:
nano /etc/sysconfig/network/ifcfg-eth2

Откроется файл конфигурации интерфейса eth2(тот, что для локальной сети), и прописываем туда следующее:
BOOTPROTO='static' IFPLUGD_PRIORITY='0' IPADDR='192.168.1.1/24' STARTMODE='ifplugd' USERCONTROL='no'

Сохраняем (комбинация клавиш Ctrl+O) и открываем следующий файл /etc/sysconfig/network/ifcfg-wlan0 — конфиг беспроводного интерфейса, прописываем туда следующее:
BOOTPROTO='static' IFPLUGD_PRIORITY='0' IPADDR='192.168.2.1/24'

На этом завершена подготовка сетевых карт. О данных функциях Вы можете прочитать в файле ifcfg-template. Эти же настройки можно произвести и из интерфейса, достаточно открыть Пуск-YAST-Сетевые настройки и там изменить IP адреса и другие опции, для всех доступных интерфейсов.
Всё сделали, хорошо. Приступаем к дальнейшей настройке.

DHCP Server. Служба называется dhcpd, при стандартной установке системы, она уже включена в репозитарий системы, ее надо только включить:

etc/init.d/dhcpd start/

Основной конфигурационный файл DHCP сервера находится по адресу /etc/dhcpd.conf. Его и необходимо редактировать. Полную информацию по командам, Вы можете получить написав в консоле следующее:
man dhcpd

Для редактирование конфигурационных [далее, конфиг] файлов я использую текстовый редактор nano, также можно использовать vim.

Предлагаю взглянуть на рабочий конфиг файл DHCP сервера, для наглядности:

# Здесь указываем DNS сервера выдаваемые Вашим провайдером, смотрите в договоре с провайдером. option domain-name-servers 77.37.251.33, 77.37.255.30; # Отключаем динамические обновления DNS. ddns-update-style none; ddns-updates off; log-facility local7; # Наша подсеть, для проводных интерфейсов. subnet 192.168.1.0 netmask 255.255.255.0 { # Указываем интерейфейс, через который будет выдавать компьютерам IP адреса из подсети, укзанной выше. В данном случае, применяется схема Server -> switch -> #Computer №1,2,3..., если компьютер всего один, то Server -> Computer №1. INTERFACES="eth2"; # Диапазон выдаваемых IP адресов из той подсети, что мы указали выше. range 192.168.1.2 192.168.1.10; # Тут мы вписываем IP адрес нашего сервера, этот адрес надо будет указать в Сетевых настройках но том интерфейсе, который мы указали выше, то есть eth2, далее об этом будет подробнее. option routers 192.168.1.1; # Время обновления адресов(12 часов). Время, через которое DHCP сервер выдаст адреса заново. Возможно, в рамках домашнего сервера это функция бесполезна. default-lease-time 172800; max-lease-time 345600; } # Наша подсеть, для беспроводных интерфейсов. subnet 192.168.2.0 netmask 255.255.255.0 { # Диапазон выдаваемых IP адресов. range 192.168.2.2 192.168.2.5; # Выбираем беспроводной интерфейс INTERFACES="wlan0"; # Тут мы вписываем IP адрес нашего сервера для тех компьютеров, которые подключаются по WiFi, этот адрес надо будет указать в Сететвых настройках но том интерфейсе, который мы указали выше для беспроводной подсети, то есть wlan0, option routers 192.168.2.1; # Время обновления адресов(12 часов). default-lease-time 172800; max-lease-time 345600; }

Конфиг файл, предварительно был снабжен разъясняющими комментариями. Это пример простейшего, но вполне рабочего DHCP сервера. Также, необходимо отредактировать файл /etc/sysconfig/dhcpd, а именно одну строчку — DHCPD_INTERFACE=" ", здесь вписываем интерфейсы для беспроводной подсети и проводной подсети, то есть, те самые интерфейсы, которые мы указывали в конфиг файле DHCP сервера — /etc/dhcpd.conf в строчках INTERFACES="". После этого всего надобно перезагрузить систему.

На этом редактирование конфиг файлов DHCP сервера завершено, если Вы вставите интернет кабель в сервер(eth0), а другой провод вставите в switch и из свитча в свой компьютер, то DHCP сервер Вам выдаст адрес из выбранного диапазона.

HostAP — начинаем настраивать раздачу WiFi.

Первым делом необходимо какой фирмы wifi-сетевая карточка, в данной статье всё будет описываться с условием, что сетевая карта фирмы Realtek, поскольку она самая распространенная. Необходимо скачать и установить утилиту hostapd, изначально при установке из репозитария она собрана без поддержки драйвера nl80211, поэтому необходимо собрать ее из исходников, с включенной поддержкой нужного драйвера (на сетевых карточках от фирмы atheros — hostapd должна работать скачанная из репозитария) об этом поговорим позже. Также необходимо скачать пакет утилит binutils, это можно сделать, выполнив в терминале следующую команду:

zypper in binutils

После установки утилит, необходимо настроить службу hostapd, весь процесс настройки состоит из редактирования конфигурационного файла /etc/hostapd.conf, место расположение этого файла может быть изменено в файле /etc/default/hostapd.
# Выбор беспроводного интерфейса с которого будет раздаваться WiFi interface=wlan0 # Определение драйвера для вашей сетевой карты driver=nl80211 # Включение функции отвечающей за ведение логов с опциями logger_syslog=-1 logger_syslog_level=4 logger_stdout=-1 logger_stdout_level=2 # Название Вашей сети ssid=myssid # Код страны country_code=RU # Выбор режима раздачи (еще бывают b и n) hw_mode=g # Канал, по которому идти сигнал channel=3 # Пароль для доступа к WiFi wpa_passphrase=pass1234 # Выбор системы шифрования wpa=3 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP

Чуть выше находится пример рабочего конфига. Более подробно о процессе настройки и дополнительных опциях читайте в man'e.

man hostapd

Дальнейший шаг это запуск службы hostapd в режиме раздачи WiFi. Для этого пишем команду в терминале:

hostapd -B /etc/hostapd.conf

Вуаля, получаем вывод консоле о том, что запущена раздача WiFi с такого-то MAC адреса и с таким-то SSID:

Configuration file: /etc/hostapd.conf Using interface wlan0 with hwaddr 00:17:31:ed:cb:52 and ssid 'myssid'

Выше Вы видите вывод команды запуска раздачи интернета по WiFi, то есть, успешный запуск службы hostapd в режиме «демона», то есть, фоновая работа службы не зависит от открытого окна терминала, в котором Вы выполнили запуск службы.

На данный момент, Вы будете иметь полноценный WiFi роутер, который может раздать интернет по проводу и по воздуху. Дальше мы будем организовывать файловое хранилище доступное внутри сети, снаружи(из интернета), полу-автоматизированную торрент-качалку, также поговорим о настройке ежедневных/недельных бекапов информации при помощи планировщика и еще многое, для улучшения функционала домашнего сервера, увеличение автоматизации многих процессов, но уже в других статьях и заметках. Спасибо за внимание!

habr.com

Домашний linux сервер своими руками / Habr

Хочется поделиться с хабросооществом информацией о том как я собирал домашний сервер.

Из софта на домашнем сервере будет «крутиться» следующий набор:

  • torrent клиент с web-мордой
  • DHCP — раздаем ip адреса и сетевые настройки
  • TFTP — для сетевой загрузки
  • OpenVPN — для хождения в сеть с нетбука из недоверенных сетей
  • FTP/Samba/NFS — сетевые шары для доступа с домашних машин
  • Radius — для WPA2 авторизации
  • DigiTemp — мониторинг домашней температуры


Аппаратная часть

При выборе аппаратной части, вариантов было несколько:

  • старенький комп
  • самосбор на базе mini-ITX
  • тонкий клиент HP T5000
  • тонкий клиент на базе Neoware CA2

Первый вариант был сразу же отброшен из-за шума, пыли и энергопотребления. Второй был заказан, пока шли комплектующие, я успел передумать (захотелось шум и энергопотребление свести до минимума). В итоге, на Ebay были куплены тонкие клиенты HP t5000 и Neoware CA2. Месяц спустя пришли тонкие клиенты и из двух, после долгих размышлений, был выбран Neoware CA2. В него идеально поместился 2.5' HDD и вторая сетевая карта.

После допиливания, в буквальном смысле, Neoware CA2 я принялся ставить на него Ubuntu 9.10 с офисного TFTP сервера. Установку производил самую минимальную. Если бы не было набора для сетевой установки, ставил бы Debian с USB CD-ROM и netinstall диска. Сам я ярый фанат RHEL/CentOS, но на домашний сервер решил ставить что-то из debian семейства, для расширения кругозора.

Софт

Torrent клиент и вебморда

Теперь перейдем к установке torrent клиента и вебморды. Была выбрана связка rtorrent + rutorrent, установка из репозитариев была отметена сразу, т.к. «родной» пакет был собран без xmlrpc-c который расширяет функционал rutorrent. Ниже фактически, скрипт для авто-установки rtorrent+rutorrent+lighttpd+php.

Устанавливаем всё что необходимо для компиляции xmlrpc-c, libtorrent, rtorrent
apt-get install checkinstall subversion build-essential make autoconf autotools-dev automake libtool libcurl4-openssl-dev libsigc++-2.0-dev pkg-config libncurses5-dev
apt-get remove rtorrent libtorrent11 libxmlrpc-c3 libxmlrpc-c3-dev libxmlrpc-core-c3 libxmlrpc-core-c3-dev

Компилируем и «заворачиваем» в .deb пакет xmlrpc-c, libtorrent, rtorrent
svn co xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/advanced xmlrpc-c
cd xmlrpc-c
./configure --prefix=/usr && make && checkinstall -D

cd ..
wget libtorrent.rakshasa.no/downloads/libtorrent-0.12.6.tar.gz
tar zxfv libtorrent-0.12.6.tar.gz
cd libtorrent-0.12.6
rm -f scripts/{libtool,lt*}.m4 # для Debian
./autogen.sh && ./configure --prefix=/usr && make && checkinstall -D

cd ..
wget libtorrent.rakshasa.no/downloads/rtorrent-0.8.6.tar.gz
tar zxfv rtorrent-0.8.6.tar.gz
cd rtorrent-0.8.6
rm -f scripts/{libtool,lt*}.m4 # для Debian
./autogen.sh && ./configure --with-xmlrpc-c --prefix=/usr && make && checkinstall -D

К сожалению, rtorrent не умеет работать в режиме daemon, по этому будем использовать screen
apt-get install screen -y
wget libtorrent.rakshasa.no/raw-attachment/wiki/RTorrentCommonTasks/rtorrentInit.sh --output-document=/etc/init.d/rtorrent
chmod +x /etc/init.d/rtorrent
sed -i 's/"user"/"torrents"/' /etc/init.d/rtorrent
update-rc.d rtorrent defaults
useradd -d /torrents -m torrents

Создаем конфиг и папки для сессий и готовых торрент закачек, после чего стартуем rtorrent.
mkdir /torrents/.rtorrent_session
cat >> /torrents/.rtorrent.rc <<EOF
port_range = 32001-32049
dht = auto
dht_port = 32000
peer_exchange = yes
use_udp_trackers = yes
directory = /torrents/
upload_rate = 10
download_rate = 100
session = /torrents/.rtorrent_session
scgi_port = 127.0.0.1:5000
EOF
chown -R torrents:torrents /torrents
/etc/init.d/rtorrent start

Теперь займемся вебмордой rutorrent. Для работы rutorrent необходим вебсервер и интерпретатор php.
apt-get install lighttpd php5-cgi php5-cli php5-curl curl -y
lighty-enable-mod fastcgi
echo 'server.modules += ( "mod_scgi" )' >> /etc/lighttpd/lighttpd.conf
cat >> /etc/lighttpd/lighttpd.conf <<EOF
scgi.server = (
"/RPC2" =>
( "127.0.0.1" =>
(
"host" => "127.0.0.1",
"port" => 5000,
"check-local" => "disable"
)
)
)
EOF
/etc/init.d/lighttpd force-reload

Вебсервер готов, теперь будем ставить rutorrent и несколько полезных плагинов к нему.
cd /var/www/
svn checkout rutorrent.googlecode.com/svn/trunk/rutorrent
cd /var/www/rutorrent/plugins/
svn checkout rutorrent.googlecode.com/svn/trunk/plugins/tracklabels
svn checkout rutorrent.googlecode.com/svn/trunk/plugins/cookies
svn checkout rutorrent.googlecode.com/svn/trunk/plugins/autotools
svn checkout rutorrent.googlecode.com/svn/trunk/plugins/erasedata
chown -R www-data:www-data /var/www/

Теперь можно заходить по server_ip/rutorrent и начинать пользоваться.

DHCP

Теперь установим DHCP сервер и создадим для него конфиг таким образом чтобы клиенты получали:
router 192.168.1.1
dns сервер 8.8.8.8
сервер времени time.nist.gov
tftp сервер 192.168.1.1
и для примера фиксированная выдача 192.168.1.100 клиенту с MAC-адресом 00:1B:FC:33:F0:25
aptitude install dhcp3-server
cat >> /etc/dhcp3/dhcpd.conf <<EOF
ddns-update-style interim;
not authoritative;

option domain-name-servers 8.8.8.8;
option subnet-mask 255.255.255.0;
option ntp-servers 192.43.244.18;

option option-150 code 150 = ip-address;
option option-150 192.168.1.1;

subnet 192.168.1.0 netmask 255.255.255.0 {
authoritative;
range 192.168.1.110 192.168.1.254;
option routers 192.168.1.1;
allow unknown-clients;
allow booting;
allow bootp;
next-server 192.168.1.1;
filename "pxelinux.0";

host shakirov-home {
option host-name "shakirov-home";
hardware ethernet 00:1B:FC:33:F0:25;
fixed-address 192.168.1.100; }
}
EOF
/etc/init.d/dhcp3-server restart


строчки с option-150 нужны для моего VoIP телефона Cisco 7940.
TFTP и сетевая установка

aptitude install xinetd atftpd atftp

mkdir /tftpboot

cat >> /etc/xinetd.d/tftp <<EOF
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = --tftpd-timeout 300 --retry-timeout 5 --mcast-port 1758 --mcast-addr 239.239.239.0-255 --mcast-ttl 1 --maxthread 100 --verbose=5 /tftpboot

per_source = 11
cps = 100 2
flags = IPv4
}
EOF

/etc/init.d/xinetd restart


Теперь проверим, работает ли tftp сервер
[email protected]:~# echo bla > /tftpboot/123
[email protected]:~# atftp 127.0.0.1
tftp> get 123
tftp>
[email protected]:~# cat 123
bla

Всё нормально, теперь создадим netinstall наборы для нескольких ОС: Ubuntu karmic, Ubuntu lucid, Debian lenny, Debian sid, Debian squeeze, Fedora 13, CentOS 5.5, Mandriva 2010.0, Suse 11.2, Slackware 13.1, Hardware Detection Tool, memtest и MHDD. Для этого предлагаю использовать слегка модифицированный скрипт который я взял с HowtoForge.
apt-get install lftp -y

wget itblog.su/tftpboot_installs.sh
bash tftpboot_installs.sh

Теперь добавим SystemRescueCd в PXE меню
wget "http://downloads.sourceforge.net/project/systemrescuecd/sysresccd-x86/1.6.3/systemrescuecd-x86-1.6.3.iso?use_mirror=citylan"
mount -o loop systemrescuecd-x86-1.6.1.iso /mnt/
cp /mnt/sysrcd.* /var/www/
cp /mnt/isolinux/initram.igz /tftpboot/
cp /mnt/isolinux/rescuecd /tftpboot/

cat >> /tftpboot/pxelinux.cfg/default <<EOF
label linux
menu label SystemRescue-CD x86-1.6.1
kernel rescuecd
append initrd=initram.igz showopts vga=normal video=ofonly setkmap=us rootpass=123321 netboot=http://192.168.1.1/sysrcd.dat #eth0=192.168.1.213/24
EOF
Без особого труда в это меню можно добавить продукты Acronis, инсталляцию и запуск Windows XP и прочее.

Вот так будет выглядеть наше меню:

Продолжение в следующей части. А именно:

  • OpenVPN сервер для «хождения» в сеть из не доверенных сетей (например из гостиницы)
  • FTP/Samba/NFS сетевые шары
  • Radius для авторизации wi-fi клиентов
  • DigiTemp зачатки умного дома, мониторинг температуры в квартире и за окном
  • festival — говорящий будильник
  • бакапы с хостинга

и подытожит статью скрипт который всё это установит в «два клика».

С удовольствием выслушаю замечания и дополнения.

habr.com


Смотрите также



© 2010- GutenBlog.ru Карта сайта, XML.