Домашняя сеть

Хотел написать про домашний сервер, но подумал и решил, что сервер без сети не интересен, поэтому будет «Домашняя сеть». В моём распоряжении 2 компа с выходом в инет. После появления ноутбука комп стал выполнять чуток другую роль:

  1. Шлюз в инет
  2. Файлопомойка
  3. Резервное копирование
  4. Генератор шума в комнате
  5. Загрузчик файлов из инета

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

Параллельно с разбором сети буду делиться первыми впечатлениями о системе ALT Linux 5.0 beta, которая установлена на серваке.

Итак, моя домашняя сеть представляет из себя два компьютера:

  • Сервер: 192.168.0.1 + внешний IP с выходом и инет
  • Ноутбук: 192.168.0.2

Шлюз в инет

Переводя сервер на ALT я надеялся, что смогу всё настроить через его графический настройщик (в том числе и файрвол)

Настройка ALT LinuxНастройка файрвола

Но уже с самого начала использования альта пришлось превращать его в слаку, устанавливая скрипт настройки файрвола (/etc/init.d/rc.nat) из слаки:

#!/bin/bash
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -t nat -F POSTROUTING
iptables -t nat -F PREROUTING
iptables -A INPUT -j ACCEPT
iptables -A OUTPUT -j ACCEPT
iptables -A FORWARD -j ACCEPT
# EXTERNAL -> external network interface
# INTERNAL -> internal network interface
EXTERNAL=eth0
INTERNAL=eth1
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "Setting up NAT (Network Address Translation)..."
# by default, nothing is forwarded.
iptables -P FORWARD DROP
# Allow all connections OUT and only related ones IN
iptables -A FORWARD -i $EXTERNAL -o $INTERNAL -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $INTERNAL -o $EXTERNAL -j ACCEPT
# enable MASQUERADING
iptables -t nat -A POSTROUTING -o $EXTERNAL -j MASQUERADE

И не забыл прописать rc.nat в конец /etc/init.d/local

Файлопомойка

Через SSH надоело перебрасываться файлами с сервером. Эти постоянные вводы команд и паролей. Решил воспользоваться классическим решением — NFS (ну просто раньше как-то не приходилось). По идее здесь всё просто. На сервере в /etc/exports что-то типа этого:

/home/pavel  192.168.0.2(rw,async)

На клиенте:

# mount -t nfs 192.168.0.1:/home/pavel /mnt/homeserver/pavel

или тоже самое прямо в /etc/fstab. ALT здесь приподнёс интересный сюрприз. Ну не получается на клиенте примонтировать NFS! Решение нашлось на форуме ALT Linux, а именно в совете правки файла /etc/sysconfig/portmap:

# Parameters for portmap daemon.
# See portmap(8) for more details.
# Specifies additional parameters for portmap.
PORTMAP_ARGS="-l"
убираем «-l» и получаем:
# Parameters for portmap daemon.
# See portmap(8) for more details.
# Specifies additional parameters for portmap.
PORTMAP_ARGS=""

Перезапускаю на сервере portmap, nfs, nfslock и радуюсь нормальному доступу к файлам.

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

На сервере под это дело был выделен отдельный раздел размером 80Гб, чтобы при желании полностью умещать содержимое жёсткого диска ноутбука. На ноуте к этому разделу можно получить доступ через NFS после его монтирования в /mnt/homeserver/backup/

А вот скрипт, который будет выполнять копирование информации на сервер:

#!/bin/bash
if mount /mnt/homeserver/backup/
then
rsync -rctlpEXog --delete /home /mnt/homeserver/backup/
rsync -rctlpEXog --delete --exclude='/var/cache*' /var /mnt/homeserver/backup/
rsync -rctlpEXog --delete /etc /mnt/homeserver/backup/
rsync -rctlpEXog --delete /root /mnt/homeserver/backup/
umount /mnt/homeserver/backup/
else
exit 1
fi
exit 0

Этот скрипт у меня лежит в домашнем каталоге на /home/pavel/makebackup.sh. Осталось прописать его в anacron, добавив такую строчку в конец конфига /etc/anacrontab:

2  60  backup  nice /home/pavel/makebackup.sh

