IT News: Digital Camera, OS, Laptop, Smartphone, Smart TV, Sound...

The Author's Project by Valeri N.Kravchuk
Сайт проверен Dr.Web
Меню сайта
  • Главная страница
  • Информация о сайте
  • Дневник
  • Каталог файлов
  • Обратная связь
  • Каталог сайтов
  • FAQ
  • Доска объявлений
  • Форум
  • Фотоальбом
  • Категории раздела
    Автомобильные гаджеты, ремонт... [143]
    Безопасность IT [404]
    Блоки питания, Power Banks, зарядки... [508]
    Видеорегистраторы [186]
    Гаджеты для спорта и здоровья... [190]
    Гаджеты, аксессуары... [627]
    Измерительная техника, инструменты [437]
    Накопители данных [232]
    Нетбуки, Ноутбуки, Ультрабуки [689]
    Мультиварки, блендеры и не только... [162]
    Планшеты [764]
    Радар-детекторы [26]
    Роботы-пылесосы [37]
    Своими руками [360]
    Сети, сетевые технологии, оборудование... [273]
    Смартфоны [4959]
    Фотокамеры, объективы, искусство фотографии.. [541]
    Умный дом [50]
    Электронные книги [101]
    CB, LPD, PMR- связь... [170]
    DECT, IP-телефоны [18]
    Drones, boats, cars... [108]
    electric cars [35]
    GPS-навигаторы, трекеры... [51]
    Linux и не только [3981]
    mini computers и не только... [409]
    News IT, Это интересно, ликбез... [1120]
    Smart TV, UltraHD, приставки, проекторы... [415]
    Smart Watch [268]
    Sound: наушники, плееры, усилители... [618]
    Windows 10... [301]
    Windows 11 [37]
    Погода

  • Метеорадар БРЕСТ
  • Погода в Бресте от www.yr.no

    Яндекс.Погода БРЕСТ

  • Интересные ссылки

    COMPIZOMANIA

    Наш опрос
    Оцените мой сайт
    Всего ответов: 1347
    Статистика
    Анализ веб сайтов

    Яндекс.Метрика

    Рейтинг@Mail.ru Яндекс цитирования

    Russian America Top. Рейтинг ресурсов Русской Америки.

    eXTReMe Tracker

    Правильный CSS!


    Онлайн всего: 24
    Гостей: 24
    Пользователей: 0
    Locations of visitors to this page
    Форма входа
    Главная » 2015 » Сентябрь » 2 » Установка и настройка домашнего сервера на Debian
    14:19
    Установка и настройка домашнего сервера на Debian

    Установка и настройка домашнего сервера на Debian

    Когда домашний «зоопарк» электронных девайсов разрастается от простого десктопа до ноутбука, десктопа, планшета, смартфона, телевизора с поддержкой SmartTV и т.д., появляется желание не просто объединить их в одну локальную сеть, а и иметь доступ к необходимым файлам с любого устройства, плюс, возможность администрировать каждое (ну почти) устройство сети, находясь в любой точке мира. В таком случае в сети нужно выделить главный ПК, который и будет заведовать всеми остальными. О том, как установить и настроить домашний сервер на Debian, вы узнаете из этого материала.

    Intro

    Зачастую, подобные домашние сервера собираются из устаревшего железа, которое либо стало не нужным после апгрейда основного ПК, либо уже давно просто пылится на полке. Да и в такой области применения не нужны разнообразные серверные навороты вроде контроллера домена, Active Directory, управления лесом и т.д. А потому сразу же, как операционная система, отпадает Windows Server ввиду прожорливости и перегруженности (как для нас) разнообразными функциями. И остается только один вариант – Debian. Для тех, кто еще не знаком с миром Linux, загляните в Википедию (https://ru.wikipedia.org/wiki/Linux), ознакомьтесь с историей, а также базовыми принципами работы в linux-системах.

    Почему не Ubuntu Server, спросите вы? А потому что, первое – Debian это синоним слова «стабильность», и второе – в репозиториях Debian лежит более 43000 пакетов ПО. Из этих двух причин появляется третья – гиперпопулярность Debian-а, огромное комьюнити и неисчерпаемое количество информации по ОС.

    Установка

    Идем на https://www.debian.org/, и на странице «Где взять Debian» выбираем, что хотим скачать: маленький установочный образ netinst (для установки по сети), или же полные образы для CD или DVD. В первом случае получаем iso размером примерно в 300 МБ, во втором же – все торренты суммарно потянут на 12.5 ГБ. Я выбрал первый.

    С помощью Win32DiskImager (http://sourceforge.net/projects/win32diskimager/) или другой аналогичной утилиты для записи образов на USB-диски, закидываем Debian на флешку (в той же Win32DiskImager это делается очень просто – выбираем диск, месторасположение образа, жмем «Write», соглашаемся на запись и ждем).

    Для верности съемный диск стоит предварительно отформатировать в FAT32, потому что некоторые старые материнские платы не умеют загружаться с NTFS-флешек. 

    Небольшой совет: что бы не перетыкать флешку по несколько раз из одного ПК в другой, для проверки корректности записи образа можно воспользоваться улиткой Xboot (http://www.pendrivelinux.com/xboot-multiboot-iso-usb-creator/), в которую встроен эмулятор QEMU.

    Итак, вставляем «прожжённую» флешку в будущий сервер и включаем его. Но предварительно зайдем в BIOS, выставим порядок загрузки, переместив съемные диски на первое место. Сохраняем изменения, перезагружаемся. В появившемся меню жмем «Install».

    Сразу выбираем язык, страну и раскладку клавиатуры. Когда загрузятся необходимые компоненты, нам будет предложено ввести сетевое имя ПК и имя домена, которое мы оставим пустым. 

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

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

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

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

    В следующем окне предстоит выбор: сложить все фалы в один раздел, установить систему в /boot, а пользовательские файлы в /home, или то же, но еще с /var и /tmp. Выберем второе, так как пока что var и tmp нам не нужны, а в первом случае, при возможной переустановке системы, мы потеряем все свои файлы. А если отвести под наши нужды отдельный раздел home, то при переустановке или установке любого другого дистрибутива, достаточно будет просто подмонтировать /home, и все файлы снова будут доступны. Соглашаемся на внесение изменений,  смотрим, что и как будет размечено, соглашаемся, и еще раз соглашаемся.

    Пока устанавливается базовая система, приведу конфигурацию моего тестового сервера:

    • Процессор AMD Sempron 3000+@1.81 GHz
    • Материнская плата Foxconn 6100K8MB
    • 1.5 GB RAM (одна планка Samsung M3 68L6523CUS-CCC 512 MB DDR, вторая – Hexon неопределенной модели 1 GB DDR)
    • Жесткий диск Samsung 040GJ на 40 GB SATA 2
    • Интегрированная видеокарта NVIDIA GeForce 6100

    «Динозавр классический» получился .

    Базовая система установлена, нам предлагают настроить менеджер пакетов apt. Указываем страну, в которой размещено зеркало, с которого мы хотим качать пакеты, собственно само зеркало, и, при необходимости, вводим адрес используемого прокси-сервера. Ждем пока закачается еще одна порция пакетов.

    После нам предложат поучаствовать в программе сбора статистики использования пакетов . Тут выбираем по собственному желанию. Я ответил «нет».

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

    Когда притянутся и настроятся стандартные утилиты, соглашаемся на установку загрузчика , и указываем, куда его ставить . Еще полминуты настроек и, как только увидим сообщение об удачном завершении установки, вынимаем флешку и жмем «Продолжить». Система установлена.

    Первый вход

    После перезагрузки первое, что мы увидим –  это менеджер загрузки GRUB.

    Первый пункт меню «Debian GNU/Linux» загрузится автоматически через 2 секунды, потому просто ждем. И видим приветствие. Входим, введя свой логин и, по запросу, пароль. Далее делать скриншоты бессмысленно, потому я ограничусь вводом и выводом терминала.

    Sudo

    Что бы иметь возможность запускать программы от имени администратора, необходимо установить утилиту под названием sudo. Выполняем в терминале:

    su

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

    apt-get install sudo

    Когда sudo установится, добавим нашего пользователя в группу sudo:

    adduser username sudo

    Перезагружаемся:

    reboot

    Перед дальнейшей настройкой примем за данность, что в интернет все наши устройства ходят через роутер. В моем случае это Huawei HG532e.

    Для удобства в дальнейшем, присвоим MAC-адресам наших устройств статические ip-адреса. MAC-адрес можно узнать в свойствах сетевого адаптера в Windows, или выполнив (в Debian):

    sudo ifconfig

    MAC-адрес будет отбражен в поле HWaddr.

    SSH

    По идее, сервер должен тихо и неприметно выполнять свою работу, стоя, например, в кладовке или подвале (если частный дом). Но сервером все так же нужно управлять. Лучший и общепринятый способ – это терминал через сетевой протокол SSH. Для этого нам понадобится SSH-сервер. Выполняем:

    sudo apt-get install ssh

    И соглашаемся на установку. Теперь надо правильно настроить сервер SSH. Открываем файл настроек во встроенном редакторе nano:

    sudo nano /etc/ssh/sshd_config

    И начинаем с самого начала. Поскольку планируется, что мы сможем получить доступ к системе из любого места на планете, сразу сменим стандартный 22-й порт, к примеру, на 2020:

    Port 2020

    Поскольку на пост-советском пространстве с IPv6 все еще плохо, ограничим подключения только протоколом IPv4. Сразу после порта вставляем новую строку:

    AddressFamily inet

    Возвращаемся в начало. Поскольку мы уже настроили sudo, запретим вход через SSH под root-ом. Правим строку:

    PermitRootLogin no

    Идем дальше. Поскольку мы не будем использовать графическую среду, отключим форвардинг сервера окон X11 через ssh:

    X11Forwarding no

    По умолчанию, аутентификация по паре логин/пароль отключена, и это правильное решение. Гораздо безопаснее входить по RSA-ключу. Для этого сначала на клиентских машинах нужно сгенерировать по паре ключей (приватный и публичный), а потом скопировать публичный на сервер. Для Windows существует просто отличный клиент для работы с SSH под названием PuTTY. Скачиваем zip-файл (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) со всеми необходимыми утилитами сразу, распаковываем и запускаем PuTTYgen. Жмем «Generate», и хаотично «мотыляем» мышкой по окну, пока процесс генерации не закончится. После, жмем «Save public key» и «Save private key», и сохраняем куда-нибудь.

    Однако, чтобы скопировать свой публичный ключ на сервер, войти один раз по логину/паролю все же придется. Для этого удаляем # перед строкой:

    PasswordAuthentication yes

    Снимаем комментарий и правим строку на:

    AuthorizedKeysFile .ssh/authorized_keys

    Жмем Ctrl+O, Enter и Ctrl+X. Перезапускаем сервис ssh:

    sudo systemctl restart ssh

    Запускаем PuTTY, в поле «Host» пишем ip-адрес сервера, указываем порт, в поле «Saved Sessions» вводим имя подключения, жмем «Save» и «Open». Соглашаемся с предупреждением, вводим по предложению логин и пароль. 

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

    mkdir .ssh

    Переходим в нее, потом на нашем ПК открываем блокнотом файл с публичным ключом и копируем собственно сам ключ (строки между «comment…» и «----end----»), создаем файл authorized_keys и вписываем в него (последовательность команд сохранена):

    cd .ssh

    nano authorized_keys

    ssh-rsa AAAAA…..(key)…..== username@server

    Примечание: когда вставите в окно PuTTY с открытым файлом authorized_keys, ключ (просто жмите ПКМ) нужно удалить переходы на новую строку (чтобы весь ключ был в одну строчку).

    Жмем Ctrl+O, Enter и Ctrl+X. Перезапускаем сервис ssh:

    sudo systemctl restart ssh

    Возвращаемся в окно новой сессии PuTTY, выбираем сохраненную сессию, нажимаем «Load», слева в панели с деревом настроек выбираем «SSH», а в нем подпункт «Auth». Жмем «Browse», указываем файл с приватным ключом (с расширением .ppk), возвращаемся в сайдбаре в пункт «Session», клацаем «Save» и «Open». Вводим логин, если все хорошо, нас авторизуют. Снова открываем /etc/ssh/sshd_config и отключаем вход по паролю:

    sudo nano /etc/ssh/sshd_config

    Правим:

    PasswordAuthentication no

    Жмем Ctrl+O, Enter и Ctrl+X. Перезапускаем сервис ssh:

    sudo systemctl restart ssh

    С ssh разобрались, едем дальше.

    Samba

    Самое первое, что нам нужно – это возможность расшаривания файлов в нашей локальной сети. Для этой цели идеально подходит протокол Samba. В репозиториях восьмого Debian-а уже лежит новая Samba 4, потому просто устанавливаем (соглашаемся на установку всех дополнительных пакетов):

    sudo apt-get install samba

    Теперь настраиваем Samba. Открываем файл конфигурации:

    sudo nano /etc/samba/smb.conf

    Итак, значение параметра workgroup определяет название рабочей группы, в которую входит наш сервер. Имя должно быть одинаковое на ВСЕХ ПК нашей сети. Я оставил WORKGROUP. Поскольку наш «парк» состоит и из windows-ПК, нужно поднять WINS-сервер для того, что бы все компьютеры нормально работали через NetBIOS-имена (папка Сеть в Windows 7/8/10), а не только через «голые» ip-адреса. Для этого раскомментируем и поправим строку:

    wins support = yes

    И сразу под ней укажем приоритет нашего сервера (99 будет достаточно, максимально 255):

    os level = 99

    Далее перемещаемся почти в самый конец конфига, в раздел «Share Definitions». Именно тут нужно указать все папки и принтеры, которыми мы хотим поделиться в локальной сети. А потому, например, после подсекции [printers], вписываем примерно такие строки:

    [share]

    comment = public folder

    browseable = yes

    path = /home/username/share

    guest ok = yes

    read only = no

    create mask = 0777

    Параметров общих ресурсов в Samba на самом деле гораздо больше, потому и на этих я не буду детально останавливаться, все это отлично описано в документации (https://www.samba.org/samba/docs/). Как обычно, сохраняем, выходим. Теперь главное не забыть создать ту папку, которую мы прописали в конфигурационном файле. А потому:

    cd ~

    mkdir share

    chmod 0777 share

    Стоит сказать пару слов касательно поддержки Samba в Windows 7/8/8.1 и, возможно, 10. Их тоже можно сделать серверами Samba, выполнив пару скриптов в PowerShell-е. Но нам нужно активировать только клиент для Samba. Запускаем командную строку от имени администратора и выполняем по очереди:

    sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi

    sc.exe config mrxsmb20 start= auto

    Без этого вы с большой долей вероятности получите ошибку 0x80070035. Также может потребоваться выход всех ПК из Домашней группы Windows. Вообще сеть в Windows 8 это повод для отдельного материала, потому просто загляните сюда https://support.microsoft.com/en-us/kb/2696547. После всех манипуляций, не забудьте перезапустить Samba:

    sudo systemctl restart smbd

    CUPS

    Следующей областью применения для домашнего сервера, которая приходит в голову – это сервер печати. Для этого установим CUPS:

    sudo apt-get install cups

    Ждем, когда все притянется из сети. По умолчанию веб-интерфейс CUPS доступен по адресу http://localhost:631. Но у нас не localhost, потому придется подправить файлик с конфигом. Открываем:

    sudo nano /etc/cups/cupsd.conf

    Поскольку в роутере мы задали привязку MAC-адресов к ip-адресам почти в самом начале, там, где Listen-ы, вписываем

    Listen ip_address_of_server:631

    Есть возможность просто включить прослушку 631-го порта со всех сетевых интерфейсов, но если их несколько, то так можно указать с какого конкретно. Далее в секциях <Location />, <Location /admin>, <Location /admin/conf>, которые хранят права доступа к серверу, административной части и к файлам конфигурации соответственно, пишем, после строки Order:

    Allow @LOCAL

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

    Перезапускаем CUPS:

    sudo systemctl restart cups

    Теперь открываем браузер, переходим по адресу https://server_ip:631, «Администрирование», «добавить принтер». По запросу вводим логин root и пароль суперпользователя (это конечно не хорошо, что от имени рута, но поскольку заглянем мы сюда всего пару раз, это не стоит того времени, которое мы потратим на ковыряние в конфиге  попытках сделать нашего пользователя администратором), и следуем инструкции, не забыв поставить галочку «общий доступ». После этого на всякий случай перезапускаем:

    sudo systemctl restart cups

    Там же, в админке, можно напечатать тестовую страницу. Теперь общей папке на сервере должен появиться только-что подключенный принтер. Можно присоединять его к Windows и работать.

    LAMP

    LAMP, он же Linux Apache MySQL/MariaDB Perl/PHP/Python – это одна из вариаций комплекта программного обеспечения для организации собственного сервера веб (https://ru.wikipedia.org/wiki/LAMP). Состоит из собственно из веб-сервера Apache, системы управления базами данных MySQL или MariaDB, интерпретатора PHP, Perl или Python-а. Понадобится эта связка не всем желающим построить свой первый сервер, а только тем, кто захочет поднять на «своем железе» собственный сайт (или веб-интерфейс для управления системой «умного» дома). Я же предлагаю установить LAMP с последующим «поднятием» веб-панели управления сервером Webmin (что бы хоть чуть-чуть графического интерфейса для поклонников Windows  ). Итак, первым делом тянем из репозитория Apache:

    sudo apt-get install apache2

    И сразу из любого браузера набираем ip-адрес нашего сервера (локальный). Если видим тестовую страницу – все хорошо. Если нет – смотрим лог установки на предмет ошибок. Настраивать конфигурационные файлы будем потом, сейчас же установим следующий компонент – MySQL:

    sudo apt-get install mysql-server mysql-client

    По запросу придумываем и вводим дважды пароль для пользователя root. Когда установка закончится, можем проверить статус сервера:

    sudo systemctl mysql status

    В выводе должна быть зеленая строка «Active» сообщающая нам о том, что демон MySQL работает. Пришла очередь интерпретатора языка PHP:

    sudo apt-get install php5

    По умолчанию, файлы сайтов, которыми управляет Apache, лежат в директории /var/www/html. А потому создадим там тестовый php-файл и выведем с его помощью сервисную информацию об нашей установке php:

    sudo nano /var/www/html/test.php

    <?php

    phpinfo();

    ?>

    И открываем в браузере адрес http://server-ip/test.php. Если перед нами длинная страница с заголовком типа «PHP Version 5.6.9-0+deb8u1» и множеством разнообразной информации, все работает. 

    Для администрирования СУБД MySQL создан прекрасный веб-интерфейс phpMyAdmin. А потому давайте его тоже установим:

    sudo apt-get install phpmyadmin

    По запросу, выбираем сервер apache для автоматической настройки. Далее нам придется настроить phpMyAdmin. Это можно сделать как правкой конфигурационных файлов, так и через псевдографический интерфейс. Соглашаемся на последний вариант, вводим пароль суперпользователя MySQL, который мы использовали во время установки СУБД. Задаем пароль для регистрации phpMyAdmin на сервере баз данных, и когда конфигурирование закончится, переходим по ссылке http://server-ip/phpmyadmin и видим окно входа phpMyAdmin. Войти можно по логину root и соответствующему паролю. Однако, настройка phpMyAdmin и сервера MySQL выходит за рамки этой статьи, так что перейдем к одной небольшой доводке apache.

    В целях обеспечения безопасности и хоть минимальной защиты от DOS-атак, рекомендуется перебросить входящий 80-й порт на 8080-й. В настройках роутера это делается в пункте «Port Mapping», а в apache, в свою очередь – в файле ports.conf:

    sudo nano /etc/apache2/ports.conf

    Переправляем строчку на

    Listen 8080

    И перезапускаем apache:

    sudo systemctl restart apache2

    Если вы занимаетесь веб-разработкой на другом ПК, можно копировать файлы на сервер с помощью Samba. Для этого расшарим /var/www/html, но с авторизацией по логину/паролю. Для этого создадим группу пользователей smbgroup и сразу занесем себя туда:

    sudo groupadd smbgroup

    sudo usermod –a –G smbgroup username

    Теперь нужно завести учетную запись пользователя Samba, которому мы предоставим право оперирования файлами внутри /var/www/html:

    sudo  smbpasswd –a username

    Вводим дважды пароль и устанавливаем владельца и права на /var/www/html:

    sudo chown username:smbgroup -R /var/www/html

    Небольшая ремарка: если вы планируете предоставить доступ к каталогу нескольким пользователям, права необходимо сменить на 0775 и каждого отдельного юзера добавить в группу smbgroup, а также «включить» через smbpasswd. Плюс, каждая директория должна иметь права 0755 (или 0775), а файлы – 0644. Относительно файлом, права могут быть и 0755, но 0644 безопаснее. 

    Добавим ресурс в smb.conf:

    Sudo nano /etc/samba/smb.conf

    [mysite]

            comment = my site

            valid users = username

    #что бы разрешить сразу целую группу, замените на valid users = @smbgroup

            browseable = yes

            path = /var/www/html

            guest ok = no

            read only = no

    И перезапустим Samba:

    sudo systemctl restart smbd

    Теперь в пункте «Сеть» Windows, на нашем сервере доступна папка mysite. Осталось только ввести логин и пароль.

    Webmin

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

    Устанавливаем:

    wget http://prdownloads.sourceforge.net/webadmin/webmin_1.760_all.deb

    Когда скачается, распаковываем загруженный пакет:

    sudo dpkg --install webmin_1.760_all.deb

    Скорее всего, apt-get сообщит нам об конфликте в зависимостях. А потому предоставим ему свободу действий:

    sudo apt-get –f install

    Ключ –f заставит apt-get найти решение конфликта. Вообще, нужно обязательно смотреть, что он предлагает, но в этом случае просто соглашаемся (проверено дважды). Когда все установится, открываем в браузере адрес https://server_ip:10000. По приглашению логинимся, и, если у вас Firefox, создаем исключения для нашего сертификата SSL, и видим перед собой меню Webmin-а и общую информацию по серверу. Для того, чтобы иметь доступ извне, на роутере пробрасываем 10000-й порт. 

    FTP

    В определенных ситуациях может понадобиться загрузить (или наоборот, скачать) файл на наш сервер. Для таких целей нет лучшего решения, чем протокол FTP. В нашем случае мы установим его реализацию в виде сервера vsftpd (very secure FTP daemon):

    sudo apt-get install vsftpd

    Все настройки vsftpd лежат в файле /etc/vsftpd.conf:

    sudo nano /etc/vsftpd.conf

    Итак, в зависимости от того, хотите ли вы, что бы к вашему FTP-серверу можно было подключиться анонимно, мы либо оставляем строку anonymous_enable, либо переправляем на 

    anonymous_enable=yes

    Я оставил запрет. Далее, оставляем значение yes у параметра local_enable, что бы мы могли логиниться от имени локальных пользователей, и снимаем комментарий с опции write_enable, что бы иметь возможность «писать» на сервер, а также с chroot_local_user, что бы пользователи не могли ходить дальше своей домашней директории. Также, для того, что бы последняя опция работала корректно, сразу после нее вставляем строчку:

    allow_writeable_chroot=YES

    Таким образом, пользователь и выше /home/username не выйдет, и писать в нее может. В принципе, параметров конфигурации vsftpd очень много, и никто не запрещает установить chroot-ом, например, /var/www/uploads.

    На данном этапе мы уже можем оперировать файлами по FTP (с помощью FileZilla, например). Но если понадобиться дать доступ стороннему человеку, заведем на всякий случай пользователя guest:

    sudo adduser guest

    После ответов на вопросы создадим группу ftpgroup и внесем в нее guest-а:

    sudo addgroup ftpgroup

    sudo usermod –G ftpgroup guest

    Желающие могут установить дополнительные параметры вроде приветственного сообщения, таймаута сессии, таймаута передачи данных, сообщения о смене директории и т.д. соответственно:

    ftpd_banner="This is yet another FTP server"

    idle_session_timeout=600

    data_connection_timeout=120

    dirmessage_enable=YES

    Перезапустим демон:

    sudo systemctl restart vsftpd

    Можно подключаться. Файлы, которые загрузит guest, будут лежать в /home/guest.

    На этом минимальная настройка ftp окончена, более детальную можете найти в сети. Не забудьте пробросить 21 и 20-й порты на роутере.

    rTorrent

    По идее, поднимая домашний сервер, мы принимаем за должное то, что он будет работать круглосуточно (что, в случае, если в качестве железа выступает Raspberry Pi, вообще беспроблемно). А потому, что бы он не простаивал ночью, мы заставим его качать торренты. Самый функциональный торрент-клиент для Linux – это rTorrent. К тому же, он консольный. И третье – для него написано несколько отличных веб-интерфейсов. Установим его:

    sudo apt-get install rtorrent

    Свою конфигурацию rTorrent ищет по адресу ~/.rtorrent.rc. Создадим и заполним этот файл:

    cd

    nano .rtorrent.rc

    #ограничение скорости закачки

    download_rate = 0

    #... и отдачи

    upload_rate = 0

    #разрить обмен пирами

    peer_exchange = yes

    #минимум ..

    min_peers = 1

    #... и максимум пиров

    max_peers = 1000

    #разрешаем использовать udp

    use_udp_trackers = yes

    #указываем предпочтительным шифрованный протокол

    encryption = allow_incoming,enable_retry,prefer_plaintext

    #отключаем случайный порт

    port_random = no

    #и устанавливаем конкретный диапазон

    port_range = 49528-49528

    #режим DHT

    dht = auto

    #порт DHT

    dht_port = 6881

    #разрешаем обмен пирами

    peer_exchange = yes

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

    scgi_port = 127.0.0.1:5000

    #куда будут сохранятся скачанные файлы

    directory = /home/username/torrents

    #и где будет лежать сессия

    session = /home/username/torrents/.sessions

    #сохраняем сессию

    session_save = yes

    #проверяем хэш после окончания закачки

    check_hash = yes

    #и самая классная опция – устанавливаем планировщик, который проверяет #директорию каждые 5 секунд, и если там лежит торрент – ставит его на закачку

    schedule = watch_directory_1,5,5,"load_start=/home/username/torrents/*.torrent,d.set_directory=/home/username/torrents"

    #чистим удаленные закачки

    schedule = tied_directory,1,30,start_tied=

    schedule = untied_directory,1,30,close_untied=

    #останавливаем закачки, если на диске меньше 100Мб

    schedule = low_diskspace,5,60,close_low_diskspace=100M

    Теперь нужно прицепить к rTorrent веб-интерфейс. Для начала добавим к Apache модуль scgi и утилиту screen, что бы rTorrent висел в фоне:

    sudo apt-get install libapache2-mod-scgi screen

    Открываем apache2.conf и дописываем:

    sudo nano /etc/apache2/apache2.conf

    SCGIMount /RPC2 127.0.0.1:5000

    Перезапускаемся и активируем модуль:

    sudo a2enmod scgi

    sudo systemctl restart apache2

    Отличный веб-интерфейс ruTorrent, плюс, он поддерживает плагины. Его и установим:

    sudo apt-get install subversion

    cd /var/www/

    sudo svn checkout http://rutorrent.googlecode.com/svn/trunk/rutorrent

    sudo chown -R www-data:www-data ./rutorrent/

    Теперь ruTorrent доступен по адресу http://server-ip/rutorrent. Им уже можно пользоваться, только не забудьте пробросить порты, которые мы прописали в конфигурации. По поводу настройки rTorrent отлично написано в ArchWiki https://wiki.archlinux.org/index.php/RTorrent_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29. Что бы мы могли бросать торрент-файлы на автоматическую закачку в /home/username/torrents, поправим доступ к домашней директории в Samba:

    sudo nano /etc/samba/smb.conf

    В разделе Share Definitions, у ресурса Homes ставим read only = no. Перезапускаем самбу. Готово.

    Резервное копирование

    К сожалению, на этапе резервного копирования у меня произошел небольшой казус. Как система для бекапа была выбрана Bacula. Для домашнего использования она несколько избыточна, но тем не менее, настроить ее и забекапить как Windows так и Linux-пк мне удалось. Но вот восстановиться – только на линукс. На windows файлы упорно не возвращаются. А держать Bacula ради одной системы – это как из пушки по воробьям. В результате усилия трех дней пропали зря. Потому я не придумал ничего лучше, чем сделать на сервере папку backup:

    sudo mkdir /var/backup

    sudo chown username:smbgroup /var/backup

    и добавить ее в список ресурсов Samba с доступом по паролю. В таком случае можно воспользоваться любой утилитой для бекапа из-под Windows (хоть стандартной Архивацией), а на linux-системе сделать скрипт, который rsync-ом копирует файлы на сервер, и запускать при помощи cron. В плюсы данного решения также можно занести то, что Bacula не умеет (либо я не дочитал документацию) делать бекап при старте клиента, а только по расписанию. Плюс, бакула хранит резервные копии в томах собственного формата, что для новичков будет немного сбивающим с толку. 

    Outro

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

    Как вариант последующего развития сервера, на него можно перенести с роутера функцию DHCP и NAT. Также установить прокси-сервер и каждый день с помощью cron в его исключения вносить обновленные списки AdBlock, например, что избавит от необходимости ставить его на все устройства, что актуально для Android- и iOS-девайсов. Возможно, почтовый сервер. А если перенести сервер на какой-либо высокопроизводительный аналог Raspberry Pi, типа Cubieboard, то его можно будет подключить к телевизору через HDMI, попутно установив медиацентр, вроде XBMC. 

     

    Андрей Земский

    http://www.kv.by/content/337595-ustanovka-i-nastroika-domashnego-servera-na-debian

     

    Категория: Linux и не только | Просмотров: 817 | Добавил: laptop | Рейтинг: 5.0/2
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк - единственный из зверей, который может пойти в бой на более сильного противника.
    Если же он проиграл бой, то до последнего вздоха смотрит в глаза противника. После этого умирает...

    Праздники сегодня

    Поиск
    Календарь
    Архив записей
    Друзья сайта
  • Официальный блог
  • JEEP - the best! Mercedes - the best! Автомобильный портал города Бреста: технические характеристики с фото, авторынок, автоспорт...
    Наша кнопка
    IT новости с моего лаптопа...

    Внимание!
    Администратор сайта laptop.ucoz.ru не несет ответственности за содержание рекламных объявлений. Все используемые на сайте зарегистрированные товарные знаки принадлежат своим законным владельцам! Используемая со сторонних источников информация публикуется с обязательными ссылками на эти источники.
    Copyright Valeri N.Kravchuk © 2007-2024