Домашний сервер. Часть пятая, торрентокачалка

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

Как я упоминал раньше я мельком попробовал transmission-daemon, не впечатлился (за исключением момента предоставления web-интерфейса своими силами без задейстования стороннних web-сервером), так что ставим rtorrent и вебклиентом rutorrent (очень похож на привычный виндовый utorrent). Делал практически полностью как описано на хабре в посте «Домашний linux сервер своими руками». Но в паре мест поправил под себя и в паре мест прошло не совсем гладко, поэтому позволю себе скопипастить оттуда со своими, так сказать правками.

Установка из репозитариев была отметена сразу, т.к. «родной» пакет был собран без xmlrpc-c который расширяет функционал rutorrent.

Устанавливаем всё что необходимо для компиляции 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

Я привык хранить исходники софта ставящего не из репо в /root/soft, так что сначала
cd /root/soft, а потом уж дальше:

svn co https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/advanced xmlrpc-c
cd xmlrpc-c
./configure --prefix=/usr && make && checkinstall -D

Тут когда вылезает вот такой диалог:



*****************************************
**** Debian package creation selected ***
*****************************************

Этот пакет был создан с использованием данных значений:

0 – Maintainer: [ root@amorph-hs ]
1 – Summary: [ Package created with checkinstall 1.6.1 ]
2 – Name: [ xmlrpc ]
3 – Version: [ c ]
4 – Release: [ 1 ]
5 – License: [ GPL ]
6 – Group: [ checkinstall ]
7 – Architecture: [ i386 ]
8 – Source location: [ xmlrpc-c ]
9 – Alternate source location: [ ]
10 – Requires: [ ]
11 – Provides: [ xmlrpc ]

Введите номер для изменения параметра или нажмите ВВОД для продолжения:


Обратите внимание на пункт под номером 3, у меня там значением стоит буква «c» и пакет не собирался ругаясь на отсутствие цифры в номере версии. Я заменил на c1 и всё стало ок.

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
./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
./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 <
port_range = 32001-32049
dht = auto
dht_port = 32000
peer_exchange = yes
use_udp_trackers = yes
directory = /media/mine/media/downloads/
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 <
( "127.0.0.1" =>
(
"host" => "127.0.0.1",
"port" => 5000,
"check-local" => "disable"
)
)
)
EOF

Плюс добавил в /etc/lighttpd/lighttpd.conf строку для слушания только определенного интерфейса:
server.bind = "192.168.10.101"

/etc/init.d/lighttpd force-reload

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

cd /var/www/
svn http://checkout rutorrent.googlecode.com/svn/trunk/rutorrent
cd /var/www/rutorrent/plugins/
svn checkout http://rutorrent.googlecode.com/svn/trunk/plugins/tracklabels
svn checkout http://rutorrent.googlecode.com/svn/trunk/plugins/cookies
svn checkout http://rutorrent.googlecode.com/svn/trunk/plugins/autotools
svn checkout http://rutorrent.googlecode.com/svn/trunk/plugins/erasedata
chown -R www-data:www-data /var/www/

Зайдя по http://192.168.10.101/rutorrent я увидел вебинтерфейс весьма неплохо приближенный у utorrent, а потому привычный и относительно удобный : )

Основной функционал желаемый мною от домашнего сервера на данном этапе получен так что можно расслабиться и поплевывая в потолок лежа на диване пользоваться инетом, смотреть/слушать медиаконтент и размышлять о пользе высоких технологий вообще и о пингвиньих в частности : )

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

Обеспечим себе сказку на ночь и приятное просыпание утром. Первым делом
sudo aptitude install alsa
т.к. в ubuntu-server её нет по дефолту, что в общем-то более чем логично.

Начнём с засыпания. Ну тут никаких сомнений это mpd, он и музыкой наполнит комнату и аудиокнижки почитает с удовольствием. После инсталла заглянем в его конфиг дабы указать каталог с музыкой и если надо, то параметры вывода звука. После чего рестарт. Ставим клиента на ноут. Я поставил gmpc (Gnome Music Player Client), обновил базу и вуаля, управляем здесь, а звук идет оттуда, волшебство : ))

