Купили Новый Компьютер? Старый Тоже Пригодится

Так получилось, что я люблю программирование и компьютеры.

Поэтому у каждого члена моей семьи был по одному ПК.

У меня настольный компьютер (Ubuntu), у моей мамы (Windows XP), а у жены ноутбук (Windows Vista).

Была задача — организовать интернет для всего этого оборудования.

Провайдер мне его дает по PPTP. Недолго думая (и ленясь), я купил обычные сетевые карты Ethernet, вставил их в настольные компьютеры и соединил все компьютеры проводами (честно говоря, я тоже купил для своего компьютера модуль WiFi, но тупо не смог настроить это для убунту).

Шло время, мои потребности росли (особенно потребность в мобильности рабочего места), и я стал обладателем ноутбука MacBook Pro. Что делать со старым компьютером? Выбрасывать? Жалко было.

Ведь я собирал его почти вручную два года.

И тогда я решил - буду сервером! Я очистил свой компьютер и переустановил Ubuntu Linux.



Цель

Я хотел, чтобы мой старый компьютер был веб-(HTTP) и файловым (FTP, SSH, SMB) сервером.

В фоновом режиме скачивал всякие большие файлы (в том числе и из P2P-сетей).

Это был звуковой сервер (для подключения к нему колонок и передачи звука по WiFi).



Интернет

Сначала я решил наконец разобраться с Интернетом.

После пары дней на форумах было решено купить WiFi роутер D-Link DIR-300. Поскольку мне нужно было скачивать из P2P-сетей, я подписался на услугу внешнего статического IP у своего интернет-провайдера.

А поскольку этим IP может владеть компьютер, подключенный напрямую по PPTP, я решил, что ПК будет подключаться к Интернету (есть, конечно, такие вещи, как проброс портов, но мне просто не хотелось заморачиваться).

Настройка роутера оказалась не такой простой, как я думал.

В комплект поставки входил диск, который официально работал в Windows XP и Windows Vista. Я подключил роутер к ноутбуку жены и возился около часа, после чего понял, что Vista там точно не поддерживается.

В XP я настроил быстро, только настройка заключалась в выборе уникального имени WiFi сети и включении скрытого режима.

Далее нам предстояло придумать, как дать интернет на роутер.

Я вспомнил про DHCP(+DNS) и NAT. DNS просто устанавливался командой:

sudo aptitude установить привязку 9
DHCP-сервер был установлен с помощью следующей команды:
sudo aptitude установить dhcp3-сервер
Настроить его было несложно — я добавил в /etc/dhcp3/dhcpd.conf следующие строки:
подсеть 192.168.3.0 маска сети 255.255.255.0 { диапазон 192.168.3.100 192.168.3.150; опция роутеров 192.168.3.1; вариант широковещательного адреса 192.168.3.255; время аренды по умолчанию 600; максимальное время аренды 7200; }
Мой роутер находится на интерфейсе eth0, поэтому DHCP-сервер запускается командой dhcpd3 eth0, тогда я понял, что нужно все команды, которые будут выполняться часто, вынести в отдельные скрипты и в итоге у меня получилась следующая файловая структура: /бегать /run/net - здесь работа с сетью /run/приложение — вот запуск дополнительных услуг /запустить/связать - вот привязка файловой системы (расскажу позже) Таким образом я получил файлы: /run/net/dhcp.sh — запуск DHCP-сервера /run/net/vpn-on.sh — подключение по PPTP к Интернету /run/net/vpn-off.sh - отключиться от интернета /run/net/vpn-ensure.sh — Интернет-соединение в случае обрыва записывалось в cron (система периодического выполнения команд) следующим образом:
судо кронтаб -е
Открывается редактор, в котором добавляем строку:
* * * * * /run/net/vpn-ensure.sh
Остаётся только реализовать маршрутизацию.

После недолгих поисков в сети я написал еще один скрипт ( /run/net/routes.sh ) следующего содержания:

#!/бин/ш iptables -A FORWARD -i ppp0 -o eth0 -s 192.168.3.0/24 -m state --state NEW -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A POSTROUTING -t nat -j МАСКАРАД
И не забудьте выполнить в консоли:
судо -с эхо 1 > /proc/sys/net/ipv4/ip_forward
Ура! Интернет есть!

Серверы

Веб- и файловые серверы были установлены одной командой:
sudo aptitude установить apache2 samba openssh-server proftpd
Еще я установил для них графический интерфейс (поскольку я далеко не профессионал в настройке этих серверов):
sudo aptitude установить gproftpd gsambad
И VNC-сервер, чтобы удаленный рабочий стол сервера был виден с ноутбуков:
sudo aptitude установить x11vnc
Помимо серверов нужно было продумать файловую структуру.

Я придумал это: /делиться – корневой общий ресурс FTP/SMB /поделиться/скачать — все менеджеры закачек должны размещать сюда файлы /поделиться/музыка /Поделиться видео /поделиться/торенты — отсюда торрент-клиенты должны подобрать торрент-файлы и начать скачивание /доля/секунда - мой второй жесткий диск /доля/третий - мой третий жесткий диск /поделиться/www — корень http-сервера.

Монтируется здесь с помощью скрипта /run/bind/www.sh (mount --bind /var/www/ /share/www/)

Менеджеры загрузок

Это оказалось сложнее.

Мне нужны были менеджеры загрузок с веб-интерфейсом, но их было не так много.

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

Устанавливается командой:

sudo aptitude установить поток
Потом после запуска настроил через графический интерфейс.

млосел мощный, но странный мультипротокольный проект. Единственное, что мне в нем не понравилось, это очень запутанный интерфейс.



Что случилось

Отличный сервер для личных нужд, доступный снаружи (иногда музыку оттуда беру с работы :-) ).

Удобная загрузка с торрент-сетей (просто кладу торрент-файл в папку на сервере и он скачивается автоматически).

TimeMachine (система резервного копирования данных, входящая в состав Mac OS X Leopard) работает через Wi-Fi и выполняет резервное копирование данных на сервер (на него выделено 80 ГБ).

Но это было адски сложно (даже я немного разочаровался в Apple) - я это сделал Эта статья .



Нерешенные проблемы

Остаются нерешёнными проблемы:
  • Аудиосервер (и аудиоклиент для MacBook)
  • Менеджер загрузок из сетей ed2k с веб-интерфейсом
  • Менеджер загрузок из сетей dc++ с веб-интерфейсом
  • Менеджер загрузок HTTP/FTP с веб-интерфейсом


Что дальше

Сейчас занят поиском менеджера закачек для HTTP/FTP, но впервые набросал веб-интерфейс для wget (добавление загрузок, индикатор выполнения, если интересно, могу выложить в sourceforge - будем работать вместе ).

P.S. У меня дома это оказывается «дружба народов» :-) Представлены Windows, Linux и Mac OS =) Теги: #домашний сервер #Старое оборудование #Настольные компьютеры

Вместе с данным постом часто просматривают: