Настройка домашнего сервера на базе 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:
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
мы увидим в ней музыку с лептопа 🙂
При воспроизведении байты данных риал-тайм несутся по локальной сети.
Удобнее и не придумаешь, теперь я практически независим от проводов 🙂
В настройках mpd раскомментировав блок shoutcast мы получаем вещание в сеть стрим-потока прямо из плеера.
Доступно оно по адресу 192.168.1.2:8000
Заключение
Для меня это было серьезным шагом в мир полнофункциональной консоли. Скажу вам, испытываю только удобство от проделанных процедур 🙂
А что посоветуете реализовать на сервере вы?
Домашний сервер Mac Mini на Debian за тридцать минут для чайников
Добрый день, хабраюзер!
Читал много статей по организации домашнего сервера, решил добавить немного пользы.
Недавно разработал для себя универсальный алгоритм по созданию сидбокса с самбой и фтп для домашней сети и решил поделиться с окружающими. Организация такого сервера занимает максимум час, и в принципе подходит под любое железо.
Единственным условием для успешной реализации этого решения: проводной интернет до сервера.
Итак, начнём с того, что мне в руки попал Mac mini PowerPC G4, с гигабайтом памяти и сотней гигабайт на жёстком диске. Хорошая машинка для такого дела — работает бесшумно, электричества жрёт мало, места практически не занимает, имеет встроенный привод для DVD-дисков.
Хотя такая реализация подойдёт практически для любого другого железа.
Для начала нужно скачать с официального репозитория Debian net installer для вашей платформы и записать его на диск. В моём случае это powerpc.
После это выполняем стандартную установку операционки с некоторыми уточнениями: нужно установить только базовую систему и SSH-сервер. Остальное будем ставить из консоли. Ещё одно уточнение по разметке диска: обычно я всегда выбираю «Использовать весь диск» и не заморачиваюсь на тему LVM и ручного разбиения, потому что все закачки торрентов будут храниться на самом большом разделе home, а остальное умещается в разделы по умолчанию.
Итак, система установлена, сеть, как правило, цепляется по DHCP (делаю на роутере резервацию айпи для мак-адреса сетевухи машины).
Ну и собственно сама настройка:
Для управления сервером через web-интерфейс устанавливаю Webmin.
Добавим нужные библиотеки, если их нету в системе:
apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions
Добавляем репозиторий Webmin в apt нашего сервера:
deb http://download.webmin.com/download/repository sarge contrib deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib
Для установки Webmin с помощью apt нужно добавить SSL-ключ для доступа в репозиторий Webmin:
cd /root wget http://www.webmin.com/jcameron-key.asc apt-key add jcameron-key.asc
Устанавливаем Webmin, который будет доступен по ссылке https:// айпи_вашего_сервера:10000 (ругнётся на сертификат, игнорируем ошибку)
apt-get update apt-get install webmin
Установка торрент-клиента
Далее необходимо настроить наш торрент-клиент. Самым простым и оптимальным решением является Transmission, т.к. настраивается очень просто и быстро и имеет клиент для Windows. Его и установим:
apt-get update apt-get install transmission-daemon transmission
Для настройки Transmission использует файл конфигурации settings.jsonn, расположенный в /var/lib/transmission-daemon/info. Перед его редактированием нужно остановить Transmission, иначе изменения, внесённые в файл при работающей программе будут заменены на дефаултные.
/etc/init.d/transmission-daemon stop
Обычно я меняю только следующие параметры:
download-dir: /home/ваша_папка_для_скаченных_торрентов rpc-password: ваш_пароль_пользователя rpc-username: ваше_имя_пользователя rpc-whitelist-enabled: устанавливаю false
После этого нужно сохранить файл и запустить Transmission:
/etc/init.d/transmission-daemon start
Не забудьте создать в директории /home/ ту папку, которую вы указали в файле настроек Transmission и дать ей соответствующие права:
mkdir /home/ваша_папка_для_скаченных_торрентов chmod 777 /home/ваша_папка_для_скаченных_торрентов
Теперь можно проверить, как работает Transmission и уже ставить что нибудь на закачку. Для этого достаточно ввести в браузере адрес:
http:// адрес_вашего_сервера:9091
Для Windows существует Transmisson-remote-gui, его можно легко найти в гугле. После его установки нужно ввести адрес вашего сервера, имя пользователя и пароль, который вы указали в settings.json и выставить ассоциации торрент-файлов с новым клиентом. Все закачки будут автоматически добавляться в сидбокс.
Установка Samba
Для доступа к этим файлам из сети Windows потребуется установить и сконфигурировать Samba. Я не заморачиваюсь с настройками, так как сервер в домашней сети и публикации его во внешний мир нет. Поэтому алгоритм установки будет таким:
Устанавливаем Samba сервер с возможностью иметь доступ к файлам на других компьютерах:
aptitude install samba smbclient smbfs
Создаю резервную копию файла настроек Samba, как говорится, на всякий пожарный:
cp /etc/samba/smb.conf /etc/samba/smb.conf.backup
Теперь редактируем файл настроек и добавляем в него следующие параметры:
[global] workgroup = ИМЯ_ВАШЕЙ_РАБОЧЕЙ_ГРУППЫ_ИЛИ_ДОМЕНА netbios name = ИМЯ_СЕРВЕРА server string = ЛЮБОЕ_ОПИСАНИЕ_СЕРВЕРА security = share browseable = yes [share] path = /home/ваша_папка_для_скаченных_торрентов comment = mediafiles readonly = No guest ok = Yes
Сохраняем файл и перезапускаем Samba:
Теперь в эту папку можно зайти, указав в адресной строке проводника Windwos \\айпи_вашего_сервера
Настройка ФТП
Если есть желание настроить внешний доступ по ФТП, то делается это так же просто, как и всё предыдущее.
Заходим на Webmin: https:// айпи_вашего_сервера:10000 (ругнётся на сертификат, игнорируем ошибку).
Переходим в раздел Webmin -> Webmin settings, устанавливаем русский язык (в формате UTF-8). Обновляем страницу.
Переходим в раздел Система -> Менеджер ПО, ставим галочку в «Пакеты из APT», указываем в строке поиска proftpd, жмём Искать в APT. После этого Webmin установит нам фтп-сервер ProFTPD. Обновляем страницу и идём в Службы -> Сервер ProFTP -> Файлы и каталоги, и указываем Ограничить пользователя в каталогах -> Домашний каталог. Сохраняем изменения.
Идём в Система -> Пользователи и группы. Выбираем того пользователя, которого вы указали как нового, при установке Debian Linux на ваш сервер, указываем ему домашний каталог как /home/ваша_папка_для_скаченных_торрентов. Сохраняем настройки.
Для верности перезагружаем наш свежеиспечённый сервер:
Не путать с halt — это команда выключения сервера!
Собственно на этом настройка домашнего сервера завершена.
Приятного пользования!