Linux debian как сервер

Настройка домашнего сервера на базе Debian

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

Речь пойдет о:
Старом компьютере на базе VIA Ezra с 256 мегабайт оперативной памяти, работающем на базе Debian Etch, выполняющем функции музыкального плеера, торрент-клиента, web+ftp+nfs сервера.

Дополнительное оборудование: 2 ноутбука (Dell, Asus) на базе Ubuntu, Fedora и Wi-Fi рутер/DSL-модем D-link DSL-2640u.

Один мой друг на Новый Год подарил мне сие творение инженеров прошлого века:

Было решено, что тазик простаивать зря не должен. Debian потому, что дистрибутив стабильный и простой в настройке/использовании.
Процесс установки ОС описывать не буду — задача понятная, да и в интернете достаточно помощи по этому делу. Сразу перейду к настройке.

Настройка

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

Необходимо на рутере пробросить порты для доступа к серверу извне.
Я сделал DHCP-резервацию по MAC-адресам, и мой сервер всегда будет иметь локальный адрес 192.168.1.2

Скриншот из админки рутера:

Вы видите, что я открыл порты для web, ftp, shoutcast и ssh.
Тут важно знать, что внешние адреса для некоторых (и моей в часности) моделей рутеров не будут работать из локальной сети.
Т.е. если я наберу на ноутбуке мой_внешний_айпи_адрес:21 — то я ничего не увижу.
Теперь сервер виден из сети.

Подключимся по ssh и проведем настройку.
По умолчанию Debian использует Gnome как оконный менеджер, но он кушает оперативную память, поэтому мы его отключим.
Делается это очень легко:

Вариант от gribozavr
apt-get install sysv-rc-conf
sysv-rc-conf

UPD: либо так, предложил Greignar
update-rc.d -f gdm remove

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

Так получилось, что мой домашний провайдер не предоставляет мне статического айпи-адреса, поэтому пришлось искать решение.
Я остановился на dyndns.com. Сервис, который бесплатно предоставляет домен третьего уровня + возможность серверным софтом обновлять айпи для данного домена, при изменении оного.
Регистрируемся, добавляем новый аккаунт, качаем inadyn, ставим в автозагрузку с помощью update-rc.d

update-rc.d inadyn defaults

Теперь мы имеем домен, который всегда будет привязан к нашему серверу!

Настройка screen + rtorrent

Решение пало на эту связку, т.к. rtorrent — не демонической природы, а нужно, чтоб он работал в фоне.
Если вы еще не знаете, что такое screen, зайдите на сайт GNU Project.
Установим нужные нам пакеты:

apt-get install screen rtorrent

Я создал скрипт автозагрузки:

#!/bin/sh
screen -d -m rtorrent
echo «Started. »

И добавил его, опять же, через update-rc.d
Поясню: при загрузке сервера в фоновом режиме запускается screen с запущенным внутри rtorrent.

Немного подправим конфиг:

directory = /data/downloads/
schedule = watch_directory,5,5,load_start=/data/torrents/*.torrent

Теперь наш торрент-клиент складывает закачки в папку /data/downloads/, и каждые 5 секунд проверяет папку /data/torrents/ на наличие новых torrent-файлов.

Настройка apache, ftp, nfs

Для работы с веб-клиентами mpd нужен веб-сервер. Я выбираю apache. Для работы с веб-клиентами плеера нам еще потребуется php.
Также, nfs для монтирования сетевых дисков, и ftp для просто доступа к файлам.
Тут все очень просто:

apt-get install apache2 libapache2-mod-php5 php5-cli php5-common php5-cgi proftpd nfs-kernel-server

Отлично, все пакеты установлены, демоны запускаются автоматически.
В конфиге proftpd нужно добавить одну строчку для того, чтобы пользователи локальной системы могли логиниться как ftp-пользователи:

При логине на ftp-сервер пользователь попадает в домашнюю директорию.

Для nfs-сервера я расшарил одну папку /data:

Это говорит о том, что пользователи локальной сети имеют право на чтение и запись папки /data на сервере.
Перезагружаем демоны:

/etc/init.d/proftpd restart
/etc/init.d/nfs-kernel-server restart

Все, NetFileSystem и FTP готовы к работе.

Настройка клиентских машин

Для удобной работы с nfs я сделал запись в fstab:

sudo nano /etc/fstab

192.168.1.2:/data /server/data nfs rw,hard,intr 0 0

После достаточно написать

sudo mkdir /server/data
sudo mount /server/data

И мы увидим папку из файловой системы сервера!

Настройка mpd + relaxxplayer + icecast

Mpd — отличный плеер-демон, для которого есть множество gui. Как и Qt, GTK+, так и web-based.
Остановимся на веб-интерфейсе, т.к. мне это показалось наилучшим вариантом.

apt-get install mpd icecast2

Для установки клиента для плеера нужно скачать исходники с домашнего сайта и распаковать их в /var/www
Apache у нас уже запущен, поэтому набрав адрес 192.168.1.2 мы увидим собственно плеер.
Немного из настройки mpd:

Я указываю плееру, что мои музыкальные файлы лежат в директории /mnt сервера.

А теперь самое интересное!
Я решил пойти путем монтирования на сервере nfs-директории лептопа, в которой содержится музыка.
Установив на ноутбуке nfs-kernel-server и расшарив папку /home/romantik/music я подмонтировал ее на сервере в директорию /mnt/music

Теперь, обновив базу даных mpd

мы увидим в ней музыку с лептопа 🙂
При воспроизведении байты данных риал-тайм несутся по локальной сети.
Удобнее и не придумаешь, теперь я практически независим от проводов 🙂

И немного об icecast.

В настройках mpd раскомментировав блок shoutcast мы получаем вещание в сеть стрим-потока прямо из плеера.
Доступно оно по адресу 192.168.1.2:8000

Заключение

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

Источник

Настройка сервера на Debian 9

Установка debian на живой сервер или на виртуалку Virtual Box, настройка сети

Начнём с VirtualBox. Установка виртуальной машины стандартная, о ней уже рассказывалось в статье Установка Debian 9.3 — пошаговая инструкция

При установке имеется небольшая разница относительно того, какая операционная система установлена — Windows или unix системы.

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

Указываем имя Debian сервер, virtualbox сам выбирает операционную систему Linux Debian (он по названию определит).

Заходим в настройки и загружаем образ предварительно скачанные с сайта — www.debian.org/distrb/

Скачивать нужно дистрибутив net Install, что означает установка по сети, дистрибутив весит около 250 МБ, он достаточно быстро скачивается. Пакеты и программное обеспечение будет доустанавливаться по сети. Т.е. если у вас нет интернета, дистрибутив net Install вам не подойдёт, и нужно скачивать полную версию.

Заходим в настройке, выбираем накопители, и в контроллере IDE 10 монтируется образ ISO. Далее стартуем сервер. В открывшемся меня нажимаем Install. Подробная установка Debian рассмотрена здесь. После завершения установки перезагружаем сервер.

Установка SSH

SSH (от англ. Secure Shell «безопасная оболочка») представляет собой сетевой протокол для соединения по сети Internet, который позволяет выполнять удалённое управление системой. Имеется бесплатная модификация SSH, которая именуется OpenSSH и включена в пакет ssh Debian.

Подключиться к серверу через ssh (с компьютера под управлением unix подобной операционной системы)

Знакомство с командной строкой и протоколом ssh, sftp, настройка доступов по ключам (вместо паролей), root доступ

Базовые утилиты: su ls pwd cp scp locate updatedb which

Команда cd означает change directory (сменить директорию)

su – Superuser (суперпользователь).

Если мы находимся под логином текущего пользователя, то прописав su + имя пользователя, можно зайти в систему с правами root. Root имеет доступ ко всем папкам, может запускать и удалять всё что угодно, поэтому от имени суперпользователя необходимо работать внимательно и осторожно.

ls – показывает содержимое папки.

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

Сочетание клавиш

Ctrl+c отменяет запущенный процесс

Настройка сети

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

Сейчас IP адрес у сервера будет такой же, как и у компьютера.

Вводим ip a — посмотреть все интерфейсы и их IP адреса.

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

Читайте также:  Admin setting windows 10

Потребуется отредактировать следующий файл:

Пример config для ручной настройки IP:

iface lo inet loopback

# The primary network interface

iface eth0 inet static

# dns-* options are implemented by the resolvconf package, if installed

Публичные ключи

Для начала нам нужно сгенерировать ключ уже на нашем же сервере с помощью утилиты ssh-keygen. Ключи нужны чтобы каждый раз не вводить пароль.

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

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

Для создания пары (pair) ключей, пропишите команду в терминале вашего компьютера:

Ключ будет сгенерирован в текущем каталоге пользователя в папке …/.ssh/id_rsa.

Этот файл необходимо держать у себя на компьютере.

Чтобы зайти на аккаунт под публичным ключом нужно создать файл .ssh/authorized_keys

Необходимо скопировать публичную часть ключа в этот файл. После создания пары SSH-ключей, пропишите команду в терминале на локальной машине для вывода публичного ключа:

Закрываем файл сочетанием клавиш ctrl+x. Сохраняем – y.

Теперь попробуем зайти на сервер:

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

Псевдонимы в Unix ssh/config

Это относится опять же к операционным системам на базе unix. К Windows это никакого отношения не имеет. Но если вы будете с одного Debian сервера заходить на другой Debian сервер, тогда это вам пригодится или если ваш домашний компьютер будет Debian и вы будете администрировать удаленный компьютер Debian, то вам это в принципе поможет.

В папке ssh создается файл config, в нем прописывается хост, придумывается псевдоним. Теперь можно сразу заходить с помощью псевдонима под логином и паролем.

Знакомство с менеджером пакетов apt и принципом установки приложений

Что такое .deb пакеты в Debian?

Это файлы, подобные MSI файлам в Windows. То есть это набор файлов и мета-данных для установки того или иного определённого приложения. Там хранится скомпилированный бинарник уже сразу под вашу операционную систему. Например, если установлена 64 битная Debian версия 9.3, то значит в этом в пакете будет именно этот бинарный файл для установленной системы.

Вся установка deb пакетов означает скопировать бинарник в одну папку, config в другую папку, ну и попросить какие-то зависимости, без которых эта программа не запустится.

В Debian по умолчанию установлена системная программа dpkg, которая при установке системы ставит приложения. Существует принципиальное отличие dpkg и apt.

Утилита dpkg просто устанавливает бинарники, и предупреждает о зависимостях, которые нужны для этой программы, при этом она эти зависимости устанавливать не будет.

Утилита apt автоматически всё продумывает, необходимые зависимости она установит.

apt-get – это менеджер пакетов, который устанавливает deb пакеты и автоматически устанавливает все нужные зависимости. То есть если нужен, к примеру, PHP с поддержкой xml или ещё с чем-то, то apt-get автоматически устанавливает целый комплект нужных программ (это своего рода как AppStore для для iOS).

Установка утилит mc

Попробуем установить полезную утилиту mc, она часто используется для работы сервера. Она представляет собой популярный 2х-панельный файловый менеджер Midnight Commander.

Установка mc на сервер:

Добавляем пользователя в группу root

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

Установка и настройка окружения nginx, php-fpm, mysql;

Устанавливаем nginx php5 и mysql-server:

sudo apt-get install php5-fpm php5-mysql

Настройка nginx

sudo cp /etc/nginx/sites-available/default

Источник

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

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

Зачастую, подобные домашние сервера собираются из устаревшего железа, которое либо стало не нужным после апгрейда основного ПК, либо уже давно просто пылится на полке. Да и в такой области применения не нужны разнообразные серверные навороты вроде контроллера домена, 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 секунды, потому просто ждем. И видим приветствие. Входим, введя свой логин и, по запросу, пароль. Далее делать скриншоты бессмысленно, потому я ограничусь вводом и выводом терминала.

Читайте также:  Как обновить блокнот windows

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

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

apt-get install sudo

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

adduser username sudo

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

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

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

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

sudo apt-get install ssh

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

sudo nano /etc/ssh/sshd_config

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

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

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

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

По умолчанию, аутентификация по паре логин/пароль отключена, и это правильное решение. Гораздо безопаснее входить по RSA-ключу. Для этого сначала на клиентских машинах нужно сгенерировать по паре ключей (приватный и публичный), а потом скопировать публичный на сервер. Для Windows существует просто отличный клиент для работы с SSH под названием PuTTY. Скачиваем zip-файл (http://www.chiark.greenend.org.uk/

sgtatham/putty/download.html) со всеми необходимыми утилитами сразу, распаковываем и запускаем PuTTYgen. Жмем «Generate», и хаотично «мотыляем» мышкой по окну, пока процесс генерации не закончится. После, жмем «Save public key» и «Save private key», и сохраняем куда-нибудь.

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

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

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

sudo systemctl restart ssh

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

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

Переходим в нее, потом на нашем ПК открываем блокнотом файл с публичным ключом и копируем собственно сам ключ (строки между «comment…» и «—-end—-»), создаем файл 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

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

sudo systemctl restart ssh

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

Самое первое, что нам нужно – это возможность расшаривания файлов в нашей локальной сети. Для этой цели идеально подходит протокол 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):

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

comment = public folder

create mask = 0777

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

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:

sudo apt-get install cups

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

sudo nano /etc/cups/cupsd.conf

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

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

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

sudo systemctl restart cups

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

sudo systemctl restart cups

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

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

И открываем в браузере адрес 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

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

И перезапускаем 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

comment = my site

valid users = username

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

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

sudo systemctl restart smbd

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

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

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

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. В нашем случае мы установим его реализацию в виде сервера vsftpd (very secure FTP daemon):

sudo apt-get install vsftpd

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

sudo nano /etc/vsftpd.conf

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

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

Таким образом, пользователь и выше /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»

sudo systemctl restart vsftpd

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

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

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

sudo apt-get install rtorrent

Свою конфигурацию rTorrent ищет по адресу

/.rtorrent.rc. Создадим и заполним этот файл:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Теперь нужно прицепить к 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

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 не умеет (либо я не дочитал документацию) делать бекап при старте клиента, а только по расписанию. Плюс, бакула хранит резервные копии в томах собственного формата, что для новичков будет немного сбивающим с толку.

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

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

Источник

Оцените статью