Скрипт будет выполняться автоматически через каждые 2 дня спустя 60 минут после включения ноутбука.

Генератор шума в комнате

Кто-то использует Music Player Daemon и Sonata, как составляющую красивых скриншотов с модными GTK’шными темами от дизайнеров DeviantArt (мне, честно говоря, тоже нравятся всякие GTK темки)

Скриншот с Sonata

(источник)

А я буду использовать MPD по назначению! Установить его и Sonata можно с помощью пакетного менеджера любого дистра. MPD — на сервер, а Sonata на диван на ноутбук. По дефолту MPD привязывается к адресу 127.0.0.1, поэтому в конфиг вношу поправку привязки к внутреннему адресу сервера и создаю симлинк из каталога с музыкой в каталог, из которого MPD формирует базу.

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

В ALT Linux MPD иногда падает. Причина не выяснена, но и пока не сильно раздражает меня.

Загрузчик файлов из инета

Хорошо, что сейчас безлимитный интернет ещё и быстрый. Вместо внутрисетевых файлообменников можно качать свежие образы Ubuntu или Debian, например, с The Pirate Bay. Дефолтным клиентом к torrent-сетям для многих дистрибутивов сейчас является Transmission. Когда-то к нему отдельно можно было прикрутить web-интерфейс Clutch. Начиная с версии 1.3 или 1.4 web-фейс идёт уже вместе с Transmission.

Настройка Transmission

С ноутбука подключаюсь к Transmission по адресу http://192.168.0.1:9091/. А чтобы казалось, что работаю с полноценным приложением, делаю это из Prism.

Transmission через призму

Внимание, вопрос!!! Что бы вы переложили на ваш домашний сервер?

Запись опубликована автором в рубрике Без рубрики. Добавьте в закладки постоянную ссылку.

Домашняя сеть: 3 комментария

  1. Спасибо за Transmission — не знал, что там есть Web интерфейс.
    Ещё одно интересное применение домашнего сервера — использование вирутализации. Часто нужно воспользоваться операционными системами, отличными от основной. Для этого очень полезно использование виртуальных машин. Ноутбук для этого жалко (ресурсы тут весьма ограниченны), так что это тоже хорошая задача для домашнего сервера. Многие средства виртуализации (например VirtualBox) позволяют использовать VNC для доступа к виртуальной машине, так что пользоваться вирутализацией также можно с ноутбука, если соответствующим образом настроить VirtualBox.
    Если у тебя статический IP-адрес, использование MASQUERADING не рационально. Лучше для этого использовать SNAT.

  2. Интересные выкладки. Сам использую домашний сервер как файлохранилище, но шаринг организован посредством cifs и samba, поскольку дома также наличествует медиацентр под вендой. Все медиа хранится только на сервере и всей домашней локалкой стримается непосредственно с него, что, как ни странно, довольно слабо нагружает дисковую подсистему. Кроме того — самопальный хостинг (соответственно LAMP и все его причендалы, плюс кэширующий неавторитативный dns под названием unbound, плюс exim настроенный только на рассылку) и качалка/шарилка файлов в виде связки из linuxdcpp и rtorrent с веб-мордой посредством xmlrpc и апачевского mod_scgi. Плюс там же крутится три dc++ хаба. В качестве шлюза выступает отдельный роутерный девайс.
    Также +1 к виртуализации, rdesktop на клиенте + VRDP виртуалбокса здесь прямо-таки заруливает, даже несмотря на то что приходится также иметь запущенным Xvnc (впрочем он все равно нужен для linuxdcpp ибо я до сих пор не наблюдаю приемлемого консольного dc-клиента). Особенно приятно иметь дополнительную ось на сервере с тех пор как virtualbox обзавелся автоматизацией создания хост-интерфейсов.
    Также весьма удобно организовывать игровые сервера, хотя лично у меня они долго не держались х)
    Что бы я еще переложил на сервер — функции принт-сервера, тем более что через самбу все это делается на раз-два. Иногда возникает необходимость печати с ноутбука, приходится копировать на флешку и нести к компу с принтером. Но пока что по ряду причин это проделать нельзя.

Добавить комментарий