Теперьча будильник. Будиться я привык под спокойную музыку (инфаркт с утра меня не привлекает), которой иные скорей себе обеспечивают обратный процесс, то бишь засыпания. Ну это как говорится: на вкус и цвет фломастеры разные. Для проигрывания я без затей выбрал mpg123, для запуска по расписанию естественно cron. Итак:
crontab -e в консольке чтобы отредактировать файлик крона и написать туда следующее:
45 07 * * 1-5 /usr/bin/mpg123 --random /media/mine/media/music/alarm/*
50 07 * * 1-5 /usr/bin/killall mpg123

Первая строчка призвана собственно для непосредственной побудки в 7:45 рабочих дней желаемыми мелодиями из специально по такому случаю наполненного каталога. А вторая в 7:50 затыкает ненавистный, несмотря на всю прелесть музыки, будильник, чтобы он не наслаждался своей властью слишком долго.

На этом собственно музыкальнобудильная часть серверного воспитания видимо заканчивается. На очереди торренты. Вообще я навскидку попробовал transmission-daemon, но что-то не вдохновился, так что впереди rtorrent и rutorrent видимо.

Домашний сервер. Часть третья, раздача интернета

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

Первое что сделал это поставил dhcp сервер. Тут всё несложно
sudo aptitude install dhcp3-server
простейшая настройка, которую как всегда подсказал гугл. Адреса раздаются, всё ок.
Дальше переткнул провайдеровскую сетевуху с компа в серверок. Поехали…

Инернет у нас через впн, так что первым делом его. Тут проблем никаких благодаря скрипту выложенному на местном форуме, который является адаптацией корбиновского (скрипт кстати помимо пошаговой простой настройки VPN ещё настраивает получение маршрутов по DHCP, дефолтно у меня они не подхватывались). Дальше сложнее, поскольку я не имею ни малейшего понятия о настройке фаерволла вообще и NAT в частности в линуксе, то единственный вариант – гуглить, а чтобы получить доступ к нему был быстренько установлен и запущен squid
sudo aptitude install squid3
Прокси в бразуере указан и, слава IT богам, есть возможность серфить. Потолкавшись туда/сюда, между ufw, iptables и нежеланием всё это понимать ради разовой настройки я всё-таки настроил хоть и очень базово NAT, конспективно это выглядит так:

0. Исходные данные:
eth0 – интерфейс на домашнюю сеть
eth1 – интерфейс на сеть провайдера
ppp0 – интерфейс в интернет, появляющийся после поднятия VPN

1. /etc/sysctl.conf – расскоментил net.ipv4.ip_forward=1 (разрешаем хождение пакетов между интерфейсами)

2. sudo iptables -t nat -A POSTROUTING -o eth1 -d 10.0.0.0/8 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
sudo iptables -A INPUT -i lo -j ACCEPT

(первая команда НАТ’ит в локалку, вторая в интернет, третья разрешает трафик на loopback-интерфейсе)

3. iptables-save > /etc/iptables.up.rules
(сохранил правила)

4. В /etc/rc.local перед exit 0 добавил:
pon my-inet
iptables-restore < /etc/iptables.up.rules

(поднимаю впн и восстанавливаю правила фаерволла при загрузке сервера)

Reboot. Алилуя, интернет есть. Знаю, что тут ещё донастраивать более чем полно и что я ничего не закрыл снаружи, но инет есть и это главное на текущий момент : )

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

Домашний сервер. Часть вторая, файлохранилище

От файл-сервера-хранилища-помойки мне нужно в общем-то немного – беспроблемный доступ к нажитым непосильным трудом медиа и прочим контентам с ноута (Ubuntu 10.04) и c домашнего компа (Windows 7). И если ноут вполне бы удовольствовался установленным на сервере SSH для данной цели, то с виндой такой фокус естественно не пройдет, а посему бразильский танец (самба) был заявлен в качестве одного из номеров нашего концерта заблаговременно.

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

В итоге мой smb.conf выглядит вот так:


#======================= Global Settings =======================

[global]
log file = /var/log/samba/log.%m
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
obey pam restrictions = yes
map to guest = bad user
encrypt passwords = true
passwd program = /usr/bin/passwd %u
passdb backend = tdbsam
available = no
dns proxy = no
netbios name = amorph-hs
browseable = yes
server string = %h server (Samba, Ubuntu)
unix password sync = yes
workgroup = WORKGROUP
syslog = 0
security = share
usershare allow guests = yes
panic action = /usr/share/samba/panic-action %d
max log size = 1000
pam password change = yes
load printers = no

bind interfaces only = True
interfaces = eth0 192.168.10.104
hosts deny = ALL
hosts allow = 192.168.10.101 192.168.10.102 192.168.10.103 127.0.0.1

#======================= Share Definitions =======================
[media]
guest ok = yes
writable = yes
public = yes
path = /media/mine/media
available = yes

[install]
guest ok = yes
writable = yes
public = yes
path = /media/mine/install
available = yes

Скажу честно samba настраивал впервые, конфиг соответственно честно найден на форум.убунту.ру и слегка подправлен под себя. Хотелось беспарольности и в качестве обеспечения безопасности доступ по IP. Вроде так оно и есть теперь. Хотя возможно это не лучший вариант. Если у кого-нибудь есть идеи/предложения/улучшения с удовольствием выслушаю.

Следующим этапом homeserver билдинга будет его интернетизация и посему «Че-то я очкую, Славик» : )

Домашний сервер. Часть первая, общая идея и установка базовой системы.

Стукнуло мне, как впрочем уже и многим другим судя по тематическим ресурсам, завести собственную домашнюю животинку под названием домашний сервер или home server как некультурно : ) выражаются некоторые несознательные англоговорящие (или претендующие на это) граждане. Ну и хочется, чтобы кушало это чудо скромненько, то бишь счета за электричество не вводили в состояние шока. Задачи первоначально планируются более чем тривиальные, как то: файл-сервер (он же файлопомойка, он же backup сервер), интернет-сервер, торрентокачалка/раздавалка, ну и ещё может несколько менее распространённые функции для домашнего сервера – будильник и засыпальник (ну привык я засыпать под аудиокниги, можете потыкать пальцами и похихикать).

Что мы имеем по железу:
- основа всего интеловская мать с интегрированным процессором Atom 510, INTEL D510MO
- память, две планочки Corsair по 512 Мб снятых с домашнего компа (не проблема, т.к. там ещё осталось : ) )
- винт, террабайтник Hitachi Deskstar 7K1000.B, опять же пожертвованный домашним компом : )
- корпус, из под старого компа, большой ATX’ный. Тут чисто жаба пока задушила покупать mini-ITX’ный при наличии этого, вполне себе работающего.

Проблем в сборке не возникло никаких, за исключением мелочи в виде покупки переходника питания для SATA винта. Смотрится mini-ITX платка в полноразмерном корпусе конечно комично, ну да и ладно : )
домашний сервер изнутри

В качестве ОС конечно же ubuntu server 10.04. Поскольку SATA DVD привода у меня нет, так же как и внешнего, то ставить пришлось с флешки, которую сделать мне любезно помогла программка Universal USB Installer. Про установку особо говорить нечего, из предлагаемых при установке сервисов выбрал только OpenSSH и Samba. После установки соответственно выдернул клавиатуру и вернул монитор домашнему компу, т.к. ни то ни другое уже для руления не требовалось. Обновил систему, установив последние на текущий момент обновления, поставил mc. На этом часть первая марлезонского балета завершается. Континуед, как говорится, ту би…

Ubuntu 10.04 Release Candidate

Вселенское счастие близится братия и сестрия, ибо ниспосылает на нас благодать африканскую Шатлворт и иже с ним прочие Марки. Ну как-то так. А сегодня репетиция под названием Release Candidate. Да-да, именно в день рождения дедушки Ленина выходит «пробник» релиза с долгосрочной поддержкой Ubuntu 10.04, он же Lucid Lynx, он же первый релиз в этом году, он же очередной светоч в царстве (нетёмном надеюсь) любителей трех букв LTS (а вы каких подумали ?), он же очередной житель моего многоубунтострадального ноута. Правда пока не решил какой конкретно вариант Ubuntu примет в свои теплые объятия мой Acer Extensa.

Желающие могут начать уже усиленно мониторить http://cdimage.ubuntu.com/releases/10.04/ на предмет появления вышепредставленного релиз кандидата.
Ну а я, несмотря на имеющееся всё же некоторое нетерпение, тем не менее проявлю силу воли в течении одной недели, загляну туда 29 апреля сего 2010 года и подброшу работки своему торрент-клиенту для того чтобы осчастливить магнитные просторы своего жесткого диска ISO образом релиза Ubuntu 10.04 LTS. Чего и вам желаю.

Новое оформление Ubuntu в 10.04

Как вы наверное уже знаете (я то знаю точно уже :) ) в следующем релизе Ubuntu помимо LTS’ности и очередных модных и не очень нововведений будет ещё и новая тема оформления, то бишь приевшийся многим, в том числе и мне, коричневый Human стиль будет заменён на что-то свежее. А вот что именно свежее нам наконец-то и показали:


Почитать в оригинале можно тут..
Перевод есть на хабре.
Так же там есть новые логотипы и Boot Splash.

Теперь что касается новой темы. Если кратко, то не впечатлили совсем. Всё та же коричневость, разве что фоновый рисунок другой. Кнопка закрытия окна слева – это как-то вообще аля Мак. Имхо люди много лет пользовавшие Ubuntu будут привычно дергать мышку вправо и обламываться, тоже самое будут делать новички после Windows и лишь маководам будет комфортно. Как вы думаете много яблочников пересаживаются на Ubuntu ? :)
Конечно всё это настраиваемо и легко, цвет кнопки, валлпапер, но тем не менее множество людей, и я в том числе кстати, пользуются практически дефолтным оформлением. Так что…

P.S. Я тут кстати на работе поставил альфу 3-ю убунты. Вполне юзабельно кстати, ну по крайней мере по итогам 2-го дня :) Тут оформление пока старое, видимо попозжей пришпилят.

График выхода Ubuntu

Как ни странно многие мои знакомые несмотря на использование Ubuntu (в той или иной мере и тех или иных её разновидностей) не имеют ни малейшего представления о казалось бы очевидных вещах, как то, что 10.04 -- это например 2010 год и 4-й месяц или, что названия версий начинаются с одной буквы (Jaunty Jackalope, Karmic Koala) которые идут по алфавиту. Именно для таких «незнаек» :) появилось видимо нижележащее видео, которое коротенько и рассказывает в наглядной форме о графике выхода Ubuntu:

Ubuntu 9.10 Karmik Koala netbook remix

Не прошло как говорится и трех месяцев со дня релиза, как я всё-таки дошёл до установки какого-либо варианта свежей (если это слово ещё применимо) десктопной версии Ubuntu 9.10. Мой выбор пал на Ubuntu Netbook Remix, несмотря на полное отсутствие модного нынче нетбука, посему исполнять его роль взялся всё тот же имеющийся у меня ноут Acer Extensa 4220. Образ скачан, болванка подверглась насилию прожжением, установка.
Установка доложу я вам прошла без сучка и задоринки, всё было сухо, мягко и комфортно. От момента вставки диска в привод до первой загрузки уже установленной системы прошло 25 минут. По мне так очень даже хорошо.

Вот такой мне открылся вид:
рабочий стол
Дальше обнаружилась неприятность в виде отсутствия wi-fi.
Выбрав в меню System->Hardware Drivers мне открылось унылое окошко:
пропиетарные драйвера

Пришлось воткнуть провод, после чего обновил репозитории и саму систему (предварительно раскоментировав репозитории партнеров canonical в /etc/apt/sources.list):

sudo aptitude update
sudo aptitude dist-upgrade

потребовалось выкачать 114 мб на 135 обновляемых пакетов.

После чего тоже самое окошко заметно повеселело:
проприетарные драйвера

После активации, скачалось и установилось штуки 4 пакетов и я получил работающую беспроводную сеть. Процесс как видно не сложный, но всё-таки немного жаль что не работало «искаропки». Я выбрал проприетарный драйвер, т.к. у меня наличествует может и не всегда оправданное убеждение, что производитель всё-таки лучше знает свою железку и соответственно драйвер напишет лучше.

Следующее, что я сделал это внял сообщению:
неполная языковая поддержка

Скачалось 17 пакетов:
unr-05

И после логаута и повторного входа меню рабочего стола стало предлагаться мне на родном языке:
unr-06

На этом то ли энтузиазм иссяк, то ли время стало бросаться в глаза, то ли небритый дядька по имени Грегори Хаус из свежескаченной серии стал харизматично намекать, что пора мол ознакомиться с его очередными гениальными догадками. Так что я ткнул в файлик House.M.D.s06e09.rus.LostFilm.TV.avi курсором. Мне было любезно сказано, что проиграть в виду отсутствия нужных плагинов не могём, однако поискать искомое осиливаем, я согласился, ещё 18 пакетов были благополучно извлечены с кладовок интернетных репозиториев. Опосля чего вылезшее сообщение оповестило меня, что: Выбранные пакеты были успешно установлены, но они обеспечивают работу не всех требуемых плагинов. Тыканье курсором всё в тот же файл не опровергло эту «радостную» новость. Я утвердился в своей давней нелюбви к Totem’у и не мудрствуя лукаво написал заветное:

sudo aptitude install smplayer

Последовал downloading and installing ещё 26 пакетов. Самое интересное, что после этого Totem вполне себе запустил проигрывание видео, но поскольку после установки искренне любимого мной smplayer’a мне его внезапная покладистость была уже по барабану и шанс свой он упустил, я ассоциировал .avi с smplayer и улёгшись на диван углубился в очередную медицинскую загадку.

to be continued…

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

Ubuntu server 9.10 (karmik koala) и vmware server

Понадобилось мне тут пару виртуальных машин запустить, как раз и машинка для этого подвернулась и убунту свежая с пылу с жару лежит на винте. Сказано – сделано. Установка прошла тривиально, скорость загрузки приятно удивила. Оно конечно понятно, что server это не desktop и нету всяких иксов и прочих наворотов, но тем не менее даже с учётом этих факторов грузится не мгновенно, но очень близко к этому.
Свежий дистр (2.0.2) vmware server был скачан с оффициального сайта и установлен. Однако вот тут не обошлось без сюрприза, о котором и хочу рассказать. На этапе компиляции модулей вылезла ошибка и я уже было загрустил, что не видать мне пока работающих новинок в виду их непритертости к друг другу, но как не раз уже бывало выручил всесведущий гугл в виде вот такой ссылки: http://radu.cotescu.com/2009/10/30/how-to-install-vmware-server-2-0-x-on-ubuntu-9-10-karmic-koala/

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

Итоговая последовательность действий в моём случае выглядела так:
1. Скачивание дистра vmware server
2. Скачивание в этот же каталог скрипта
3. chmod +x vmware-server-2.0.x-kernel-2.6.31-14-install.sh
4. sudo ./vmware-server-2.0.x-kernel-2.6.31-14-install.sh
5. Ответы на стандартные вопросы установщика vmware server.

Вот собственно и всё, vmware работает, гостевая ОС’ка крутится, на днях добавлю ещё одну.

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